サポートとセキュリティ
Compatibility matrix
Section titled “Compatibility matrix”| Capability | Linux | macOS | Windows | Chromium | Firefox | WebKit |
|---|---|---|---|---|---|---|
| Node.js 24+ の core package/CLI | 対応 | 対応 | 対応 | — | — | — |
| npm/pnpm による consumer install | 対応 | 対応 | 対応 | — | — | — |
pinned Rust toolchain と wasm-pack による Rust/Wasm generation | 対応 | 対応 | 対応 | — | — | — |
| Python/Pyodide asset generation | 対応 | 対応 | 対応 | — | — | — |
wasm32-wasi-ghc 9.14 による Haskell/WASI generation | 対応 | 対応 | 非対応 | — | — | — |
| built static site と Rust/Python/Haskell execution | — | — | — | 対応 | 対応 | 対応 |
| 生成済み Haskell Wasm の表示 | — | — | 対応 browser host | 対応 | 対応 | 対応 |
package boundary は Node.js 24 以上です。repository は pnpm 11.2.2 を使い、consumer は npm/pnpm を使えます。native Windows では Haskell cell を author/generate できませんが、Linux/macOS で作った Haskell Wasm を serve/view できます。
実行 model
Section titled “実行 model”author-provided Rust、Python、Haskell source は、reader が cell を実行したとき browser worker 内で動く code になります。worker は重い処理を page UI thread から分離しますが、別 machine/account 相当の security boundary ではありません。
- Rust helper crate と generated Wasm は build input で、application dependency と同様に review が必要です。
- Pyodide と declared Python package は site origin 内で実行され、worker 内でも trusted dependency です。
- Haskell は Oxiquill が渡した descriptor だけを持つ WASI shim で動きますが、generated module は executable content です。
- worker timeout は responsiveness を守るもので、任意 code の安全性や confidentiality を証明しません。
untrusted author の interactive code/generated runtime asset を review なしで公開しないでください。secret を static page、worker message、source、public asset、client に露出する build-time environment に置かないでください。
Mermaid、image、runtime asset
Section titled “Mermaid、image、runtime asset”Mermaid source は author content で、Mermaid strict security level で render されます。公開前に review し、Mermaid 自体も更新してください。generated/downloaded Wasm、Pyodide JavaScript、lockfile-selected wheel、mirror は executable supply-chain input です。Oxiquill は download integrity を確認しますが、意図的に選んだ package の信頼性までは保証しません。
image data は browser image decoder に渡されます。SVG は page DOM に inject せず image context で表示しますが、malformed/hostile media も browser parser を使います。author-provided image/public media は untrusted input として扱い、supported patched browser を使ってください。
Sandboxed HTML
Section titled “Sandboxed HTML”HTML artifact は空の sandbox attribute と referrerPolicy="no-referrer" を持つ iframe 内で表示します。allow-scripts、allow-same-origin、allow-forms、allow-popups、allow-top-navigation、download permission は与えません。そのため script 実行、parent DOM や same-origin storage/cookie への access、form submit、popup、download 開始、top-level navigation はできません。
Oxiquill は srcdoc の先頭に default-src 'none'; img-src data: blob:; media-src data: blob:; style-src 'unsafe-inline'; font-src data:; base-uri 'none'; form-action 'none' という Content Security Policy を追加します。reviewed presentation artifact に必要な inline style と data/blob image/media だけを残し、HTTP(S) などの external subresource request を block します。明示的な base/form directive により、markup は URL resolution や form destination を変更できません。iframe policy は referrer も抑止します。
sandbox と CSP は isolation control であり、HTML sanitization ではありません。browser は supplied markup を引き続き parse し、user は isolated frame 内の text/link など通常の content を操作できます。可能なら typed text、JSON、table、chart、image artifact を使い、HTML は reviewed author からだけ公開してください。
Security issue の報告
Section titled “Security issue の報告”疑わしい vulnerability を public issue に書かず、GitHub private vulnerability reporting を使ってください。supported-version policy と response process は repository の security policy にあります。security 以外の bug/support は GitHub Issues を使います。