Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 64f1d1bd12 | |||
| daa3866926 | |||
| 2208c61ff1 | |||
| 99ffdf48c4 | |||
| 2eadeeb4ee | |||
| a30834db51 | |||
| b4460ad818 | |||
| e228f61c21 | |||
| 80f4d5be22 | |||
| ee224fba3d | |||
| 8f26dff2f6 | |||
| a2f45be7f1 |
+16
-12
@@ -6,9 +6,11 @@ Cross-repo milestones. Per-API phases live in each API repo's ROADMAP.md.
|
||||
|
||||
## Phase 0 — Orientation (one-time)
|
||||
- [x] Audit cluster: nodes, namespaces, ingress, Flux state → `docs/cluster-audit.md` (issue #36 — closed ✅)
|
||||
- [ ] Add Flux GitRepository + Kustomization watching `leeworks-agents/api-company`
|
||||
- [ ] Deploy `gitea-act-runner` in cluster via Flux HelmRelease (`flux/gitea-runner/`)
|
||||
- [ ] Stand up `registry.leeworks.dev` (container registry) — required before any API CI works
|
||||
- [ ] Add Flux GitRepository + Kustomization watching `leeworks-agents/api-company` — issue #2
|
||||
- [ ] Deploy `gitea-act-runner` in cluster via Flux HelmRelease (`flux/gitea-runner/`) — issue #3
|
||||
- [ ] Stand up `registry.leeworks.dev` (container registry) — required before any API CI works — issue #4
|
||||
- [ ] Validate ESO HelmRelease deployment and ExternalSecret sync for all 4 API namespaces — issue #178
|
||||
- [ ] Extend full-stack Flux validation checklist to cover VIN Decoder — issue #179 (extends #66)
|
||||
|
||||
## Phase 1 — API Contracts
|
||||
Each API repo writes its `openapi.yaml` first and lints it. Spec is the source of truth.
|
||||
@@ -16,23 +18,25 @@ Each API repo writes its `openapi.yaml` first and lints it. Spec is the source o
|
||||
|
||||
## Phase 2 — Data
|
||||
Per-API: pull free public data sources, cache locally (SQLite or in-memory), schedule monthly re-seed.
|
||||
- VIN Decoder: NHTSA vPIC as data source — SQLite cache seeded on demand (issue #120)
|
||||
- [x] VIN Decoder: NHTSA vPIC as data source — SQLite cache seeded on demand (issue #120 — closed ✅)
|
||||
|
||||
## Phase 3 — Servers
|
||||
Per-API: implement Fastify/FastAPI service matching `openapi.yaml` exactly. RapidAPI proxy-secret middleware on every route.
|
||||
- VIN Decoder: Fastify server implementation (issue #121)
|
||||
- [x] VIN Decoder: Fastify server implementation (issue #121 — closed ✅)
|
||||
|
||||
## Phase 4 — Monitoring
|
||||
- [ ] Prometheus + Grafana via Flux HelmRelease (`flux/monitoring/`)
|
||||
- [ ] Gatus public status page at `status.leeworks.dev`
|
||||
- [ ] Instrument every API with `api_requests_total`, `api_response_duration_seconds`, `api_data_freshness_seconds`
|
||||
- [ ] Prometheus + Grafana via Flux HelmRelease (`flux/monitoring/`) — issue #7
|
||||
- [ ] Gatus public status page at `status.leeworks.dev` — issue #8
|
||||
- [x] Instrument every API with `api_requests_total`, `api_response_duration_seconds`, `api_data_freshness_seconds` (issue #27 — closed ✅)
|
||||
- [x] Add Prometheus metrics endpoint to holidays service (issue #180 — closed ✅)
|
||||
- [ ] Verify VIN Decoder metrics endpoint and ServiceMonitor scrape config — issue #174
|
||||
- [x] VIN Decoder metrics instrumentation + Grafana dashboard (issue #129 — closed ✅)
|
||||
- [x] VIN Decoder Gatus health check (issue #134 — closed ✅)
|
||||
|
||||
## Phase 5 — Documentation site
|
||||
- [x] `docs-site/` Astro + Redoc skeleton (issue #28 — closed ✅)
|
||||
- [x] Gitea Actions pipeline that copies per-API `openapi.yaml` files at build time (issues #29 ✅, #38 ✅, #85 ✅)
|
||||
- [ ] Deploy to `docs.leeworks.dev` via Flux
|
||||
- [ ] Deploy to `docs.leeworks.dev` via Flux — issue #30
|
||||
- [x] One SEO blog post per API minimum (issues #39 ✅ — ZIP/Holidays/AirQuality, #124 ✅ — VIN Decoder)
|
||||
- [x] VIN Decoder docs page (issue #123 — closed ✅)
|
||||
- [x] VIN Decoder SEO blog post (issue #124 — closed ✅)
|
||||
@@ -41,11 +45,11 @@ Per-API: implement Fastify/FastAPI service matching `openapi.yaml` exactly. Rapi
|
||||
- [x] `docs/legal/terms-of-service.md` (issue #40 — closed ✅)
|
||||
- [x] `docs/legal/privacy-policy.md` (issue #40 — closed ✅)
|
||||
- [x] `docs/legal/acceptable-use-policy.md` (issues #40 ✅, #89 ✅)
|
||||
- [ ] DNS: `zip.leeworks.dev`, `holidays.leeworks.dev`, `aqi.leeworks.dev`, `docs.`, `status.`, `registry.`
|
||||
- [ ] DNS: `zip.leeworks.dev`, `holidays.leeworks.dev`, `aqi.leeworks.dev`, `docs.`, `status.`, `registry.` — issues #33, #106, #150
|
||||
- [x] VIN Decoder DNS `vin.leeworks.dev` (issue #130 — closed ✅)
|
||||
- [x] VIN Decoder RapidAPI listing (issue #131 — closed ✅ as tracker; operator action required)
|
||||
- [ ] PayPal linked to RapidAPI (manual, on 18th birthday)
|
||||
- [ ] Paid tiers enabled on RapidAPI listings (manual)
|
||||
- [ ] PayPal linked to RapidAPI (manual, on 18th birthday) — issue #19
|
||||
- [ ] Paid tiers enabled on RapidAPI listings (manual) — issues #44 (original 3), #151 (VIN Decoder)
|
||||
|
||||
## Revenue target
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Company Status
|
||||
|
||||
_Last updated: 2026-06-01 (triage cycle — second pass)_
|
||||
_Last updated: 2026-06-03 (sprint planning cycle)_
|
||||
|
||||
## APIs
|
||||
| API | Spec | Code | Deployed | Listed on RapidAPI | Paying Users | MRR |
|
||||
@@ -23,14 +23,46 @@ Legend: [x]=done, [~]=in-progress, [ ]=not started
|
||||
- **Image automation:** `flux/image-automation/` — ImageRepository + ImagePolicy + ImageUpdateAutomation for all three APIs
|
||||
- **VIN Decoder manifests:** `flux/vin-decoder/` — Flux HelmRelease + Kustomization committed (issue #140)
|
||||
|
||||
## Completed This Cycle (2026-06-01 — Triage Cycle)
|
||||
## Completed This Cycle (2026-06-03 — Sprint Planning Cycle)
|
||||
|
||||
- **#182** — ROADMAP.md Phase 0 annotated with issues #178 (ESO ExternalSecret validation) and #179 (VIN Decoder Flux validation extension); Phase 4 annotated with issues #180 (holidays metrics endpoint) and #174 (VIN Decoder metrics verification).
|
||||
- **#181** — STATUS.md updated with 2026-06-03 sprint planning cycle results (this entry). Last updated date set to 2026-06-03.
|
||||
- **Sprint Summary:** 6 new issues created this cycle (#173, #174, #178, #179, #180, plus #181/#182 docs). 0 issues closed. 0 stale found.
|
||||
- **Current Blockers updated:** #178 (ESO ExternalSecret sync validation) and #179 (VIN Decoder Flux validation extension) added.
|
||||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||||
|
||||
## Completed Previous Cycle (2026-06-02 — Sprint Planning Cycle #175/#176)
|
||||
|
||||
- **#176** — ROADMAP.md Phase 6 unchecked items annotated with issue cross-references: DNS — issues #33, #106, #150; PayPal — issue #19; Paid tiers — issues #44 (original 3), #151 (VIN Decoder). No checked items changed.
|
||||
- **#175** — STATUS.md updated with 2026-06-02 sprint planning cycle results (this entry). Last updated date set to 2026-06-02.
|
||||
- **Sprint Summary:** 2 new documentation issues created (#175 STATUS.md update, #176 ROADMAP Phase 5/6 annotation). 0 code issues created (all ROADMAP items already covered by existing issues). 0 issues closed (none stale). 0 reprioritizations.
|
||||
- **Current Blockers updated:** #173 (ESO source secrets in `external-secrets` ns) and #174 (VIN Decoder metrics instrumentation) added.
|
||||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||||
|
||||
## Completed Previous Cycle (2026-06-02 — Sprint Planning Cycle)
|
||||
|
||||
- **#171** — ROADMAP.md Phase 0 unchecked items annotated with issue #2, #3, #4; Phase 4 unchecked items annotated with issue #7, #8, #27; Phase 5 unchecked item annotated with issue #30. No checked-off items changed.
|
||||
- **#170** — STATUS.md updated with 2026-06-02 sprint planning cycle results (this entry). Last updated date set to 2026-06-02.
|
||||
- **Sprint Summary:** 2 new issues created (#171, #170), 0 issues closed this cycle, 0 stale found.
|
||||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||||
|
||||
## Completed Previous Cycle (2026-06-02 — Triage Cycle #168)
|
||||
- **#168** — STATUS.md cleanup: removed all stale “open, in progress” references to #120 and #121 (both confirmed closed ✅ in leeworks-agents/vin-decoder). Historical sections corrected. VIN Decoder Code column confirmed `[x]`.
|
||||
- **`kustomize build flux/` = PASS** — no regressions.
|
||||
|
||||
## Completed Previous Cycle (2026-06-01 — Sprint Planning Cycle)
|
||||
- **#163** — ROADMAP.md Phase 2 and Phase 3 VIN Decoder bullets marked `[x]` with closed ✅ references for issues #120 and #121.
|
||||
- **#164** — STATUS.md Current Blockers updated: removed #120 and #121 (both confirmed closed ✅). Top actionable agent task updated to #163.
|
||||
- **`kustomize build flux/` = PASS** — no regressions.
|
||||
|
||||
## Completed Previous Cycle (2026-06-01 — Triage Cycle)
|
||||
- **#158** — STATUS.md updated with 2026-06-01 current blockers and sprint summary.
|
||||
- **#156** — ROADMAP.md checkboxes updated: Phase 4 VIN Decoder metrics, Phase 5 docs-site/pipeline/blog, Phase 6 legal docs all checked off.
|
||||
- **VIN Decoder Code `[x]`** — leeworks-agents/vin-decoder data layer (#120) and Fastify server (#121) confirmed merged; STATUS.md Code column updated.
|
||||
- **PR #160 closed** — had merge conflicts and ROADMAP.md regressions (unchecked completed items). Clean fix applied here.
|
||||
- **`kustomize build flux/` = PASS** — no regressions.
|
||||
|
||||
## Current Blockers (as of 2026-06-01)
|
||||
## Current Blockers (as of 2026-06-03)
|
||||
|
||||
In dependency order — operator tasks unless noted:
|
||||
|
||||
@@ -39,17 +71,26 @@ In dependency order — operator tasks unless noted:
|
||||
3. **P1 #77** — Create `gitea-runner-token` secret in `gitea-runner` namespace (operator)
|
||||
4. **P1 #79** — Create `gitea-registry` imagePullSecrets in all API namespaces (operator)
|
||||
5. **P1 #83** — Configure `GITEA_TOKEN` Actions secret in zip-enrichment, holidays, air-quality repos (operator)
|
||||
6. **P1 #120** — VIN Decoder data layer — SQLite cache seeded from NHTSA vPIC (**agent — actionable now, not blocked**)
|
||||
7. **P1 #121** — VIN Decoder Fastify server implementation (agent — depends on #120)
|
||||
8. **P1 #126** — Configure `GITEA_TOKEN` Actions secret in vin-decoder repo (operator — depends on #122 ✅)
|
||||
9. **P1 #127** — Create `gitea-registry` imagePullSecret in `vin-decoder` namespace (operator)
|
||||
6. **P1 #126** — Configure `GITEA_TOKEN` Actions secret in vin-decoder repo (operator — depends on #122 ✅)
|
||||
7. **P1 #127** — Create `gitea-registry` imagePullSecret in `vin-decoder` namespace (operator)
|
||||
8. **P2 #173** — Create ESO source secrets in `external-secrets` namespace for RapidAPI proxy-secret syncing (operator) — blocks ESO sync
|
||||
9. **P2 #174** — VIN Decoder metrics instrumentation in `leeworks-agents/vin-decoder` repo (agent task, depends on #18 deploy)
|
||||
10. **P2 #178** — Validate ESO HelmRelease deployment and ExternalSecret sync for all 4 API namespaces (depends on #173 + Flux active)
|
||||
11. **P2 #179** — Execute extended full-stack Flux validation checklist including VIN Decoder (depends on #126, #127, #128)
|
||||
|
||||
## Sprint Summary (2026-06-01 — Sprint Planning Cycle)
|
||||
- **Issues closed this cycle:** 0
|
||||
- **New issues created this cycle:** 1 (#163 — ROADMAP/STATUS cleanup after #120/#121)
|
||||
- **Stale issues found:** 0
|
||||
- **Top actionable agent task:** #163 (pure doc update, immediately actionable)
|
||||
- **Critical path:** Entirely operator-gated after #163 is merged (see Current Blockers)
|
||||
|
||||
## Sprint Summary (2026-06-01)
|
||||
- **Issues closed since last STATUS update (#146):** #145–#154 — VIN Decoder sprint docs + infra (✅ all closed)
|
||||
- **Issues opened this sprint:** #150 (vin DNS reminder), #151 (VIN Decoder RapidAPI tiers), #155 (if applicable), #156 (ROADMAP.md update), #157 (full-stack validation), #158 (STATUS.md update)
|
||||
- **Top actionable agent task:** VIN Decoder code work — #120 (data layer) then #121 (Fastify server)
|
||||
- **Issues opened this sprint:** #150 (vin DNS reminder), #151 (VIN Decoder RapidAPI tiers), #155 (if applicable), #156 (ROADMAP.md update), #157 (full-stack validation), #158 (STATUS.md update), #163 (ROADMAP/STATUS cleanup post-#120/#121), #164 (STATUS.md sprint planning update)
|
||||
- **Top actionable agent task:** #163 (ROADMAP/STATUS doc cleanup for #120/#121 — pure doc update, immediately actionable)
|
||||
|
||||
## Completed This Cycle (2026-05-31 — Sprint Cycle)
|
||||
## Completed Previous Cycle (2026-05-31 — Sprint Cycle)
|
||||
- **#146** — STATUS.md updated to reflect VIN Decoder sprint wave (#117–#141): APIs table row added, completed wave documented, blockers updated.
|
||||
- **#145** — ROADMAP.md updated to reference VIN Decoder as 4th API across all phases (Phase 1–6). `kustomize build flux/` = PASS.
|
||||
- **PR #147 opened** — docs: update ROADMAP.md and STATUS.md for VIN Decoder sprint wave (closes #145, #146).
|
||||
@@ -57,8 +98,8 @@ In dependency order — operator tasks unless noted:
|
||||
## Completed Previous Cycle (2026-05-30 — VIN Decoder Sprint Wave)
|
||||
### VIN Decoder issues #117–#141 — status as of 2026-05-31:
|
||||
- **#117** — VIN Decoder spec + feasibility — **closed ✅** (`apis/vin-decoder/openapi.yaml` merged)
|
||||
- **#120** — VIN Decoder data layer (SQLite/NHTSA vPIC) — **open, in progress** (P1 blocker)
|
||||
- **#121** — VIN Decoder Fastify server — **open, in progress** (P1 blocker, depends on #120)
|
||||
- **#120** — VIN Decoder data layer (SQLite/NHTSA vPIC) — **closed ✅** (leeworks-agents/vin-decoder)
|
||||
- **#121** — VIN Decoder Fastify server — **closed ✅** (leeworks-agents/vin-decoder)
|
||||
- **#122** — Create `leeworks-agents/vin-decoder` repo — **closed ✅**
|
||||
- **#123** — VIN Decoder docs page — **closed ✅**
|
||||
- **#124** — VIN Decoder SEO blog post — **closed ✅**
|
||||
@@ -84,8 +125,6 @@ See **Current Blockers** section above for the full ordered list as of 2026-06-0
|
||||
6. **All other secrets** (#70, #73, #74, #79, #80, #81, #83) follow in order
|
||||
|
||||
## Blockers — VIN Decoder critical path
|
||||
- **P1: #120** — VIN Decoder data layer (NHTSA vPIC SQLite cache) — **agent work, actionable now**
|
||||
- **P1: #121** — VIN Decoder Fastify server — agent work pending, depends on #120
|
||||
- **P1: #127** — Create `gitea-registry` imagePullSecret in `vin-decoder` namespace — operator manual task
|
||||
- **P2: #126** — Configure `GITEA_TOKEN` secret in `vin-decoder` repo — operator manual task
|
||||
- **P2: #128** — Create `rapidapi-proxy-secret` in `vin-decoder` namespace — operator manual task
|
||||
@@ -93,8 +132,8 @@ See **Current Blockers** section above for the full ordered list as of 2026-06-0
|
||||
- **P3: #139** — Add RAPIDAPI_VIN_* Actions secrets — operator task, depends on RapidAPI listing (#131)
|
||||
|
||||
## New Issues This Sprint (2026-05-30, #120–#146)
|
||||
- **#120** — VIN Decoder data layer — **open, P1**
|
||||
- **#121** — VIN Decoder Fastify server — **open, P1**
|
||||
- **#120** — VIN Decoder data layer — **closed ✅** (leeworks-agents/vin-decoder)
|
||||
- **#121** — VIN Decoder Fastify server — **closed ✅** (leeworks-agents/vin-decoder)
|
||||
- **#126** — Operator: GITEA_TOKEN secret in vin-decoder repo — manual operator task
|
||||
- **#127** — Operator: gitea-registry imagePullSecret in vin-decoder namespace — manual operator task, P1 blocker
|
||||
- **#128** — Operator: rapidapi-proxy-secret in vin-decoder namespace — manual operator task
|
||||
|
||||
Reference in New Issue
Block a user