Repository navigation
credentials
sinrimin edited this page Sep 18, 2026
·
1 revision
Phase 2.1 · design: design-phase-2.1-credentials.md
A credential is a pure named secret — { name, secret, scope }. It
authenticates Harness Nexus out to an upstream MCP server or LLM gateway.
(It is not a personal access token; PATs authenticate into Harness Nexus.)
-
Encrypted at rest — AES-256-GCM (
CREDENTIAL_ENCRYPTION_KEY, falling back toJWT_SECRET). The API never returns the plaintext; responses carry a maskedsecretPreviewonly. Decryption happens solely at resolve time. -
Referenced by placeholder, not bindings — write
${cred:NAME}anywhere in a transport string field (url, command, args, env values, header values) and the resolver substitutes it at the right moment:- server-dialed MCP rows: at connect time, server-side;
- client-dialed rows: at config-fetch time, inside the shim's memory only.
- Distributable flag — personal credentials are always distributable; a global credential is distributable only if an admin opts in. Distributable credentials may be shipped to a user's machine for client-dialed connections and provider config push; locked globals stay server-only.
Same as everything else: global = readable by all authenticated users,
admin-only to mutate; personal = owner-only. See
Authentication.