|
@@ -129,6 +129,26 @@ create/rotate.
|
|
|
- Quarantine badge: if `quarantine_until` is in the future, show
|
|
- Quarantine badge: if `quarantine_until` is in the future, show
|
|
|
a red badge with the remaining time.
|
|
a red badge with the remaining time.
|
|
|
- Filter by company (super), type, status.
|
|
- Filter by company (super), type, status.
|
|
|
|
|
+- **Cert lifecycle sub-feature (M14-ui, formerly M14 W4):**
|
|
|
|
|
+ - Tabs in Source detail: "Auth" (HMAC + API key) and "Cert"
|
|
|
|
|
+ (mTLS).
|
|
|
|
|
+ - `CertStatusBadge` — green/amber/red based on expiration.
|
|
|
|
|
+ - `CertUploadCSRDialog` — paste a CSR, get a signed cert back.
|
|
|
|
|
+ - `CertAutoGenerateDialog` — server generates key + CSR, signs
|
|
|
|
|
+ it, returns a downloadable `.zip` with cert + chain + key.
|
|
|
|
|
+ - `CertRevokeDialog` — typed confirmation.
|
|
|
|
|
+ - `CertExpirationBanner` — global banner in top bar when any
|
|
|
|
|
+ source cert is < 30 days from expiry.
|
|
|
|
|
+ - New endpoints (already in M14-backend):
|
|
|
|
|
+ - `POST /v1/sources/:id/cert/csr`
|
|
|
|
|
+ - `GET /v1/sources/:id/cert`
|
|
|
|
|
+ - `DELETE /v1/sources/:id/cert`
|
|
|
|
|
+ - `GET /v1/certs/expiring?days=30`
|
|
|
|
|
+ - Only renders if `source.mtls_required=true` OR the source
|
|
|
|
|
+ already has a cert. Else, the Cert tab shows "mTLS not
|
|
|
|
|
+ enabled for this source — enable in the Auth tab".
|
|
|
|
|
+ - Tenant-admin sees cert info for their sources (read-only,
|
|
|
|
|
+ no revoke).
|
|
|
|
|
|
|
|
**Exit criteria:**
|
|
**Exit criteria:**
|
|
|
- [ ] Create source: form validates, one-time secrets shown once
|
|
- [ ] Create source: form validates, one-time secrets shown once
|
|
@@ -141,9 +161,20 @@ create/rotate.
|
|
|
(verified by curl).
|
|
(verified by curl).
|
|
|
- [ ] Quarantine badge visible when `quarantine_until` is set.
|
|
- [ ] Quarantine badge visible when `quarantine_until` is set.
|
|
|
- [ ] Tenant-admin sees only their company's sources.
|
|
- [ ] Tenant-admin sees only their company's sources.
|
|
|
-- [ ] Bundle: sources feature code-split (< 40 KB gzipped).
|
|
|
|
|
-
|
|
|
|
|
-**Estimated:** 2-3 days.
|
|
|
|
|
|
|
+- [ ] Cert tab: super-admin can upload a CSR, get a signed cert.
|
|
|
|
|
+- [ ] Cert tab: "Auto-generate" returns a `.zip` with cert +
|
|
|
|
|
+ chain + private key (one-time download).
|
|
|
|
|
+- [ ] Cert tab: revoke removes the cert; subsequent requests with
|
|
|
|
|
+ that cert fail within 60s.
|
|
|
|
|
+- [ ] CertExpirationBanner appears 30 days before any cert expires.
|
|
|
|
|
+- [ ] Tenant-admin sees cert info for their sources (read-only,
|
|
|
|
|
+ no revoke).
|
|
|
|
|
+- [ ] M14-ui smoke: `make m13b-smoke` includes the cert path
|
|
|
|
|
+ (mTLS-required source + cert issued + revoke + 60s window).
|
|
|
|
|
+- [ ] Bundle: sources feature code-split (< 50 KB gzipped,
|
|
|
|
|
+ includes cert sub-feature).
|
|
|
|
|
+
|
|
|
|
|
+**Estimated:** 4-6 days (was 2-3 before M14-ui was added).
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|