dorfteich/apps/api/assets
Claude Opus 5 7f0a86b84c
Some checks failed
CI / Lint, typecheck, test (pull_request) Failing after 1m4s
CI / Auth e2e pack (pull_request) Has been skipped
CI / Import/export fidelity gate (pull_request) Has been skipped
CI / Build container images (pull_request) Has been skipped
#304: declare the font-list route's access rule explicitly
The route-permission fence (#52) failed in CI, not locally: I had run the
fonts and import-export suites, not the full api suite, and the fence needs
a database. `@AuthenticatedOnly()` is the rule the route always meant — a
session, no further permission.
2026-08-01 18:46:15 +02:00
..
default-favicon-32.png #304: declare the font-list route's access rule explicitly 2026-08-01 18:46:15 +02:00
default-favicon-180.png #304: declare the font-list route's access rule explicitly 2026-08-01 18:46:15 +02:00
README.md #209: pandoc reference documents carry the VS-NfD marking for DOCX/ODT 2026-07-31 07:09:47 +02:00
reference-vs-nfd.docx #209: pandoc reference documents carry the VS-NfD marking for DOCX/ODT 2026-07-31 07:09:47 +02:00
reference-vs-nfd.odt #209: pandoc reference documents carry the VS-NfD marking for DOCX/ODT 2026-07-31 07:09:47 +02:00

Runtime assets

reference-vs-nfd.docx / reference-vs-nfd.odt (issue #209, ADR 0022)

Pandoc reference documents for the DOCX/ODT export of a classified page: their page setup defines a header and footer carrying the VS-NfD marking, which pandoc copies into its output — so the marking repeats on every page in Word and LibreOffice and is not deletable body text. Unclassified exports pass no reference document and are unchanged.

These are derived binaries — never edit them by hand. Source of truth is ../scripts/gen-classified-reference-docs.mjs: it takes the default reference documents of the pinned sidecar (pandoc/core:3.6, the exact image the stages run) and injects the header/footer, with the wording from classificationMarking() in @dorfteich/shared (single source, ADR 0022). Regenerate — after a pandoc pin bump, a wording change, or a layout tweak in the script — with Docker running:

pnpm --filter @dorfteich/shared build   # the script imports the wording
node apps/api/scripts/gen-classified-reference-docs.mjs

Commit script and binaries together. The fidelity suite (export.fidelity.test.ts) asserts against the real pinned pandoc that a marked export carries the header/footer parts and an unmarked one does not.

Per-page verification in the office suites

After regenerating, confirm the marking repeats on every page of a multi-page export (not just structurally in the XML):

  1. Produce a marked multi-page export (any classified page with a few screens of text, exported to .docx and .odt).
  2. LibreOffice (scriptable): soffice --headless --convert-to pdf <file> and check every PDF page shows the marking twice (header + footer) — e.g. with pypdf.
  3. Word: open the .docx, check header and footer on every page (print preview). Word's AppleScript/sandbox makes this hard to script — this step is a quick manual look.

Last verified 2026-07-31 (pandoc 3.6 output): LibreOffice 25.8, both formats, 5/5 pages with 2 markings each. Word: manual check pending — sample files in the workspace under doku/209-marked-sample.docx/.odt.