← Design · c121

plan/06-endpoints.md

06 · Endpoints + propagation footprint (Wave 2)

TL;DR: the published target version and each endpoint's active version are different facts (I). Give propagation a footprint where endpoints live: an Endpoints listing and detail in the lab (copied from the live qdash pages), a Policy Config column on the team page's Endpoints ledger. Stale, offline or failed endpoints are never shown as updated; stale ones point at the MDM.

Owns: new app/pages/pages/phase4/mock/organization/endpoints/{index,detail}.vue, new app/components/governance/live/Endpoint*.vue, app/components/governance/live/TeamDevicesLedger.vue, and in app/data/governance-parts.ts only the rail entries (MOCK_NAV / MOCK_SUBMENUS, l.43–51). Reads 00's fleet, fleetSummary, targetVersion.

Today

Organization › Endpoints lands on the blank catch-all [...slug].vue. The only endpoint UI is the team page's TeamDevicesLedger.vue (fed by useTeamMock.ts). Fleet is counts only until 00 lands.

Steps

  1. Copy, then adapt (replicate first): from ../qcontrol/crates/qdash/ui/app/pages/organization/endpoints/index.vue (PageHeader, TeamEndpointsBand, TeamEndpointsLedger → components/team/EndpointsBand.vue, EndpointsLedger.vue) and …/endpoints/detail.vue (EndpointHeader, EndpointTiles, EndpointInstalls). Copy into governance/live/Endpoint*.vue the way c114 copied the team page (see governance/live/Team*.vue and its mock adapter pattern). Read-only; no backend.
  2. Listing. Band on top: the propagation bar from the note (../sources/logseq-propagation.png): "97 of 100 endpoints on Policy Config v13 · 3 still on earlier versions", then counts by status. Ledger gets a Policy Config column: v13 (current, green dot), v12 · behind (amber), v12 · offline 6d (grey), v12 · failed (rose, with reason). Filter chip "Not on v13".
  3. Detail. Tiles: Active v12, Target v13, Last seen, Status. When not current: "This endpoint hasn't picked up v13. If it's off-boarded or on a shelf, check your MDM." (R). Small activation history (versions with when they activated).
  4. Team detail ledger. Same column in TeamDevicesLedger.vue; endpoint names link to the lab detail.
  5. Rail. Point Organization › Endpoints at the new page (concrete routes beat the catch-all, so this may be no-op — check).
  6. Monitor-section propagation view stays future (I, R): leave a DesignInProgress-style note on nothing; just don't build it.

Done when

/pages/phase4/mock/organization/endpoints, …/endpoints/detail?endpoint=mac-eng-07 (behind), win-fin-02 (failed), one current; team detail ledger column. After 03's Publish (v14), the listing shows 0 of 100 on v14 until propagate(). Screenshots shots/06-*.png.

Look for (review)

Can you find the three laggards in under five seconds? Does anything imply an endpoint is updated just because v13 was published?

Qpoint Brand Style Guide