Commit Graph

19 Commits

Author SHA1 Message Date
0xWheatyz 1949873757 docs(deploy): add Flux/Talos deploy guide + sibling-repos PAT helper script
Validate Flux manifests / kustomize-build (pull_request) Failing after 26s
2026-06-20 17:25:38 -04:00
AI-Agent 2c4fc14278 docs: fix stale TBD Grafana dashboard reference in metrics-standard.md
Validate Flux manifests / kustomize-build (pull_request) Failing after 26s
Replace the non-existent docs/grafana-api-dashboard.json reference with
pointers to the actual Flux ConfigMap dashboard locations:
- flux/monitoring/grafana-dashboard-apis.yaml (consolidated 4-API dashboard)
- flux/monitoring/vin-decoder-dashboard.yaml (VIN Decoder-specific dashboard)

Note that dashboards are auto-loaded via grafana_dashboard: "1" label.
Remove the (TBD) annotation — dashboards are already committed.

Closes leeworks-agents/api-company#238
2026-06-08 10:01:33 +00:00
AI-Agent c7b44b9da6 docs: update secrets-checklist.md item #4 for Alertmanager dual consumer
Validate Flux manifests / kustomize-build (pull_request) Failing after 33s
gatus-slack-webhook (monitoring) is now consumed by two components:
1. Gatus (flux/monitoring/gatus-helmrelease.yaml) - public status-page alerts
2. Alertmanager (flux/monitoring/helmrelease.yaml via alertmanagerSpec.secrets)
   - SLO / firing-alert Slack notifications (enabled by PR #212 / issue #210)

Updates:
- Checklist item #4: mention both Gatus AND Alertmanager Slack SLO alerts
- Secret Details §4: add Consumers row + dual-consumer note explaining
  alertmanagerSpec.secrets mounts this secret and the slack_api_url_file path
- Dependency order: note Alertmanager is also unblocked by item #4

Closes leeworks-agents/api-company#224
2026-06-06 10:02:04 +00:00
AI-Agent e3247de665 docs: add vin-decoder to pre-launch checklist quick-command snippets
Validate Flux manifests / kustomize-build (pull_request) Failing after 24s
Fix three omissions in the Quick Commands Reference section:
1. Pod-health loop: add vin-decoder to namespace list
2. DNS check loop: add vin subdomain (8th subdomain, not 7)
3. Health smoke-test loop: add vin.leeworks.dev/v1/health

Closes leeworks-agents/api-company#208
2026-06-05 05:02:07 +00:00
AI-Agent edcef75418 docs: add VIN Decoder namespace steps to operator runbook
Validate Flux manifests / kustomize-build (pull_request) Failing after 25s
Adds a dedicated Phase 4-A section to docs/operator-runbook.md covering
all four operator manual tasks needed to bring up the VIN Decoder namespace:

- Step 4A-1: Create vin-decoder namespace
- Step 4A-2: gitea-registry imagePullSecret in vin-decoder (issue #127)
- Step 4A-3: rapidapi-proxy-secret placeholder in vin-decoder (issue #128)
- Step 4A-4: GITEA_TOKEN Actions secret in vin-decoder repo (issue #126)
- Step 4A-5: RAPIDAPI_VIN_API_ID + RAPIDAPI_VIN_VERSION_ID Actions secrets (issue #139)

Also updates:
- Phase 3 Step 3-A: adds leeworks-agents/vin-decoder to the GITEA_TOKEN repo list
- Phase 4 DNS table: adds vin.leeworks.dev as the 8th subdomain (issue #150)
- Phase 5 rapidapi-proxy-secret block: adds vin-decoder command
- Phase 5: adds VIN Decoder pricing tier table (issue #151)
- Dependency Summary: reflects VIN Decoder additions throughout

Commands are consistent with docs/secrets-checklist.md items #11-#13.
kustomize build flux/ still passes.

Closes leeworks-agents/api-company#154
2026-06-01 00:05:01 +00:00
agent-company b8ba748db7 feat: extend Flux image automation, Gatus, and docs for VIN Decoder
Validate Flux manifests / kustomize-build (pull_request) Failing after 16s
Closes leeworks-agents/api-company#133
Closes leeworks-agents/api-company#134
Closes leeworks-agents/api-company#135
Closes leeworks-agents/api-company#136

- flux/image-automation/imagerepositories.yaml: add vin-decoder ImageRepository
  pointing at registry.leeworks.dev/vin-decoder/api (#133)
- flux/image-automation/imagepolicies.yaml: add vin-decoder ImagePolicy
  with semver range >=0.1.0 (#133)
- flux/monitoring/gatus-helmrelease.yaml: add VIN Decoder API endpoint check
  targeting https://vin.leeworks.dev/v1/health with Slack alert (#134)
- docs/pre-launch-checklist.md: add vin-decoder to Infrastructure, DNS & TLS,
  Functional Verification, and Legal sections; update status page line to
  reference all four APIs (#135)
- docs/secrets-checklist.md: add items #11-13 for vin-decoder GITEA_TOKEN,
  gitea-registry, and rapidapi-proxy-secret; add detail sections for each (#136)

kustomize build flux/ passes with zero errors.
2026-05-31 00:04:20 +00:00
agent-company fc079d67c9 docs: add VIN Decoder listing copy and dns.md entry
Validate Flux manifests / kustomize-build (pull_request) Failing after 24s
Closes leeworks-agents/api-company#131
Closes leeworks-agents/api-company#130

- docs/rapidapi-listings.md: add Section 4 — VIN Decoder API with
  title, tagline, short/long description, tier table (Free/Basic/Pro/Ultra),
  endpoint descriptions, and keywords. Mirrors style of existing three
  API sections. Tiers match the spec from issue #131.
- docs/dns.md: add vin.leeworks.dev as 8th subdomain in records table,
  verification dig command, action-required count (7→8), and status
  checklist entry. Updated last-updated date to 2026-05-30.
2026-05-30 20:03:48 +00:00
agent-company 76abe394a1 [Phase 7] docs: add launch-announcement.md with copy for all 5 marketing channels
Validate Flux manifests / kustomize-build (pull_request) Failing after 25s
All 5 sections written and copy-paste ready (pending RapidAPI URLs from #44):

1. Hacker News Show HN post (150-300 word body)
2. Reddit posts for r/webdev, r/SideProject, r/learnprogramming (with code examples)
3. Indie Hackers milestone post (MRR /bin/bash, stack, lessons learned)
4. Product Hunt listing: tagline (58 chars), description (211 chars), maker note, gallery placeholders
5. Email waitlist message: subject + 3-4 paragraph body with quick-start curl example

All sections marked DRAFT until issue #44 RapidAPI URLs are available.
Pre-publish checklist included at bottom of document.

Closes leeworks-agents/api-company#115
2026-05-30 10:09:40 +00:00
agent-company 74ddce364f [Phase 6] docs: add docs/pre-launch-checklist.md go-live verification checklist
Validate Flux manifests / kustomize-build (pull_request) Failing after 25s
Create docs/pre-launch-checklist.md with all sections required before
public launch: Infrastructure, DNS & TLS (all 7 subdomains including
grafana.leeworks.dev), Functional Verification, Legal & Monetisation,
and Post-Launch steps.

Also link the checklist from README.md.

Closes leeworks-agents/api-company#112
2026-05-30 05:04:53 +00:00
agent-company 348baf96bb docs: add docs/tooling.md with Phase 0 tooling versions and git remote config
Validate Flux manifests / kustomize-build (pull_request) Failing after 22s
Documents Node.js v22.22.2, Python 3.11.2, Helm v3.21.0, Flux CLI v2.4.0,
kustomize v5.6.0 as available in the agent container. Confirms git remote
points to gitea.leeworks.dev/leeworks-agents/api-company. Includes stack
summary (runtime choices, Helm registry, Flux bootstrap reference) and
a live-verification block for operator use.

Closes leeworks-agents/api-company#94
2026-05-29 10:02:06 +00:00
AI-Manager c394c0c563 Merge pull request 'docs: add rapidapi-proxy-secret Step 10 to secrets-checklist (issue #60)' (#64) from feature/issue-60-rapidapi-proxy-secret-checklist into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 44s
Merge PR #64
2026-05-27 15:07:06 +00:00
agent-company a0620ea391 docs: add Step 10 rapidapi-proxy-secret to secrets-checklist.md
Add checklist item 10 and full detail section for the rapidapi-proxy-secret
Kubernetes secret that must be created in each API namespace (zip-enrichment,
holidays, air-quality) before the Phase 3 server middleware can validate
incoming RapidAPI requests.

Includes:
- Checklist item 10 in the summary list
- Full detail section with kubectl commands for all 3 namespaces
- Note about placeholder ExternalSecret manifests and ESO (issue #61)
- Updated dependency-order diagram

Closes leeworks-agents/api-company#60
2026-05-27 15:04:45 +00:00
agent-company 8902feada7 docs: add grafana.leeworks.dev as 7th DNS record in dns.md and operator-runbook
- dns.md: fix '6 A records' wording to '7 A records'
- dns.md: add grafana.leeworks.dev to status checklist and dig verification block
- operator-runbook.md: fix 'all six' to 'all seven', add registry.leeworks.dev
  row to Phase 4 DNS table, add dig verification loop

Closes leeworks-agents/api-company#62
2026-05-27 15:04:13 +00:00
agent-company fe9d867a87 docs: add secrets checklist items 8 and 9 for gitea-registry and gitea-image-automation-token
- Item 8: gitea-registry imagePullSecret in zip-enrichment, holidays,
  air-quality, docs-site namespaces (closes leeworks-agents/api-company#58)
- Item 9: gitea-image-automation-token in flux-system with write:repository
  scope for Flux ImageUpdateAutomation (closes leeworks-agents/api-company#57)
- Wire gitea-image-automation-token as push.secretRef in imageupdateautomation.yaml
- Update dependency order and item count from seven to nine
2026-05-27 10:02:42 +00:00
agent-company 68a1524dca docs: add operator-runbook.md — ordered manual-action guide for operator (closes leeworks-agents/api-company#50) 2026-05-26 20:45:33 +00:00
agent-company 091c5cd089 docs: add secrets-checklist.md with kubectl commands for all required secrets
Closes leeworks-agents/api-company#43

Creates docs/secrets-checklist.md containing:
- Human operator checklist (7 checkboxes)
- Exact kubectl create secret commands for all required secrets
- Source of each secret value (Gitea admin UI, Slack, etc.)
- Which issues are unblocked by each secret
- Dependency order diagram

Secrets covered:
1. gitea-leeworks-agents-token (flux-system) → unblocks Flux GitRepo auth (#2)
2. gitea-runner-token (gitea-runner) → unblocks act-runner (#3)
3. grafana-admin (monitoring) → unblocks Grafana (#7)
4. gatus-slack-webhook (monitoring) → unblocks Gatus alerts (#8)
5. GITEA_TOKEN Actions secret (per repo) → unblocks CI image push
6. Gitea packages enable + DNS → unblocks registry (#4)
7. Flux source in Talos repo → unblocks GitOps (#2)
2026-05-26 15:03:05 +00:00
agent-company 5e7fbc5bfd docs: add cluster-audit.md with nodes/namespaces/ingress/Flux state
Covers all required sections per issue acceptance criteria:
- Nodes (3x Talos control plane, 10.0.1.3/4/5)
- Namespaces (active + staged + future)
- Ingress rules (all 8 leeworks.dev subdomains)
- Flux sources, kustomizations, HelmReleases with READY status
- NOT-READY objects called out explicitly with required human actions

Note: kubectl unavailable from agent container; data sourced from
STATUS.md, flux/ manifests, and prior session logs. Human operator
should verify live state.

Closes leeworks-agents/api-company#26
2026-05-25 10:03:55 +00:00
agent-company c748e8d074 feat: Grafana dashboard ConfigMap, PrometheusRule SLO alerts, RapidAPI listing copy
- flux/monitoring/grafana-dashboard-apis.yaml: Grafana dashboard ConfigMap
  labelled grafana_dashboard=1, covering request rate, P50/P95/P99 latency,
  5xx error rate, and data freshness for all three APIs.
  Closes leeworks-agents/api-company#22

- flux/monitoring/prometheusrule-apis.yaml: PrometheusRule with four alert rules:
  APIHighErrorRate (warning >5%, critical >20%), APIHighLatency (P95 >2s),
  APIDataStale (>30 days), APIDown (up==0 for 2 min). All labelled
  severity + team: api-company.
  Closes leeworks-agents/api-company#23

- docs/rapidapi-listings.md: Full RapidAPI listing copy for zip-enrichment,
  holidays, and air-quality — API name, tagline (<=120 chars), short description
  (<=300 chars), long description, category, plan table (Basic $9/Pro $19/
  Ultra $49), endpoint descriptions, and keywords.
  Closes leeworks-agents/api-company#24

- flux/monitoring/kustomization.yaml: added grafana-dashboard-apis.yaml
  and prometheusrule-apis.yaml to resources list.
2026-05-25 05:04:28 +00:00
agent-company a615b7ebfd feat: implement docs-site, legal docs, metrics standard, flux manifests
Closes leeworks-agents/api-company#5  (docs-site Astro scaffold)
Closes leeworks-agents/api-company#9  (metrics instrumentation standard)
Closes leeworks-agents/api-company#10 (Gitea Actions openapi aggregation pipeline)
Closes leeworks-agents/api-company#11 (docs-site Flux HelmRelease)
Closes leeworks-agents/api-company#12 (SEO blog posts x3)
Closes leeworks-agents/api-company#13 (legal docs ToS/Privacy/AUP)
Closes leeworks-agents/api-company#14 (DNS documentation)

## Changes

### docs/legal/
- terms-of-service.md — API usage, liability, account termination, governing law
- privacy-policy.md — request log retention (90d), no PII sold, data sharing
- acceptable-use-policy.md — rate limit abuse, scraping prohibition, resale ban

### docs/metrics-standard.md
- Defines api_requests_total, api_response_duration_seconds, api_data_freshness_seconds
- Fastify (TypeScript) and FastAPI (Python) reference middleware implementations
- Prometheus scrape config and Grafana dashboard guidance

### docs/registry.md
- Decision: use Gitea built-in container registry (no new infra)
- Image naming convention, auth, Kubernetes imagePullSecrets, ingress config

### docs/dns.md
- Required A records for all 6 subdomains
- cert-manager ClusterIssuer and Ingress TLS examples
- Verification commands and human-operator action items

### docs-site/
- Astro 4 + MDX + sitemap scaffold
- Base layout with nav linking all APIs, blog, RapidAPI, status
- Landing page with API cards
- Per-API Redoc viewer pages (zip-enrichment, holidays, air-quality)
- Blog index + 3 SEO blog posts (~1000 words each with JSON-LD)
- Dockerfile (multi-stage: node build + nginx serve)
- nginx.conf with gzip, caching, health endpoint

### flux/
- gitea-runner/: gitea-act-runner HelmRelease (org-scope, dind)
- monitoring/: kube-prometheus-stack + Gatus HelmReleases
  - Prometheus with pod annotation scraping
  - Grafana at grafana.leeworks.dev with persistence
  - Gatus status page at status.leeworks.dev, 90-day retention
- docs-site/: Deployment + Service + Ingress via raw chart
- api-company-source/: GitRepository + Kustomization reference manifests
- kustomization.yaml: root kustomize entry point (build validated)

### .gitea/workflows/build-docs.yaml
- Aggregates openapi.yaml from zip-enrichment, holidays, air-quality repos
- Builds Astro docs-site
- Pushes image to registry.leeworks.dev/leeworks-agents/docs-site
- Triggered on push to main, schedule daily 02:00 UTC, workflow_dispatch
2026-05-24 23:20:33 +00:00