Parity changelog
How the feature-parity map changed across releases — generated by diffing the parity tables between consecutive v* tags.
Current (latest-eec3e8c): 138 🟢 Real · 9 🟡 Emulated · 3 🟠 BYO-engine · 8 🔴 Not implemented.
v0.1.0 → v0.3.0
Section titled “v0.1.0 → v0.3.0”- Key Vault references in connections: 🔴 → 🟢
- Blob surface: 🔴 → 🟢
- Delta commits (put-if-absent atomicity): 🔴 → 🟢
- Shortcuts (OneLake → OneLake): 🔴 → 🟢
- notebookutils / mssparkutils (fs, credentials, getSecret, lakehouse, runtime): 🔴 → 🟢
- Spark session / statement / batch via the Livy API: 🔴 → 🟢
- Notebook cell execution: 🔴 → 🟢
- Livy High-Concurrency (5-REPL) sessions: 🔴 → 🟢
- SQL-analytics-endpoint semantics over lakehouse Delta: 🔴 → 🟢
- T-SQL over TDS + Entra FedAuth: 🔴 → 🟢
- Lakehouse SQL analytics endpoint — Delta → engine: 🔴 → 🟢
- Warehouse — read-write T-SQL: 🔴 → 🟢
- Per-item isolation (each item = its own SQL Server database): 🔴 → 🟢
- RBAC → SQL permissions: 🔴 → 🟢
- information_schema / sys. introspection: 🔴 → 🟢
- Per-column type fidelity (real SQL types over the wire): 🔴 → 🟢
- Connection by item name (vs GUID): 🔴 → 🟢
- Data Pipeline control flow (If / ForEach / Until / Switch / Filter / Fail, expression language, dependsOn): 🔴 → 🟢
- Pipeline → notebook activity (TridentNotebook): 🔴 → 🟢
- queryactivityruns detail: 🔴 → 🟢
- Copy activity — OneLake → OneLake: 🔴 → 🟢
- Lookup activity — OneLake CSV/JSON/Parquet/Delta: 🔴 → 🟢
- GetMetadata activity — OneLake path: 🔴 → 🟢
- Web / external-connector leaves: 🔴 → 🟡
- Mirroring — Mirrored Database (mirroring/): 🟡 → 🟢
- Power BI — Semantic Model query (executeQueries): 🔴 → 🟢
- Power BI — Reports / rendering; full DAX; SemPy over XMLA: 🔴 → 🟡
- Fabric CLI fab (Microsoft): 🔴 → 🟢
- deltalake (delta-rs): 🔴 → 🟢
- azure-storage-file-datalake + Blob SDK: 🔴 → 🟢
- azcopy (Microsoft): 🔴 → 🟢
- DuckDB: 🔴 → 🟢
- PySpark behind the Livy API: 🔴 → 🟢
- notebookutils: 🔴 → 🟢
- go-mssqldb: 🔴 → 🟢
- dbt-fabricspark (Microsoft): 🔴 → 🟢
- dbt-fabric (Microsoft): 🔴 → 🟢
- abfss://…@onelake.dfs.fabric.microsoft.com/… production paths: added 🟢
- Delta write/read/append; SQL over temp views: added 🟢
- Time travel option(“versionAsOf”, n): added 🟢
- MERGE INTO: added 🟢
- createDataFrame(local_rows): added 🟢
- sc / RDD API / spark._jvm: added 🔴
- DML row-count envelopes (INSERT/MERGE counts): added 🟡
- Structured streaming, OPTIMIZE/VACUUM, CDF, Java/Scala UDFs, spark.jars: added 🔴
- Concurrent Delta writers to one table: added 🔴
- Fabric SQL Database (database/) — OLTP + OneLake mirror: added 🟢
- Per-activity policy — retry + backoff + timeout: added 🟢
- ForEach sequential / parallel (isSequential, batchCount): added 🟢
- List pagination (continuationToken): added 🟢
- Invoke pipeline (ExecutePipeline): added 🟢
- Script / SqlServerStoredProcedure activities: added 🟢
- Fabric SQL Database (database/), Graph (graph/), Real-Time Hub, Copilot / IQ (iq/), Embed, Workload Dev Kit: added 🔴
- Azure Synapse dedicated SQL pool (dbt-synapse): added 🟢
- Azure Data Lake Analytics — U-SQL / SCOPE (dbt-scope): added 🟠
- ADLS Gen1: added
- ADLS Gen2 (standalone storage account): added 🟢
v0.3.0 → v0.4.0
Section titled “v0.3.0 → v0.4.0”- Purview / sensitivity labels (governance/): added 🔴
- Lineage (catalog graph): added 🟢
- Purview / lineage / sensitivity labels (governance/): removed
v0.4.0 → v0.4.1
Section titled “v0.4.0 → v0.4.1”No parity changes.
v0.4.1 → v0.5.0
Section titled “v0.4.1 → v0.5.0”- Shortcuts to external targets (S3 / ADLS Gen2 / Dataverse): 🔴 → 🟢
- Dataflow Gen2 (Power Query M engine): 🔴 → 🟡
- Data Science — ML models / experiments / MLflow (data-science/): 🔴 → 🟢
- dbt-fabricspark (Microsoft): 🟢 → 🟠
- Environments: added 🟢
- Spark Job Definitions: added 🟢
- Structured streaming, OPTIMIZE/VACUUM, Java/Scala UDFs: added 🔴
- CDF options, spark.jars: added 🔴
- Concurrent Delta overwrite writers: added 🟢
- Activity-level lineage: added 🟢
- Apache Airflow Job: added 🟢
- Deployment pipelines — model, assignment, item pairing, Deploy Stage Content (D0–D2): added 🟢
- Deployment pipelines — role-assignment CRUD (D3): added 🟢
- Fabric Data Engineering VS Code extension 1.18.1 contract (Microsoft): added 🟢
- Apache Airflow 2.10.5: added 🟢
- MLflow 3 + dbt-duckdb: added 🟢
- Environments, Spark Job Definitions: removed
- Structured streaming, OPTIMIZE/VACUUM, CDF, Java/Scala UDFs, spark.jars: removed
- Concurrent Delta writers to one table: removed
- Deployment pipelines: removed
v0.5.0 → v0.6.0
Section titled “v0.5.0 → v0.6.0”- Real-Time Intelligence — Eventhouse / KQL Database (real-time-intelligence/): added 🟡
- Real-Time Intelligence — Eventstream (real-time-intelligence/event-streams/): added 🟡
- azure-kusto-data (Microsoft) + raw Kusto REST, over kustainer (Microsoft’s own KQL engine): added 🟠
- Real-Time Intelligence — Eventhouse / KQL DB / Eventstream (real-time-intelligence/): removed
v0.6.0 → v0.7.0
Section titled “v0.6.0 → v0.7.0”- Governance domains (/v1/admin/domains): added 🟢
- Tenant settings / audit (activityevents) / other admin-portal APIs: added 🔴
- CopyJob, KQLDashboard, KQLQueryset, Reflex (Data Activator), WarehouseSnapshot: added 🟡
- Tenant settings / audit / admin-portal APIs: removed
v0.7.0 → v0.7.1
Section titled “v0.7.0 → v0.7.1”No parity changes.
v0.7.1 → v0.8.0
Section titled “v0.7.1 → v0.8.0”- Activity log / audit (GET /v1.0/myorg/admin/activityevents): added 🟢
- Tenant settings / other admin-portal APIs: added 🔴
- Graph (graph/), Real-Time Hub, Copilot / IQ (iq/), Embed, Workload Dev Kit: added 🔴
- Tenant settings / audit (activityevents) / other admin-portal APIs: removed
- Fabric SQL Database (database/), Graph (graph/), Real-Time Hub, Copilot / IQ (iq/), Embed, Workload Dev Kit: removed
v0.8.0 → v0.9.0
Section titled “v0.8.0 → v0.9.0”- Items CRUD + typed collections: added 🟢
- Tenant settings (GET /v1/admin/tenantsettings): added 🟢
- Tenant-wide workspace admin (GET /v1/admin/workspaces): added 🟢
- Tenant-wide item admin (GET /v1/admin/items): added 🟢
- Capacity tenant-setting overrides (GET /v1/admin/capacities/delegatedTenantSettingOverrides, POST …/{capacityId}/delegatedTenantSettingOverrides/{name}/update): added 🟢
- Sensitivity labels (bulkSetLabels / bulkRemoveLabels): added 🟢
- Purview scanning / classification (governance/): added 🔴
- Structured streaming: added 🔴
- OPTIMIZE / VACUUM (Delta maintenance): added 🔴
- Java/Scala UDFs, spark.jars: added 🔴
- Items CRUD + 12 typed collections: removed
- Tenant settings / other admin-portal APIs: removed
- Purview / sensitivity labels (governance/): removed
- Structured streaming, OPTIMIZE/VACUUM, Java/Scala UDFs: removed
v0.9.0 → v0.10.0
Section titled “v0.9.0 → v0.10.0”- OPTIMIZE / VACUUM (Delta maintenance): 🔴 → 🟢
- dbt-fabricspark (Microsoft): 🟠 → 🟢
- Time travel — DataFrame option and SQL VERSION AS OF: added 🟢
- Change Data Feed: added 🟢
- spark.jars: added 🔴
- Time travel option(“versionAsOf”, n): removed
- CDF options, spark.jars: removed
v0.10.0 → v0.11.0
Section titled “v0.10.0 → v0.11.0”No parity changes.
v0.11.0 → v0.11.1
Section titled “v0.11.0 → v0.11.1”No parity changes.
v0.11.1 → v0.12.0
Section titled “v0.11.1 → v0.12.0”- List Item Job Instances (GET …/jobs/instances): added 🟢
- Item Job Scheduler (…/items/{id}/jobs/{jobType}/schedules): added 🟢
- Sensitivity labels → catalog: added 🟢
- Nested CTEs (WITH x AS (WITH y AS …)): added 🟢
- CTAS (CREATE TABLE … AS SELECT): added 🟢
- Class B strict mode (-tsql-strict): added 🟢
- CopyJob, KQLDashboard, KQLQueryset, WarehouseSnapshot: added 🟡
- Event triggers — Reflex (Data Activator) on OneLake events: added 🟢
- CopyJob, KQLDashboard, KQLQueryset, Reflex (Data Activator), WarehouseSnapshot: removed
v0.12.0 → v0.13.0
Section titled “v0.12.0 → v0.13.0”- Data-flow lineage beyond OneLake: added 🟢
v0.13.0 → v0.13.1
Section titled “v0.13.0 → v0.13.1”No parity changes.
v0.13.1 → v0.14.0
Section titled “v0.13.1 → v0.14.0”No parity changes.
v0.14.0 → v0.14.1
Section titled “v0.14.0 → v0.14.1”No parity changes.
v0.14.1 → v0.15.0
Section titled “v0.14.1 → v0.15.0”No parity changes.
v0.15.0 → v0.15.1
Section titled “v0.15.0 → v0.15.1”No parity changes.
v0.15.1 → v0.15.2
Section titled “v0.15.1 → v0.15.2”No parity changes.
v0.15.2 → v0.15.3
Section titled “v0.15.2 → v0.15.3”No parity changes.
v0.15.3 → v0.16.0
Section titled “v0.15.3 → v0.16.0”No parity changes.
v0.16.0 → v0.16.1
Section titled “v0.16.0 → v0.16.1”No parity changes.
v0.16.1 → v0.17.0
Section titled “v0.16.1 → v0.17.0”- Environments: 🟢 → 🟡
v0.17.0 → v0.18.0
Section titled “v0.17.0 → v0.18.0”- Environments: 🟡 → 🟢
- DML row-count envelopes (INSERT/MERGE counts): 🟡 → 🟢
- notebookutils.notebook.runMultiple — DAG structure and ordering: added 🟢
- notebookutils.notebook.run — exit values: added 🟢
- runMultiple — failure contract: added 🟢
- Reference-run lakehouse rule: added 🟢
- runMultiple — retry and timeouts: added 🟢
- runMultiple — concurrency: added 🟡
- runMultiple — child Spark sessions: added 🟡
- Web / WebHook activity: added 🟢
- REST connector — RestSource and RestSink in a Copy, with pagination: added 🟢
- Salesforce — SalesforceV2Source and SalesforceV2Sink in a Copy: added 🟢
- External-connector leaves (ServiceNow, …): added 🟡
- Web / external-connector leaves: removed
v0.18.0 → v0.19.0
Section titled “v0.18.0 → v0.19.0”- Item job execution (jobs/instances): 🟡 → 🟢
- Purview Data Map ({endpoint}/datamap/api/atlas/v2/…) — split out of the old single “Purview scanning / classification” row, because its three parts have different ceilings: this one is reachable and moving, scanning is reachable in-family, and the built-in classifiers can never move. One 🔴 made them look equally stuck, and became actively wrong the moment this landed: added 🟡
- Purview scanning (scan/): added 🔴
- Purview system classifiers (the ~200 built-ins): added 🔴
- Materialized lake views: added 🟢
- Delete data activity: added 🟢
- Script / SqlServerStoredProcedure / SqlPoolStoredProcedure activities: added 🟢
- HDInsight Spark activity (HDInsightSpark): added 🟢
- Azure Databricks activities (DatabricksNotebook, DatabricksSparkPython, DatabricksSparkJar): added 🟢
- Azure Batch activity (ADF Custom): added 🟠
- Azure ML activities (AzureMLExecutePipeline, AzureMLBatchExecution, AzureMLUpdateResource): added 🔴
- Validation activity: added 🟢
- Azure Data Explorer Command activity (AzureDataExplorerCommand): added 🟢
- HDInsight Hive/Pig/MapReduce/Streaming, U-SQL, SSIS package activities: added 🔴
- Functions activity (AzureFunctionActivity): added 🟢
- Web and WebHook activities: added 🟢
- ServiceNow via RestSource: added 🟢
- CopyJob: added 🟢
- KQLDashboard, KQLQueryset, WarehouseSnapshot: added 🟡
- Power BI — Report items: added 🟢
- Power BI — DAX beyond the bounded subset: added 🟡
- Power BI — SemPy / semantic-link-labs over XMLA: added 🔴
- Purview scanning / classification (governance/): removed
- Script / SqlServerStoredProcedure activities: removed
- Web / WebHook activity: removed
- CopyJob, KQLDashboard, KQLQueryset, WarehouseSnapshot: removed
- Power BI — Reports / rendering; full DAX; SemPy over XMLA: removed
v0.19.0 → v0.20.0
Section titled “v0.19.0 → v0.20.0”No parity changes.
v0.20.0 → v0.21.0
Section titled “v0.20.0 → v0.21.0”- Purview Data Map ({endpoint}/datamap/api/atlas/v2/…) — split out of the old single “Purview scanning / classification” row, because its three parts have different ceilings: this one is reachable and moving, scanning is reachable in-family, and the built-in classifiers can never move. One 🔴 made them look equally stuck, and became actively wrong the moment this landed: 🟡 → 🟢
- Power BI — SemPy / semantic-link-labs over XMLA: 🔴 → 🟢
- Asynchronous outcomes forced (FABRIC_FORCE_LRO): added 🟢
- Variable Library consumed by a Data Pipeline (libraryVariables, @pipeline().libraryVariables.
) : added 🟢
v0.21.0 → v0.22.0
Section titled “v0.21.0 → v0.22.0”- Deleted display names held (FABRIC_NAME_RESERVATION): added 🟢
- notebookutils.notebook.run — exit values OVER REST: added 🟡
- Spark Job Definition and Invoke copy job activities (SparkJobDefinition, InvokeCopyJob): added 🟢
v0.22.0 → v0.23.0
Section titled “v0.22.0 → v0.23.0”- sc / RDD API / spark._jvm: 🔴 → 🟡
v0.23.0 → v0.24.0
Section titled “v0.23.0 → v0.24.0”- ARM-created capacities (FABRIC_ARM_URL): added 🟢
v0.24.0 → v0.25.0
Section titled “v0.24.0 → v0.25.0”- Structured streaming: 🔴 → 🟢
- Azure Batch activity (ADF Custom): 🟠 → 🟢
- Real-Time Intelligence — Eventhouse / KQL Database (real-time-intelligence/): 🟡 → 🟢
- Real-Time Intelligence — Eventstream (real-time-intelligence/event-streams/): 🟡 → 🟢
- Catalog Search (POST /v1/catalog/search): added 🟢
- Fabric Core MCP Server (POST /v1/mcp/core): added 🟢
- read.json(multiLine=True): added 🟢
- Eventstream — Lakehouse destination: added 🟢
- Eventstream — Reflex destination: added 🟢
- Eventstream — Eventhouse destination: added 🟢
- Eventstream — operators: added 🟢
- microsoft/fabric Terraform provider (Microsoft): added 🟢
- Apache Kafka (apache/kafka KRaft) + Fabric Eventstream notebook API on Sail and JVM: added 🟠
v0.25.0 → v0.26.0
Section titled “v0.25.0 → v0.26.0”No parity changes.
v0.26.0 → v0.27.0
Section titled “v0.26.0 → v0.27.0”No parity changes.
v0.27.0 → v0.28.0
Section titled “v0.27.0 → v0.28.0”No parity changes.
v0.28.0 → v0.29.0
Section titled “v0.28.0 → v0.29.0”No parity changes.
v0.29.0 → v0.30.0
Section titled “v0.29.0 → v0.30.0”No parity changes.
v0.30.0 → v0.31.0
Section titled “v0.30.0 → v0.31.0”No parity changes.
v0.31.0 → v0.32.0
Section titled “v0.31.0 → v0.32.0”No parity changes.
v0.32.0 → v0.33.0
Section titled “v0.32.0 → v0.33.0”- OneLake security roles (dataAccessRoles): added 🟢
- Row- and column-level security, applied by the engine: added 🟢
- Two-context execution — the user context holds no service credential: added 🟢
- Direct path access blocked for a narrowed principal: added 🟢
- Row-level security (T-SQL) — CREATE SECURITY POLICY … FILTER PREDICATE: added 🟢
- Column-level security (T-SQL) — GRANT SELECT ON t(col): added 🟢
- Dynamic data masking — ALTER TABLE … MASKED WITH: added 🟢
v0.33.0 → latest-eec3e8c
Section titled “v0.33.0 → latest-eec3e8c”No parity changes.