You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.4 KiB
2.4 KiB
pages — Planning
Phases
| Phase | Content | Status |
|---|---|---|
| 0 | Security analysis + design (plans/2026-07-12-pages-design.md) |
done |
| 1 | v0 implementation on branch pages-v0 (beans below) |
done |
| 2 | Deploy + manual QA against real Cloudflare account | deployed; manual QA (login/upload/delete) pending |
| 3 | v1 candidates: per-page subdomains, page overwrite, Yew UI, OpenAPI | not started |
v0 tickets (beans, serial)
- scaffold — crate skeleton, wrangler.toml, hello-world worker builds
- core — slug/mime/upload/header policy modules + unit tests
- db — D1 schema + query layer
- auth — GitHub OAuth, sessions, auth middleware
- api — pages + users JSON API
- serve — page content serving from R2
- frontend — embedded management UI
- infra — OpenTofu + deployment docs
Work log
- 2026-07-12 — Project initialized. Security analysis and v0 design written; beans created; implementation pipeline started (Sonnet implementation agents, Opus review agents, one commit per ticket).
- 2026-07-13 — infra ticket (pages-ihlp) done:
infra/*.tf(R2 bucket, D1 database, DNS placeholder record, rate limiting ruleset) mirroring../quotesdb/infrastyle,infra/README.mddeployment guide,tofu fmttofu validatepassing.
- 2026-07-13 — v0 implementation complete: all 8 beans done on
pages-v0, one reviewed commit per ticket (Sonnet implementation, Opus review). 142 unit tests + 17 doctests; both-target clippy clean. Next: phase 2 (real deploy + manual QA perinfra/README.md). - 2026-07-13 — Deployed. tofu applied R2 + D1 + DNS (rate-limit ruleset deliberately NOT applied — quotesdb's live http_ratelimit ruleset owns the zone's single slot; merge required if wanted). Remote schema applied; GITHUB_CLIENT_SECRET secret set; route pages.elijah.run/* live. Smoke tests pass (/, /api/me, /auth/login 302, reserved + unknown slugs 404 with sandbox CSP). Pending manual QA: GitHub login as admin, upload, view, delete.
- 2026-07-13 — pages-shqc: per-page/per-user "trusted" escape hatch from
the CSP sandbox (
pages.trusted OR owner's users.trusted, computed at serve time).migrations/0002-trust.sqladded for the live DB (not yet applied remotely — manual step); schema.sql, db.rs, api.rs, serve.rs, core/headers.rs, and the admin UI all updated; 148 unit + 18 doctests, both-target clippy clean.