definition.json MigrationThis folder contains a Microsoft Fabric notebook that migrates the installer item state of a Nonprofit Data Solutions (NDS) installer item from the Microsoft-released workload into a new open-source (OSS) workload item.
An NDS installer item keeps all of its state (deployment history, selected modules,
workspace-move metadata) in a single definition.json part of the Fabric item definition.
When moving from the Microsoft-released workload (item type Microsoft.NonprofitData.*,
e.g. Microsoft.NonprofitData.Fundraising) to the open-source workload (a different item
type / display name), this notebook copies that JSON state into the new OSS item so you
don’t have to reconfigure the installer from scratch.
getDefinition operation
and extracts the definition.json part.migrate_schema() (identity passthrough + a schemaVersion
stamp by default, so the OSS schema can diverge later).updateDefinition, preserving
the target’s .platform part (item type / display name are left untouched).The notebook can also auto-discover the source installer item by its item type
(Microsoft.NonprofitData.*) in the current workspace.
deployedItems[] keep their original workspaceId / itemId references.sempy.fabric.FabricRestClient, preinstalled in Fabric).Org.* served by the
DevGateway), the DevGateway must be running so Fabric recognizes the item type;
otherwise getDefinition / updateDefinition on the OSS item return
400 InvalidItemType. Once the workload is published, this is not required.SRC_WORKSPACE_ID — leave empty to use the current workspace.SRC_ITEM_ID — leave empty to auto-discover the Microsoft installer item by
ITEM_TYPE_FILTER (default "NonprofitData"). If more than one candidate is found,
the IDs are printed so you can set this explicitly.DST_WORKSPACE_ID / DST_ITEM_ID — the target OSS item (must already exist).DRY_RUN — keep True first to preview the mapped JSON without writing; set to
False to perform the actual write.DRY_RUN = True output, then re-run the Write + Verify cells with
DRY_RUN = False to migrate.DRY_RUN defaults to True — nothing is written until you opt in.definition.json part and preserves every other part
(including .platform).definition.json before writing, so you can
restore it if needed.