Commit graph

62 commits

Author SHA1 Message Date
Johan Lundberg
edeb036086
docs: add TOML config file design 2026-02-18 12:09:43 +01:00
Johan Lundberg
c726ae18d3
chore: remove completed implementation plan docs 2026-02-18 11:46:37 +01:00
Johan Lundberg
dee1b1e3bc
docs: update README with CLI commands and fix stale module name 2026-02-18 11:43:56 +01:00
Johan Lundberg
80960d5a1f
Merge branch 'feature/cli-module' 2026-02-18 11:35:15 +01:00
Johan Lundberg
e43720cd62
refactor: fix lint and type check issues in CLI module 2026-02-18 11:34:00 +01:00
Johan Lundberg
4e83c3807e
feat: add initial-admin CLI command 2026-02-18 11:29:13 +01:00
Johan Lundberg
bcddf5d1c8
feat: add create-invite CLI command 2026-02-18 11:27:36 +01:00
Johan Lundberg
0c3157ea3a
feat: handle pre-existing users in register_magic_link route 2026-02-18 10:29:44 +01:00
Johan Lundberg
a817fdb0f6
docs: add CLI module design and implementation plan 2026-02-17 14:09:14 +01:00
Johan Lundberg
1c21d6d199
test: add failing test for registering pre-existing users
Part of CLI module work (fastapi-oidc-op-9lb.1). The test verifies that
/register/{token} handles users already created by initial-admin.
2026-02-17 14:09:00 +01:00
Johan Lundberg
cd9469342b
refactor: fix lint warnings in webauthn login tests 2026-02-17 13:46:02 +01:00
Johan Lundberg
ebe5497879
feat: update login UI and JS for usernameless WebAuthn authentication 2026-02-17 13:42:35 +01:00
Johan Lundberg
32567b5484
feat: rewrite WebAuthn login routes for usernameless discoverable credential flow 2026-02-17 13:38:17 +01:00
Johan Lundberg
2ffe968342
feat: require discoverable credentials and prefer user verification in WebAuthnService 2026-02-17 13:18:46 +01:00
Johan Lundberg
8aebd04d2a
chore: add .worktrees/ to .gitignore 2026-02-17 12:58:25 +01:00
Johan Lundberg
51d03bc780
refactor: extract open_db() context manager from lifespan 2026-02-16 15:41:15 +01:00
Johan Lundberg
3462e38131
update Dockerfile: fastapi_oidc_op → porchlight 2026-02-16 15:35:21 +01:00
Johan Lundberg
7cb1adbd06
update all imports in test files: fastapi_oidc_op → porchlight 2026-02-16 15:34:53 +01:00
Johan Lundberg
14037117e7
update all imports in source files: fastapi_oidc_op → porchlight 2026-02-16 15:32:30 +01:00
Johan Lundberg
48f4e8ba73
update pyproject.toml: rename to porchlight, add typer dependency 2026-02-16 15:31:46 +01:00
Johan Lundberg
c5a80b51de
rename package directory fastapi_oidc_op → porchlight 2026-02-16 15:29:31 +01:00
Johan Lundberg
32b75cf92d
docs: add rename and CLI implementation plan 2026-02-16 15:26:25 +01:00
Johan Lundberg
5d97e496f1
fix: bind-mount README.md in dev container for hatchling build 2026-02-16 15:07:51 +01:00
Johan Lundberg
ec1c42b1d5
docs: add README with production and development setup instructions 2026-02-16 15:02:44 +01:00
Johan Lundberg
020e6c6fa0
feat: add Docker support with multi-stage build and compose profiles
Multi-stage Dockerfile (base/dev/prod) using uv for fast installs.
Dev stage supports hot-reload via bind-mounted source; prod stage
builds an optimised image with 4 uvicorn workers. docker-compose.yml
provides 'dev' and 'prod' profiles with named volumes for data.
2026-02-16 14:59:50 +01:00
Johan Lundberg
c381896de4
test: add comprehensive e2e test suite with shared helpers and DB seeding
Extract shared test runner (helpers.js), add file-based SQLite with
setup_db.py for fixture seeding, and add tests for auth guard, credentials
management, full registration flow, health endpoint, password auth, and
magic link registration errors. 66 checks across 7 test files.
2026-02-16 14:41:14 +01:00
Johan Lundberg
dbd7449ea1
test: add end-to-end OIDC authorization code flow test 2026-02-16 14:05:11 +01:00
Johan Lundberg
11a76d4ea8
feat: add OIDC userinfo endpoint 2026-02-16 13:57:10 +01:00
Johan Lundberg
e4e7cd237e
feat: add authorization complete and token endpoints 2026-02-16 13:47:48 +01:00
Johan Lundberg
18e9e7f2b5
feat: redirect to OIDC authorization after login when pending 2026-02-16 13:34:06 +01:00
Johan Lundberg
d8c891af89
feat: add OIDC discovery, JWKS, and authorization endpoints 2026-02-16 13:33:40 +01:00
Johan Lundberg
95d184ce0f
feat: integrate idpyoidc server into app lifespan 2026-02-16 13:29:39 +01:00
Johan Lundberg
2426e0675c
feat: add idpyoidc server initialization 2026-02-16 13:24:54 +01:00
Johan Lundberg
02b75a3eca
feat: add OIDC claims mapping and PorchlightUserInfo source 2026-02-16 12:52:43 +01:00
Johan Lundberg
fd098a4eff
refactor: simplify logo to clean doorway arch with amber light
Remove glow ring, widen arch proportions, and center light element.
Three clean elements: arch, threshold, amber circle.
2026-02-16 12:50:58 +01:00
Johan Lundberg
fa8ec14590
docs: add OIDC provider integration design (Phase 5) 2026-02-16 12:43:29 +01:00
Johan Lundberg
e8fd7eb01d
test: add end-to-end browser tests with Playwright
Set up tests/e2e/ with a login page test covering branding, accessibility,
form structure, theme colors, and static asset serving. Includes run.sh
that manages the app lifecycle (start, test, stop) automatically.
2026-02-16 12:22:58 +01:00
Johan Lundberg
84e61464c7
feat: add Porchlight branding with logo, favicon, and redesigned CSS theme
Rebrand from FastAPI OIDC OP to Porchlight with warm amber/gold identity:
- Add doorway-with-light SVG logo and 32x32 PNG favicon
- Rewrite style.css with full design system (color tokens, spacing scale,
  typography scale, section cards, button variants, dark mode)
- Update base template with site header, logo, and favicon
- Update all page titles and FastAPI app title to Porchlight
2026-02-16 12:08:19 +01:00
Johan Lundberg
e15dcc4745
feat: add authentication routes with session login, WebAuthn, and credential management
Implement Phase 4 auth routes: password login/logout, WebAuthn
registration and authentication, magic link registration, and
credential management pages with HTMX. Includes session middleware,
Jinja2 templates, vendored HTMX, and last-credential guardrails.

120 tests passing.
2026-02-16 11:39:50 +01:00
Johan Lundberg
f7ed2cf54d
docs: add auth routes design document (Phase 4) 2026-02-13 15:45:18 +01:00
Johan Lundberg
6d8019464f
docs: update roadmap to reflect completed auth services 2026-02-13 15:03:46 +01:00
Johan Lundberg
4774ae3c2f
feat: add MagicLinkService with token create/validate/cleanup 2026-02-13 15:02:53 +01:00
Johan Lundberg
872001c6de
feat: add WebAuthnService with fido2 registration and authentication 2026-02-13 14:48:38 +01:00
Johan Lundberg
e6f5ea7f0c
feat: add PasswordService with argon2 hash/verify 2026-02-13 14:35:32 +01:00
Johan Lundberg
e543fe2229
docs: update sqlite design doc to reflect completed implementation 2026-02-13 14:02:05 +01:00
Johan Lundberg
a45604ff2f
feat: add lifespan integration and dependency injection 2026-02-13 13:59:59 +01:00
Johan Lundberg
9f4914a922
feat: add SQLiteMagicLinkRepository with tests 2026-02-13 13:53:14 +01:00
Johan Lundberg
bbe0dac8cb
feat: add SQLiteCredentialRepository with tests 2026-02-13 13:49:25 +01:00
Johan Lundberg
d941209f1e
feat: add SQLiteUserRepository with tests 2026-02-13 13:36:38 +01:00
Johan Lundberg
6c4ba79eed
feat: add DuplicateError domain exception 2026-02-13 13:14:01 +01:00