Files
f64c94b1f1 Resolves #1000 Onboard GraphModel item type (#1132)
## Summary

Onboards the `GraphModel` item type (full-definition, SPN-supported, Git
source-controlled) following the new item type onboarding process.
Addresses the Graph Model portion of #1000.

## Changes

- **`constants.py`** — added `GRAPH_MODEL = ""GraphModel""` to the
`ItemType` enum and to `SERIAL_ITEM_PUBLISH_ORDER` at the end (position
30), which places it after both `Lakehouse` and `Ontology` to
future-proof source dependencies.
- **`_items/_graphmodel.py`** (new) — a simple `GraphModelPublisher`
using the default publish pipeline.
- **`_items/_base_publisher.py`** — registered the publisher import and
factory mapping.
- **`tests/test_publish.py`** — added `test_publish_graph_model_item`.
- **`docs/reference/item_types.md`** — added a Graph Model section
(Lakehouse-source parameterization guidance and the standalone-only
limitation).

## Notes / scope

- Only **standalone** Graph Models sourcing from a **Lakehouse** are in
scope. Graph Models authored by an Ontology item are not
source-controlled and are not handled as standalone items.
- Lakehouse/workspace references are parameterized via the automatic
generic `find_replace` pipeline in `parameter.yml` — no specialized
parameter key required.
- **Follow-up (manual, needs a real workspace):** add a sample item
under `sample/workspace/`, wire it into `devtools/debug_local.py` and
`tests/test_integration_publish.py`, and regenerate the HTTP trace
fixture.

## Validation

- Import check: passed
- `uv run pytest tests/test_publish.py`: 37 passed
- `uv run ruff check`: passed
- `uv run ruff format --check` (changed files): clean

---------

Co-authored-by: Shira Sassoon <shirasassoon@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-23 11:41:01 +03:00

47 lines
1.2 KiB
JSON

{
"$schema": "https://developer.microsoft.com/json-schemas/fabric/item/graphIndex/definition/graphDefinition/1.0.0/schema.json",
"nodeTables": [
{
"nodeTypeAlias": "274edfe1-62a0-4887-8a55-8bca8aaf13ae",
"id": "5a921cfe-3747-4ee1-b9f7-e5e3c6a8bbec",
"dataSourceName": "publicholidays",
"propertyMappings": [
{
"propertyName": "holidayName",
"sourceColumn": "holidayName"
}
]
},
{
"nodeTypeAlias": "b966c4b0-248c-44bb-8a81-92ab494acd01",
"id": "7ed04448-045e-46b0-ba11-dd323a97b64b",
"dataSourceName": "publicholidays",
"propertyMappings": [
{
"propertyName": "holidayName",
"sourceColumn": "holidayName"
}
]
}
],
"edgeTables": [
{
"edgeTypeAlias": "24650015-a772-4504-af4e-0cae7fa0cba2",
"id": "70336d48-4be6-4f14-9bb4-f6da72bbd4ac",
"edgeIdMapping": null,
"dataSourceName": "publicholidays",
"sourceNodeKeyColumns": [
"holidayName"
],
"propertyMappings": [
{
"propertyName": "holidayName",
"sourceColumn": "holidayName"
}
],
"destinationNodeKeyColumns": [
"holidayName"
]
}
]
}