Florian Sylvain
|
10a66cd979
|
feat: change email, export my data, delete account (with data anonymization)
|
2026-10-30 20:19:07 +01:00 |
|
Florian Sylvain
|
b39a41be88
|
refac: DELETE /v1/user/{id}?expected_role_id=N, user.remove audit event, 409 target_role_not_found, GetAll returns its error, Own-scope visibility filter moved into repos, JSON tags removed from use-case types
|
2026-10-29 16:28:25 +01:00 |
|
Florian Sylvain
|
80f7037d3a
|
feat: Users API, ownership transfer and removal of the legacy role string
|
2026-10-27 03:08:15 +01:00 |
|
Florian Sylvain
|
094df63a7f
|
feat: /v1/role list, get, create, update and delete. Reassign members on delete. Write-time validation (ValidateGrants, duplicates, typed keys against real content types). Name uniqueness (role_name_taken), role_locked, role_has_members, role_conflict on version mismatch. No-escalation: nobody grants a permission they don't hold, and roles.edit_owner_only guards the Owner role. Activity events for role changes. Typed-key exposure in /auth/me. Cleanup of typed rows when a content type is deleted. | Backend only. Will carry the deferred ListGrants decision.
|
2026-10-27 00:45:24 +01:00 |
|
Florian Sylvain
|
0eb46b0d74
|
feat: SEO backend data (1/4)
|
2026-10-15 19:30:29 +02:00 |
|
Florian Sylvain
|
b34a173d83
|
feat: Authors feature backend (and upgraded deprecated mods)
|
2026-10-14 17:45:00 +02:00 |
|
Florian Sylvain
|
a11338094e
|
feat: Sites feature backend
|
2026-10-14 03:56:50 +02:00 |
|
fsylvain
|
d768668014
|
feat: image variants cache panel
|
2026-10-08 21:13:32 +02:00 |
|
fsylvain
|
951fef18ba
|
feat: image variants per image
|
2026-10-08 19:57:51 +02:00 |
|
fsylvain
|
f1d56ef50e
|
feat: image variants engine
|
2026-10-08 02:33:32 +02:00 |
|
fsylvain
|
f914eae3c5
|
feat: setup logs retention by max file size
|
2026-10-07 22:02:13 +02:00 |
|
fsylvain
|
e37a46a027
|
feat: activity log producers
|
2026-10-06 22:25:23 +02:00 |
|
fsylvain
|
50b1649965
|
feat: activity log backend foundation
|
2026-10-06 20:35:03 +02:00 |
|