sdp-request-watcher/docs/ROADMAP.md
2026-10-15 19:07:07 -04:00

2.4 KiB
Raw Blame History

Roadmap

Goal

A hosted dashboard where staff in each MCCS region sign in and see their own region's queue. It should be customisable per user, and easy to extend with new panels.

Target architecture

  • Identity: users sign in (Zoho web OAuth, or Microsoft if MCCS staff use it) only to identify themselves.
  • Data: one service connection, signed in once by an admin, with its refresh token kept and auto-renewed. Its SDP account must be able to see every region.
  • Regions: profiles stored in SQLite (sites, groups, technicians, statuses). Checks run once per region and the results are cached, so API traffic grows with regions, not viewers.
  • Access: users are assigned to regions and the server enforces it. An admin role manages regions and assignments.
  • Extensibility: each panel is a module with server code to fetch its data and page code to draw it. The weather card is the first example.

Phases

Phases 2 to 5 (regions as configuration, user sign-in, admin pages, deployment) were dropped on 2026-10-15. Don't start them. The whole auth process is being rebuilt to run on a server instead of locally, and the plan after phase 1 will be redrawn around that. Until then, the Identity, Data and Access bullets in the target architecture above may be out of date. The open questions below still need answering.

  • Later: per-user preferences (default region, hidden columns, sound) and panel modules.

Open questions

  • Are regions a security boundary (staff can't see other regions) or a convenience (default view with a switcher)?
  • Do MCCS staff sign in with Microsoft 365 or Entra ID? That decides between Zoho and Microsoft sign-in.
  • Does SDP itself restrict technicians to certain sites? If it does, per-user tokens become an option.

Done

  • Dashboard: stat tiles, technician × status table, live closed feed with the ding.
  • Central region scoping by site and group.
  • Unassigned counter. Verified to match the ManageEngine "Central Region Unassigned" view on 2026-10-15.
  • Weather card (OpenWeatherMap).
  • Fixed SDP paging and the date filter (see NOTES.md).
  • Phase 1: the Zoho refresh token is kept, the access token is renewed 5 minutes before it expires, and the sign-in is saved to data/token.json (TOKEN_FILE) so it survives restarts.
  • Phase 1b: Connect and Refresh are admin-only (ADMIN_KEY, or localhost when no key is set), and only admins see the device code. Phase 3 replaces the key with real sign-in.