Zero Accessby Railmandocs
Packages

Packages overview

What each package does, when to install it, and where to start.

Packages overview

@railman/* packages for Better Auth Zero Access (railmanio/auth-zero-access). Still private: true — install from git / workspace until public npm. Use only what your use case needs.

PackageKindPrimary entryStart here
@railman/auth-elevateBA pluginelevate() · requireElevate()Step-up / sudo
@railman/auth-login-factorBA pluginloginFactors() · requireAccess()L0 stamps + gates
@railman/auth-zero-access-passkeyBA plugins + clientenhancePasskey(passkey, …)Hardened WebAuthn + PRF
@railman/auth-zero-accessBA plugin + clientzeroAccess()Blind MEK store
@railman/zero-vaultClient onlycreateVaultClient()Create / unlock / reset UX
@railman/zero-e2eClient onlyX3DH + Double RatchetChat on a Vault-derived identity

Layer rule

Elevate can run independently and never opens a vault. Vault requires the passkey composition. Chat requires Vault and consumes its identity seed. How it works.

Dependency sketch

Independent:
  auth-login-factor + auth-elevate
    └─ password / TOTP / optional passkey step-up

Passkey-centered:
  auth-zero-access-passkey (enhancePasskey → stock + guard)
    └─ auth-zero-access (installed guard auto-bound)
         └─ zero-vault (PRF-backed browser unlock)
              └─ zero-e2e (Vault-derived identity seed)

Pick by goal

GoalPackages
Sudo onlyelevate + login-factor (+ optional twoFactor)
Passkey loginzero-access-passkey (enhancePasskey)
Passkey + sudopasskey stack + elevate
Vaultpasskey stack + zero-access + zero-vault (+ optional elevate policy)
E2E chatvault path + zero-e2e

Getting started

Specs

HTTP paths, bodies, and M6 rules: API & specs.

On this page