Adds the browser's passkey, then publishes auth.adminUser.passkeyAdded.
The session layer verified the token; only its sub is read, after the
add, so a failed read skips the event and never blocks the passkey.
credential is WebAuthn RegistrationResponseJSON, as a JSON string.
Only a stale RP ID's passkey is deleted, by the session layer: no event.
Every passkey the signed-in user has, across all pages.
WebAuthn PublicKeyCredentialCreationOptionsJSON, as a JSON string.
Publishes auth.adminUser.loggedOut once the operator's session has
ended. The session layer revoked its refresh token first, best-effort,
and the sign-out reads nothing more, so nothing here can block it.
An operator's own login on the
cfx-adminpool. Each change publishesauth.adminUser.*once it has happened, with no tenant owners: an operator is CFX staff. A refused publish never fails the change.