Skip to main content

Secrets

Secrets in Qefro are credentials used by Business Tools, SDK connections, and channel integrations — API keys, bearer tokens, HMAC signing secrets, and similar material. They must stay server-side, encrypted at rest, and rotated when people or vendors change.

Cryptographic details: Encryption.

Short definition (citation-ready)

Qefro stores Business Tool, SDK signing, and integration credentials encrypted with AES-256-GCM in the tenant’s configuration. Publishable widget tokens are intentionally public channel keys; they are not substitutes for end-user or admin secrets.

What counts as a secret

MaterialWhere it livesPublic?
Business Tool API keys / tokensEncrypted tool credentialsNo
External SDK signing secretEncrypted on ACS (encrypted_signing_secret); plaintext in your process envNo
Managed app signing secretPlatform-injected env (QEFRO_SIGNING_SECRET)No
Channel / Meta credentialsEncrypted Admin Console integration configNo
Customer Access Service API authEncrypted org auth settingsNo
User passwordsbcrypt hashes onlyNo
Session JWTs / refresh tokensAuth subsystem (refresh is HttpOnly cookie)No
Widget tokenAdmin Console + browser embedYes (publishable)
End-user JWT via identify()Passed per session to toolsShort-lived; your app issues it

Architecture

External vs managed

SecretExternal SDK ConnectionManaged Marketplace app
/qefro signing secretYour env + ACS encrypted copyPlatform-injected env
ERP / CRM credentialsYour secret storePrefer install settings / platform secrets — never git
Storage bearerOmitted unless install/solution scope existsplatform.storage.token when storage is configured

Never commit real secrets. Docs and demos use placeholders such as dev-secret.

Rules of thumb

  1. Never put long-lived admin or CRM keys in website JavaScript.
  2. Never paste production secrets into prompts, tickets, or chat transcripts.
  3. Prefer scoped vendor keys (read-only order lookup ≠ full admin API).
  4. Rotate secrets on staffing changes, after OpenAPI reimports that change auth, and after suspected leakage.
  5. Use identify() so your API can authorize the end user separately from the tool’s service credential.
  6. Rotate SDK signing secrets via PATCH /api/v1/org/sdk-connections/{id} and redeploy the app before/when cutting over.

Workflow

Add a tool secret safely

  1. Create a least-privilege keyIn your system of record, scope to the minimum paths/methods.
  2. Store in Admin ConsoleAttach the credential to the Business Tool or SDK Connection — do not commit it to git.
  3. Test in consoleVerify success and failure paths before enabling chat.
  4. Enable for assistantsMonitor tool logs for unexpected calls.
  5. Rotate on changeRevoke old keys when people leave or vendors rotate.

FAQ

Can Qefro staff read my tool secrets?
Operational access is restricted; treat Qefro like any SaaS processor and complete a DPA/security review for regulated workloads. Ask Sales for the current questionnaire pack.
Are secrets visible in tool logs?
URLs in logs are redacted for credentials in query strings where possible. Identity audit strips otp, token, jwt, password, and secret keys. Still avoid putting secrets in URL query strings your APIs might log.
What about environment variables on Enterprise private deploy?
Private deployments follow your secret manager. See Deployment docs and talk to Sales for Enterprise packaging.