Marian
c9ee259807
feat(oidc): refuse API writes to the env-managed provider
...
Startup rewrites this row from BAMBUDDY_OIDC_* on every boot, so an edit
through the UI would be accepted and then silently reverted at the next
restart -- the operator would watch their change vanish with nothing
explaining why. A 409 says so instead.
Covers all four mutating routes, including the two icon ones: the icon comes
from BAMBUDDY_OIDC_ICON_URL and would be restored the same way. Extracted as
one helper rather than four copies of the same check, so a fifth route cannot
be added with the guard silently missing.
Locking it is safe because BAMBUDDY_LOCAL_LOGIN (#1589 ) remains the documented
recovery path if the provider itself becomes unusable. A test pins that
UI-created providers stay editable -- the lock must not leak onto them.
Refs #2593
2026-07-28 21:05:29 +00:00
..
2026-04-13 13:24:28 +02:00
2026-05-02 08:10:47 +02:00
2026-05-17 10:54:28 +02:00
2026-07-28 10:27:45 +02:00
2026-06-25 15:19:28 +02:00
2026-07-05 09:58:16 +02:00
2026-06-26 12:31:48 +02:00
2026-07-16 08:38:42 +02:00
2026-07-11 13:38:15 +02:00
2026-04-13 13:24:28 +02:00
2026-07-28 15:05:28 +02:00
2026-07-10 08:24:20 +02:00
2026-06-11 14:49:52 +02:00
2026-04-11 12:10:45 +02:00
2026-05-15 15:43:37 +02:00
2026-07-28 14:49:50 +02:00
2026-07-11 09:33:52 +02:00
2026-07-27 11:01:43 +02:00
2026-05-06 14:23:39 +02:00
2026-05-17 15:30:05 +02:00
2026-04-22 19:10:18 +02:00
2026-07-17 07:26:24 +02:00
2026-06-23 11:34:15 +02:00
2026-06-08 09:30:16 +02:00
2026-06-25 09:57:15 +02:00
2026-07-07 10:31:19 +02:00
2026-05-12 16:12:58 +02:00
2026-05-15 12:15:39 +02:00
2026-06-27 09:47:35 +02:00
2026-07-27 11:18:54 +02:00
2026-06-22 12:27:58 +02:00
2026-05-11 13:30:27 +02:00
2026-06-25 14:54:27 +02:00
2026-06-17 11:33:23 +02:00
2026-04-25 10:44:37 +02:00
2026-06-02 14:58:10 +02:00
2026-07-14 11:29:56 +02:00
2026-06-02 10:23:21 +02:00
2026-07-28 11:37:36 +02:00
2026-07-28 21:05:29 +00:00
2026-07-28 21:05:29 +00:00
2026-07-28 21:05:29 +00:00
2026-05-15 08:57:03 +02:00
2026-07-09 09:02:34 +02:00
2026-05-15 08:50:37 +02:00
2026-05-13 13:23:21 +02:00
2026-07-17 08:16:35 +02:00
2026-07-20 13:04:35 +02:00
2026-07-28 12:05:00 +02:00
2026-05-11 13:30:27 +02:00
2026-06-28 11:18:18 +02:00
2026-07-28 13:36:55 +02:00
2026-05-01 08:13:52 +02:00
2026-07-20 17:55:56 +02:00
2026-07-22 12:32:14 +02:00
2026-07-28 12:46:31 +02:00
2026-06-09 13:32:15 +02:00
2026-06-28 11:18:18 +02:00
2026-05-23 12:28:58 +02:00
2026-05-30 13:49:09 +02:00
2026-06-16 12:00:27 +02:00
2026-05-08 14:28:41 +02:00
2026-07-20 17:55:56 +02:00
2026-05-15 13:12:41 +02:00
2026-06-21 11:55:37 +02:00
2026-04-19 09:48:10 +02:00
2026-06-27 13:56:18 +02:00
2026-04-01 10:06:01 +02:00
2026-06-20 15:50:58 +02:00
2026-06-22 10:14:31 +02:00
2026-06-05 09:22:05 +02:00
2026-05-08 11:52:42 +02:00
2026-05-26 10:36:37 +02:00
2026-05-08 11:52:42 +02:00
2026-05-21 09:33:47 +02:00
2026-05-08 11:52:42 +02:00
2026-06-17 11:33:23 +02:00
2026-06-23 11:34:15 +02:00
2026-06-17 11:33:23 +02:00
2026-06-17 11:33:23 +02:00
2026-05-21 09:15:10 +02:00
2026-05-20 11:00:54 +02:00
2026-05-20 11:16:56 +02:00
2026-05-05 14:35:08 +02:00
2026-07-18 09:58:21 +02:00
2026-05-22 16:31:16 +02:00
2026-06-22 14:23:30 +02:00
2026-04-24 09:59:09 +02:00
2026-07-18 09:10:08 +02:00
2026-04-26 10:01:17 +02:00
2026-06-21 10:25:57 +02:00
2026-05-13 13:23:21 +02:00
2026-06-12 13:27:17 +02:00
2026-06-19 11:29:07 +02:00
2026-06-02 12:57:51 +02:00
2026-07-20 17:55:56 +02:00