cx-platform-secrets
the minimal keystore: one handle grammar, one internal resolve seam, the PEP and the audit record, custody that rises by a provider row
Why reach for it
A credential's value has exactly one place to be, and it is
not your program. cx-platform-secrets is the minimal keystore:
programs, feature documents, deployment documents and audit records
carry a handle, handle:<provider>/<path>, and the value exists only
inside this module's resolve seam and the one operation a consuming
module hands it to. Everything that can reach a value is in this one
repository, which is a boundary you can inspect, fork or replace.
What the operation receives is a secret: it computes — equal to the
value it was resolved from, in constant time, unequal to any other —
and it renders as ‹redacted› at every emit boundary, so a log line,
a canonical form or an error message cannot carry it out. A consumer
the deployment's authorization rows do not grant is refused and
nothing resolves; a malformed handle, an unbound provider and an
absent value each refuse with their own code, in a fixed order the
corpus pins.
Every resolution — granted or refused — writes one audit record naming
the consuming module and the handle, never the value, through the
store's audit stream. Custody rises by a provider row: an env
provider boots a development keystore and is refused in a served
profile, a sealed store keeps values under AES-GCM beneath a master
key file the keystore insists is mode 0600, rotation answers the
active value inside its window and the successor after it, and a
provider kind that could export a value is refused at boot. The cx
secrets verbs stay in the front door's binary, because the binary is
the front door's to build.
What it gives you
One module of the platform group, a pure-CX package with no V code:
open, with-resolved, the sealed store's put, rotate and list, and
nothing that answers a value. It links to the reference page projected
from its own documentation.
| module | import it as | where it lives | reference |
|---|---|---|---|
secrets
|
[?lib 'cx-platform/secrets']
|
Ring 1 · the platform group | secrets reference |
Try it
A keystore booted over an in-memory audit journal with one env
provider, and a granted consumer handed the secret: emitted, it is
the redaction marker; compared, it is equal to the value it came from
and unequal to anything else. The env grant is the provider's, not
the program's.
prog.cx
[?lib 'cx-platform/secrets']
[?lib 'cx-platform/audit']
[?lib 'cx-platform/journal']
[?let [= $u [$audit:unbind]]
[= $j [$journal:open "mem://s003" "dev"]]
[= $b [$audit:bind $j {tenant: "dev"}]]
[= $ks [$secrets:open [deployment name=dev
[runtime
[secrets [provider name=os kind=env]]
[authz tenant=dev
[delegation d-dev [tenant dev] [from [principal operator]] [to [module 'cx-platform/connector']]
[capabilities [secrets:resolve]] [over 'handle:os'] [assurance :t1] [signature s]]]]]]]
[$secrets:with-resolved $ks 'handle:os/home' 'cx-platform/connector'
[?fn ($s) [probe [emitted [$format:canonical [box $s]]]
[equal [= $s [?secret [$env:var 'HOME']]]]
[unequal [= $s [?secret 'not-the-home-directory']]]]]
{now: '2026-09-26T09:00:00Z'}]]
$ cx --allow-env prog.cx
[probe [emitted "[box '‹redacted›']"] [equal true] [unequal false]]
Fixture secrets-003-the-seam-answers-a-secret-redacted-at-emit in deps/cx-platform-secrets/conformance/platform/secrets.cxd — replayed against this cx when the page was built.
Status
The keystore ships as a package: its one module is bundled into the build from the pin, its specification and corpus travel with it, and the connector kit resolves a gateway's credential through its seam at open.
| fact | as the registry records it |
|---|---|
| ships as |
package
|
| status | extracted |
| pinned at |
b64cf9ccf
|
| builds on | cx-core-code, cx-platform-connector, cx-platform-store |
| built on by | nothing pins it yet |
| bundled modules | 1 |
cx-platform-secrets plugs into: the repositories it builds on (left), the modules it ships (centre), the repositories that build on it (right) · drawn from registry/repos.cxd, deps.cxd and registry/modules.cxd when this page was builtLinks
- github.com/cx-home/cx-platform-secrets — the repository
- README — what it is, how to install it, what it pins
-
spec/03-approved— the specification, the only truth -
spec/03-approved/platform— the specification, the only truth -
conformance— the conformance corpus, the executable truth -
conformance/platform— the conformance corpus, the executable truth