#246: mode enforced — reject profile-violating configuration writes #295
No reviewers
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#295
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "issue-246-vs-nfd-enforced"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Last issue of M32, chained on #294 (already merged) — base is current main.
In mode
enforced, settings writes that would set a catalog-violating value are rejected in the one write path every caller uses (InstanceSettingsService.set) with the stable error codevs_nfd_profile_violation(403; i18n de+en for the UI). The check is scope-generic over the catalog — pond-level entries would be enforced the same way, and their deliberate absence is the recorded ADR 0027 decision. Existing violating values are reported at startup (log line; tolerant of database-less boots) and on the admin profile card, and are never auto-changed. The UI renders as inhidden(#245 already keys onhidden|enforced). The hardening guide now namesenforcedas the recommended mode for VS-NfD reference operation.Tests: violating write rejected with the stable code and nothing stored; compliant writes pass; the same violating write passes in
markedandhidden(separate app boots); pre-existing violation reported and untouched (offbehaviour is pinned by every existing settings-write test). Full api suite green: 100 files / 555 tests against a fresh DB.Issue #246 will be closed manually after green CI + merge — which completes M32.
🤖 Generated with Claude Code
https://claude.ai/code/session_01AUtYMxwTCMHG9mVHnwbFg8