Skip to content

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.

  • 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 🟢
  • Purview / sensitivity labels (governance/): added 🔴
  • Lineage (catalog graph): added 🟢
  • Purview / lineage / sensitivity labels (governance/): removed

No parity changes.

  • 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
  • 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
  • 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

No parity changes.

  • 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
  • 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
  • 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

No parity changes.

No parity changes.

  • 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
  • Data-flow lineage beyond OneLake: added 🟢

No parity changes.

No parity changes.

No parity changes.

No parity changes.

No parity changes.

No parity changes.

No parity changes.

No parity changes.

No parity changes.

  • Environments: 🟢 → 🟡
  • 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
  • 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

No parity changes.

  • 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 🟢
  • 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 🟢
  • sc / RDD API / spark._jvm: 🔴 → 🟡
  • ARM-created capacities (FABRIC_ARM_URL): added 🟢
  • 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 🟠

No parity changes.

No parity changes.

No parity changes.

No parity changes.

No parity changes.

No parity changes.

No parity changes.

  • 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 🟢

No parity changes.