marrow.config.yaml

Global configuration — the settings that are identical across every diagram you build.

One file at the repo root holds everything static across every diagram. Topology files describe a network; this file describes who it belongs to.

marrow.config.yaml
brand:
  name: Acme Networks
  note: Proprietary & Confidential
  logo: brand/logo.svg
  link: https://acme.example.com
  github: https://github.com/acme/network

brand

KeyTypeNotes
namestringShown beside the logo in the sidebar footer, the inspector drawer, and the top brand strip
notestringFooter line — e.g. a classification banner. "" means no line
logopathRelative to this file. A path, never a URL
linkhttp(s) URLThe logo and name link here
githubhttp(s) URLSmall source mark beside the brand

Delete a key, or leave it blank, to fall back to Marrow's own mark.

Logo handling

ExtensionEmbedding
.svgInlined as markup. Use fill="currentColor" so it follows the theme
.png .jpg .webp .gifEmbedded as a data: URI

Height is clamped in the chrome (14–20 px by position), so source size doesn't matter.

Markup is sanitized before inlining: <script>, <iframe>, <object>, <embed>, <link>, <meta>, inline event handlers, and any URL that would reach outside the document are all removed. Problems are reported, not swallowed. This is what keeps the offline guarantee true.

link and github are http(s)-only hyperlinks. Nothing is fetched when a diagram opens; following one is an explicit reader action. Diagrams still render fully offline.

Pointing elsewhere

npm run marrow -- build    input/x.yaml --config brands/customer-a.yaml
npm run marrow -- serve    input        --config brands/customer-a.yaml
npm run marrow -- snapshot input/x.yaml --config brands/customer-a.yaml

This is the supported way to produce differently-branded outputs. There is no per-topology branding — see ADR-0003.

Unknown keys

Unknown keys here warn rather than error (the opposite of topology files, where they're fatal). x- prefixed keys are preserved and ignored.