DC-058: claim for Hermes
This commit is contained in:
@@ -365,6 +365,13 @@ Tickets DC-046 through DC-049 implement pluggable auth + email magic link. Sami
|
||||
- **impact:** Workflow engine now starts cleanly. Health-check-on-interval workflow now actually runs against real services instead of silently 0/0.
|
||||
- **result:** Hoisted `const NotificationManager = require(...)` and used `new NotificationManager({...})` in the server.js init block. Verified live on dc-contabo-de: workflow engine now logs `Workflow engine initialized` on startup; 90s of post-restart logs show zero `getState is not a function` errors, zero `WorkflowEngine Action health-check failed` spam, zero error-priority entries. Health check: 200 OK with uptime reporting.
|
||||
|
||||
### DC-058: Share UI — admin modal + public preview page (completes DC-053)
|
||||
- **status:** in-progress
|
||||
- **owner:** hermes
|
||||
- **details:** DC-053 shipped the full share backend (share-store + 8 routes, 53 tests, Pro tier-gate, Tailscale coordination, email delivery). The `BACKLOG.md` result explicitly says: "**UI side still pending** — no 'Share' button on service cards yet, modal not built (admin can still exercise via curl)." Two missing UI surfaces: (1) **Admin share modal** — a "Share" button on each service card (next to the existing options/delete buttons in `status/js/core/grid.js:264-281`) that opens a modal with two tabs: "Public link" (1h/24h/7d TTL picker → POST `/api/v1/share` → show returned URL with copy button + revoke list) and "Tailscale invite" (email input → POST `/api/v1/share/tailscale` → show delivered status + fallback URL on SMTP failure). Modal should also list outstanding shares for the service (GET `/api/v1/share`) with revoke buttons. (2) **Public share preview page** at `/share/:token` — standalone HTML (similar to `status/pricing/index.html` and `status/billing/success.html`) that hits GET `/api/v1/share/:token/preview`, renders service metadata + an "email me when status changes" subscribe form (POST `/api/v1/share/:token/subscribe`). The URL path is already returned by the issue endpoints as `urlPath` (e.g. `/share/<token>`) — the public-preview page just needs to live at that route. Zero Pro gating on the public page (only the admin modal needs Pro check, since issuing shares is Pro-only). Effort: ~2 hr. Risk: low — the API contract is fully tested.
|
||||
- **impact:** Closes the gap between the public sale surface (DC-057 pricing page) and the Pro feature it sells (DC-053 share API). Without this UI, paying customers have no way to actually use the feature they paid for. Manual `curl` is not a UX.
|
||||
- **prerequisite:** DC-053 (shipped). DC-052 (Pro gate, shipped).
|
||||
|
||||
1. **Always `git pull` before starting work.**
|
||||
2. **Claim a task by editing BACKLOG.md:** set `status: in-progress` and `owner: hermes` or `owner: krystie`.
|
||||
3. **Commit BACKLOG.md claim first**, then start coding.
|
||||
|
||||
Reference in New Issue
Block a user