Skip to main content

Module dashboard_apps

Module dashboard_apps 

Source
Expand description

The operations dashboard’s per-app view: what each OAuth application holds on this server, and what it did.

Part of crate::dashboard — surface 3 in docs/web-surfaces.md, behind the same operator session as every other control there — kept in its own file because it is its own panel group. Three reads, each filterable by client_id and by account, and the two logs by how far back:

  • Live logins, from the grant store. Beside each: what it may do now, and whether policy would issue it a token now. Neither is stored; both are asked of the ceiling and the gate at the moment the panel is drawn, so a ceiling narrowed or a policy loaded a second ago shows here.
  • Refusals, from the evaluation log.
  • Writes, from the write log.

The two logs are read through their stores rather than out of the write-ahead log, and a store that cannot list its rows answers unreachable rather than empty: a deployment that keeps no log and one that refused nothing are different facts.

Beside the reads there is one control: ending every login an application holds, here or on one account. It is the answer to an application whose keys leaked, and it is not the answer to an application that should not be here — that is a denyClient policy, written from surface 2, which stops the same logins working while it stands and lets them work again when it lifts. This ends them for good and says nothing about whether the application may sign in again.

Structs§

AppFilter
What every route here narrows on. Both empty lists everything.
EndLoginsBody
What POST /dashboard/api/apps/end-logins takes.
LoginView 🔒
One live login, as the panel lists it.

Functions§

end_logins 🔒
POST /dashboard/api/apps/end-logins
logins 🔒
GET /dashboard/api/apps/logins
refusals 🔒
GET /dashboard/api/apps/refusals
routes
Builds the per-app routes, merged into the dashboard’s own router.
writes 🔒
GET /dashboard/api/apps/writes