Secret Store (Secret Manager)
Overview
The Secret Store provides a secure and centralized way to manage sensitive information used by integrations and workflows, such as API keys, authentication tokens, passwords, and other confidential credentials. Instead of storing these values directly within integration configurations, users can save them in the Secret Store and reference them using a secure pointer syntax:
{{secret:SECRET_NAME}}When an integration or flow runs, the platform automatically resolves the reference and injects the corresponding secret value at runtime. This approach eliminates the need to expose sensitive credentials in configuration files while maintaining seamless access for authorized processes.
By separating secrets from application and integration settings, the Secret Store enhances security, simplifies credential management, and supports credential rotation without requiring changes to existing configurations. Sensitive values remain protected and are not exposed in:
User interfaces (UI)
API requests and logs
Flow or integration configurations
Exported flow files
Version-controlled assets and shared configurations
This helps organizations maintain stronger security practices, reduce the risk of credential leakage, and ensure that sensitive information is handled securely throughout the platform.
What problem it solves
Prevents hardcoded credentials
Users no longer need to place plain-text secrets directly in Integration fields.
Reduces leakage risk
Sensitive values are not exposed in exported files or standard configuration views.
Improves secure development practices
Builders can follow a safer credential management model when creating and sharing flows.
Supports safer portability
Flows can be exported and shared without including actual secret values.
Why use Secret Store
Improves security
Helps protect the organization from data leaks and credential exposure.
Supports best practices
Encourages developers to separate secrets from flow configuration.
Safer sharing and versioning
Flow exports and source-controlled artifacts contain only secret pointers, not real credentials.
Simplifies credential rotation
Secret values can be updated without rewriting every place where the integration is used.
Improves isolation
Secrets are scoped to the integration connection where they are created.
Core concepts
Secret pointers
Sensitive values are referenced using this syntax:
'{{secret:SECRETNAME}}'
The pointer is what gets stored in the integration field.
The actual secret value is resolved only at runtime.
Per-connection secret scope
Secrets are managed per integration connection.
There is no global Settings → Secret Store page.
A secret belongs only to the integration connection where it was created.
This isolation helps ensure secrets are only accessible by authorized integrations.
No read-value behavior After
After a secret is saved, the plaintext value is never returned to the UI.
There is no read-value API for stored secret content.
The plaintext exists client-side only briefly while the user types it during create or update.
Export-safe design
Exported flow files contain only the pointer string.
The actual secret value is never written into the exported JSON.
Feature goals
Secure secret management
Provide a dedicated UI to create, update, and delete secrets within each integration connection.
Standardized references
Support a consistent pointer format for secret usage inside Integrations.
Runtime resolution
Resolve secrets dynamically at execution time rather than storing plaintext in flow configuration.
Safe exports
Ensure exports contain only secret references and never raw secret values.
Integration isolation
Restrict secret usage to the integration connection where the secret is defined.
How the Secret Store works
Create and store a secret
Open a specific integration connection, such as:
REST API
MCP
Go to that connection’s Secrets panel.
Create a secret by entering:
Secret Name
Secret Value
On save:
The value is encrypted
The plaintext is not returned to the UI afterward
Reference the secret
In integration fields that require sensitive values, enter a pointer such as:
'{{secret:API_KEY}}'
Common fields include:
headers
auth tokens
query parameters
passwords
other secure config inputs
Validation behavior
The system validates whether the secret reference exists and is well-formed.
The field shows an error only when the reference is:
missing
malformed
No success confirmation is shown for a valid reference.
Validation is errors-only
Runtime behavior
When the flow executes and triggers the integration:
The system fetches the secret value from the Secret Store
The pointer is resolved
The actual value is injected into the outbound request
Export behavior
When the flow is exported:
The JSON contains the pointer string, such as '{{secret:API_KEY}}'
The actual secret value is never included
User workflow
Manage secrets within an integration connection
Navigate to Integrations.
Open a specific integration connection.
Use the connection’s Secrets panel.
Create, update, or delete secrets from that connection.
Important: Secrets are not managed from a global Settings page. They are managed within each integration connection.
Create a secret
Select Create Secret.
Enter:
a Secret Name as the unique identifier
the Secret Value
Save the secret.
What the UI shows after save
After saving:
the UI shows the Secret Name
the UI shows a Last Updated timestamp
the secret value is not returned to the UI
The value is not viewable later, even in masked form.
Use the secret in integration fields
In any field that requires confidential data, enter the pointer:
'{{secret:SECRETNAME}}'
Examples include:
Authorization header values
bearer tokens
API keys
basic auth passwords
secure query parameters
Save and validate
Save the integration configuration.
The system flags only invalid references.
If valid, no positive confirmation is shown.
Execute the flow
When the flow runs, the integration resolves the pointer and uses the real secret value securely at runtime.
UI behavior and security details
What users can see
Users can see:
secret names
last updated timestamps
reference pointers entered into config fields
What users cannot see
Users cannot retrieve:
the stored plaintext secret
a later masked display of the actual value
There is no API that returns the saved secret value.
Plaintext handling
The plaintext exists only briefly on the client side while the user types it during:
create
update
Encrypted storage
Once saved, the secret value is stored in encrypted form.
Example use cases
API key in request headers
A REST integration needs an API key in a header.
Instead of entering the actual key directly, the builder uses:
'{{secret:API_KEY}}'
At runtime, the system injects the stored value into the header.
Bearer token for authentication
An integration requires an auth token.
The token is stored once in the Secret Store.
The integration references it using a pointer instead of plain text.
Password for basic authentication
A password is stored as a secret in the integration’s Secrets panel.
The password field contains only:
'{{secret:PASSWORD}}'
The value is resolved only when the integration runs.
Safer promotion across environments
A flow is exported from one environment and imported into another.
The flow file contains secret pointers only, not actual credentials.
Destination-specific secrets can be created in the target environment.
Export and import behavior
Export behavior
Exported JSON contains the pointer string exactly as stored.
Example:
'{{secret:SECRETNAME}}'
This is not a special export transformation.
It happens naturally because the field stores the pointer, not the secret value.
Import behavior
When a flow is imported into another environment:
any referenced secrets must exist in that environment’s Secret Store for the flow to become valid
Current implementations note
According to the JIRA description, flow-level missing-secret validation is planned but not yet implemented.
That means future validation is expected to flag missing destination secrets more directly.
Example from the demo
For Complete Demo refer to this document
1. Secret creation in integrations, the secrets being created from the integration area rather than as general flow variables.

2. Pointer usage

The presenter copied the secret reference and pasted it into an integration field such as a password field.

No value retrieval, once stored, the UI never sees that secret again.

The secrets are scoped by integration, allowing the same secret name to exist in different integration scopes without collision.



Last updated
Was this helpful?