curo1305
e678930b8d
feat(07-05): admin AI-config endpoints + load_provider_config_by_id + atomic is_active flip
- Add GET/PUT /api/admin/ai-config + GET /api/admin/ai-config/test-connection
- _ai_config_to_dict whitelist excludes api_key_enc (T-07-01)
- PUT: HKDF-encrypt api_key, atomic UPDATE SET is_active = (provider_id = target) (T-07-03)
- PUT: upsert with PROVIDER_DEFAULTS for omitted fields; audit log records fields_changed only (T-07-14)
- All 3 endpoints require get_current_admin (T-07-15)
- Add load_provider_config_by_id to services/ai_config.py (ignores is_active)
- Promote 3 xfail tests in test_admin_ai_config.py — all 3 pass
2026-06-04 23:19:40 +02:00
..
2026-05-22 08:53:28 +02:00
2026-06-04 23:15:48 +02:00
2026-06-04 23:19:40 +02:00
2026-05-31 11:00:45 +02:00
2026-06-04 19:14:48 +02:00
2026-06-04 19:10:05 +02:00
2026-05-23 13:42:37 +02:00
2026-06-04 23:15:49 +02:00
2026-05-25 18:50:52 +02:00
2026-05-22 19:25:16 +02:00
2026-05-22 19:52:36 +02:00
2026-06-04 19:14:48 +02:00
2026-05-28 21:06:14 +02:00
2026-05-28 20:58:40 +02:00
2026-05-30 18:04:09 +02:00
2026-05-31 12:04:21 +02:00
2026-06-04 23:08:16 +02:00
2026-06-04 23:10:49 +02:00
2026-05-22 08:53:28 +02:00
2026-05-28 17:10:52 +02:00
2026-05-22 09:53:39 +02:00
2026-05-28 17:10:52 +02:00
2026-06-03 18:47:49 +02:00
2026-06-01 15:43:01 +02:00
2026-06-04 18:27:49 +02:00
2026-05-31 12:04:21 +02:00
2026-05-31 15:21:02 +02:00
2026-05-23 20:32:55 +02:00
2026-05-31 15:04:53 +02:00
2026-05-30 18:56:58 +02:00
2026-05-22 19:19:52 +02:00
2026-05-22 19:23:42 +02:00
2026-05-23 20:15:44 +02:00
2026-05-31 12:04:21 +02:00
2026-05-28 21:07:18 +02:00