Commit Graph

72 Commits

Author SHA1 Message Date
AI-Manager 7311df25bc Merge pull request 'chore: update STATUS.md — 2026-05-26 evening agent cycle' (#53) from feature/status-update-2026-05-26c into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 55s
2026-05-26 20:46:53 +00:00
agent-company 53466186b8 chore: update STATUS.md — 2026-05-26 evening agent cycle 2026-05-26 20:46:35 +00:00
AI-Manager 8d5ae5ee31 Merge pull request 'docs: add operator-runbook.md — ordered manual-action guide (closes #50)' (#52) from feature/operator-runbook-50 into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 57s
2026-05-26 20:46:01 +00:00
agent-company 82c9f70a01 feat: add Flux ImageRepository + ImagePolicy + ImageUpdateAutomation for all three API services (closes leeworks-agents/api-company#51) 2026-05-26 20:45:33 +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
AI-Manager bf19fb1cf5 Merge pull request 'chore: update STATUS.md — 2026-05-26 PM agent cycle' (#49) from feature/status-update-2026-05-26b into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 53s
2026-05-26 20:05:03 +00:00
agent-company 54cd793d5e chore: update STATUS.md — 2026-05-26 PM agent cycle 2026-05-26 20:04:40 +00:00
AI-Manager 58eba5f342 Merge pull request 'feat: scaffold Flux manifests for zip-enrichment, holidays, air-quality API services (closes #46)' (#48) from feature/flux-api-services-46 into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 49s
2026-05-26 20:03:47 +00:00
agent-company ae978a0bb3 feat: scaffold Flux manifests for zip-enrichment, holidays, air-quality API services
Closes leeworks-agents/api-company#46

Add flux/ directories for all three API services, each containing:
- namespace.yaml — Kubernetes Namespace
- helmrelease.yaml — HelmRelease using bedag/raw chart with Deployment,
  Service, and Ingress (TLS via cert-manager letsencrypt-prod)
- externalsecret.yaml — placeholder/comment for RapidAPI proxy-secret;
  includes kubectl manual-create instructions until ESO is deployed
- kustomization.yaml — per-directory Kustomize resources list

Services and subdomains:
  zip-enrichment  → zip.leeworks.dev
  holidays        → holidays.leeworks.dev
  air-quality     → aqi.leeworks.dev

Images:
  registry.leeworks.dev/zip-enrichment/server:latest
  registry.leeworks.dev/holidays/server:latest
  registry.leeworks.dev/air-quality/server:latest

Update root flux/kustomization.yaml to include all three new directories.
kustomize build flux/ passes with zero errors.
2026-05-26 20:02:42 +00:00
AI-Manager 01bfe2693a Merge pull request 'docs: add secrets-checklist.md — all required Kubernetes secrets with kubectl commands (closes #43)' (#45) from feature/secrets-checklist-43 into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 56s
2026-05-26 15:03:31 +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
AI-Manager 997bf7bb12 Merge pull request 'chore: update STATUS.md — 2026-05-26 agent cycle' (#42) from feature/status-triage-2026-05-26 into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 51s
2026-05-26 10:08:16 +00:00
agent-company f7aef173ff chore: update STATUS.md — 2026-05-26 agent cycle triage 2026-05-26 10:08:04 +00:00
AI-Manager c899450f56 Merge pull request 'docs: cluster audit — nodes, namespaces, ingress, Flux state (closes #26)' (#34) from feature/cluster-audit-and-triage into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 43s
2026-05-25 10:04:10 +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
AI-Manager d110f14922 Merge pull request 'feat: Grafana dashboard ConfigMap, PrometheusRule SLO alerts, RapidAPI listing copy' (#25) from feature/monitoring-dashboards-alerts-listings into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 34s
2026-05-25 05:04:52 +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
AI-Manager e738da6448 Merge pull request 'chore: update STATUS.md with 2026-05-25 agent cycle status' (#21) from feature/status-update-2026-05-25 into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 39s
2026-05-25 00:05:31 +00:00
agent-company d35fcf7849 chore: update STATUS.md with 2026-05-25 agent cycle status
- Mark zip-enrichment and holidays as in-progress for spec+code
- Document all Flux manifests as kustomize-build passing
- List 6 concrete human operator actions needed to unblock infra
- Reference all open issues with current state
- Update API repos progress (Phase 1-3 in-flight)
2026-05-25 00:05:15 +00:00
AI-Manager ba469c6fa5 Merge pull request 'feat: docs-site scaffold, legal docs, metrics standard, Flux manifests (closes #5 #9 #10 #11 #12 #13 #14)' (#20) from feature/docs-legal-metrics-registry into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 2m51s
2026-05-24 23:21:10 +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
0xWheatyz 40631fee7c chore: bootstrap repo scaffolding
Initial scaffolding committed by bootstrap script. See ROADMAP.md
for phase plan and SESSION_LOG.md (api-company only) for context.
2026-05-18 17:18:47 -04:00