agnes-the-ai-analyst/docs
Vojtech 0bbbf3e40b
feat(tls): corporate-CA HTTPS with URL-driven rotation, on-VM CSR gen, self-signed fallback (#51)
Replaces the implicit Let's Encrypt flow with a general corporate-CA HTTPS path:

- Caddy switches to cert-file mode (`tls /certs/fullchain.pem /certs/privkey.pem`) with HSTS + TLS 1.2/1.3 floor
- New `docker-compose.tls.yml` overlay closes host `:8000` when Caddy fronts (no TLS bypass)
- New `scripts/tls-fetch.sh` — generic URL fetcher for `sm://`, `gs://`, `https://`, `file://` with redirect refusal + PEM validation
- New `scripts/grpn/agnes-tls-rotate.sh` — daily rotation, self-signed fallback against same key (zero key churn), on-VM RSA-2048 + CSR auto-gen, atomic swap, SIGUSR1 reload
- `scripts/grpn/agnes-auto-upgrade.sh` becomes cert-aware (auto-enables tls overlay when certs present)
- Compose profile `production` renamed to `tls` (aligns with DEPLOYMENT.md and infra startup)

Pairs with FoundryAI/agnes-the-ai-analyst-infra#27 (merged) which wires per-VM `local.vm_tls`, writes `TLS_*` env vars into `.env`, auto-creates Secret Manager containers for `sm://` privkey URLs, and installs `agnes-tls-rotate.{service,timer}` for daily polling.

Includes hardening + docs follow-ups from code review:
- `TLS_CSR_SUBJECT` env-var parametrisation applied to both CSR and self-signed cert paths
- curl `--max-redirs 0 --proto '=https'` + post-fetch PEM validation in `tls-fetch.sh`
- `ulimit -c 0` + array-form `COMPOSE_FILES` (POSIX-safe, bash 3.2 compatible)
- TLS section added to `config/.env.template`
- Historical-note headers in `docs/superpowers/{plans,specs}/2026-04-09-*.md` flagging the profile rename
2026-04-25 19:51:25 +00:00
..
future docs: update references to deleted files 2026-04-09 17:15:19 +02:00
metrics feat: add 10 starter pack metrics (revenue, usage, sales, operations) 2026-04-10 19:35:28 +02:00
setup Fix remote query UX: file-based stdin, ssh permissions, deprecation 2026-03-21 18:41:43 +01:00
superpowers feat(tls): corporate-CA HTTPS with URL-driven rotation, on-VM CSR gen, self-signed fallback (#51) 2026-04-25 19:51:25 +00:00
testing chore: clean repo for public release — fix references, remove drafts 2026-04-08 19:27:25 +02:00
architecture.md chore: clean stale docs — rewrite architecture.md, remove old plans 2026-04-09 09:06:13 +02:00
auth-google-oauth.md fix(auth): uvicorn --proxy-headers + Google OAuth doc + vendor-agnostic OSS rule in CLAUDE.md (#39) 2026-04-24 07:07:33 +00:00
auto-install.md chore: clean stale docs — rewrite architecture.md, remove old plans 2026-04-09 09:06:13 +02:00
CONFIGURATION.md docs: update stale v1 docs to v2 Docker/FastAPI/DuckDB architecture 2026-04-09 18:44:25 +02:00
corporate-memory-governance.md Add Corporate Memory governance — Phase 1 (data model + admin API) 2026-03-23 19:15:33 +01:00
DATA_SOURCES.md Branding cleanup: remove Keboola-specific references from docs and config 2026-03-09 12:22:27 +01:00
DEPLOYMENT.md feat(tls): corporate-CA HTTPS with URL-driven rotation, on-VM CSR gen, self-signed fallback (#51) 2026-04-25 19:51:25 +00:00
HACKATHON.md docs: add HACKATHON.md — condensed deploy + dev playbooks (#21) 2026-04-21 21:33:06 +02:00
HEADLESS_USAGE.md User management + PAT + CLI distribution + HTML auth redirect (#9 #10 #11 #12) (#28) 2026-04-22 14:24:28 +02:00
llm-routing.md docs,tests: anonymize customer references 2026-04-21 11:56:19 +02:00
ONBOARDING.md ci: propagate infra-v* tags to template repo + auto-merge rules (#17) 2026-04-21 21:32:58 +02:00
padak-security.md docs(security): add padak-security.md audit report (#35) 2026-04-22 16:31:13 +02:00
QUICKSTART.md docs(quickstart): add Hackathon section pointing to switch-dev-vm.sh and HACKATHON.md (#14) (#23) 2026-04-21 21:59:23 +02:00
RELEASE_TEMPLATE.md feat: multi-instance deployment — all 14 must-have items from spec 2026-04-10 11:57:42 +02:00
sample-data.md Add --format parquet using project's ParquetManager 2026-03-10 21:46:20 +01:00
theme-reference.html Fix clipped annotation badges in theme-reference.html 2026-03-11 14:09:04 +01:00