Files
api-company/STATUS.md
2026-06-03 05:05:13 +00:00

20 KiB
Raw Permalink Blame History

Company Status

Last updated: 2026-06-03 (sprint planning cycle)

APIs

API Spec Code Deployed Listed on RapidAPI Paying Users MRR
ZIP Enrichment [~] [~] [ ] [ ] 0 $0
Holidays [~] [~] [ ] [ ] 0 $0
Air Quality [ ] [ ] [ ] [ ] 0 $0
VIN Decoder [x] [x] [ ] [ ] 0 $0

Legend: [x]=done, [~]=in-progress, [ ]=not started

Infrastructure

  • Cluster nodes: 3 control plane (10.0.1.3, .4, .5) + workers (testing1)
  • Flux wiring (api-company): Manifests staged at flux/api-company-source/ — PENDING Talos merge (issue #2)
  • Gitea Actions runner: Flux manifest committed at flux/gitea-runner/ — PENDING runner token secret + Talos wiring (issue #3)
  • Container registry: Gitea built-in registry selected; docs/registry.md committed — PENDING Gitea packages enabled (issue #4)
  • Prometheus + Grafana: Flux HelmRelease at flux/monitoring/ — PENDING Flux wiring + Grafana secret (issue #7)
  • Gatus status page: Flux HelmRelease at flux/monitoring/gatus-helmrelease.yaml — PENDING Flux wiring (issue #8)
  • API service manifests: flux/zip-enrichment/, flux/holidays/, flux/air-quality/ scaffolded (PR #48, closes #46)
  • 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-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-03)

In dependency order — operator tasks unless noted:

  1. P1 #47 — Create 0xWheatyz/api-company upstream repo (operator) — highest priority, unblocks everything
  2. P1 #76 — Create gitea-leeworks-agents-token secret in flux-system (operator)
  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 #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), #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 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 16). kustomize build flux/ = PASS.
  • PR #147 opened — docs: update ROADMAP.md and STATUS.md for VIN Decoder sprint wave (closes #145, #146).

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) — 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
  • #130 — VIN Decoder DNS vin.leeworks.devclosed
  • #131 — VIN Decoder RapidAPI listing — closed (tracker; operator action required)
  • #133 — VIN Decoder pricing page integration — closed
  • #134 — VIN Decoder Gatus health check — closed
  • #135 — VIN Decoder image automation — closed
  • #136 — VIN Decoder ExternalSecret manifest — closed
  • #138 — Extend publish-openapi pipeline to include VIN Decoder — closed (PR #142 merged)
  • #139 — Operator: add RAPIDAPI_VIN_API_ID + RAPIDAPI_VIN_VERSION_ID secrets — open (operator task, blocked on RapidAPI listing)
  • #140 — VIN Decoder Flux manifests — closed (PR #143 merged)
  • #141 — Pricing page updated for VIN Decoder — closed (PR #144 merged)

Critical Path (operator must complete in order)

See Current Blockers section above for the full ordered list as of 2026-06-01.

  1. Create 0xWheatyz/api-company repo (#47) — highest priority, unblocks everything
  2. Add api-company Flux source to Talos (#90) — needs Talos PR, reference manifests at flux/api-company-source/
  3. Create gitea-leeworks-agents-token secret in flux-system (#76)
  4. Create gitea-runner-token secret in gitea-runner (#77)
  5. Enable Gitea packages + DNS for registry.leeworks.dev (#4)
  6. All other secrets (#70, #73, #74, #79, #80, #81, #83) follow in order

Blockers — VIN Decoder critical path

  • 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
  • P2: #129 — VIN Decoder Prometheus metrics instrumentationclosed (PR merged)
  • 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 — 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
  • #129 — VIN Decoder Prometheus metrics — open, P2, depends on #121
  • #139 — Operator: RAPIDAPI_VIN_* secrets — open, P3, operator task
  • #145 — Update ROADMAP.md for VIN Decoder — DONE (this cycle)
  • #146 — Update STATUS.md for VIN Decoder sprint wave — DONE (this cycle)

Completed Previous Cycle (2026-05-30 — Sprint Cycle)

  • #108 — STATUS.md updated with 2026-05-30 sprint plan and critical path.
  • #107 — docs-site build verified: npm run build exits 0; all 9 required routes present in dist/.
  • PR #105 MERGEDscripts/publish-openapi.js + .gitea/workflows/publish-openapi.yaml (closes #100).
  • PR #103 MERGEDdocs-site/src/pages/pricing.astro + nav link (closes #101).
  • PR #104 MERGEDresearch/RESEARCH_LOG.md first session: VIN Decoder next candidate (closes #102).
  • New issues triaged — #100#108 (sprint planning cycle issues reviewed).
  • 0xWheatyz/api-company — still does not exist; fork sync skipped (blocker #47).
  • kustomize build flux/ = PASS — no regressions.

Completed Previous Cycle (2026-05-28 — Cycle-2 Triage)

  • #83 — Triaged: GITEA_TOKEN Actions secrets needed in zip-enrichment, holidays, air-quality repos. Manual operator task; reuse token from #74 if it has write:package scope. Step-by-step instructions posted.
  • No open PRs — queue empty.
  • kustomize build flux/ = PASS — no regressions.
  • Upstream 0xWheatyz/api-company — still does not exist; fork sync skipped (blocker #47).

Completed Previous Cycle (2026-05-28 — Late-Night Triage)

  • #79 — Triaged: gitea-registry imagePullSecret needed in 4 namespaces. Manual operator task; kubectl docker-registry secret instructions posted.
  • #80 — Triaged: gitea-image-automation-token secret needed in flux-system. Manual operator task; write-scoped PAT required, kubectl instructions posted.
  • #81 — Triaged: rapidapi-proxy-secret needed in zip-enrichment, holidays, air-quality. Manual operator task; placeholder + real-secret commands posted.
  • No open PRs — queue empty.
  • kustomize build flux/ = PASS — no regressions.

Completed Previous Cycle (2026-05-28 — Night Triage)

  • #76 — Triaged: gitea-leeworks-agents-token secret required in flux-system to unblock Flux GitRepository auth. Manual operator task; kubectl instructions + reconcile steps posted in issue comment.
  • #77 — Triaged: gitea-runner-token secret required in gitea-runner namespace to register Act Runner. Manual operator task; full step-by-step instructions posted in issue comment.
  • No open PRs — queue empty.
  • kustomize build flux/ = PASS — no regressions.

Completed Previous Cycle (2026-05-28 — Evening Triage)

  • #74 — Triaged: GITEA_TOKEN Actions secret required in leeworks-agents/api-company for docs-site CI. Manual operator task; instructions posted.
  • #73 — Triaged: gatus-slack-webhook secret required in monitoring namespace. Manual operator task; kubectl instructions posted.
  • #67 — Confirmed already resolved: docs/operator-runbook.md and docs/dns.md both list all 7 subdomains incl. grafana.leeworks.dev (PR #63). No code change needed.
  • No open PRs — queue empty.
  • kustomize build flux/ = PASS — no regressions.

Completed Previous Cycle (2026-05-28 — Morning Triage)

  • #69 → PR #71 MERGED — Added .gitea/workflows/validate-flux.yaml CI workflow: runs kustomize build flux/ on every PR and push to main. CI gate enforced once Act Runner (#3) is online.
  • #70 — Triaged: grafana-admin secret needed in monitoring namespace. Manual operator task; kubectl instructions posted in issue comment.
  • #67 — Confirmed docs/operator-runbook.md Phase 4 DNS table already lists all 7 subdomains including grafana.leeworks.dev. No code change needed.
  • #66 — Blocked on Phase 0 operator actions (#47, #2, #3, #4). Status comment posted.
  • #47, #2, #3, #4, #7, #8, #16, #17, #18, #19, #27, #30, #33, #44 — Status comments posted confirming blocked/awaiting-operator state.
  • No open PRs to review — queue empty after PR #71 merged.
  • kustomize build flux/ = PASS — no regressions.

Completed Previous Cycle (2026-05-27 — Evening Triage)

  • Triage pass — all 15 open agent-ready issues reviewed; status comments posted on each.
  • No open PRs — nothing to merge or review.
  • No new feature work — all issues remain blocked on operator actions or cross-repo prerequisites.
  • kustomize build flux/ = PASS — no regressions.

Completed Previous Cycle (2026-05-27 — Ship/Afternoon)

  • PRs reviewed — 0 open PRs on fork; nothing to merge.
  • Upstream sync0xWheatyz/api-company does not yet exist (blocker #41/#47); git fetch upstream failed as expected. Fork origin/main is current (SHA 9a1639f).
  • kustomize build flux/ = PASS — all sub-trees validate cleanly; no regressions.
  • Deployment PR — skipped; upstream repo must be created by operator first (#41, #47).
  • No new feature work — all 15 open agent-ready issues remain blocked on operator actions.

Completed Previous Cycle (2026-05-27 — Morning)

  • Triage pass — all 15 open agent-ready issues reviewed; status comments posted/confirmed on each.
  • #19 — First triage comment posted: RapidAPI/PayPal operator task fully documented; all agent-side prerequisites (OpenAPI specs, listing copy, proxy-secret placeholders) confirmed ready.
  • No PRs to review — fork had no open PRs.
  • No new feature work — all open issues blocked on operator actions.

Completed Previous Cycle (2026-05-26 Evening)

  • #50docs/operator-runbook.md added: ordered phase-by-phase manual for operator. PR #52 merged.
  • #51 — Flux image automation: ImageRepository + ImagePolicy + ImageUpdateAutomation for all three API services; setter markers added to HelmReleases. PR #52 merged. kustomize build flux/ = PASS.

Completed Previous Cycle (2026-05-26 PM)

  • #46 — Scaffolded Flux deployment manifests for all three API services (zip-enrichment, holidays, air-quality). PR #48 merged.

Completed Previous Cycle (2026-05-26 AM)

  • #43 — secrets-checklist.md added (closed, PR #45)
  • #36 — Cluster audit committed to docs/cluster-audit.md (closed)
  • #40 — Legal docs (ToS, Privacy Policy, AUP) under docs/legal/ (closed)
  • #37 — docs-site Astro skeleton with Redoc pages; npm run build passes (closed)
  • #39 — SEO blog posts (ZIP, Holidays, Air Quality) in docs-site/src/pages/blog/ (closed)
  • #38 — Gitea Actions CI workflow (.gitea/workflows/build-docs.yaml) + Dockerfile (closed)
  • #34 — Cluster audit PR merged

Flux Manifests (kustomize build flux/ = PASS)

All flux manifests validate successfully. Committed components pending Flux activation:

  • gitea-runner namespace + HelmRelease (gitea-act-runner chart)
  • monitoring namespace + kube-prometheus-stack HelmRelease
  • monitoring Gatus HelmRelease (status.leeworks.dev, 90-day retention)
  • docs-site HelmRelease (docs.leeworks.dev)
  • zip-enrichment namespace + HelmRelease (zip.leeworks.dev) + rapidapi-proxy-secret placeholder
  • holidays namespace + HelmRelease (holidays.leeworks.dev) + rapidapi-proxy-secret placeholder
  • air-quality namespace + HelmRelease (aqi.leeworks.dev) + rapidapi-proxy-secret placeholder
  • vin-decoder namespace + HelmRelease (vin.leeworks.dev) + Flux manifests
  • image-automation ImageRepository + ImagePolicy + ImageUpdateAutomation for all three APIs

Blockers (human operator action required)

  1. Create 0xWheatyz/api-company repo on Gitea — every ship cycle fails until this exists (#41, #47) <-- DO THIS FIRST
  2. Add api-company GitRepository+Kustomization to 0xWheatyz/Talos at testing1/first-cluster/cluster/flux/ — reference manifests ready in flux/api-company-source/ (#2)
  3. Create gitea-leeworks-agents-token secret in flux-system namespace (HTTPS token for Gitea)
  4. Create gitea-runner-token secret in gitea-runner namespace (Gitea Admin -> Actions -> Runners -> New Runner) (#3)
  5. Enable Gitea packages (for container registry at registry.leeworks.dev) (#4)
  6. Create gitea-registry imagePullSecret in vin-decoder namespace (#127) — VIN Decoder P1
  7. RapidAPI + PayPal setup — manual, gated on operator turning 18 (#19, #44)

Full ordered runbook with copy-paste commands: docs/operator-runbook.md