Skip to content

Add a server-rendered admin dashboard#96

Merged
shaddi merged 1 commit into
mainfrom
admin-dashboard
Jun 9, 2026
Merged

Add a server-rendered admin dashboard#96
shaddi merged 1 commit into
mainfrom
admin-dashboard

Conversation

@shaddi

@shaddi shaddi commented Jun 9, 2026

Copy link
Copy Markdown
Member

Adding an admin dashboard for the app to make it easier to provide support and troubleshoot issues with partners. The primary feature is letting an admin "login-as" a user to see what issues they're seeing, as well as perform basic account management like password resets or changing the org a user is part of. This is intended as a starting point, and we can add further admin features in the future as needed.

A Jinja2 + htmx console for the platform operator, served by Flask under
/admin and kept separate from the main SPA. It can browse organizations,
users, filings, exports, and tasks across all accounts; impersonate a user
("login as") with an in-app banner and one-click return; reset passwords
(temporary or by email); toggle verified/disabled; grant or revoke platform
admin; and delete users or organizations with typed confirmation. Every
action is recorded in an audit log.

The admin panel uses its own session, distinct from the app's, and is
guarded by a platform-admin check with CSRF protection, short-lived
impersonation tokens, a strict Content-Security-Policy, and anti-clickjacking
headers. Authentication endpoints are rate-limited. Also adds a distinct
platform-admin role with a reversible disabled flag, fixes password reset and
email verification under PyJWT 2.10+, verifies database migrations in CI, and
adds a boot smoke test that starts the real image and health-checks it.
@shaddi shaddi merged commit 75cb37d into main Jun 9, 2026
3 checks passed
This was referenced Jun 10, 2026
@shaddi shaddi deleted the admin-dashboard branch June 13, 2026 04:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant