generated from coulomb/repo-seed
STATE-WP-0062 T5: docs, first-party↔repo test, mark workplan finished
- Add /docs/services reference (two-dimension model, persistence, API) and a pointer note from /docs/tpsc; add it to the Reference nav. - Add a test asserting first_party.repo_slug resolves to a managed_repos FK (8 services tests green). - Mark STATE-WP-0062 tasks done / status finished. Known classes seeded in the live catalog via the API (Gitea, Postgres as self-hosted/third-party; State Hub as self-hosted/first-party at Level 2). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -4,11 +4,12 @@ type: workplan
|
||||
title: "Two-dimension service catalog (hosting × development) + Services nav section"
|
||||
domain: custodian
|
||||
repo: state-hub
|
||||
status: proposed
|
||||
status: finished
|
||||
owner: codex
|
||||
topic_slug: custodian
|
||||
created: "2026-06-19"
|
||||
updated: "2026-06-19"
|
||||
state_hub_workstream_id: "b5c9d93f-9f5e-4d10-bb3b-90322c7419b7"
|
||||
---
|
||||
|
||||
# STATE-WP-0062 — Two-dimension service catalog + Services nav section
|
||||
@@ -92,55 +93,59 @@ tables (each 1:1, optional, keyed by `service_id`):
|
||||
|
||||
```task
|
||||
id: STATE-WP-0062-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "f74612f6-b442-4b5f-ac4d-7bc6d1d4883f"
|
||||
```
|
||||
|
||||
- [ ] `api/models/service_catalog.py`: `ServiceCatalog` core + `ServiceThirdParty`,
|
||||
- [x] `api/models/service_catalog.py`: `ServiceCatalog` core + `ServiceThirdParty`,
|
||||
`ServiceFirstParty`, `ServiceCloud`, `ServiceSelfHosted` extensions.
|
||||
- [ ] Alembic migration; register in `api/models/__init__.py`.
|
||||
- [ ] Data migration: copy `tpsc_catalog` → `service_catalog` + `service_cloud`
|
||||
- [x] Alembic migration; register in `api/models/__init__.py`.
|
||||
- [x] Data migration: copy `tpsc_catalog` → `service_catalog` + `service_cloud`
|
||||
with `(cloud_hosted, third_party)`; backfill `service_id` on TPSC entries.
|
||||
|
||||
### T2 — API + MCP
|
||||
|
||||
```task
|
||||
id: STATE-WP-0062-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "373cddfa-c85b-47a7-bb8e-c86e9341c237"
|
||||
```
|
||||
|
||||
- [ ] `GET /services/catalog` with `hosting_type` / `development_type` /
|
||||
- [x] `GET /services/catalog` with `hosting_type` / `development_type` /
|
||||
`maturity_level` filters; `GET /services/{slug}` returns core + applicable
|
||||
extensions.
|
||||
- [ ] Write path to register/update a service and its extensions (generalise
|
||||
- [x] Write path to register/update a service and its extensions (generalise
|
||||
`register_service`; keep a `third_party`-shaped compatibility wrapper).
|
||||
- [ ] Keep `/tpsc/*` working as a `development_type=third_party` view.
|
||||
- [x] Keep `/tpsc/*` working as a `development_type=third_party` view.
|
||||
|
||||
### T3 — Services nav section + four-quadrant pages
|
||||
|
||||
```task
|
||||
id: STATE-WP-0062-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "b14bbbdd-347e-4f62-9ac3-ad42360fa766"
|
||||
```
|
||||
|
||||
- [ ] Replace the top-level "Services (TPSC)" entry with a **Services** section.
|
||||
- [ ] Pages: **Third Party** (current TPSC view), **First Party** (with internal
|
||||
- [x] Replace the top-level "Services (TPSC)" entry with a **Services** section.
|
||||
- [x] Pages: **Third Party** (current TPSC view), **First Party** (with internal
|
||||
repo link + **Service Maturity Level** column), **Self Hosted** (three-helix
|
||||
infra view). Each is a filtered view over `service_catalog`.
|
||||
- [ ] Surface the two dimensions explicitly (e.g. a quadrant filter) so the four
|
||||
- [x] Surface the two dimensions explicitly (e.g. a quadrant filter) so the four
|
||||
classes are navigable.
|
||||
|
||||
### T4 — Terminology: Tier → Level (Service DoM only)
|
||||
|
||||
```task
|
||||
id: STATE-WP-0062-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "1c296d7a-c090-430f-8d0d-27b548d88d9e"
|
||||
```
|
||||
|
||||
- [ ] `policies/service-dom.md`: rename "Tier 1/2/3" → "Level 1/2/3"; column
|
||||
- [x] `policies/service-dom.md`: rename "Tier 1/2/3" → "Level 1/2/3"; column
|
||||
header "Service Maturity Level". **Do not** touch the DoI tier subsystem
|
||||
(`repos.md`, `check_doi.py`, `doi_cache` migration) — that is a separate,
|
||||
established concept.
|
||||
@@ -149,15 +154,16 @@ priority: medium
|
||||
|
||||
```task
|
||||
id: STATE-WP-0062-T05
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "2edd68ee-0d9a-431d-9891-73a0f6be6a41"
|
||||
```
|
||||
|
||||
- [ ] Tests: model + migration round-trip, dimension filters, TPSC back-compat
|
||||
- [x] Tests: model + migration round-trip, dimension filters, TPSC back-compat
|
||||
view, first-party↔repo link.
|
||||
- [ ] Docs: `/docs/services` reference; update `/docs/tpsc` to point at the
|
||||
- [x] Docs: `/docs/services` reference; update `/docs/tpsc` to point at the
|
||||
generalised model.
|
||||
- [ ] Seed the known classes: TPSC SaaS (cloud/third-party), self-hosted OSS from
|
||||
- [x] Seed the known classes: TPSC SaaS (cloud/third-party), self-hosted OSS from
|
||||
`tools.md` (Gitea, Postgres — self-hosted/third-party), and State Hub itself
|
||||
(self-hosted/first-party).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user