All checks were successful
CI / Lint, typecheck, test (pull_request) Successful in 6m12s
CI / Build container images (pull_request) Successful in 4m2s
CI / Auth e2e pack (pull_request) Successful in 8m29s
CI / Import/export fidelity gate (pull_request) Successful in 54s
CD / Build and push images (push) Successful in 31s
CD / Deploy to Test (push) Successful in 14s
CD / Smoke tests against Test (push) Successful in 1m29s
CD / Promote to Int (push) Successful in 14s
CI / Build container images (push) Has been skipped
CI / Lint, typecheck, test (push) Successful in 6m30s
CI / Auth e2e pack (push) Successful in 8m6s
CI / Import/export fidelity gate (push) Successful in 57s
The deployment declares through VS_NFD_MODE (off | marked | hidden | enforced, default off) how the application treats configuration that violates the VS-NfD reference profile — deploy-level like BACKUP_ALLOWED_TARGETS, so a compromised Site Admin cannot widen it. The catalog in shared (vs-nfd-profile.ts) is the single source of truth: every profile-relevant setting with a decidable compliant value, judgement calls in an explicit advisory list, and a fence test parsing the hardening guide's reference tables so neither can drift (pattern #201). The api evaluates the catalog against the typed settings registry and validated env and exposes mode + verdict on GET /admin/system/vs-nfd-profile; the admin settings view shows the card whenever the mode is not off. Display only — the treatments land with #244–#246 (ADR 0027, proposed). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUtYMxwTCMHG9mVHnwbFg8
109 lines
4.4 KiB
JSON
109 lines
4.4 KiB
JSON
{
|
||
"title": "Settings",
|
||
"profile": {
|
||
"title": "Profile",
|
||
"displayName": "Display name",
|
||
"locale": "Language",
|
||
"locales": {
|
||
"de": "Deutsch",
|
||
"en": "English"
|
||
},
|
||
"save": "Save",
|
||
"saved": "Saved."
|
||
},
|
||
"password": {
|
||
"title": "Change password",
|
||
"current": "Current password",
|
||
"new": "New password",
|
||
"submit": "Change password",
|
||
"changed": "Password changed. Other devices were signed out."
|
||
},
|
||
"sessions": {
|
||
"title": "Active sessions",
|
||
"current": "This session",
|
||
"created": "Signed in",
|
||
"lastSeen": "Last active",
|
||
"device": "Device",
|
||
"revoke": "Sign out",
|
||
"revokeAll": "Sign out all other sessions",
|
||
"empty": "No other active sessions."
|
||
},
|
||
"dataExport": {
|
||
"title": "Export my data",
|
||
"description": "Download a ZIP with your profile, a list of your memberships, and the Markdown export of your personal pond and the ponds you own.",
|
||
"request": "Prepare export",
|
||
"preparing": "Preparing your export…",
|
||
"download": "Download export",
|
||
"ready": "Your export is ready.",
|
||
"expiresHint": "The download link expires on {{when}}.",
|
||
"failed": "The export could not be prepared. Please try again.",
|
||
"rateLimited": "You requested an export recently. Please try again later."
|
||
},
|
||
"admin": {
|
||
"title": "Administration",
|
||
"general": "General",
|
||
"instanceName": "Instance name",
|
||
"defaultLocale": "Default language",
|
||
"registrationMode": "Self-registration",
|
||
"registrationOpen": "Open — anyone can register",
|
||
"registrationClosed": "Closed — no new registrations",
|
||
"save": "Save",
|
||
"saved": "Saved.",
|
||
"newPageClassification": "Classification of new pages",
|
||
"newPageClassificationHelp": "Default classification (VS-NfD marking) for newly created pages. The marking is not access control; separating classification levels is the environment’s job (one instance per level).",
|
||
"classificationUnclassified": "Open — no marking",
|
||
"classificationVsNfd": "VS – NUR FÜR DEN DIENSTGEBRAUCH",
|
||
"uploadPolicy": "File uploads to classified pages",
|
||
"uploadPolicyHelp": "Attachments inherit the page’s classification but carry no marking in their content. “Block” rejects uploads to classified pages server-side.",
|
||
"uploadPolicyWarn": "Warn — allow the upload with a clear notice",
|
||
"uploadPolicyBlock": "Block — reject uploads to classified pages",
|
||
"vsNfd": {
|
||
"title": "VS-NfD profile",
|
||
"intro": "The deployment compares the running configuration against the hardening guide's reference configuration (deploy variable VS_NFD_MODE).",
|
||
"modeLabel": "Active mode",
|
||
"modes": {
|
||
"marked": "marked — deviations are shown",
|
||
"hidden": "hidden — deviating options are not offered",
|
||
"enforced": "enforced — deviating configuration is rejected server-side"
|
||
},
|
||
"compliant": "The running configuration matches the reference configuration.",
|
||
"violations_one": "{{count}} setting deviates from the reference configuration:",
|
||
"violations_other": "{{count}} settings deviate from the reference configuration:",
|
||
"referenceValue": "Reference value: {{value}}",
|
||
"guideRef": "Hardening guide §{{section}}"
|
||
}
|
||
},
|
||
"landing": {
|
||
"title": "Landing page",
|
||
"hint": "The public home page (/) content as Markdown. Leave empty to show the built-in welcome text.",
|
||
"label": "Landing page content (Markdown)",
|
||
"save": "Save landing page",
|
||
"saved": "Saved."
|
||
},
|
||
"appearance": {
|
||
"title": "Appearance",
|
||
"legend": "Color scheme",
|
||
"light": "Light",
|
||
"dark": "Dark",
|
||
"system": "System setting",
|
||
"hint": "“System setting” follows the device’s light/dark mode. Applies to this device.",
|
||
"cycle": "Switch color scheme (current: {{mode}})",
|
||
"accentLegend": "Accent color",
|
||
"presets": {
|
||
"pond-green": "Pond green (default)",
|
||
"lake-blue": "Lake blue",
|
||
"iris-violet": "Iris violet",
|
||
"reed-teal": "Reed teal",
|
||
"stone-slate": "Stone slate"
|
||
},
|
||
"custom": "Custom color",
|
||
"customPick": "Pick a custom accent color",
|
||
"accentHint": "The chosen color is automatically lightened or darkened per mode so text stays readable. Applies to this device."
|
||
},
|
||
"interaction": {
|
||
"title": "Interaction",
|
||
"disableSingleKey": "Disable single-key shortcuts",
|
||
"disableSingleKeyHint": "Turns off the “e” (edit) and “/” (search) shortcuts — helpful with speech input. Applies to this device."
|
||
}
|
||
}
|