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:
pbiviz.json and package.jsonhyperpbi-change envelope protocol version used for bounded AI edit operationsThose independent protocols may have their own version numbers without changing the dashboard schema contract.
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.
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:
drawer and filterDrawer; use offcanvasstepper; use steps for workflow progress or collapsible for collapsible contenttabs[].components and tabs[].content; use tabs[].childrenchildren; use items[].childreninternal, external, and table selectable; use interactionselectionMode; use interaction.internalMode, interaction.selectionMode, and interaction.internalScopeaction and actionValue; use uiActionengine, including "tabulator"; the canonical table is nativesettings, map-specific legacy style, top-level popup, and maps without explicit layerslegacyPopupgeneralizeByZoom, minimumGeneralization, maximumGeneralization, and progressiveRenderinglegacyCompatibility, runtimeBindings, __color__, and __size__selectionTarget, externalSelection, crossFilter, and powerBISelection in dashboard JSONCanonical schema 2.0 components that also existed historically remain supported under their documented 2.0 properties.
Use the temporary converter only during development:
npm run schema:migrate-v1 -- old-dashboard.json converted-dashboard.json
The converter:
--overwrite-input is explicitly passed to the underlying Node scriptThe 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.
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.
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.