CX · Reference guidecx-platform-identity
PlaygroundDownloadsAboutv0.18.0-pre.1

cx-platform-identity

sessions, did:web, authz-store, vc-revocation

Why reach for it

Who is asking, as a value. cx-platform-identity turns a verified token into a session bound to a principal and a tenant, maps claims to that principal deterministically, resolves did:web identifiers, keeps authorization rows in the store and answers whether a credential has been revoked.

A session is attached from a token checked against the issuer's keys, and every question about it is answered as a value: an unattached request, an unknown session id, an unknown client are all absence you can ask about with [?else], never an exception. The claim mapping is pure — the same claims map to the same principal every time — so a policy written against a principal can be tested without a token in hand.

The rest of the repository is the identity fabric around the session: did:web resolution refuses to reach the network until it is granted and refuses a self-describing document; the authorization store keeps grants as rows the engine can query and replay; credential revocation is an append to a journal and a fold over one — a fact that outlives the process and is visible to a second party. The single sign-on protocols themselves live one repository over, in the sso module.

What it gives you

Four modules of the platform group: the session layer, the authorization store, did:web resolution and credential revocation. Each links to its reference page, projected from the module's own documentation.

module import it as where it lives reference
authz-store [?lib 'cx-platform/authz-store'] Ring 1 · the platform group authz-store reference
did-web [?lib 'cx-platform/did-web'] Ring 1 · the platform group did-web reference
session [?lib 'cx-platform/session'] Ring 1 · the platform group session reference
vc-revocation [?lib 'cx-platform/vc-revocation'] Ring 1 · the platform group vc-revocation reference

Try it

A claims document mapped to a principal with no session in hand — the tenant from tid, the identity from sub, and the same answer every time it is asked.

prog.cx

        [?lib 'cx-platform/session']
[$session:map-claims [claims tid="acme" sub="dana"] {}]
      
        $ cx prog.cx
[principal id=dana [tenant id=acme]]
      

Fixture session-005-map-claims-pure in deps/cx-platform-identity/conformance/platform/session.cxd — replayed against this cx when the page was built.

Status

The identity repository builds on the store, the wire and the session layer, and the application host builds on it; the front door compiles its V module from the pin.

fact as the registry records it
ships as binary
status extracted
pinned at 952cd692e
builds on cx-platform-store, cx-platform-net, cx-platform-xsp
built on by cx-platform-fabric, cx-platform-xap, cx-platform-sso
bundled modules 4
BUILDS ON THIS REPOSITORY · SHIPS BUILT ON BY cx-platform-store cx-platform-net cx-platform-xsp cx-platform-identity authz-store did-web session vc-revocation cx-platform-fabric cx-platform-xap cx-platform-sso DRAWN FROM registry/repos.cxd's pins= COLUMN AND registry/modules.cxd WHEN THIS PAGE WAS BUILT
Fig. — what cx-platform-identity 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 built