This website requires JavaScript.
6a7cf71f84
Added homepage autodiscovery to helm charts
master
Adrian A. Baumann
2026-03-16 00:26:38 +01:00
956f0c2cf5
docs: update README to reflect OIDC auth, secrets management, and CI/CD
Adrian A. Baumann
2026-03-07 12:36:11 +01:00
2b9cbfd884
chore: add .gitignore and track frontend/package-lock.json
feature/sso
Adrian A. Baumann
2026-03-01 22:07:45 +01:00
6699bf7421
docs: document command-line download via config token in README
Adrian A. Baumann
2026-03-01 22:03:30 +01:00
881f812fa8
Bump
Adrian A. Baumann
2026-03-01 17:50:13 +01:00
593daa17bf
fix: move readOnly into inputProps on download token OutlinedInput
Adrian A. Baumann
2026-03-01 16:39:42 +01:00
0943798399
feat: show download token with copy and regenerate on Config Detail
Adrian A. Baumann
2026-03-01 16:33:38 +01:00
c24c00b307
feat: add regenerateToken to configsApi
Adrian A. Baumann
2026-03-01 16:27:11 +01:00
ab181e802f
fix: remove unused Response import, constrain format param to Literal[json,zip]
Adrian A. Baumann
2026-03-01 16:26:43 +01:00
b71e1e5989
feat: token auth on generate endpoint and regenerate-token endpoint
Adrian A. Baumann
2026-03-01 16:24:28 +01:00
2e0cda834b
feat: add get_optional_user for unauthenticated generate access
Adrian A. Baumann
2026-03-01 16:05:15 +01:00
29b71b267e
feat: reject empty-string tokens in GenerateRequest (min_length=1)
Adrian A. Baumann
2026-03-01 16:04:43 +01:00
3b90373b78
feat: add download_token to ConfigOut, add GenerateRequest and RegenerateTokenOut schemas
Adrian A. Baumann
2026-03-01 16:02:38 +01:00
9b15c081b0
feat: add index on configs.download_token for token-auth lookups
Adrian A. Baumann
2026-03-01 16:01:57 +01:00
e9a91a7794
feat: add download_token field to Config model
Adrian A. Baumann
2026-03-01 15:59:59 +01:00
d6e3904f0a
fix: remove permanent server_default from download_token migration
Adrian A. Baumann
2026-03-01 15:59:20 +01:00
c55d73fd58
feat: migration 0012 — add download_token to configs
Adrian A. Baumann
2026-03-01 15:35:21 +01:00
ad35b00023
docs: add implementation plan for config download token
Adrian A. Baumann
2026-03-01 15:33:19 +01:00
d28d034a17
docs: add design doc for config download token
Adrian A. Baumann
2026-03-01 15:31:42 +01:00
4d0164ed02
chore: use storageClassName nfs for postgres PV/PVC
Adrian A. Baumann
2026-03-01 14:54:45 +01:00
426fb8fbfd
chore: use existing 'nfs' PV instead of creating one
Adrian A. Baumann
2026-03-01 14:49:09 +01:00
d56075a74e
feat: expose app version from ConfigMap in sidebar footer
Adrian A. Baumann
2026-03-01 11:51:30 +01:00
9382106e8d
fix: reset generated files cache when modal closes so reopening fetches fresh data
Adrian A. Baumann
2026-03-01 11:45:47 +01:00
390774c79a
feat: default interface broadcast to 'detect'
Adrian A. Baumann
2026-03-01 11:43:58 +01:00
08dddb7297
fix: convert empty select values to null before submitting
Adrian A. Baumann
2026-03-01 11:35:53 +01:00
02c8f71957
feat: complete snat with all shorewall columns (proto, port, ipsec, mark, user, switch, origdest, probability)
Adrian A. Baumann
2026-03-01 11:27:36 +01:00
36224cebcd
feat: complete rules with all shorewall columns (origdest, rate, user, mark, connlimit, time, headers, switch, helper)
Adrian A. Baumann
2026-03-01 11:25:09 +01:00
3c259a1862
feat: add placeholder support to EntityForm FieldDef
Adrian A. Baumann
2026-03-01 11:18:53 +01:00
e05e9d5975
feat: add limit:burst and connlimit:mask fields to policies
Adrian A. Baumann
2026-03-01 11:18:26 +01:00
3dc97df6cd
feat: allow 'all' for policy source and destination zones
Adrian A. Baumann
2026-03-01 11:14:42 +01:00
8b787a99c2
feat: add broadcast field to interfaces
Adrian A. Baumann
2026-03-01 11:13:13 +01:00
58ef0dec63
feat: allow interfaces to have no zone (shorewall '-' zone)
Adrian A. Baumann
2026-03-01 11:11:52 +01:00
21d404229a
feat: add hosts and params files, fix rules SECTION NEW header
Adrian A. Baumann
2026-03-01 01:42:28 +01:00
15f28cb070
chore: bump container version to 0.007
Adrian A. Baumann
2026-03-01 01:31:17 +01:00
686ce911bb
feat: rename masq to snat throughout, update generator to Shorewall 5 snat format
Adrian A. Baumann
2026-03-01 01:30:19 +01:00
1b543ed44a
chore: remove OIDC debug logging
Adrian A. Baumann
2026-03-01 01:24:45 +01:00
59d9b438a1
debug: decode and log raw ID token payload in OIDC callback
Adrian A. Baumann
2026-03-01 01:24:06 +01:00
388e945343
chore: remove temporary OIDC debug logging
Adrian A. Baumann
2026-03-01 01:21:22 +01:00
740983277f
debug: log userinfo keys and groups claim in OIDC callback
Adrian A. Baumann
2026-03-01 01:16:26 +01:00
6b340f50cb
fix: remove passlib import from migration 0001, embed static hash
Adrian A. Baumann
2026-03-01 01:08:40 +01:00
aaa6e7def4
Version bump to test sso
Adrian A. Baumann
2026-03-01 01:02:44 +01:00
2b6cd29413
feat(sso): bump container version for SSO release
Adrian A. Baumann
2026-03-01 00:55:19 +01:00
daabafc595
feat(sso): replace login form with SSO redirect button
Adrian A. Baumann
2026-03-01 00:55:07 +01:00
1daa6f6e90
feat(sso): replace local auth with Keycloak OIDC callback flow
Adrian A. Baumann
2026-03-01 00:51:14 +01:00
f28240c37f
feat(sso): update User model and schemas for Keycloak
Adrian A. Baumann
2026-03-01 00:50:44 +01:00
95fbe99b61
feat(sso): migration — add keycloak_sub, make hashed_password nullable
Adrian A. Baumann
2026-03-01 00:50:20 +01:00
ff4aa155d1
feat(sso): add KEYCLOAK_CLIENT_SECRET to secrets script and backend deployment
Adrian A. Baumann
2026-03-01 00:45:37 +01:00
924e51ffaa
feat(sso): add Keycloak settings to database.py and Helm ConfigMap
Adrian A. Baumann
2026-03-01 00:45:07 +01:00
58f0fd50d8
feat(sso): replace passlib/bcrypt with authlib + httpx
Adrian A. Baumann
2026-03-01 00:44:18 +01:00
40113bc634
docs: add Keycloak SSO integration design
Adrian A. Baumann
2026-03-01 00:37:49 +01:00
4c4cdf0a52
fix: route all traffic through nginx; remove direct /api->backend ingress rule
Adrian A. Baumann
2026-03-01 00:12:33 +01:00
5ac2f931f8
URL changed - rebuild
Adrian A. Baumann
2026-03-01 00:06:57 +01:00
bd229d52a1
fix: run postgres as uid 99/gid 100 to match Unraid NFS squash mapping
Adrian A. Baumann
2026-03-01 00:02:12 +01:00
271fec8da5
fix: add JWT_SECRET_KEY to migrate init container; run postgres as uid 70 to avoid NFS chown failure
Adrian A. Baumann
2026-02-28 23:53:03 +01:00
ee50261216
fix: set build_context to backend/ and frontend/ subdirectories
Adrian A. Baumann
2026-02-28 23:36:02 +01:00
84fd1c8072
feat: complete Gitea Actions CI workflow for container builds
Adrian A. Baumann
2026-02-28 23:26:00 +01:00
cf837fb994
fix: add kubectl preflight check and clarify repo-root usage in comment
Adrian A. Baumann
2026-02-28 23:16:51 +01:00
92a8026bef
feat: add scripts/create-secrets.sh for bootstrapping k8s secrets
Adrian A. Baumann
2026-02-28 23:11:40 +01:00
3278ef63b3
feat: remove secrets block from Helm values
Adrian A. Baumann
2026-02-28 23:08:48 +01:00
a8e30fa7c4
feat: remove Helm-managed Secret template
Adrian A. Baumann
2026-02-28 22:47:57 +01:00
4968ea79d9
docs: add secrets management implementation plan
Adrian A. Baumann
2026-02-28 22:46:55 +01:00
5d23878736
docs: add secrets management design (kubectl bootstrap script)
Adrian A. Baumann
2026-02-28 22:45:43 +01:00
123e914f01
fix: pin bcrypt<4.0.0 to restore passlib compatibility
Adrian A. Baumann
2026-02-28 21:49:00 +01:00
3f5b0d1591
fix: set PYTHONPATH=/app so alembic can import app package
Adrian A. Baumann
2026-02-28 21:42:39 +01:00
853f26d326
fix: use double-cast to resolve TS2352/TS2322 type errors
Adrian A. Baumann
2026-02-28 21:34:51 +01:00
3a82801360
fix: import ReactNode, Dispatch, SetStateAction explicitly (React namespace not in scope)
Adrian A. Baumann
2026-02-28 21:29:04 +01:00
57d666e759
fix: use npm install in Dockerfile (no package-lock.json yet)
Adrian A. Baumann
2026-02-28 21:25:38 +01:00
488c385de3
fix: correct generate endpoint return type, migration server_default SQL, and auth loading propagation
Adrian A. Baumann
2026-02-28 21:22:11 +01:00
1de7974921
docs: add README with quickstart and deployment instructions
Adrian A. Baumann
2026-02-28 21:20:24 +01:00
be64d0bffd
feat: add Helm charts for Kubernetes deployment (Traefik + NFS Postgres)
Adrian A. Baumann
2026-02-28 21:19:50 +01:00
1d5c98739b
feat: add Config Detail page with tabbed entity management
Adrian A. Baumann
2026-02-28 20:09:15 +01:00
627e6149fb
feat: add GenerateModal component
Adrian A. Baumann
2026-02-28 20:07:34 +01:00
f7845c4c53
feat: add Config List page
Adrian A. Baumann
2026-02-28 20:07:16 +01:00
667e4eefad
feat: add Login page
Adrian A. Baumann
2026-02-28 20:07:02 +01:00
e23f1255fe
feat: add reusable DataTable and EntityForm components
Adrian A. Baumann
2026-02-28 20:06:38 +01:00
f8a6e49038
feat: add Layout and ProtectedRoute components
Adrian A. Baumann
2026-02-28 20:06:08 +01:00
d0ee7d2f23
feat: add API client and auth store
Adrian A. Baumann
2026-02-28 20:05:22 +01:00
b5c941c159
feat: add frontend entry point, theme, and router
Adrian A. Baumann
2026-02-28 20:04:33 +01:00
1afc95fe8b
feat: add ShorewallGenerator (zones, interfaces, policy, rules, masq, json, zip)
Adrian A. Baumann
2026-02-28 20:02:48 +01:00
77aded3918
feat: add nested resource routers for zones, interfaces, policies, rules, masq
Adrian A. Baumann
2026-02-28 20:02:05 +01:00
099fd8307f
feat: add configs CRUD router with generate endpoint
Adrian A. Baumann
2026-02-28 20:00:19 +01:00
ec6b9f6332
feat: add auth router (register/login/logout/me)
Adrian A. Baumann
2026-02-28 19:59:33 +01:00
472593b8e6
feat: add FastAPI app entrypoint
Adrian A. Baumann
2026-02-28 19:59:07 +01:00
5c33dd7c96
feat: add Pydantic schemas
Adrian A. Baumann
2026-02-28 19:58:30 +01:00
a96cdc825c
feat: add JWT auth module
Adrian A. Baumann
2026-02-28 19:58:10 +01:00
bee6b83556
feat: add Alembic migration with schema and seed data
Adrian A. Baumann
2026-02-28 19:57:35 +01:00
c562d35345
feat: add SQLAlchemy models and database setup
Adrian A. Baumann
2026-02-28 19:55:54 +01:00
3436856215
feat: add frontend Dockerfile, Vite config, and Nginx config
Adrian A. Baumann
2026-02-28 19:54:51 +01:00
ee9dc101da
feat: add backend Dockerfile and requirements
Adrian A. Baumann
2026-02-28 19:54:06 +01:00
cb9b802d43
feat: add project skeleton and docker-compose
Adrian A. Baumann
2026-02-28 19:53:19 +01:00
f4d81ad8e9
Instructions and plan
Adrian A. Baumann
2026-02-28 19:00:53 +01:00