16. Security, privacy and robustness
disl0.10.116. Security, privacy and robustness
Contents of DISL 0.1
- No code execution. Specifications contain no executable code other than CEL, which is sandboxed, side-effect free and terminating. Plugins are code and MUST be installed through an explicit trust decision.
- Resource limits. Runtimes MUST enforce CEL cost limits (2.5), limits on stored diagram size and element count (
language.limits), hook depth (9.2), import depth (default 16) and path segment counts in custom shapes (default 10 000). - Sanitisation. Inline SVG (shapes, icons) MUST be sanitised: no
<script>, no event handler attributes, no<foreignObject>, no external references except data URIs of images. Markdown in labels and docs MUST be rendered without raw HTML. URIs in labels and links MUST be restricted tohttp,https,mailtoand internal references unless the specification allows more. - Remote resources. Imports, fonts, images and icons from remote URIs SHOULD carry integrity hashes; runtimes MAY block remote loading and SHOULD cache with integrity verification.
- Privacy.
env.useris empty unless the runtime is configured to expose it; DID definitions store user names in metadata only with consent (11.8). Attributes markedsecretare excluded from exports, logs, telemetry and AI assistant context. - Integrity of stored diagrams. Unknown content is preserved (14.3); failed migrations never overwrite originals; saves are atomic.
- Denial of service through geometry. Runtimes SHOULD cap the number of rendered sub-rows in stacking, bands in ordinal axes and grid lines per frame.