[VS-NfD] Mode "hidden": hide profile-violating options and mark the hiding #245

Closed
opened 2026-07-30 11:59:32 +02:00 by fable-5 · 1 comment
Collaborator

Plan reference: M32, option b)
ADR: the one from #243
Effort: M (1-2 AT)
Depends on: #243, #244

Context

Option b): options that would violate the profile disappear from the UI, and the deployment says so - the hiding itself is marked, never silent. An operator reading the settings page must be able to tell policy from missing features.

Acceptance criteria

  • In mode hidden, catalog-listed controls whose only purpose is enabling a violation are not rendered; controls with compliant and non-compliant values (e.g. upload.svgPolicy) keep only their compliant choices.
  • Every affected settings section shows one accessible note that options are hidden by deployment policy (i18n de+en).
  • A value that was already non-compliant before the mode was activated is surfaced like in marked - an existing violation is never silently hidden.
  • The API stays unchanged (hiding is UI-level; enforcement is #243's third follow-up).
  • e2e + a11y coverage for the hidden state and the policy note.

Out of scope

Server-side enforcement.

**Plan reference:** M32, option b) **ADR:** the one from #243 **Effort:** M (1-2 AT) **Depends on:** #243, #244 ## Context Option b): options that would violate the profile disappear from the UI, and the deployment says so - the hiding itself is marked, never silent. An operator reading the settings page must be able to tell policy from missing features. ## Acceptance criteria - [ ] In mode `hidden`, catalog-listed controls whose only purpose is enabling a violation are not rendered; controls with compliant and non-compliant values (e.g. `upload.svgPolicy`) keep only their compliant choices. - [ ] Every affected settings section shows one accessible note that options are hidden by deployment policy (i18n de+en). - [ ] A value that was already non-compliant before the mode was activated is surfaced like in `marked` - an existing violation is never silently hidden. - [ ] The API stays unchanged (hiding is UI-level; enforcement is #243's third follow-up). - [ ] e2e + a11y coverage for the hidden state and the policy note. ## Out of scope Server-side enforcement.
fable-5 added this to the M32 - VS-NfD: deployment profile & UI modes milestone 2026-07-30 11:59:32 +02:00
fable-5 added the
frontend
effort:M
vs-nfd
area:ops
labels 2026-07-30 11:59:32 +02:00
Author
Collaborator

Done via PR #294 (merged, CI run 635 green — including the hidden half of the vs-nfd e2e pack against a second api with VS_NFD_MODE=hidden, and an axe WCAG A/AA scan of the hidden state).

All acceptance criteria met: compliant enable-a-violation controls are not rendered (master switches, Nextcloud backup block); value-listed selects keep only compliant choices; one accessible policy note per affected section (i18n de+en); an already-violating value is surfaced like in marked, never silently hidden (pinned in e2e: the violating feeds row keeps its marking); API unchanged. First CI run caught a seed difference (api.enabled=true in the CI fixtures) — the row assertion now derives its expectation from the actual instance settings.

Done via PR #294 (merged, CI run 635 green — including the hidden half of the vs-nfd e2e pack against a second api with VS_NFD_MODE=hidden, and an axe WCAG A/AA scan of the hidden state). All acceptance criteria met: compliant enable-a-violation controls are not rendered (master switches, Nextcloud backup block); value-listed selects keep only compliant choices; one accessible policy note per affected section (i18n de+en); an already-violating value is surfaced like in `marked`, never silently hidden (pinned in e2e: the violating feeds row keeps its marking); API unchanged. First CI run caught a seed difference (api.enabled=true in the CI fixtures) — the row assertion now derives its expectation from the actual instance settings.
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stwaidele/dorfteich#245
No description provided.