Skip to main content
← Back to list
01Issue
FeatureOpenSwamp CLIPublic
AssigneesNone

Relationships

#2231 Auth gate: enforce authentication and add background proof refresh

Opened by stack72 · 9/16/2026

Steps 5-7 of the auth gate plan (swamp-club/swamp#2182). Prerequisites shipped: deprecation warning (PR #2479), proof verification infrastructure (PR #2483).

What remains

Step 5: Auth gate policy + orchestrator

  • AuthGatePolicy (pure domain, src/domain/auth/) — decides pass/block/warn given credential state, proof state
  • AuthGate orchestrator (CLI layer, src/cli/) — performs whoami calls, reads repos, coordinates with existing scope resolution in mod.ts
  • Needs richer error classification from SwampClubClient.whoami: rejected (401/403 hard block) vs transient (429/5xx/timeout fail open)
  • Exempt commands: auth login/logout/status, --version, --help
  • Hard block message: swamp requires a swamp-club.com account. Run swamp auth login to create an account or sign in.

Step 6: Weekly background proof refresh

  • Non-blocking whoami check when proof iat is older than 7 days
  • Runs after command dispatch, not before
  • On 401/403: delete cached proof, next command hard blocks
  • On timeout/5xx: retry next run

Step 7: authMode in telemetry

  • Extend TelemetryContext with authMode: verified, offline, or none
  • Blocked runs send a single telemetry event with the block reason before exiting

Timing

Ship just before October 1st, 2026. The deprecation warning is already live telling users the deadline.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED

Open

9/16/2026, 11:45:31 PM

No activity in this phase yet.

03Sludge Pulse
Editable. Press Enter to edit.

stack72 commented 9/16/2026, 11:50:44 PM

Reminder: create design/enablers/auth-gate.md when picking up this issue. The auth gate architecture, the three rules (no credential = hard block, must verify once, verified + unreachable = fail open), and the enforcement deadline should be documented as a design enabler.

Sign in to post a ripple.