punimtag/ROADMAP.md
ilia d9910acdde
Some checks failed
CI / skip-ci-check (pull_request) Successful in 3s
CI / docker-ci (pull_request) Successful in 5s
CI / secret-scan (pull_request) Successful in 12s
CI / viewer-unit (pull_request) Successful in 3m11s
CI / e2e (pull_request) Failing after 5m24s
Fill e2e gaps: storageState, real upload POST, session smoke
Add auth setup project, viewer session check, upload that posts a fixture,
FastAPI login spec (skips without E2E_API_*), and repo ROADMAP.md.
2026-07-14 19:17:14 -04:00

2.1 KiB

PunimTag roadmap

Living plan for product quality, auth/email reliability, and automation.

Now — shipped / in flight

  • Fix public-host auth redirects (Kolby #57 family) — NEXTAUTH_URL + verify-email
  • DEV mail trap via Mailpit (not Mailtrap SaaS / not Spamhaus-blocked Mailcow for e2e)
  • Playwright e2e suite (e2e/) on @levkin/playkit against punimtagdev.levkin.ca
  • Dedicated e2e user e2e@levkine.ca (Vault / Infisical / Gitea Actions)
  • Vitest unit tests for viewer-frontend in Gitea Actions
  • API smoke + Zod schema checks (health, people, tags, 401 contracts)
  • storageState setup project + real upload smoke
  • ROADMAP (this file)

Next (near-term)

  • Wire QA/PROD SMTP on live guests when LXCs 9102/9103 exist (make punimtag-sync-smtp ENV=qa|prod)
  • FastAPI e2e user — mirror e2e@levkine.ca (or service account) into FastAPI user DB; set E2E_API_USERNAME/PASSWORD in CI
  • Search / filter e2e — tag + person filters on public gallery
  • Role permissions e2e — viewer vs admin write gates
  • admin-frontend Vitest (or Playwright admin project)
  • PROD smoke — health + public login page only (no mutating tests)
  • Stop seeding admin@admin.com in docs as the day-to-day login; keep bootstrap scripts but point operators at Vaultwarden PunimTag e2e

Later

  • Proper DEV deploy (next start + CI image) instead of long-lived next dev
  • Ansible/app_setup path aligned with /opt/punimtag/viewer-frontend/.env (not /srv/app)
  • OpenAPI-driven contract suite (playkit / consumer)
  • Multi-browser matrix (firefox/webkit)
  • Hermes/Mattermost report on e2e failure

Test map

Layer Where Status
Viewer unit viewer-frontend Vitest CI viewer-unit
Backend unit/integration tests/ pytest existing
E2E browser + mail e2e/tests/* CI e2e
E2E API (unauth + catalog) e2e/tests/api.* CI
E2E FastAPI authed api.fastapi-login.spec.ts skips without E2E_API_*
Admin UI gap

See also: e2e/README.md, playkit ROADMAP.md (kit-level).