Deploy a native Report¶
Keep your native .Report beside its semantic model. Build deploys the model first, then binds the Report to that deployed model without rewriting the local definition.pbir.
Start with the linked pair¶
Continue the native Parcel model in the same project, keeping its overlays. Initialise has already written its linked Report. If you are starting here, install Weaver and generate the pair:
Open PowerBI/Parcel/Parcel.pbip in Desktop to inspect the Report. Its association is authored in PowerBI/Parcel/Parcel.Report/definition.pbir:
{
"$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definitionProperties/2.0.0/schema.json",
"version": "4.0",
"datasetReference": {
"byPath": {
"path": "../Parcel.SemanticModel"
}
}
}
The path is relative to the .Report directory. Keep the complete native Report payload as well as this file; the example includes its page and card definitions. Native project layout describes discovery for your own project.
This starts in Power BI-only mode, without a Catalogue. Native-only Initialise writes the linked pair, workspace configuration and supporting local project files; it creates no Catalogue Warehouse or Fabric Environment by default. This inline model and Report need no Lakehouse, Warehouse workload or Spark runtime. Use an existing, suitably licensed Power BI service workspace with the permissions described below.
Choose the destination and Build¶
Use the generated workspace-config.yml. It already binds SemanticModel/Parcel and Report/Parcel to their physical items in Parcel Development. Keep any Lakehouse or Warehouse bindings in that file.
Build can create missing selected models and Reports or update existing ones. Choose item names you own. Sign in with an identity allowed to create/update and read back both items; the service licence and capacity must support the model mode. Service requirements give the platform boundaries.
Run from the example directory:
The command returned:
Workspace Parcel Development
Catalogue none
Targets
SemanticModel/Parcel
Report/Parcel
Build
Create Report/Parcel 20.6s
Create Power BI items 20.6s
Resolve semantic data sources 0.0s
Resolve SemanticModel/Parcel 0.0s
Resolve Report/Parcel 0.0s
Read target inventories 0.2s
Read semantic sources 0.0s
Prepare bundle 0.0s
Install selection
SemanticModel/Parcel
changed 1
selected for build 1
Report/Parcel
changed 1
selected for build 1
→ SemanticModel/Parcel · Deploy semantic definitions · 1 action
✓ SemanticModel/Parcel · Deploy semantic definitions · 1 action 21.0s
→ SemanticModel/Parcel, Report/Parcel · Verify deployed semantic definitions · 1 action
✓ SemanticModel/Parcel, Report/Parcel · Verify deployed semantic definitions · 1 action 20.5s
→ Report/Parcel · Deploy Report definitions · 1 action
✓ Report/Parcel · Deploy Report definitions · 1 action 20.4s
→ Report/Parcel · Verify deployed Report definitions · 1 action
✓ Report/Parcel · Verify deployed Report definitions · 1 action 20.9s
Install 1m22s
✓ Build 1m43s
Installation
4 succeeded
0 failed
0 skipped
Report [local-path]
Bundle ca0aeddd18fafaf4a715693285d9d933b0dd6b057bb7feb7588e13780e3e8f21
Check validates local definitions, not service access. These two selectors deploy the inline model and its linked Report without selecting any additional source-backed models. Build deploys and verifies Parcel before deploying the Parcel Report, then verifies the Report definition and its actual model binding. The deployed payload uses the resolved service workspace/model IDs; your authored byPath and native files stay unchanged.
Without a catalogue, a linked Report must include its local model in the same Build. In a catalogue-backed project, a Report-only Build can use an already certified installed model whose recorded binding matches the resolved destination and source requirements. See Report binding before selecting only Report/Parcel.
Inspect the Report¶
In the service workspace, find the Parcel Report and check that its linked model is Parcel in Parcel Development. Open the workspace’s lineage view and follow the Report’s model link. Confirm it points to the Parcel semantic model in this workspace, not a similarly named model in another destination.
To view the generated Report’s card after loading its inline data, refresh the model with an identity allowed to refresh it:
With permission to view the Report and query its model, open the card: it shows Delivery Count 2. Reports have no separate Load, Test or refresh operation; data refresh and validation belong to the model.
The development Report now has a destination-specific model binding while the source still names ../Parcel.SemanticModel. Use the same Report in development and production by selecting a second configuration, not editing that path.