Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

v0.1.7 — Exporters (STRM TSV, OSCAL JSON, optional SSSOM)

Updated

Make the user’s Tier 1 vault data portable. Three target formats for v0.1 — STRM-shaped TSV (the user-facing wire format from NIST IR 8278A r1 OLIR template), OSCAL JSON profile (for compliance-tool interop), and SSSOM-flavored TSV (optional, for academic interop). Hybrid SSSOM↔STRM resolution per v0.1 stack pivot §6.

📋 Planning

In:

  • STRM-shaped TSV exporter — produces NIST IR 8278A r1 OLIR template format; Excel-friendly
  • OSCAL JSON profile exporter — emits the Control Mapping Model shape; isomorphic to junction notes per Ch 07 synthesis
  • SSSOM-flavored TSV (optional, opt-in) — for users who want to share crosswalks with the SSSOM academic ecosystem
  • Command palette entries: “Crosswalker: Export STRM TSV”, “Export OSCAL profile”, “Export SSSOM TSV”
  • Roundtrip test: STRM TSV → import → STRM TSV produces identical bytes (deterministic)

Out:

  • OSCAL catalog export (deferred to v1.0+)
  • Compliance dashboards / report generation (community phase)
  • AI-assisted mapping suggestions (community phase)
  • STRM TSV exporter — src/export/strm-tsv.ts; reads from sidecar mappings table; emits NIST IR 8278A r1 OLIR template
  • OSCAL JSON profile exporter — src/export/oscal-profile.ts; emits import references + merge rules + crosswalk edges as mapping entries
  • SSSOM TSV exporter — src/export/sssom-tsv.ts; SSSOM mapping format with mandatory metadata header
  • Command-palette + settings UI — three commands; settings toggle for SSSOM (off by default since “zero GRC adoption” per Ch 19)
  • Round-trip tests — export → import → export; assert byte-identical
  • Validation — exports against published STRM / OSCAL / SSSOM JSON Schemas (not all are formal but where they exist)
  • STRM TSV opens cleanly in Excel; column ordering matches NIST IR 8278A r1
  • OSCAL JSON profile validates against the OSCAL JSON Schema (NIST published)
  • SSSOM TSV passes the sssom-py validator (optional CI step)
  • All three exporters handle large vaults (~10K mappings) without UI freeze (cooperative yielding)
  • Round-trip determinism verified
  • src/export/strm-tsv.ts — new
  • src/export/oscal-profile.ts — new
  • src/export/sssom-tsv.ts — new
  • src/export/index.ts — exports + command-palette wiring
  • src/main.ts — register commands
  • tests/export/strm-roundtrip.test.ts — new
  • tests/export/oscal-validation.test.ts — new
  • Where does the user choose the export destination — OS file picker, or a vault path? Both have UX trade-offs
  • OSCAL profile vs. catalog vs. assessment-result — all three are OSCAL types; v0.1 emits which? (Default: profile, since that’s the “import + merge + tailoring” shape that maps to crosswalks. Catalog is a future v1.0+ concern when Crosswalker becomes a publishing platform.)

Concept pages:

Agent context:

Design decisions (synthesis logs):

Research deliverables:

Spec & schema files:

Registry references:

Other milestones: