46 Commits

Author SHA1 Message Date
665f0d0c02 onboarding: verify element recovery key via hash 2026-01-04 13:00:42 -03:00
a63bb3b048 portal: enforce onboarding step prerequisites 2026-01-04 12:30:30 -03:00
59830e19c8 portal: stop forcing MFA on first login 2026-01-04 08:21:28 -03:00
632cb9c17b portal: reject duplicate external emails 2026-01-04 07:29:37 -03:00
315dab839f portal: allowlist internal request emails 2026-01-04 01:47:29 -03:00
6375e87d2a portal: require Keycloak VERIFY_EMAIL 2026-01-04 00:40:48 -03:00
24fc02ff1f portal: enforce Keycloak required actions 2026-01-03 21:45:29 -03:00
35f7b77c1b ui: improve account/apps layout and lab status responsiveness 2026-01-03 19:50:12 -03:00
a6db3762a3 portal: surface Vaultwarden status 2026-01-03 16:54:23 -03:00
7902d7658f portal: trigger Nextcloud mail sync 2026-01-03 12:18:46 -03:00
a4c621a9bb portal: surface provisioning task status 2026-01-03 04:55:03 -03:00
5e2888abf7 portal: handle legacy approved requests 2026-01-03 04:27:26 -03:00
b41a2a2b1d portal: make provisioning retries safe 2026-01-03 04:08:13 -03:00
71678a4819 fix(portal): persist mailu attributes 2026-01-03 03:11:52 -03:00
13b0099c29 portal: gate requests on verified email 2026-01-03 02:36:29 -03:00
2c2f0b04d9 portal: auto-verify keycloak onboarding 2026-01-03 00:57:14 -03:00
b0ed2374e3 portal: require TOTP for new users 2026-01-03 00:42:01 -03:00
cd39e77d0c portal: provision vaultwarden accounts 2026-01-02 19:16:54 -03:00
4dd991bc30 portal: fix keycloak admin user lookup 2026-01-02 17:42:03 -03:00
6ae48eed9d portal: polish password links and request copy 2026-01-02 13:06:52 -03:00
90f0937f73 portal: improve jellyfin/mailu status 2026-01-02 12:11:40 -03:00
d986cbd922 portal: provision Keycloak + Mailu on approve 2026-01-02 11:12:43 -03:00
712676a054 portal: gate onboarding link; revamp apps 2026-01-02 10:27:02 -03:00
2c52a23d8f portal: onboarding statuses + checklist 2026-01-02 09:42:06 -03:00
1cb12dd6c6 portal: improve request status UX and jellyfin sync 2026-01-02 04:27:44 -03:00
8edc680503 portal: fix access requests and account status 2026-01-02 03:48:22 -03:00
8b5a8bda3d portal: request email scope and fix access rate limiting 2026-01-02 03:09:07 -03:00
7dac934a81 portal: sync mailu rotate and fix account UI 2026-01-02 02:53:49 -03:00
a5ab2ad896 portal: derive mail username from Keycloak email 2026-01-02 01:45:15 -03:00
a1fbfe604e portal: fix rate limits and onboarding 2026-01-02 01:34:18 -03:00
456974b3c9 portal: store access requests in postgres 2026-01-02 00:41:49 -03:00
575932b32f portal: link Keycloak reset-credentials 2026-01-01 23:40:21 -03:00
8ef4198646 portal: modularize backend and add request code status 2026-01-01 23:17:19 -03:00
c22c27b8aa portal: add access request approvals 2026-01-01 22:14:15 -03:00
5a9a3b4f8b auth: trust proxy headers 2026-01-01 21:51:27 -03:00
d53a63021d portal: add Keycloak-backed account portal 2026-01-01 21:37:53 -03:00
db4dcb5059 Mark Jitsi live and refresh AI chat 2025-12-22 16:52:25 -03:00
33e6082b56 feat(ai): add keep-warm ping for chat model 2025-12-21 01:35:23 -03:00
059f4cd291 fix(ai): query ai namespace instead of serviceaccount namespace 2025-12-21 01:16:17 -03:00
dfe409c475 chore(ai): read model/gpu from k8s pod annotations when available 2025-12-21 00:45:30 -03:00
7a832d6e4c chore(ai): discover AI node via k8s when available 2025-12-21 00:31:48 -03:00
eeaece5bae chore(ai): return AI node/GPU facts and copy public endpoint 2025-12-21 00:30:55 -03:00
bef08fb1fb feat(ai): expose node/gpu meta and improve chat UX 2025-12-21 00:16:43 -03:00
14e386afd0 chore(ai): point defaults to qwen2.5-coder 2025-12-20 15:22:28 -03:00
7aa8b8fce8 feat(ai): add ollama chat proxy and UI 2025-12-20 14:25:55 -03:00
f454df4f9c Initial site with CI/CD pipeline 2025-12-18 01:13:04 -03:00