hyperpbi

Migration and versioning

HyperPBI dashboard schema 2.0 is the only active authoring and rendering contract. Production code rejects dashboard schema 1.0 and missing versions; it never silently infers or migrates a dashboard version.

The dashboard schema version is separate from:

Those independent protocols may have their own version numbers without changing the dashboard schema contract.

Canonical dashboard schema 2.0

Every dashboard starts with an explicit root:

{
  "version": "2.0",
  "components": []
}

Schema 2.0 requires globally unique stable component IDs, rejects unknown properties, resolves Field Manifest aliases or canonical field keys, and supports named datasets, definitions, application patterns, responsive rules, calculations, maps, tables, charts, SVG, interactions, UI actions, and security sanitization.

Removed production compatibility paths

The visual, editor, preparation pipeline, renderer, AI importer, preview/save flow, and shared playground-facing runtime do not import or call a schema 1.0 migrator. The production field resolver does not translate display names or old normalized field keys.

The following schema 1.0-only forms were removed from the active contract:

Canonical schema 2.0 components that also existed historically remain supported under their documented 2.0 properties.

Standalone development converter

Use the temporary converter only during development:

npm run schema:migrate-v1 -- old-dashboard.json converted-dashboard.json

The converter:

The converter lives at scripts/migrate-schema-v1-to-v2.mjs. It is not imported by production source, included in the src/visual.ts dependency graph, or packaged in PBIVIZ archives.

Field mappings and business aggregations are never guessed merely to satisfy validation. Review converted interactions, fields, map bindings, and output before replacing a production dashboard.

Map compatibility after the analytical expansion

Existing 2.0 Power BI and ArcGIS map layers, popup/tooltip/label definitions, joins, clusters, rectangle/lasso tools, and interaction policies remain supported. Legacy toolbar.rectangleSelection/toolbar.lassoSelection still enable the corresponding tool; new specifications should author structured tools definitions.

Existing renderer.type: "heatmap" specifications now render real weighted canvas intensity instead of bounded point-symbol fallback. Set interactivePoints: true when selection of heat source records is required. Heat pixels themselves are not selectable. New fields and runtime behavior are listed in the July 2026 map release note.

Package commands for maintainers

npm run package:core
npm run package:maps
npm run package:verify

Maps declares approved HTTPS host families. Set HYPERPBI_MAP_HOSTS to add exact hosts or concrete-domain subdomain wildcards at package time. Runtime WebAccess and endpoint CORS are still required. See Map services and Security.