← All stories

BRANCH · ef-070-efx-enablement-passcode

EFx enablement and station admin passcode

EF-070Persona: EFx organizerRoots in: efx-station-shellMatrix: Partial

Account-level EFx enablement unlocks event modules and each event owns a station passcode. Rotation blocks new station joins immediately while existing live station sessions keep their signed session token.

Happy path

  1. Enable EFx for the account.

    An authorized admin opens EFx settings, turns on the account capability, and sees an audit-backed enabled state.

  2. Set or rotate an event station passcode.

    The event-level passcode form validates strength, saves through the station admin endpoint, and writes an audit row for every rotation.

  3. Station joins with the current passcode.

    The station receives a session token, opens the WebSocket namespace for the event, and receives the current snapshot before any deltas.

Failure modes

Live runtime contract

The story includes all EFx WebSocket rubric probes: reconnect snapshot, ordered deltas, 5000-station load, late join snapshot, pause semantics, gated sensitive display, idempotent station auth, and event-scoped isolation.

Passcode rotation evidence

Rotation writes an audit row and rejects new joins with the previous passcode without killing already-connected stations.

Enablement boundary

Disabled accounts cannot create modules or issue station session tokens, and the UI exposes a visible gap panel rather than a broken shell.

Stable test attributes

Visibility teeth. Each listed attribute must be effectively visible in the state where the probe expects it; interactive rows must also be focusable and unobscured.

data-testWherePurpose
efx-enable-panelEFx admin settingsAccount-level enablement state
efx-enable-toggleEFx admin settingsEnable or disable EFx
efx-passcode-formEvent EFx settingsPasscode editor
efx-passcode-inputEvent EFx settingsNew passcode input
efx-passcode-save-ctaEvent EFx settingsSave passcode
efx-passcode-rotate-ctaEvent EFx settingsRotate passcode
efx-passcode-audit-rowAudit tableRotation evidence
efx-station-passcode-formStation entryPasscode gate
efx-station-shellStation runtimeAuthenticated shell
efx-station-socket-statusStation runtimeConnection state
efx-station-active-stateStation runtimeModule state
efx-enable-gap-panelEFx admin settingsDisabled capability explanation

Agent test plan

- enablement-visible
- enablement-save
- passcode-rotation-audited
- current-passcode-opens-station
- old-passcode-rejected-after-rotation
- all WebSocket rubric probes listed in JSON-LD failureModes