Menu

Admin and CLI

Run your instance from outside your app.

The operator API and the command line: users, sessions, roles, keys, and the day-to-day jobs that are nobody's front end.

Docs · the operator contract

The Admin API.

The official contract for the operator API of a Signet instance (/admin/v1): 64 operations across users, sessions, tokens, delivery and event dead-letters, configuration, audit and stats. Generated from Signet's contract at commit 06bcd58690ed, 2026-09-06.

grantsstatsusersapp-userssessionsapi-keysssh-machine-issuersservice-principalsauthorization-rolesprincipal-role-grantsservice-tokenssigning-keysplatform-credentialstokensmessagesdeliverieseventsconfigauditvault

Two authorities, deliberately separate. A running instance serves the auth-wire OpenAPI at /api/auth/open-api/generate-schema, and that document covers the better-auth wire only. This contract lives in the repository and covers the operator API; instances do not serve it.
The names are load-bearing. Every operationId equals a signetctl command path: users_list is signetctl users list. A build gate asserts the bijection in both directions, so the contract and the CLI cannot drift apart. The signetctl reference is the same list wearing its terminal form.

grants

OperationRouteWhat it does
grants_createPOST /admin/v1/grantsCreate one exact opaque principal/resource/capability grant (grants:write)
grants_listGET /admin/v1/grantsList grants in the caller's tenant scope (grants:read)
grants_checkGET /admin/v1/grants/checkCheck one exact opaque principal/resource/capability tuple (grants:read)
grants_getGET /admin/v1/grants/{id}Fetch one grant in the caller's tenant scope (grants:read)
grants_revokeDELETE /admin/v1/grants/{id}Idempotently revoke one grant in the caller's tenant scope (grants:write)
grants_revoke_manyPOST /admin/v1/grants/revokeRevoke every live grant matching exact filters (grants:write)

stats

OperationRouteWhat it does
statsGET /admin/v1/statsInstance stats: users, active sessions, sign-ins per day, delivery and rate-limit counters

users

OperationRouteWhat it does
users_listGET /admin/v1/usersList users, newest first, with case-insensitive substring search over email and name
users_createPOST /admin/v1/usersCreate a user (optionally with password, role, and profile data)
users_set_rolePOST /admin/v1/users/{id}/roleSet a user's role or roles
users_deleteDELETE /admin/v1/users/{id}IRREVERSIBLE: delete a user and every row they own
users_banPOST /admin/v1/users/{id}/banBan a user (reversible): revokes their sessions and user-backed credentials
users_unbanPOST /admin/v1/users/{id}/unbanLift a user's ban
users_unlockPOST /admin/v1/users/unlockClear a lockout/escalation state, addressed by email (not id)
users_sessionsGET /admin/v1/users/{id}/sessionsList a user's sessions
users_revoke_allPOST /admin/v1/users/{id}/revoke-allRevoke every session belonging to a user

app-users

OperationRouteWhat it does
app_users_listGET /admin/v1/app-usersList one canonical application's end-user population, newest first
app_users_createPOST /admin/v1/app-usersCreate one tenant/application-scoped end user
app_users_deleteDELETE /admin/v1/app-users/{id}IRREVERSIBLE: erase one app_user principal and its sessions

sessions

OperationRouteWhat it does
sessions_revokePOST /admin/v1/sessions/{token}/revokeRevoke one session by its at-rest token reference

api-keys

OperationRouteWhat it does
api_keys_mintPOST /admin/v1/api-keysMint a declared-permission API key for an existing user

ssh-machine-issuers

OperationRouteWhat it does
ssh_machine_issuers_registerPOST /admin/v1/ssh-machine-issuersRegister a trusted machine SSH task issuer in the infrastructure organization

service-principals

OperationRouteWhat it does
service_principals_ssh_machine_template_registerPOST /admin/v1/service-principals/{id}/ssh-machine-templatesBind one machine SSH task template to a live service principal
service_principals_listGET /admin/v1/service-principalsService identities, keyset-paged (cursor, not offset) and filterable by organization
service_principals_createPOST /admin/v1/service-principalsCreate a stable tenant-owned service identity with a server-generated id
service_principals_getGET /admin/v1/service-principals/{id}One service identity with its role grants and each credential's engine-computed ceiling
service_principals_deleteDELETE /admin/v1/service-principals/{id}Delete one disarmed service principal after all credentials and open batches are terminal

authorization-roles

OperationRouteWhat it does
authorization_roles_listGET /admin/v1/authorization-rolesPersisted D150 roles, keyset-paged and filterable by organization
authorization_roles_createPOST /admin/v1/authorization-rolesCreate an immutable named D150 permission bundle in one exact scope

principal-role-grants

OperationRouteWhat it does
principal_role_grants_listGET /admin/v1/principal-role-grantsWhich identities hold which roles, keyset-paged and filterable by principal and/or role
principal_role_grants_createPOST /admin/v1/principal-role-grantsGrant one existing scoped authorization role to one existing principal

service-tokens

OperationRouteWhat it does
service_tokens_mintPOST /admin/v1/service-tokensMint a required-expiry credential for an existing service principal
service_tokens_rotatePOST /admin/v1/service-tokens/{id}/rotateRotate one active service token with an explicit bounded overlap
service_tokens_mint_batchPOST /admin/v1/service-token-batchesIdempotently mint one pre-provisioned tenant credential manifest
service_tokens_reconcile_batchPOST /admin/v1/service-token-batches/{id}/reconcileAbandon one crashed U13 claim and revoke every reverse-linked destination token
service_tokens_remint_batchPOST /admin/v1/service-token-remintsPrevalidate and remint one complete U6 legacy-credential batch

signing-keys

OperationRouteWhat it does
signing_keys_listGET /admin/v1/signing-keysList Ed25519 JWKS signing-key lifecycle metadata
signing_keys_preparePOST /admin/v1/signing-keys/preparePrepare one EdDSA or RS256 JWKS-lane successor
signing_keys_activatePOST /admin/v1/signing-keys/{kid}/activateActivate a dwelled prepared JWKS successor
signing_keys_revokePOST /admin/v1/signing-keys/{handle}/revokeRevoke a prepared, retiring, or emergency active JWKS key

platform-credentials

OperationRouteWhat it does
platform_credentials_listGET /admin/v1/platform-credentialsList durable platform-administrator credential lifecycle metadata
platform_credentials_rotatePOST /admin/v1/platform-credentials/rotateMint a managed platform credential with bounded predecessor overlap
platform_credentials_revokePOST /admin/v1/platform-credentials/{id}/revokeRevoke one retiring or offline-recovery platform credential

tokens

OperationRouteWhat it does
tokens_listGET /admin/v1/tokensToken inventory, keyset-paged (cursor, not offset)
tokens_configGET /admin/v1/tokens/configThe token-kind registry (read-only)
tokens_getGET /admin/v1/tokens/{id}One token record by handle
tokens_revokePOST /admin/v1/tokens/{id}/revokeRevoke one exact token handle
tokens_revoke_principalPOST /admin/v1/principals/{id}/tokens/revokeReview then atomically revoke one service principal's exact active credential estate

messages

OperationRouteWhat it does
messages_hobby_waitlistPOST /admin/v1/messages/hobby-waitlistSend one numbered Hobby waitlist stage mail

deliveries

OperationRouteWhat it does
deliveries_dead_lettersGET /admin/v1/deliveries/dead-lettersList delivery dead-letters (undeliverable emails/webhooks)
deliveries_replayPOST /admin/v1/deliveries/dead-letters/{id}/replayReplay one dead-lettered delivery

events

OperationRouteWhat it does
events_dead_lettersGET /admin/v1/events/dead-lettersList event dead-letters
events_deliveriesGET /admin/v1/events/deliveriesList durable event-delivery retry state and terminal rollup receipts
events_replayPOST /admin/v1/events/dead-letters/{id}/replayReplay one dead-lettered event

config

OperationRouteWhat it does
config_showGET /admin/v1/configConfiguration introspection: secrets absent by construction, never masked

audit

OperationRouteWhat it does
audit_exportGET /admin/v1/audit/exportExport the admin audit log as NDJSON

vault

OperationRouteWhat it does
vault_listGET /admin/v1/vaultList an organization's secret paths and metadata: never a value
vault_getGET /admin/v1/vault/{path}Decrypt and return one secret: receipted before the value is returned
vault_putPUT /admin/v1/vault/{path}Create a secret or write a new version, shredding the one it supersedes
vault_rotatePOST /admin/v1/vault/{path}/rotateWrite a new version under a fresh data key and crypto-shred the previous one
vault_revokePOST /admin/v1/vault/{path}/revokeWithdraw a secret by deleting its data key: the ciphertext becomes unrecoverable
vault_unsealPOST /admin/v1/vault-master-keySupply this instance's 32-byte vault master key, the only supported way one arrives
vault_statusGET /admin/v1/vault-statusReport the vault seal state, memory hygiene posture, and the corrective action
vault_audit_exportGET /admin/v1/vault-audit-exportExport the vault's hash-chained receipt trail as NDJSON: every read, write and refusal

Absent by design, recorded rather than forgotten: organizations and OAuth2 clients have no operator-key API today. When Signet ships one, it is added to the contract first, then the CLI grows the verb. The API mounts only when an admin key is configured; without one, every path answers 404.

Enter to open · Esc to close