[VS-NfD] Write the hardening guide with a "VS-NfD operation" reference configuration #227
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#227
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
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?
Plan reference:
20-massnahmenplan.md-> Phase 5ADR: ADR 0019
Effort: L (3 AT)
Depends on: #191, #192, #200, #216
Context
One named configuration an operator can adopt wholesale is worth more than
a list of options. It is also the artefact that makes the switches built in
M1/M2/M4 auditable.
Current state
docs/self-hosting/README.mdcovers ordinary self-hosting; no hardenedprofile exists.
api.enabled(defaultoff),
mcp.enabled(default off),upload.svgPolicy,upload.allowedExtensions, backup settings — all inapps/api/src/settings/instance-settings.service.ts.Acceptance criteria
off, public API off, MCP off, feeds off, plugins off, backup local
only — each with the exact setting name and value.
same PR as each new switch (stated as a rule, not a hope).
profile is active on a running instance.
Out of scope
Hardening the operator's platform (OS, network, reverse proxy).
For the hardening guide, from #200 (PR #260): the VS-NfD reference configuration sets the instance setting plugins.enabled = false. Effect: every plugin surface answers 404 (admin install/list/mode, pond plugin list and activation, sandbox frame and asset routes); the dropzone watcher quarantines dropped ZIPs instead of installing; existing plugin blocks render their declared fallback; the editor offers no plugin blocks. The switch is flipped in the Site-Admin settings panel and, like every instance setting, is cached in-process - follow the flip with an api restart. Reference: docs/architecture/plugin-architecture.md, Lifecycle section. Related master switches for the same configuration: api.enabled=false (default), mcp.enabled=false (default), feeds.enabled=false (set explicitly - default is on).
Supply for the hardening guide from M26 (#213): new instance setting classification.uploadPolicy = warn | block (default warn). It governs file uploads to VS-NfD-classified pages: warn shows the persistent notice in the attachments panel (file inherits the level, content carries no marking), block rejects such uploads server-side (403 classified_upload_blocked). The VS-NfD reference configuration should set block. Related M26 settings for the reference configuration: classification.newPageDefault = vs_nfd (every new page starts marked, #204).
Done in commit
2c6eff8(branch PR #275; landed via the green chain runs 579-582 with the merges of #273/#274/#276/#277 - #275 itself was closed with a pointer after its solo run hit the documented runner infra signature and the chain was rebased).Evidence against the acceptance criteria: