Platform
Secrets
Workspace secrets UI, encryption, and how secrets relate to credentials.
Settings → Secrets (/confluye/{slug}/settings/secrets) is the credential editor: search, name, type, value, Save. Saving calls tRPC settings.createCredential / updateCredential. Values are never shown after save (maskedValue only).
This is the same store as Integrations and credentials. Integrations that need a token write here; workflows resolve {{credential.NAME}} / {{secret.NAME}} from decrypted workspace secrets at run time.
What the UI can do
- Search by name. Empty match: “No workspace secrets match this search.”
- Create a new row (name, type, value). Save stays disabled until name and value are filled.
- Edit existing names/types/values in place, then Save.
- Surface missing workflow credentials from platform doctor (imported n8n/HTTP secrets): Login (OAuth), Client ID / Client secret, or Add.
Security boundaries
- Encryption: AES-256-GCM. Rotate
APP_ENCRYPTION_KEYwithout re-saving credentials makes decrypt fail (SecretDecryptionError); reconnect the secret. - Run logs redact known secret strings and
sk-prefixes as{{REDACTED}}. - List APIs never return plaintext.
- Personal credentials are not the default Secrets list (
scopedefaults toworkspace). - Claude Code / Codex subscription secrets are managed from Settings → Workers, not this form.
Limits and failure modes
- Type/value validation errors appear in the page error box (
400/ tRPCBAD_REQUEST). - Duplicate workspace names update the existing credential.
- Doctor OAuth buttons require the integration OAuth client to be configured; otherwise use Client ID/secret first.
