Docs

Platform profiles

What a platform profile records, from dialect and table format to known traps, and how the agent uses it on every request in your project.

Planned reference

Updated Oct 23, 2026

Docs menu · 25 pagesPlatform profiles

Status

In private development. Early access by invitation. The names, options and formats on this page can change before the first release.

On this page

A platform profile is a structured description of one data platform. When you connect a workspace, Emolysis loads its profile, and the agent uses it on every request. That is how the agent writes Databricks code for Databricks without guessing: platform awareness is data the agent reads, not instructions hidden in a prompt.

What a profile records

Every platform uses the same fields. The field names can change before the first release.

FieldWhat it holds
platformThe platform id: databricks, snowflake or fabric
display_nameThe platform's name as shown to you
profile_versionThe version of this profile
dialectThe SQL dialect generated code is translated into
languagesLanguages the platform runs, such as SQL and Python
table_formatDelta, Iceberg or the platform's native format
merge_idiomHow the platform merges changes into a table
incremental_primitivesThe platform's tools for incremental loads
deployment_unitWhat a deploy produces, such as an Asset Bundle
compute_apisHow work is submitted: jobs, warehouses, sessions
authHow you sign in to the platform
known_trapsMistakes that are easy to make on this platform
local_samplingHow samples are read into DuckDB

What each platform's profile says

Status: Databricks comes first. The Snowflake and Microsoft Fabric profiles are drafts, their connectors are tested only against simulated services, and none of the three platforms' connectors has run on a real account yet.

FieldDatabricksSnowflakeMicrosoft Fabric
DialectDatabricks SQL and PySparkSnowflake SQL and SnowparkSpark SQL and PySpark; T-SQL in warehouses
Table formatDelta, governed by Unity CatalogNative or Iceberg tablesDelta in OneLake
Merge idiomMERGE INTO, with Delta Change Data Feed where it is onMERGE fed by streams; dynamic tablesMERGE on lakehouse Delta tables
Incremental toolsAuto Loader; Lakeflow Declarative PipelinesStreams and tasks; dynamic tablesNotebooks on a pipeline schedule; Dataflow Gen2
Deployment unitDatabricks Asset Bundle (databricks.yml)SQL scripts, tasks, streams and dynamic tablesA PySpark notebook in a workspace
ComputeJobs, SQL warehousesVirtual warehousesSpark job definitions and sessions; SQL analytics endpoint
Sign-inOAuth, or a personal access tokenKey-pair or a programmatic access tokenMicrosoft Entra ID
Known trapsServerless versus classic compute; Unity Catalog grantsUppercase identifier folding; warehouse auto-suspendItem definitions and creation order when deploying through the API
Local samplingA SQL warehouse or Unity Catalog volumesThe Snowflake connector, or a stage as ParquetLakehouse tables through Spark

Each platform has its own page: Databricks, Snowflake and Microsoft Fabric. PostgreSQL is in development as a source and SQL Server is planned as one; both use the same profile format. See Sources.

How the agent uses it

  • The profile is loaded as part of the agent's instructions for every request in that project.
  • Only templates for that platform are offered.
  • Lint rules for that platform run on every pipeline the agent writes, so the known traps are caught before anything runs.
  • Every generated file is tagged with platform and profile_version. A file written for one platform cannot be deployed to another without an explicit translation step. See Deploying.

Known traps, by example

On Databricks, code that works on classic compute can behave differently on serverless compute, and Unity Catalog permissions decide what a job can read. On Snowflake, unquoted identifiers fold to uppercase, and warehouse auto-suspend affects schedules and cost. On Microsoft Fabric, deploying workspace items through the API needs care with item definitions and order. The profile names these so the agent and the lint rules can avoid them.

This is why a profile is data rather than a prompt: a known trap is caught by the platform's lint rules on every pipeline, the same way every time.

Versions

Profiles change as platforms change. A new profile version can add traps or tools; your existing files keep the version they were written with until you update them. The profile_version tag on each file says which one that is.

The same format for every platform

Every platform uses the same profile fields, which is why adding a platform does not change how the rest of Emolysis works. Sources such as SQL Server and PostgreSQL use the same format.

Platform profile, Unity Catalog and OneLake in the glossary. For the connect flow on the first platform, see Connecting Databricks.