dorfteich/packages/shared/i18n/de
Claude Fable 5 c2a4dde5cc
Some checks failed
CI / Lint, typecheck, test (pull_request) Successful in 6m50s
CI / Build container images (pull_request) Successful in 3m57s
CI / Auth e2e pack (pull_request) Failing after 6m18s
CI / Import/export fidelity gate (pull_request) Has been skipped
Invitation flow with per-user quota (#332)
Any authenticated user can invite an e-mail address; the mailed
single-use token lets exactly one signup through even while
registration is closed. Open (pending, unexpired) invitations count
against the new instance setting invitations.maxOpenPerUser (default 5,
0 disables inviting) — plus a 20/day per-user rate limit so a
revoke-and-recreate loop cannot become a mail cannon. Only the SHA-256
token hash is stored (auth-tokens pattern); a failed signup (taken
username) un-redeems the token so the invitee can retry.

Surfaces: invitations section in the user settings (list, invite,
revoke, quota line; wide table in a focusable .table-scroll region),
signup page reads ?invitation=<token> (preview banner, e-mail prefill,
closed-mode gate opens only for a previewed-valid token), admin general
card gets the quota field (flat RHF name per #322; VS-NfD marked and
hideable).

Governance: audit actions invitation.created/revoked/accepted
(catalogue 1.10), VS-NfD profile entry (compliant: 0) + hardening-guide
row, i18n de+en including the invitation mail template.

Tests: api e2e-db (mail link, closed-mode single-use signup with
un-redeem on failure, quota + revoke frees slot, quota 0 = 403, auth
matrix), new web e2e pack invitations.spec.ts (full UI loop through
Mailpit, wired into ci.yml with its own rate-limit reset), a11y scan
waits for the new section. Full api suite (107 files / 607 tests),
auth/admin-settings/a11y packs green against a fresh local stack.

Closes #332
2026-08-05 12:44:20 +02:00
..
access.json Add effective-permissions inspector (#57) 2026-07-10 00:00:27 +02:00
apiTokens.json #200: hard instance-wide plugins.enabled kill switch 2026-07-31 04:42:42 +02:00
auth.json #214: OIDC Authorization Code with PKCE, Keycloak as reference IdP 2026-07-31 12:44:52 +02:00
branding.json #307: pond-level branding overrides the instance logo and favicon 2026-08-01 20:44:02 +02:00
comments.json Add the comments panel, unread badge, and comment-policy setting (#92) 2026-07-11 22:07:16 +02:00
common.json #305: a full pond archive before deletion and before purge 2026-08-01 20:24:35 +02:00
editor.json #166: Skip-Link, verstecktes Seiten-h1, Resizer in die Nav-Landmarke 2026-07-21 14:26:54 +02:00
errors.json Invitation flow with per-user quota (#332) 2026-08-05 12:44:20 +02:00
export.json Add PDF export via Gotenberg (#67) 2026-07-10 12:11:12 +02:00
files.json #213: warn on uploads to classified pages; instance policy can block 2026-07-31 07:33:34 +02:00
font.json #304: custom fonts in the pickers, an admin screen, and the licence page 2026-08-01 18:32:46 +02:00
graph.json #169: Nicht-Text-Inhalte — Task-Checkboxen, Wissensgraph 2026-07-21 14:35:16 +02:00
import.json Vault import: always show the label section, create labels inline 2026-07-15 10:58:50 +02:00
invitations.json Invitation flow with per-user quota (#332) 2026-08-05 12:44:20 +02:00
labels.json Add label UI: tree management, page assignment, and sidebar filter (#44) 2026-07-09 11:41:42 +02:00
legal.json Add instance legal pages with public rendering and footer links (#82) 2026-07-11 16:40:04 +02:00
links.json Add backlinks panel and phantom-pages view (#48) 2026-07-09 13:05:32 +02:00
mails.json Invitation flow with per-user quota (#332) 2026-08-05 12:44:20 +02:00
members.json Add pond member management UI (#54) 2026-07-09 20:22:52 +02:00
notifications.json #300: route icon-only controls through IconButton/IconLink 2026-08-01 06:56:13 +02:00
plugins.json #232: plugin allowlist with SHA-256 hash pinning 2026-07-31 21:26:36 +02:00
ponds.json #302: configurable pond start page, created with every new pond 2026-08-01 08:06:35 +02:00
public.json Add public read access and server-rendered page HTML (#56) 2026-07-09 23:46:25 +02:00
quotas.json #168: Formulare — Fehler-Verdrahtung und Namenslücken 2026-07-21 14:26:54 +02:00
search.json Polish round 2: content footer, dismissable menus, manual versions, substring search, icon actions in settings (M10 follow-up) 2026-07-12 07:13:34 +02:00
settings.json #245: mode hidden — hide profile-violating options, mark the hiding 2026-07-31 19:27:17 +02:00
setup.json Add the first-run setup wizard UI (#81) 2026-07-11 16:05:01 +02:00
system.json #192: deploy-level backup target allowlist 2026-07-30 12:17:14 +02:00
tasks.json #168: Formulare — Fehler-Verdrahtung und Namenslücken 2026-07-21 14:26:54 +02:00
users.json Admin can create user accounts directly (#331) 2026-08-05 12:23:01 +02:00
watches.json Add watches: follow pages and ponds with auto-watch preferences (#93) 2026-07-11 22:59:11 +02:00