mirror of
https://github.com/microsoft/fabric-cicd.git
synced 2026-11-04 12:02:01 +00:00
## 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>
47 lines
1.2 KiB
JSON
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"
|
|
]
|
|
}
|
|
]
|
|
} |