Dries Peeters
ea913c6c4b
feat(ai,security): add web AI helper, secret encryption, and 2FA
...
Introduce a web-first AI helper with admin-configurable providers (Ollama or hosted OpenAI-compatible), server-side context building, and confirmed write actions. Expose the feature via session /api/ai/* endpoints and scoped /api/v1/ai/* endpoints.
Harden security by requiring a strong SECRET_KEY for Docker Compose, adding optional settings encryption-at-rest (Fernet), and introducing TOTP-based 2FA plus password reset flows. Update admin UI, API docs, and install documentation.
2026-04-26 07:55:47 +02:00
..
2026-04-15 12:15:23 +02:00
2026-03-15 10:51:52 +01:00
2026-04-05 08:39:11 +02:00
2026-03-15 10:51:52 +01:00
2026-03-16 15:15:21 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-16 15:15:21 +01:00
2026-03-15 10:51:52 +01:00
2026-04-15 12:57:01 +02:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-04-15 10:55:37 +02:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-04-26 07:55:47 +02:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-16 15:15:21 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-27 06:38:47 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-04-12 13:34:58 +02:00
2026-03-15 10:51:52 +01:00
2026-04-12 14:00:12 +02:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-04-26 07:55:47 +02:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-26 14:52:06 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-04-05 08:39:11 +02:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-06 15:44:35 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-04-15 12:15:23 +02:00
2026-04-26 07:55:47 +02:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00
2026-03-15 10:51:52 +01:00