Skip to content

What's new

The release notes of Entropy Data

Upcoming

2.0.17 (2026-08-21)

Highlights

  • Data Contracts: The check results you already collect can now be summarised as a data quality score out of 100 — for a single data contract, a data product, a team, a domain, or the whole organization. Every score breaks down into the seven ODCS quality dimensions and falls into one of three bands (Excellent, Moderate, At Risk), which decide what it is called and coloured wherever it appears. Each score links to a page carrying a gauge, a daily trend, dimension tiles that filter both, and a drill-down to the worst-scoring contracts; a badge next to the title of every scored entity shows the number and its breakdown on hover. The data contract and data product lists carry the same pill in a column of their own, so entities can be compared against one another; a row with no checks stays empty rather than showing a zero, since no check is not the same as no check passing. The score is off by default — an organization owner switches it on under Settings → Data Quality Score. See Data Quality Score.

The data quality score for an organization, with its gauge, trend and dimension tiles

Data Products

  • Fixed: The data product YAML editor no longer goes blank when you switch the specification type or the schema on the edit page. Cancelling the confirmation now also puts the dropdown back to the type the page was loaded with, so it can no longer disagree with the YAML shown below it.
  • A data product mapped to ODPS now always reports apiVersion v1.0.0, instead of carrying over the version of the specification it was written in.

Data Contracts

  • The details page now shows the whole server block. Fields such as catalog (Databricks), warehouse (Snowflake), region and stagingDir were part of the contract but silently dropped from the page, which rendered only a subset of the server model. Both the ODCS and the legacy DCS views had the same gap.
  • A server now links back to the catalog asset it describes, through a Show Asset button, and every schema whose table the catalog already knows gets the same button — contracts list tables one by one, so the jump belongs per table and not only at the server. Contracts generated from an asset carry the reference that resolves it; a hand-written contract carries none and shows no button. That reference is no longer listed among the server's raw fields, since the button says the same thing.

Assets

  • An asset's detail page now carries a hierarchy tree: every parent above it and its direct children, each one a link. An asset that carries a schema is a leaf of the catalog tree, so its card had been a bare chain of parents with nothing under it — it now lists that asset's siblings, the neighbouring tables of the same schema, at the same indent. Assets that have children keep the card as it was, since listing siblings on top would bury them. Both lists are capped at 50: a schema can hold thousands of tables, and the card is a navigation aid rather than a second listing.
  • The Schema section now sits above the custom properties — the schema is what a reader of an asset came for, the custom properties are the ingestion's bookkeeping. It also stopped rendering for assets that have no columns at all: the check recognised only one spelling of an empty schema, so assets whose ingestion wrote another carried a Schema heading with a Structure/Source toggle and nothing underneath.

Semantics

  • Saving an ontology now replaces the namespace instead of merging into it. The three authoring paths that start from a full export — the ontology PUT endpoint, the MCP bulk save and the YAML editor — treat the document as the complete state of the namespace, so dropping a concept, a relationship or an extends entry and saving again now removes it. Every save was an upsert before, which meant things could be added and changed but never deleted except through the per-concept endpoints or by deleting the whole namespace. Importing an ontology still merges: a standards document such as FIBO or TMF SID is one layer laid into a namespace and must not speak for concepts it never mentions. Namespace metadata keeps merging as well, so applying a document that says nothing about a display name or an owner cannot wipe it, and relationships that belong to another namespace's document are left to it. Deleting a concept cascades to the relationships reaching it from other namespaces, since an edge cannot outlive either endpoint.

  • Fixed: The namespace diagram now draws the relationships that leave the namespace. An edge was drawn only when both of its endpoints happened to be visible leaves of the namespace on screen, so a role naming a concept of another namespace vanished from it — while the concept diagram, which resolves neighbours regardless of namespace, went on showing the same relationship. Relationships pointing at a plain property, which is drawn inside its owning entity rather than as a node of its own, disappeared the same way. Both endpoints now get a node of their own, badged with their namespace when it differs from the one on screen, and each node links into the namespace it actually lives in rather than the one being viewed.

  • An ontology now survives a round trip unchanged. Exporting a namespace and saving the document back is the way a namespace is copied between instances, and several things were lost on the way. A relationship was identified by its name, so two edges both called "owns" collapsed into one row and the survivor kept the wrong endpoints — opening the YAML editor and pressing Save was enough to lose half of them; a relationship is now identified by the edge it describes, and two edges of the same type between the same pair are refused with a message rather than silently merged. A group inside another group was neither written by the export nor read by the import, so hierarchies arrived flat. A relationship could not name a group the same document declares, so every edge touching a group was dropped. The export invented a name and a verbalization for relationships that carried neither — the specification requires both — and the import stored them back, so a save that changed nothing rewrote every relationship it touched and recorded it in the audit trail. And extends entries came out in a different order on every instance, which made an exported ontology impossible to diff or keep in version control.

  • Semantic writes that touch several rows now either complete or leave nothing behind. Saving a concept writes the concept, its group membership and its properties in turn; creating a property inline writes the property and the link that ties it to its entity; deleting a namespace deletes its concepts and then the namespace itself. A failure part-way through used to commit the first half and report an error for the whole thing — a concept renamed by a request that was rejected, a property owned by nothing, a namespace whose concepts were gone. The REST endpoints for concepts and ontologies behave the same way, and a concept naming a group that does not exist is now refused before anything is written rather than rolled back after.

  • Semantics now opens on the namespace overview, whatever the namespace count. That page is where a namespace is created and where an ontology is imported, so going straight into the only namespace hid both of those behind a menu on a page about something else; the way back to it is always offered in the namespace switcher. The Add menu on a namespace page drops those two actions accordingly and offers only what that page is about. Every element page now offers Add as well, not only a group: on a group it creates members, and anywhere else it creates siblings, so a second entity lands beside the one you were reading instead of at the root. A subgroup created from the parent picker now takes the id its parent implies, matching what the edit form already suggested — which also means two subgroups of the same name under different parents no longer collide.

  • A viewer who may edit what they are reading can now get to Studio from the marketplace namespace page. The marketplace deliberately shows no edit actions, which left retyping the URL as the only route; element pages have carried the button all along.

  • An inherited parent can now be removed through the MCP tools. extends is the complete list of a concept's parents, so one left out of a semantics_save_concept call is removed and omitting the field removes them all. Adding a parent was possible before but removing one was not: the save only ever added, and deleting the relationship directly was refused with a message pointing back at that same save.

  • Accepting a semantic suggestion now checks that the concept exists. The concept came from the request and was written into the resource without being looked up, so a stale review screen whose concept had since been renamed produced a link that resolves to nothing — it rendered as a semantic reference, contributed no classification, and showed up nowhere on the concept side to reveal that it was broken.

  • An owner or domain that names no team is now refused instead of quietly leaving the concept unassigned. Absent still means no team, but a value that resolves to nothing is a broken reference — and one typo, or one copy into an instance whose teams carry different identifiers, used to strip ownership from every concept the document touched with nothing to show it. Ownership is what the edit and delete permission checks read.

  • Concept pages, namespace diagrams and ontology imports are faster. The queries behind a concept's relationships were not scoped to the organization, so none of them could use an index and each one scanned the whole relationship table — once per node while drawing a diagram, and once per inherited parent while importing an ontology, which made a large import slower the more of it had already been written.

  • Importing an ontology no longer loses classes whose names collide. Two resources whose identifiers end in the same local name — ordinary once one ontology imports another — resolved to the same concept and the second overwrote the first, reported as nothing more than a lower concept count. A concept is now identified by its full identifier and keeps the id it has, so a re-import is stable; a new one is disambiguated by the group it belongs to. Re-importing the same ontology also reports zero creations instead of counting every updated row as a new one, an ontology larger than 100 MB is refused rather than exhausting memory, and the files an import reads are always closed.

Domains & Teams

  • A team's ID can no longer be changed once the team owns something. Data products, data contracts and source systems carry their owning team's ID in their specification and nothing rewrites those references, so renaming the team orphaned them. The edit form now renders the field readonly with a note explaining why, under the same condition that already blocks deleting the team, and a save that changes it anyway is rejected.
  • A team whose membership a SCIM mapping controls now says so on its page, so an owner editing members by hand can see that the identity provider will undo the change on its next sync. It is read from the mapping rather than from the members, so it appears as soon as a rule points at the team — before the provider has ever synced, which is when someone most wants to confirm the rule they wrote — and it keeps saying so about a member the mapping later removes. Visible to organization owners, the only ones who can reach the mapping it describes.
  • Fixed: The "no domains yet" empty state now sits in the same card as the rest of the list page, instead of rendering bare on the page background while the no-match state next to it sat in a card. Marketplace viewers, for whom the Add Domain button is hidden, no longer get a description telling them to create their first domain.

Integrations

  • A broken Git connection now says what is wrong instead of showing a silent "no connection" badge. A revoked token, or a file moved on the remote, left the sync status of a GitHub or GitLab connection as a grey badge with no reason and nothing to act on, while the detail sat in a log only we can read. Such a failure is now surfaced as an error badge carrying the provider's message in a tooltip, with a retry button, the same way every other Git operation already reported it. A 404 before the first sync still reads as no connection, since that is the state that offers the initial push.
  • An MCP OAuth2 token that carries no consent row is now rejected as unauthorized instead of failing the request with a server error. A token can legitimately have no consent row, since the authorization server skips the consent step when openid is the only scope requested; the lookup then raised an error that escaped the authentication machinery, so the client got a 500 with no WWW-Authenticate header and therefore no signal to re-authenticate. It now gets a 401 it can act on.
  • MCP OAuth2 clients are now issued their scopes in one spelling. Two client-provisioning paths had grown separate scope names — the setup wizards handed out the dot form mcp.read / mcp.write while dynamic registration, the advertised metadata and the documentation all use the colon form mcp:read / mcp:write — so a wizard-configured client was given a scope string the server never advertised. New clients are registered with the colon form only. The dot form stays recognized, since clients registered earlier request it and would otherwise be refused; their stored scopes are deliberately left as they are rather than rewritten mid-session.
  • A Trino server URL is now rejected when it is saved unless it is an absolute http(s) URL, and the message names the accepted form. A Trino coordinator is driven over its REST protocol, but the URL was only checked for being non-blank, so a CLI-style host:port saved fine — dots and hyphens are legal scheme characters, so the host parsed as the scheme — and then failed on every connection test with "unknown protocol" instead of at configuration time. Create, update and the YAML update all validate, as do connection tests and asset fetches, so an already-stored URL now fails with the reason.

Administration & API

  • The organization members table can now be sorted by clicking its column headers — Member, Role, or Added. The first click sorts ascending, clicking the active column again toggles to descending. The sort is part of the URL, so a sorted view can be linked and survives pagination. The Member column sorts by the displayed name, falling back to the email address for members who have not set one.
  • A team-scoped API key now also acts on that team's sub-teams, matching how team membership and marketplace visibility already work. Inheritance is strictly downward: a key scoped to a sub-team still gains nothing on its parent or siblings, and a read-only key is still refused write access. The data product and integration list endpoints return the sub-teams' resources accordingly, and the team Git credential endpoints follow the same rule.
  • The groups your identity provider has synced are now visible — name, the identifier it carries at the provider, the value a mapping rule matches on with a copy button, member count, what the mapping does with each one, and when it last changed. They sit on a searchable page of their own, 50 at a time, with the count and the last change left on the SCIM settings page, because a directory can push tens of thousands of groups. It was a blind YAML editor before: groups arrived over SCIM and were invisible, so a rule naming a group that never synced looked no different from one that works. Mapping rules that silently do nothing are now flagged too — an unknown group or team, a missing team ID or member role, an unrecognised type, and YAML that cannot be read. Those cases previously produced only a log entry that no organization owner could see.
  • The SCIM mapping editor now completes an organization's own values — its synced group names, its teams, and its team roles — instead of leaving them to be copied by hand between two pages, with no way to tell a typo from a group that had not synced yet. The page also says which key opens the completion, which is otherwise a shortcut nobody would guess. Nothing is refused for being absent: writing a rule before the identity provider has pushed the group is a normal order of operations, and a rule pointing at something that does not exist is reported by the mapping validation without blocking the document.
  • A rejected API key now names the scope the resource requires, not only the scope the key carries, and the SCIM paths in the OpenAPI spec document that requirement. A user-scoped key previously produced a 403 with no route to the answer.
  • A member can now remove their own user-scoped API keys. The keys were listed for them, but the Remove action required the organization owner role and was refused behind the request that carried it, so it appeared to do nothing at all — a key could be seen by the person it belongs to but only revoked by an owner. Deletion now follows the same rule as the list: owners manage every key in the organization, members their own. The key is also looked up within the organization before it is removed, and a key that is in use at that moment is no longer left in place by a failed delete.

Sign-in

  • A failed single sign-on now lands on a page that explains what happened and what to do about it, instead of being sent back to the endpoint that starts the sign-in — which retried the same failure until the browser gave up and showed its own error. The page distinguishes the cases someone can act on: the account is not assigned to the application in the identity provider, the provider had a temporary problem, or the two sides disagree about the configuration. The provider's own error description is written to the log rather than rendered, since the page is reachable without being signed in. All configured SSO chains land on it.

Security

  • The organization an MCP token acts in is now verified when the request is authenticated, rather than being trusted from the stored consent and re-checked by each tool. The organization id came from the consent form and was stored as posted, and while nearly every tool independently confirmed that the user was an active member of it, three of the semantics tools did not — those three could read another organization's semantic graph for anyone who knew its identifier. No cross-tenant write was reachable, since every writing tool resolved the organization first. Authentication now resolves the organization for the user and fails the request when they are not an active member, so an MCP principal cannot exist with an unverified organization and the gap cannot reopen in a tool added later. Because that check runs per request, a membership revoked after the token was issued now takes effect immediately instead of at token expiry — which matters when refresh tokens live for a year — and the same holds for API keys whose user has left the organization. The consent path validates the posted organization as well, and re-stamps it, so re-consenting into a different organization now takes effect instead of keeping the earlier one.

  • Successful logins no longer record the user's email address in telemetry. Login events now report the same non-PII audit id (user:<id>) used everywhere else in the logs, matching what the failed-login path already did.

  • An API key's name is no longer attached to log records. It is user-chosen free text that is often set to a person's name, and the key is already identified by its non-PII audit id.

  • Prompt and completion content from the AI features is no longer logged outside local development. Prompts carry retrieved context from your data products and contracts, and an Entropy Intelligence answer can contain rows its query tool read from a connected warehouse; both were reaching the telemetry backend along with every other log record.

  • The client IP address is now anonymized on traces as well, not only in the logs. A span carried the raw address while the log record for the same request already showed the coarse form, so the control depended on which instrumentation you looked at. Per-request logs also no longer carry the session id or the remote user.

  • Unhandled errors and rejected create-account forms no longer log raw request data. On the sign-in and registration paths that data is a plaintext password alongside the email address and full name; a rejected form now logs which field failed which constraint instead of the value it rejected.

  • Every released image now carries an SBOM that meets the NTIA minimum elements. It is generated in SPDX after the image is signed and attached with cosign attest, and enriched from the Maven build so that supplier and licence are resolved for each component through the full POM hierarchy, instead of coming back as NOASSERTION for everything that inherits its declaration. The CycloneDX BOM built from the same data ships inside the image at /app/sbom.cdx.json. Both now report the release version rather than a build placeholder, so an SBOM says which build it describes, and Entropy Data's own component is declared proprietary — it previously inherited Apache-2.0 from the Spring Boot parent POM. See SBOM.

  • SPARQL queries can no longer reach out to other hosts. The endpoint rejected updates but left federation enabled, so a SERVICE clause made the server issue an HTTP request to any URL the query named — reachable by any signed-in member through the query page and by a model through the MCP tool. The dataset it queries is a snapshot of the organization's own data, so federation bought the feature nothing. It is refused twice over: the query is rejected before it runs, and the engine is configured so that a shape the check does not recognise still cannot open a connection. The industry-standard ontology import also fetches its files through the same guarded fetcher as every other ontology URL, instead of opening them directly.

  • An API key can no longer take over a namespace it does not own. Updating a namespace authorized only the team it was being moved to, so rights on any one team were enough to claim another team's namespace along with its name, description and read-only flag. Reassigning now requires rights on both sides, the rule the ontology endpoint already applied.

Other Fixes

  • Server-emitted text now follows the user's language setting on the first request of a session as well. The page itself rendered in the chosen language while strings coming from the server fell back to English.
  • Fixed: Elements meant to appear only under a condition no longer render regardless of it. The access menu offered "Request access", "You have access", "Approved" and "Waiting" together, whatever the access actually was; the watch menu ticked both watching and not watching; every tag row drew both a folder and a hash; and the checks badge on an output port card showed for organizations that have checks switched off. Thirty-seven places were written the same way — the rest read correctly only because their condition happened to hold — and all of them now honour it. A test guards against the pattern coming back, since it fails silently by construction.

2.0.16 (2026-08-10)

Highlights

  • Data Contracts: The schema view now shows quality checks and their latest test results per column — a badge with the check's name (or a generic label) and an icon for its ODCS quality dimension, with a lighter outline glyph for passing checks so a failing one stands out. The glyph links straight to the checks page, pre-filtered to the model and field you clicked.

The data contract schema view with a quality check badge per column and a result glyph per row

  • Data Contracts: The contract editor's browse panel can now also browse data products — the upstream products already feeding the current one, or every data product in the organization publishing a contract — letting you drag a field from an upstream schema into the editor to insert or link it, recording the source as transform lineage. See Edit a Data Contract.

The contract editor's browser panel on the Data Products tab, next to the schema editor

  • Semantics: Opening Semantics now lands on a namespace overview instead of always jumping into main — every namespace with its concept, group and relationship counts, plus how many data products use it, populated namespaces first. An organization with exactly one namespace still opens it directly, and an ontology import can be started from the overview, picking its target namespace in the form. See Semantics.

The semantics namespace overview listing each namespace with its group, concept, relationship and data product counts

Data Products

  • Team members and organization owners can now request access to private data products; the action was previously hidden for them entirely, with a tooltip explaining the limited audience.
  • Input port cards now link to the data product that provides them, when it's known.
  • The schema check indicator now shows results per server when a check ran against multiple servers, instead of merging them into a single ambiguous status.
  • The name column on the data products list is wider, so longer product names stay readable instead of truncating early next to their badges.
  • Fixed: With access active, a data product's buy box now always shows a primary action — either the Open In dropdown, when a port has something to open, or a "You Have Access" button linking to the access agreement — instead of sometimes showing nothing.
  • Fixed: A data product without a name — ODPS does not require one — now falls back to its external id everywhere its name is shown: headings, labels, graph nodes, breadcrumbs, flash messages, the search index, emails and channel notifications, and AI tool output. The stored specification is left untouched, so it keeps round-tripping exactly as the producer sent it.
  • Fixed: Saving an output port no longer fails when its server section isn't shown.
  • Fixed: Publishing a data product to the marketplace no longer fails with an optimistic-locking error on a repeated click.
  • Fixed: A data product's lineage graph is now loaded once per page view instead of being refetched by every page fragment update.
  • Fixed: The lineage graph now ranks a data product that both provides to and consumes from the focused one alongside the other providers, instead of placing it in the downstream column next to the consuming teams.
  • Fixed: Team and domain graphs now resolve data product visibility the same way as the rest of the app, and the teams graph now counts domain and subteam data products as well.

Data Contracts

  • The data contract list now has a Semantics column and filter, matching the one on the data product list — filter by concept, including a Not set option for contracts that link none, with irrelevant options greyed out based on the other active filters. Selecting an entity concept also matches contracts linked only through one of its properties.
  • The contract editor now supports custom properties on relationships, so a relationship can carry your own additional metadata alongside its roles.
  • A schema relationship written in the single-column string form is now read as such, so contracts using that ODCS spelling import without a change.
  • Fixed: Specifications whose YAML repeats a key are read again — the last value wins, as before — instead of silently failing to parse, which had, among other things, dropped output port server names in the marketplace.
  • Fixed: The YAML studio editor validates documents again. It reported "0 errors or warnings found" on every document while checking none of them, because a root-relative schema URL aborted the validation pass before any marker was produced. Its icon font now loads reliably as well, independent of the page it is embedded in.
  • Fixed: The contract editor now registers a link drop that involved a long vertical drag, instead of dropping it.
  • Fixed: The contract editor's add-schema buttons no longer insert a schema stub that ODCS 3.1.0 rejects; both buttons now add the same valid stub, with logical and physical type set.
  • Fixed: The contract editor no longer offers a description field on a relationship, which ODCS 3.1.0 does not allow there.

Access Agreements

  • Terminating an access, and an access reaching its end date, now notify both sides — the consumer and the providing team — by email and on the connected notification channels (Slack, Teams, Teams O365, Google Chat). The message names the data product, the output port, and which side the recipient is on. Both are new email types with customizable templates in English and German, and both can be switched off per organization. See Email Templates.
  • The input port badge is now labeled Access Agreement instead of Access Request, matching the term used across the rest of the app.
  • Fixed: The request access page now offers only the roles that apply to the output port — the data contract's root-level roles plus those of the one server the port names — instead of the union of every server's roles. On a multi-server contract, picking a role was mandatory but the offered roles often granted nothing on the target server. The type and environment badges on the request access pages are correct again alongside it.
  • Fixed: Consumer counts on data contract and data product pages now consistently include only active and upcoming consumers.

Semantics

  • A concept's property rows now show a badge with how many data contract properties link to them; hovering lists the linking contracts and their field paths.
  • The concept tree sidebar now shows each node's data product count instead of its subelement count.
  • The namespace switcher now shows each namespace's concept count and links back to the overview, so it reads as a context switcher rather than a filter.
  • Ontology YAML now follows the flattened concept spelling of OSI 0.2.0 — concept holds the concept's name and its remaining fields sit beside it, rather than the concept being a nested mapping. Relationships written in the explicit two-role form now sit at the document root, and the single-concept document behind the YAML editor and the MCP tools uses the same spelling, so a concept can be moved between the two verbatim. The earlier shapes — the nested component and the older namespace block with a flat concepts list — are no longer read; export a namespace again to get a document in the current spelling.
  • Properties imported from the TMF SID standard now get their own IRIs under the standard's scheme, backfilled on re-import, so linking them from the data contract editor references the standard instead of a platform URL.
  • Looking up a concept by reference now also accepts a concept's browser URL, not just its IRI. Data contracts frequently record the URL in an authoritative definition of type semantics, and those references now resolve instead of coming back as not found.
  • The property panel's semantic-link picker now labels a linked target by its kind — Business Definition or Semantic Concept — instead of a generic "definition" label.
  • The concept visualizer now draws a distinct accent-colored ring around the selected concept, so it no longer blends into its highlighted neighbors in dense views.
  • Fixed: The Suggested data products card on a concept's page now loads for concepts nested in a group, instead of staying on its loading skeleton — binding a suggested data product from one of those concepts works again.
  • Fixed: Creating a namespace or starting an ontology import no longer preselects an owner team you aren't allowed to publish to, which made the form look empty and the save fail with an authorization error.
  • Fixed: The property type dropdown on the concept create form now opens upward when there isn't room below, instead of rendering off-screen and becoming unselectable on the last property row.

Domains & Teams

  • Domain pages and their subresources (Git credentials, notification channels, members) now use /domains/ URLs instead of /teams/; existing /teams/ links for domains keep working.
  • A domain's detail page now reads as a domain throughout — its section headings, the member action, and the Git credentials and notification channel copy all say "domain" instead of "team". Organizational units and governance groups keep the team wording. See Domains & Teams.
  • Breadcrumbs now take their labels from the entity's type rather than the URL, so a team opened through a domain link no longer appears under Domains, and a domain opened through a team link no longer appears under Teams. Domain links on data product, data contract, and semantics pages now point straight at the canonical /domains/ URL.

Customization

  • A standard property marked required in the organization customization is now enforced everywhere a data product or data contract is written — through the API and through both YAML editors (ODCS and ODPS) — instead of only in the form editor. The API rejects a violation with a validation error, and the YAML editors flag the missing value while you edit, so the status bar no longer reports a clean document that the save then rejects. See Customizations.

Integrations

  • A connector now shows its version and health on the integrations page — the version next to the connector type, the health as a badge with the time it was last reported and the error message when there is one. A connector that has stopped working no longer looks exactly like one that is fine. Connectors that report nothing keep working and show as not reported. Both fields are now part of the API specification.
  • Fixed: A change in what GitHub, GitLab, or Bitbucket returns no longer breaks the connection. Entropy Data now reads only the fields it actually uses, so an added or altered field elsewhere in the provider's response is ignored.
  • Fixed: Snowflake connections and scheduled ingestions for accounts whose name contains an underscore no longer fail with a certificate error.
  • Fixed: Snowflake OAuth connection popups now show a proper error page instead of failing silently when the flow errors, including during the Entropy Intelligence chat's OAuth flow.
  • Fixed: The Authorization on organisation level checkbox on the Git credentials form now takes effect when unchecked; the setting previously stayed on and the token was never cleared.

Administration & API

  • The admin dashboard now shows a Version card with the running build version, its release date, and a link to the changelog. See Admin Console.
  • Creating an API key now accepts a team's external id in addition to its internal identifier, so a key can be scoped to a team using the id you already use everywhere else.
  • Fixed: The ODPS API now returns 400, not 500, when a payload is missing required output port fields.
  • Fixed: The application container now exits when the JVM hits an OutOfMemoryError, instead of keeping its socket open and serving failures indefinitely — a state restart policies and liveness probes could not recover from, since they only act on a process that actually exits. Applies to both the self-hosted and the cloud image.

Security

  • Descriptions and other user-supplied text are now escaped or sanitized everywhere they are rendered — the semantic concept preview, the AI chat, the ODPS semantics editor, the MCP login success page, and the YAML studio editor. A concept description containing a script tag or an event-handler attribute previously executed for anyone opening its preview.
  • CSRF protection is now enforced across the application's browser-facing requests, including the data contract and YAML editors.
  • User-registered datasource connections (Databricks, MariaDB, MSSQL, MySQL, Postgres) and server-side ontology imports (e.g. FIBO) now validate the target host before connecting, blocking requests into internal/private networks.
  • A specially crafted chat message could make the assistant stop responding while it cleaned up its answer, tying up the request indefinitely. Such messages are now processed normally.
  • The code editor used by the YAML views is now served by Entropy Data itself instead of a public CDN, so the application no longer loads code from a third-party origin. This matters for deployments with a restricted content security policy or without outbound internet access.
  • Released container images — self-hosted and cloud — are now signed with keyless cosign, and the released images additionally carry full build provenance attestations. There is no public key to distribute: the signature is bound to the GitHub Actions workflow that built the image, so a deployed digest can be traced back to the pipeline that produced it. See SBOM.

Other Fixes

  • Detail pages (data products, data contracts, access agreements, definitions, classifications, certifications, and more) now show a descriptive browser tab title — the resource's name plus its type — instead of a generic one.
  • Hierarchical filter dropdowns (Semantics, Owner, Domain) now toggle an option when clicking anywhere on its row, not just the checkbox.
  • Navigating back or forward to a filtered list page no longer throws errors in the browser console on the data product, data contract, assets, teams, tags, definitions, access agreement, domain and semantics listings.
  • Asset requests made relative to the SSO login URL (a favicon, for one) now return 404 instead of rendering a 500 error page.
  • Deleting an organization now also removes the access provisioning records that belonged to it.

2.0.15 (2026-07-24)

Highlights

  • Custom Email Templates: Organization owners can now customize the subject and body of the emails Entropy Data sends on their organization's behalf, per email type and per language, and switch individual email types off, under Settings > Email Templates. See Email Templates.

Editing an email template, with its variables, preview, and test send

  • Data Products: Custom properties on ODPS data products and output ports now have a typed editor. A property's value keeps its real type — text, number, boolean, list, or object — with an inline type switcher that warns before a change would clear the current value, and a YAML editor for object and list-of-object values. Previously every value was flattened to a string on save.

The typed custom-property editor on a data product, showing an object value edited as YAML

  • [Preview] Data Products: A simplified data product page: the marketplace details view focuses on the information consumers need, scoped to the selected output port, while the studio and governance views keep the classic page. Organization owners can enable it under Settings > Preview Features.

The simplified data product page shown in the marketplace when the preview feature is enabled

Added

  • Semantics: A concept tree sidebar on the Semantics details page shows where the current concept sits in its namespace, so you can switch between sibling and related concepts without going back to the list.
  • Semantics: A namespace's ontology can now be exported and re-imported as a single OSI YAML document through a new namespace-level API endpoint.
  • Semantics: The semantics list and a concept's detail page now show how many data products reference each concept — respecting the viewer's data product visibility — with a new Data Products section on the concept detail page.
  • Data Products: The insights panel for a selected output port now includes a Quality KPI card showing the latest check-run result — pass/fail counts and time since the run — linking through to the port's checks page.
  • Insights: A new Entropy Intelligence section on the Governance Insights page shows how your organization uses the built-in AI assistant in the selected time range — unique users, unique conversations, peak users per day, and a bar chart of distinct users per day. See Insights.
  • Insights: The Governance Insights page now shows an Output Ports per Data Product chart, alongside the existing distribution charts.
  • Access Management: A new organization-wide auto-approve policy for access requests. Set it to Always to auto-approve every access request in the organization (enabling it asks for confirmation), or keep Default for the existing per-output-port and same-team auto-approval. The output port form shows a hint when Always is active, since the per-port setting has no effect then.
  • Access Management: Organization owners can now restrict which access request types — data product, team, or user — are available to request, from a new Access Management page under Governance & Workflows. At least one type must stay enabled.
  • Access Management: Access agreements can now track provisioning state — whether the grant was actually created on the target data platform. Components report progress through a new API (or it can be recorded by hand when there's no connector); each transition shows up in the audit trail, with an email to the consumer on success and to the provider on failure. Organizations that don't use it see no change.
  • Integrations: Integrations are now automatically disabled after repeated consecutive failed scheduled runs (configurable, on by default), with the owning organization notified by email and the asset owner team through its notification channels. The integration details page explains when and why it was disabled.
  • Integrations: Organization owners can now limit which Open In options are offered on output ports, via a new Open In settings page. Deselected options disappear from the dropdowns, and the Open In button is hidden entirely on ports with no remaining options.
  • Customization: Custom properties can now be declared with the yaml type (any value — object, list, or scalar — edited in a YAML editor) or the array type (a list of strings, edited as rows, bounded by minItems / maxItems) on data products and output ports. Structured values stay structured in the specification instead of being stored as quoted text. See Customizations.
  • API: GET /api/teams now supports an email filter, returning only the teams that user is a direct member of.
  • API: The organization's portable feature configuration can now be read and updated via GET/PUT /api/organization/features.
  • SCIM: GET /api/scim/v2/Groups now supports filtering by member id or email, in addition to displayName.

Changed

  • Semantics: The concept create flow has been reworked — the Add dropdown offers Entity, Shared Property, or Metric directly instead of a generic Concept type picker, simple properties can be defined right on the entity create page, and a group's Children section can start a new entity prefilled with that parent.
  • Semantics: The bulk semantic-link suggestion flow for a data contract is now a two-step wizard. First select which namespaces the suggestions should draw from, so unrelated vocabularies stay out of the results; then review the suggestions on a screen that mirrors the data contract schema, with already-linked properties shown as read-only context.
  • Semantics: The organization Settings export now includes the semantics graph — every namespace and its ontology — so a re-imported organization no longer loses its concepts and relationships.
  • Semantics: Fetching a data product now includes the semantic concepts it implements, resolved from both the product's own specification and the data contracts behind its output ports.
  • Semantics: Editing a concept that's referenced by a data product or data contract now shows a warning above the ID/IRI fields, since changing either would break the existing links. A concept's IRI is only flagged once it already has one, so adding a new IRI doesn't trigger the warning.
  • Data Products: Tags that are referenced by a certification no longer appear as ordinary tag chips or tag filter options — they are already surfaced through the certification badge and its own filter.
  • Data Products: Detail pages in the marketplace and governance views no longer show editing-oriented sections (lineage, assigned assets); these remain available in the Studio.
  • Data Products: Members without edit permission now get a read-only Actions menu (including Show YAML) on studio detail pages.
  • Data Contracts: The contract detail header now shows a badge for every classification scheme the contract is classified against — including classifications inherited from linked semantic concepts — instead of only the organization's default scheme.
  • Data Contracts: A schema column now shows one classification badge per scheme. A column whose own classification agreed with the one inherited from its linked concept previously rendered two identical badges side by side.
  • Data Contracts: A contract's ID can no longer be changed once a data product references it through an input or output port — renaming it would silently break the referencing ODPS contractId and external links. The editor now disables the ID field and lists the data products using the contract; save attempts that try to rename an in-use contract are rejected.
  • Data Contracts: The ODCS schema table has been refined — the Technical Details toggle is gone since names are always shown; a code icon next to the property name reveals its physical name in a tooltip, and the logical-type pill's tooltip now lists the physical type plus humanized options (max length, format, pattern, minimum/maximum, and more). A new toggle shows custom-property pills only on properties that have them.
  • Data Contracts: The contract visualizer now truncates wide tables (more than 10 properties) to primary keys, referenced fields, and the first few remaining properties, expandable via a "+ n more properties" row, instead of rendering every property inline.
  • Data Contracts: Technical custom-property badges in the schema view are now hidden behind the Technical details toggle, matching the other technical fields shown there.
  • Data Contracts: Multi-word search on the data contracts list now matches results containing any of the search terms, instead of requiring all of them.
  • Data Classifications: The classification scheme seeded for new organizations now uses the four tiers that are conventional in industry — Public / Internal / Confidential / Restricted, with Restricted as the strictest level. Existing schemes are untouched.
  • Data Map: Input ports declared via a data contract but without an access agreement now render as dotted edges in the data mesh graph, so ungoverned contract-based connections are visually distinct from governed access-agreement edges.
  • Entropy Intelligence: The assistant now also searches data contracts (not just data products) alongside semantic concepts, and lists the data contracts that define a concept even when no data product implements it yet.
  • Access Management: Removing an organization member now asks for confirmation before submitting, and the button is labeled Remove from organization. It's available on every plan; only editing a member's role remains an Enterprise feature.
  • Integrations: The Open In settings page now shows which server types each option applies to and, where relevant, a Requires: <integration> hint linking to its configuration.
  • Integrations: The integration wizard now suggests an incrementing name (e.g. "Databricks Integration (2)") when the auto-suggested name for a new integration already exists.
  • Customization: The Customization settings page now confirms a save, and reports parse errors and concurrent-edit conflicts, instead of silently returning to the form.
  • Search: Multi-word searches now rank an exact full-name match first, instead of tying with any resource that merely shares one of the words.

Removed

  • Marketplace: The Your Tasks section has been removed from the marketplace start page. Tasks remain available on the Tasks page in the user menu.
  • Semantics: The property-level unique flag has been removed from semantic properties — the edit form, details page, public API, and ontology YAML no longer expose it. Existing YAML exports containing unique still import without error.

Security

  • Remember-me cookies were signed with a built-in default key when no key was configured, so a cookie forged against one deployment was valid against another. The default is gone; when no signing key is set, remember-me is now disabled outright. Self-hosted deployments that want remember-me must set application.security.rememberme.key.
  • Four data contract save endpoints (the ODCS full-form save and its Studio variant, copy-from-existing, and the two asset → data contract flows) accepted writes without checking ADD/EDIT team permissions, so any authenticated organization member could create or overwrite contracts regardless of team role. All four now enforce the same permission check as the standard save endpoint.
  • Signing in via OIDC no longer writes the identity provider's full claim set (email, name, and protocol values such as session handles) to the application logs; only protocol metadata is logged. The x-api-key request header is now masked in request logs.

Fixed

  • Entropy Intelligence: Conversation-starter suggestions no longer render the icon name as literal text in the prompt.
  • Entropy Intelligence: Concept badges in chat answers no longer occasionally render as raw [concept: ...] text with a broken link, including for concepts with multi-segment external IDs.
  • Entropy Intelligence: The assistant now recognizes when a data contract field is directly linked to a semantic concept, instead of reporting it as unmapped.
  • Entropy Intelligence: Concept and data product badges in chat answers now resolve reliably while the answer is still streaming, including when a badge is cited without a tool call earlier in the same turn.
  • Entropy Intelligence: Chat answers now render h4–h6 headings, keep bold and italic spans on one line, and add breathing room below tables; dropped table rows, late-arriving contract badges, and leaked internal marker/summary text are also fixed.
  • Semantics: Deleting a concept now also removes its inline properties, so a stale classification from a deleted concept can no longer keep appearing on linked data contracts and data products.
  • Semantics: An entity extending another concept defined later in the same YAML import no longer loses that relationship.
  • Semantics: Group membership is now preserved across an ontology YAML export/import round-trip.
  • Semantics: Property, shared-property, and group YAML editors now validate against the same concept schema as entities, instead of stale per-kind schemas that rejected valid exports.
  • Semantics: RDF ontology imports no longer append the property's range as "(Type: ...)" to imported property descriptions; the type is already captured in the structured data type field.
  • Semantics: Sub-resource links on the concept edit page (e.g. to properties and relationships) generated incorrect paths.
  • Semantics: Clearing a concept's per-scheme classification no longer gets silently restored on save, and duplicate flash-error banners on semantics pages have been removed.
  • Data Products: Assigning or editing an asset assignment from the studio editor no longer redirects out of the studio context afterward.
  • Data Products: Long asset external IDs no longer overflow the asset details page header.
  • Data Products: An output port's removal guard no longer misfires on unrelated edits when its id or name isn't already in normalized form, which had blocked edits to ports with active access agreements.
  • Data Products: Icon pickers and previews across the app now consistently render the same icon; the unused hexagon icon has been removed in favor of the cube icon used everywhere else.
  • Data Products: Uploading an icon on the data product create form no longer fails with a 404.
  • Data Products: The "Show all" toggle on output port and input port cards now works.
  • Data Contracts: A small layout issue with the classification badge in the schema view.
  • Data Contracts: Importing an Excel data contract no longer fails when the workbook is missing an optional sheet (Roles, SLA, Support, Team, or Custom Properties).
  • Data Contracts: The definitions page no longer fails to load when one data contract's YAML is malformed.
  • Access Management: Saving an access agreement from its edit page no longer fails with an error.
  • Integrations: A connection problem in the Power BI integration.
  • Integrations: Ingestion no longer stamps imported data products and Fabric/Power BI assets with automatic powerbi/fabric tags; manually assigned tags are unaffected.
  • Integrations: Snowflake connections authorized via External OAuth are now matched by normalized host and a case/separator-insensitive account-name comparison, so a freshly authorized connection is found instead of prompting to sign in again. The Test Connection button also now tests the values currently in the form instead of the saved configuration.
  • Insights: The Marketplace Users tile on the Governance Insights page now counts all non-editing members, and organization owners are no longer double-counted in both the Editors and Marketplace Users tiles.
  • Insights: A doubled chevron icon on the time-range dropdown.
  • Insights: Governance Insights charts and labels now follow the viewer's language and locale instead of always using English text and US-style dates and numbers.
  • Certifications: The Restricted checkbox on a certification's edit page is now saved correctly; it previously never persisted as checked.
  • Policies: The line, word, and cursor counters in the policy editor's status bar now update while editing instead of staying at their initial values.
  • Inline code in markdown descriptions no longer renders with a duplicated pair of backticks around it.
  • MCP: The execute_query tool description now lists Amazon Redshift among its supported database types.

2.0.14 (2026-07-09)

  • Data Products & Data Contracts: A new read-only YAML viewer lets anyone inspect the underlying specification (ODPS, ODCS, or the legacy formats) of a data product or data contract directly from its detail page — no edit rights required.
  • Data Products & Data Contracts: Marketplace and governance detail pages now bundle Open in Studio, Request Access, and Show YAML into a single Actions dropdown, replacing the scattered standalone buttons. The Edit dropdown is now shown only in the studio editor.
  • API: The JSON Schemas that data contracts (ODCS) and data products (ODPS) are validated against are now served over the API — as the pristine base standard or with the organization's Customization overlay applied, either the current version or pinned: /api/schemas/{odcs|odps}[-<version>][-custom].schema.json. Useful for validating specification YAML in CI pipelines or powering editor tooling.
  • Fixed: Data product descriptions on certification detail pages now render markdown formatting instead of showing the raw markers.
  • Fixed: Data product list pages and the Data Map no longer render as a truncated, seemingly empty page in organizations with several thousand semantic concepts; the Semantics filter hit an internal expression-evaluation limit mid-render.

2.0.13 (2026-07-08)

  • Platform: Single sign-on now works with any standards-compliant OpenID Connect provider — such as Okta, PingFederate, or Keycloak — not just Microsoft Entra. The provider's standard sub and iss claims are used when the Entra-specific oid/tid claims are absent, and a missing email claim now fails with a clear error listing the claims that were received. See Single Sign-On.
  • Data Products: You can now star a data product from its detail page. The total star count shows as a badge on list, card, and board views; sort by "Most starred" or filter by My starred / No stars / More than 10 stars.
  • Data Products: The icon field on the data product edit form is now a searchable icon picker — browse and filter icons by name, each shown with its image — instead of a plain dropdown.
  • Data Products: Output ports can now carry custom Open In links — add an openInLinks custom property (a list of { name, url }) to an ODPS output port and each link appears in the port's Open In dropdown, with an automatically matched icon. See Output Ports.
  • Data Products: The full domain hierarchy path (e.g. DE / B2C / Network) is now shown on data product list and detail pages instead of only the leaf domain name, with every segment linking to its domain. Paths deeper than three levels truncate to root / … / leaf, with the hidden levels shown in a tooltip.
  • Data Products: The marketplace data product listing and Data Map now show a Semantic Concepts column and a Semantics filter, listing each product's linked semantic concepts, including those inherited from the data contracts bound to its output ports.
  • Data Products: The data products table on team and domain detail pages is now grouped by archetype, matching the layout of the main data products list.
  • Data Products: The Example Data section on data product detail pages now appears below the ports section.
  • Data Products: Cloudera has been added to the built-in data product logos.
  • Data Contracts: Classifications can now be authored directly on a data contract, per scheme, overriding the auto-derived column/concept roll-up — set from a new Classification section on the contract's Overview form. The detail page badge distinguishes an authored value from a derived one.
  • Data Classifications: The Add Scheme button on the governance classifications page is now a dropdown — start from a blank scheme, or import a ready-made preset (GDPR, TLP 2.0, US Government (CUI), or NATO) in one click with a preview and confirm step. See Classifications.
  • Semantics: Authoritative definition links that reference a semantic concept by its stable IRI (rather than the /semantics/{namespace}/{id} path) now resolve to that concept in the data contract editor, so linked properties render the concept's inherited business name, type, and other values instead of just preserving the link.
  • Customization: The data contract editor's schema property description and examples fields now honor title, description (rendered as help text below the field), and required overrides, in addition to hidden. Where no override is set, the built-in label/help for the requested language is used. See the Data Contract Editor Customization documentation.
  • Customization: A custom section in the data contract editor is now automatically hidden when all of its custom properties are hidden — no more empty section header. A section with any visible (or required) property still renders.
  • Customization: The data contract editor's schema physical type field now respects a customized enum allowlist (previously the override was ignored).
  • Customization: The data contract editor's team tags field can now be hidden — set hidden: true on the tags standard property under dataContract.team. Mirrors the existing team name / description hiding. See Customizations.
  • Customization: The output port description and tags fields can now be hidden individually via organization customization — set hidden: true on the description or tags standard property under dataProduct.outputPorts. Both are hidden on the output port edit form and its details view. See Customizations.
  • Customization: The support-channel tool selector can now be restricted or hidden. Configure an enum allowlist (with optional label overrides) on the tool standard property under dataProduct.support to limit which tools are offered, or hidden: true to hide the selector entirely. The dropdown also gained a None option to clear the (optional) tool. See Customizations.
  • Teams: The teams list now loads significantly faster for organizations with many teams and members.
  • Teams: Member email suggestions now show an Invitation pending badge for organization members who haven't joined yet (they can still be added). Deactivated members are excluded from suggestions and rejected on manual entry.
  • Access Management: Invitation emails now open with the inviting organization's name and briefly introduce the product with a link to its website, plus step-by-step guidance on what happens next. Welcome emails for SSO organizations state up front that no registration or password is needed.
  • Git Integration: Auto Pull — data contracts and data products with a connected Git repository can now be automatically pulled whenever the repository receives a push, mirroring the existing Auto Push. Configure it per connection or organization-wide in Organization Settings → Git.
  • Git Integration: The Auto-sync directly to branch push mode is now selectable in the Git connection form and in organization-level Git settings, alongside the existing push modes.
  • Integrations: A new Amazon QuickSight ingestion syncs QuickSight datasets — including their column schema — as assets, authenticating with a cross-account IAM role or IAM user access keys. Marked Experimental. See Amazon QuickSight.
  • Integrations: The Snowflake External OAuth configuration form now shows setup guidance, a copyable redirect URI, and live-generated security integration SQL, plus a Test Connection button that runs the OAuth flow and reports the authenticated Snowflake user and role.
  • Entropy Intelligence: AI-generated data product suggestions and conversation-starter suggestions are now generated in the user's profile language instead of always in English.
  • Localization: German coverage has been extended to surfaces that still showed English after the initial rollout — the Entropy Intelligence inspector and connection panels, the insights drill-down modals, and various remaining interface labels — so the interface now follows the chosen language more consistently.
  • Privacy: User email addresses are no longer written to the request-tracing attribute used in application logs, closing a gap where SSO and MCP requests could expose plaintext emails in telemetry.
  • API: Data product stars are now available over the REST API — PUT / DELETE / GET /api/dataproducts/{id}/star to star, unstar, and read a product's star count and your own star, plus GET /api/dataproducts/{id}/stargazers (organization owners only).
  • Fixed: Data Products: The compliance summary count on a data product page now matches the check list rendered below it — runs for draft, missing, or deleted policies are excluded from the fraction too, so the tile no longer shows e.g. "2 / 3" above a list of only two checks.
  • Fixed: Data Products: Editing a source system input port no longer risks duplicate submissions from double-clicking or repeated Enter/submit presses.
  • Fixed: Data Products: The builder edit page no longer crashes for data products with certain server types configured.
  • Fixed: Data Products: Editing an ODPS data product's custom fields no longer duplicates support-channel values or drops AI Context values on save.
  • Fixed: Data Products: Assigning or unassigning an asset on an ODPS output port no longer silently drops other existing assignments on save.
  • Fixed: Data Contracts: The classification badge on the contract detail page now reflects classifications derived from linked semantic concepts, not just column values.
  • Fixed: Data Contracts: Submitting a data contract payload without an id now returns 422 instead of a 500 error.
  • Fixed: Data Contract Editor: The technical property-name badge is no longer shown when a field's title differs from the property key only by case.
  • Fixed: Data Map: Classification and certification filters now actually filter the graph; previously selecting them had no effect.
  • Fixed: Data Map: Output port type and environment filters now correctly exclude data products with no matching output port, instead of still showing them.
  • Fixed: Access Management: Access agreement detail pages are now visible to any member who can see both linked data products in the marketplace, instead of being gated only on provider/consumer team membership.
  • Fixed: Access Management: Access-request restrictions — such as disabling user- or team-level agreements, or requiring requests to go through an external system — are now enforced consistently across the web UI, the public and internal REST APIs, and the MCP request_access tool.
  • Fixed: Access Management: The access agreement/request heading and audit trail are now fully localized in German, instead of partly showing hardcoded English text.
  • Fixed: Git Integration: Long YAML lines in the conflict resolution editor now wrap within the pane instead of overflowing horizontally.
  • Fixed: Teams: Users authenticated via SSO no longer see a misleading hint about changing their email address.
  • Fixed: Entropy Intelligence: Chat streams that run past the response timeout now close cleanly with an error message instead of ending in a broken error page.
  • Fixed: Insights: The insights details table no longer crashes when rendering the visibility column, which could also cause the drill-down panel to pop open unexpectedly on page load.
  • Fixed: "Open in Studio" and access links (business definitions, marketplace task cards, output port access buttons) no longer 404 for some resources.
  • Fixed: Dropdown menus for Generate, Edit, Watch, and other actions now close consistently when clicking outside.

2.0.12 (2026-06-30)

  • Data Products: ODPS data products can now declare input ports in the inputPorts array. Declared input ports appear as cards on the data product detail page alongside access-request-derived ports, showing contract schema, source technology icon, and custom properties. Input ports are also visible on linked data contract detail pages. Read more in Input Ports.
  • Data Products: Output port cards now show a separate badge for data products consuming the contract via an input port, alongside the access-agreement consumer count. Output ports are no longer marked "unused" when an input port consumes their data contract.
  • Data Map: When a data product's input port consumes the same data contract that another product's output port exposes, a provider → consumer edge is now drawn in the data mesh graph, rendered identically to access-agreement edges. Self-consumption and pairs already covered by an access agreement are excluded.
  • Data Map: "Add Data Product" buttons are now hidden in the marketplace view, consistent with other data product list pages.
  • Data Contract Editor: Authoritative definition links now resolve via a single batched request instead of one request per link, significantly reducing editor load time for schemas with many semantic references.
  • Data Contracts: ODCS data contracts now validate that all server names within a contract are unique; submitting a contract with duplicate server names returns a clear validation error.
  • Platform: The Azure Marketplace SaaS subscription integration has been removed. Azure SSO authentication is unaffected.
  • MCP: A new dataproduct_save MCP tool lets AI agents create or update a data product from a DPS or ODPS YAML specification. (Experimental)
  • MCP: A new dataproduct_schema MCP tool returns the JSON Schema for data products — DPS or ODPS, including any organization-specific custom schemas — so AI agents can validate or generate data product YAML. (Experimental)
  • Insights: The Users insights page now includes a language breakdown showing how users are distributed across the available interface languages.
  • Customization: Team tags are now hidden by default on all team pages (list, detail, filters, edit). Organizations can surface them by setting teams.tags.hidden: false in their customization YAML.
  • API: Custom team roles and the role mode are now managed through a single aggregate endpoint — GET /api/settings/team-roles and PUT /api/settings/team-roles — which carries both the mode (default or custom-team-roles) and the role catalog in one resource. The previous /api/organization/custom-team-roles endpoints have been removed.
  • Fixed: AI: OpenAI-compatible AI provider endpoint URLs (Ollama, LocalAI, and similar) are now automatically normalized to include the /v1 path segment when missing, restoring chat, suggestions, and connection tests that were returning 404 errors.
  • Fixed: Data Map: Filtering the graph — for example by searching for a data product by name — now keeps the matched products' connected sources and sinks visible, instead of showing them stripped of their data flow.
  • Fixed: API: Concurrent writes that hit an optimistic locking conflict now return 409 Conflict with a retry hint instead of 500 Internal Server Error.
  • Fixed: API: Creating an access agreement with an external id that already exists is now idempotent — duplicate or concurrent requests return the existing agreement or a 409 Conflict instead of a 500 error.
  • Fixed: Azure SSO: Static assets such as the favicon are no longer blocked by the Azure SSO authentication filter, preventing spurious OAuth2 500 errors on Azure SSO deployments.
  • Fixed: The "resend verification email" and "resend member invitation" actions now correctly honor their 5-minute cooldown — showing a disabled button with a tooltip instead of a misleading success message — and the profile resend button no longer disrupts the page layout.
  • Fixed: Saving a data product or data contract spec that only reorders fields no longer records a spurious update in the audit trail or emits update events.

2.0.11 (2026-06-25)

Data Classifications. Organizations can now define classification schemes — such as Data Sensitivity — with configurable tiers (e.g., Public, Internal, Confidential, Restricted). Data products, data contracts (ODCS columns), and semantic concepts can be classified, and badges appear on data product lists, cards, and detail pages with tooltips explaining whether the level was set manually or derived from linked contracts or concepts. Per-scheme filters are available on the data products list, and classification schemes are manageable via the REST API. Read more in Classifications.

Classification badges on the data product list

Editing a classification scheme and its tiers

German language support. Entropy Data is now available in German. Each user can choose their preferred language in their profile settings, and the entire interface — along with transactional emails and channel notifications — follows that choice. English remains the default, and organizations can set a default language that seeds new members. Self-hosted deployments control which languages are offered and which is the default via application.i18n.supported-locales (env APPLICATION_I18N_SUPPORTED_LOCALES=en,de) and application.i18n.default-locale (env APPLICATION_I18N_DEFAULT_LOCALE=en); the language picker stays hidden while only one locale is enabled.

  • Data Contracts: When an organization restricts the allowed values of a standard data contract field — such as limiting status to a defined set of values — that restriction is now enforced in the data contract editor's YAML view and on save, not just in the form view's dropdown. Out-of-range values are flagged live in the editor and rejected on save with a clear message, while the underlying open standard schema is left untouched.
  • Data Contracts: Custom property descriptions on ODCS data contracts and ODPS data products are now shown in a hover tooltip, so longer explanations are available on demand without cluttering the detail pages.
  • Navigation: The Studio can now be hidden from the main navigation per deployment by setting application.studio.enabled: false (env APPLICATION_STUDIO_ENABLED=false) — useful when a tenant manages its data products and contracts entirely via the API. The Studio nav entry and all "Open in Studio" buttons are hidden when disabled.
  • Assets: Asset schema pages now include a "Technical details" toggle that shows physical column names and types alongside the logical view.
  • Assets: Integration setup links in the assets list are now restricted to organization owners.
  • Assets: The assets list page now loads significantly faster for large datasets, with filter options computed more efficiently.
  • Teams: The member avatar row on team detail pages now caps at 10 avatars; additional members are indicated with a "+N" count badge.
  • Git Integration: Organizations can now configure a custom commit author name and email for all Git operations in Organization Settings → Git — useful when commits should appear under a service account identity rather than the triggering user's credentials.
  • Integrations: A native Trino ingestion provider is now available — it discovers catalogs, schemas, and tables directly over Trino's REST statement protocol, so you can catalog Trino-governed data without a separate connector.
  • Access Management: API keys can now be given an expiration date when created, so programmatic access can be time-boxed and expires automatically without manual cleanup.
  • Privacy: Email addresses and user names are no longer included in HTTP request/response logs or observability telemetry.
  • Fixed: A misconfigured or broken Git connection on a data contract no longer prevents the detail page from loading; an unrecognized connector type now produces no link instead of a crash.
  • Fixed: The sort dropdown and "Add Data Product Builder" menu no longer get clipped behind sticky table headers.
  • Fixed: The ODCS data contract schema view no longer crashes with an error when a classification scheme field contains a null value.
  • Fixed: Data products with a legacy custom icon value no longer show a broken image; the archetype default icon is used as a fallback.
  • Fixed: The Organization Insights page no longer crashes when displaying drilldown panels.
  • Fixed: Access approvals now complete correctly even when email notifications fail due to a misconfigured mail server; previously a mail configuration issue could leave an access agreement in an approved-but-inactive state.
  • Fixed: Snowflake External OAuth settings pages no longer throw a template error for organization owners.
  • Fixed: Assigning or removing an asset on an ODPS data product no longer clears previously assigned assets of the same type; the fix corrects a deserialization issue that caused existing assets to be silently dropped.
  • Fixed: Navigating to assign, edit, or unassign assets now returns you to the studio or governance context you came from, instead of always redirecting to the marketplace.
  • Fixed: ODCS specifications containing null elements inside collection fields (such as examples lists) are now accepted and the null entries are skipped, instead of failing with a parse error.
  • Fixed: Assets with very long descriptions can now be saved; previously descriptions beyond a certain length failed to save.
  • Fixed: Asset search no longer crashes when an asset contains invalid control characters in custom fields ingested from binary sources such as Parquet or zip column statistics.

2.0.10 (2026-06-17)

  • Power BI: "Publish to Power BI" has been redesigned as a multi-step wizard — connect a Power BI workspace, choose publish options with connections pre-filtered to compatible technologies, preview the semantic model structure, and track publish progress, all within a guided dialog.
  • Entropy Intelligence: Data contract and access agreement badges in the inspector panel are now clickable links that open the related resource in a new window.
  • Organization Settings: The Roles & Permissions settings page now supports per-role editing for custom team roles — click any custom role in the matrix to edit its individual permissions. Switching between default and custom role modes now requires an explicit confirmation step, with a lockout warning when switching to custom mode without any custom roles defined.
  • API: The Integrations API is now keyed on externalId instead of internal UUIDs across all paths; audit fields (createdAt, createdBy, updatedAt, updatedBy) are no longer returned in Integrations and Custom Team Roles API responses; integration configuration is now returned inline on the detail endpoint as application/yaml; a new GET /api/integrations/{externalId}/runs/latest endpoint returns the most recent run. The separate /api/integrations/{externalId}/configuration endpoint has been removed.
  • Fixed: Entropy Intelligence: The chat input is now cleared after retrying a query following an access approval, preventing the previous message from being re-sent unintentionally.
  • Fixed: Submitting a scalar value for an output port server property that expects an object now returns a 400 response instead of a 500.
  • Power BI: A new "Open in Power BI Workspace" dropdown entry on output ports lets you navigate directly to the matched Power BI workspace in the portal. Connected semantic models are listed and grouped by workspace — with Power BI icons and external-link indicators — and server properties such as httpPath are pre-filled from the output port's server configuration.
  • Data Products: The data product editor now shows concept icons next to semantic references and provides a preview sidebar when linking a semantic concept.
  • Semantics: The bulk "Suggest semantics for all properties" feature can now be enabled on self-hosted deployments by setting application.bulksemanticsuggest.enabled: true (env APPLICATION_BULKSEMANTICSUGGEST_ENABLED=true).
  • Fixed: Entropy Intelligence: The access check badge in the inspector panel now deep-links directly to the specific matched access agreement.
  • Fixed: Teams: The Status column in the data products table no longer gets clipped.

2.0.9 (2026-06-15)

  • Marketplace: Domain and data product carousels now use arrow-button paging instead of a scrollbar, snapping to card boundaries.
  • List Views: Sticky table headers and content-aware scroll panels now apply to many more list views — including domains, teams, assets, certifications, policies, semantics, tags, and access agreements — so long tables scroll within their panel while short ones shrink to fit instead of leaving empty space.
  • List Views: Table rows across the application are more compact. Tags on list items now display the first two tags with a "+N" badge for any additional tags, keeping rows to a single line.
  • Filters: List filter dropdowns now stay open while you type or toggle options, instead of snapping shut on each change.
  • Filters: The data products list gains a Certification filter and a "Not set" option on Owner, Domain, Status, Type, and custom field dropdowns that matches data products where the field is unset. A shortcut on the Certifications governance page links directly to uncertified data products.
  • Filters: The Consumers list filter dropdowns (provider data product, consumer, and status) now pre-filter to only show options that would yield results given the other active filters — matching the behavior introduced for the data products list. A "Show all" toggle reveals the full option set.
  • Data Products: The "Add Data Product" form now auto-suggests an ID derived from the name you type — the derived slug is editable, automatically satisfies the organization's configured ID pattern, and the pattern is enforced server-side as well.
  • Data Contracts: When linking a data contract to a data product, you can now create a new data product on the spot — with a changeable owning team — instead of only picking an existing one.
  • Data Contracts: Adding a new field in the embedded data contract editor now pre-fills configured property defaults.
  • Data Contracts: When ODCS is the supported specification format, the deprecated Web UI and YAML edit and add options are now hidden from the Add Data Contract dropdown and the ODCS details page options menu, keeping only the relevant actions visible.
  • Semantics: Semantic reference links in the data contract visualizer now show the semantics icon, making them visually distinct from plain reference links.
  • Certifications: The certifications governance page now shows a Coverage column with the percentage of all data products that hold each certification tier.
  • Entropy Intelligence: SQL queries via MCP now time out gracefully across all supported warehouse types (Snowflake, BigQuery, Databricks, Postgres, Trino, Redshift, MySQL, MariaDB, MSSQL) — connect timeout 10 s, query timeout 40 s — so a slow or hung warehouse no longer blocks the MCP connection indefinitely.
  • Visualizers: All graph visualizers — semantic graph, OpenLineage, data contract, data map, and ODCS editor — now share a unified toolbar with consistent zoom, fit-view, and layout/collapse controls and icons.
  • Organization Settings: The organization settings sidebar navigation is now grouped into labeled sections — General, Access & Security, Governance & Workflows, and AI — making it easier to find the right settings page.
  • Organization Settings: The Roles & Permissions settings page now groups permissions by category and shows a read-only matrix of the five built-in roles (Owner, Approver, Editor, Member, Steward) against all permissions for a quick at-a-glance review. Selecting a role type (Default vs Custom) collapses the unselected section to reduce scrolling.
  • Git Integration: Changing or pulling a data product's git connection now requires edit permission, matching the REST API; these actions are hidden from users without edit access.
  • Git Integration: Deleting a data product now also removes its git connection, so you can immediately create a new product against the same repository, branch, and path.
  • Integrations: Microsoft Fabric: Several fixes to OneLake asset imports — Eventhouse items are no longer incorrectly traversed as OneLake folders; KQL database tables link to the correct Fabric portal page; Warehouse tables include the SQL Server port (1433); all OneLake table types now emit ODCS servers with connection details so the generated data contract is immediately queryable.
  • Teams: Deleting a team is now blocked when it has child teams, preventing the children from being orphaned.
  • Data Product Builders: Builders can now be restricted to specific server technologies (e.g. Snowflake, BigQuery, S3). A builder with server types configured is only shown for data products whose output ports or bound data contracts use a matching server technology.
  • Access Agreements: The team picker in the Request Access and Add Access forms is now hierarchical — teams are shown with type badges and their parent path, making same-named teams across different org units distinguishable.
  • Customization: The output port environment, version, and server sections can now be hidden individually via organization customization — set hidden: true on the environment, version, or server standard property under dataProduct.outputPorts.standardProperties. Useful when those fields are managed in the linked data contract and the duplicate display adds clutter.
  • Custom Properties: Custom property sections on data product, data contract, output port, and access agreement detail pages now display as description-list cards — label above value — instead of name/value tables, for a cleaner and more consistent look.
  • API: New REST API for managing custom team roles at /api/organization/custom-team-roles — list all roles, fetch by name, create or update in place (PUT), and delete. Deleting or renaming a role that is still assigned to team members returns 409 Conflict; the settings UI now surfaces the same error instead of silently orphaning the assignments.
  • Fixed: Clearing the domain field in the data contract editor now saves correctly; previously the previous value persisted.
  • Fixed: The Member role description shown on Governance Group team-member forms now reads "Can edit governance resources, such as policies and certifications" instead of the misleading "Cannot edit resources."
  • Fixed: Team-level git credentials now appear in the data-product and data-contract import forms; previously only organization-wide and personal credentials were offered in the dropdown.
  • Fixed: Markdown now renders correctly in long-form text fields across the application — including output port descriptions and cards, input port descriptions on data product detail pages, team descriptions, data usage agreement purpose and rejection reason, and contract terms (usage, limitations, billing). Previously these fields displayed raw markdown source.
  • Fixed: Data Products: Editing an input port no longer overwrites the port's external ID with its source system's ID; previously, when the two IDs differed, saving the port caused a crash.
  • Fixed: Policies: The "Change Status" modal on a new unsaved policy no longer becomes unresponsive when the policy name field is empty.
  • Fixed: Access Agreements: Access Agreement details (purpose, consumer identity, rejection reason) are now restricted to involved parties — the provider team, consumer team, organization owners, and governance group members. Previously any organization member could view all access agreements.
  • Fixed: MCP: MCP sessions no longer produce errors when a client reconnects after a sleep/wake cycle or network interruption.

2.0.8 (2026-06-05)

  • Excel Import: Importing a data contract from Excel now enforces the organization's managed-tags policy, so organizations that require managed tags can no longer introduce unmanaged tags through an import. Property names that contain literal dots (e.g. No. of sites) in hand-authored sheets are preserved instead of being silently dropped, and contract- and schema-level tags are trimmed on import.
  • API: The ODCS semantics and single-definition endpoints now accept API-key authentication, so programmatic callers such as the datacontract CLI can resolve semantic concepts and definitions with an API token. A new GET /api/semantics?iri=… resolves a concept by its stable IRI. The OpenAPI spec now documents the RFC 7807 application/problem+json error format used by all /api/** responses, including ProblemDetail and ValidationProblemDetail schemas, so consumers know the explanatory message lives at $.detail.
  • Semantics: Opening a semantic concept URL in a browser now serves the concept browser page instead of raw JSON; odcs+json and API-key requests still receive the JSON definition.
  • Power BI: "Publish to Power BI" is no longer gated behind a global feature flag — availability is now determined solely by each organization's Power BI settings.
  • Privacy: Deleting a user — via the SCIM DELETE /api/scim/v2/Users/{userId} endpoint or admin user deletion — now erases all of the user's personal data along with the account: AI assistant conversations, summaries and chat logs, search history, saved filters, data contract watches, user-scoped API keys, in-progress Microsoft Fabric / Power BI OAuth flows, git credentials, data source connections, uploaded profile picture (avatar) images, user settings, password-reset and email-verification tokens, active sessions, and MCP authorizations and consents, in addition to organization and team memberships. Audit fields and activity history are retained for traceability. See GDPR Deletion.
  • Insights: The Assets Insights breakdown now shows source and type logos, making it easier to identify asset categories at a glance.
  • Navigation: Breadcrumbs have been added to the Intelligence, Export, MCP Clients, SCIM, and Schemas settings pages for easier navigation.
  • MCP: New dataproduct_save tool to create or update a data product from a YAML specification (DPS or ODPS). (Experimental)
  • MCP: New dataproduct_schema tool to retrieve the JSON Schema for data products (DPS or ODPS), including organization-specific custom schemas. (Experimental)
  • Git Integration: Bitbucket Cloud repository listing now works correctly using the current workspace API. API Token is the recommended credential type and App Password is marked as deprecated.
  • Data Contracts: The data contracts list and cards now show a server count badge with deduplicated technology icons. Hovering over the badge opens an overlay listing each server with its environment badge and connection details.
  • Data Contracts: Custom properties are no longer shown on schema badges to eliminate redundancy and duplication.
  • Certifications: New certification analytics and visualizations are available on the Organization Insights page.
  • Data Products: Users with an active Data Usage Agreement (DUA) can now view restricted or private data product detail pages. Previously an active DUA was visible in the access overview but navigating to the product returned a 403.
  • Entropy Intelligence: Read-only query validation now also accepts WITH, DESCRIBE, SHOW, and EXPLAIN statements in addition to SELECT.
  • Integrations: Informatica is now listed as a coming-soon integration.
  • Semantics: Importing an ontology into an unregistered namespace now automatically registers the namespace, so imported concepts are immediately reachable in the namespace-scoped Studio UI.
  • Admin: The organizations admin table now displays host and brand columns for easier identification.
  • Fixed: OneLake icon no longer disappears when a Power BI icon is displayed on the same page.
  • Integrations: Microsoft Fabric OneLake tables and files are now discoverable through the Fabric integration. OneLake tables appear in the asset tree with their Delta Lake column schemas, so creating a data product from a OneLake table pre-populates the data contract with the table's columns automatically. Lakehouses, Warehouses, and SQL endpoints are also supported. The Import-from-Asset wizard correctly sets the output port type for each Fabric asset type.
  • Data Contracts: The data contract visualizer now supports exporting the diagram as a high-resolution image, including a full-graph view at native zoom.
  • Customization: Organizations can now restrict which server types appear in output port and data contract server dropdowns by configuring an allowlist on the type property's enum in the customization schema. Each enum option supports an optional label to override the display text while preserving the stored value. Server types already in use are always preserved.
  • Semantics: The "Convert to Semantic" confirmation modal now explains the type mapping — object definitions become Entities, all others become Shared Properties — and notes that the conversion cannot be undone.

2.0.7 (2026-05-21)

  • Data Product Builders (experimental): A new opt-in feature that guides you — and your coding agents — through building a data product from its contract. Each builder ships Markdown usage instructions; the dbt builder additionally bootstraps a project from an ODPS draft and exposes a reload command. Usage instructions can now vary by data product status, with a generic fallback when no status-specific block matches. dbt and Snowflake builders are available, while Databricks and AWS Glue appear as "Coming soon". Enable with application.dataproductbuilder.enabled.
  • Data Product Builders: Usage instruction cards gained a one-click copy button for code snippets and an entropy-data connection test line in the authentication step, plus a Feedback section linking to the builder plugin repository. The install/update cards on the agent setup page have been consolidated, and the API-key-created info box is aligned with the builder layout.
  • Semantics: New bulk "Suggest semantics for all properties" for data contracts. An async job analyses an entire ODCS contract, proposes one best concept per unlinked property, and applies the selected suggestions in a single save (one version bump and audit entry). A progress poller and a dedicated review screen, grouped by schema, drive the workflow.
  • Semantics: authoritativeDefinition URLs that don't match the /semantics/{ns}/{id} path pattern (custom IRI schemes, e.g. http://host/ns/main/Article) now resolve by the stored IRI as a fallback, so the link is preserved instead of dropped. Semantic link buttons resolve by IRI even when the host is internal.
  • Power BI: Semantic-model details now render a dedicated "Tables" section that mirrors the data contract schema view, with column-level relationships between tables. Columns and relationships are enriched from upstream input-port data contracts so descriptions, types, semantics, and foreign-key links carry over, and data contracts generated from a semantic model inherit those column definitions on 1:1 matches and promote table relationships onto the contract's column relationships instead of leaving them as an opaque custom-properties blob. The Import-from-Asset wizard preview now shows the full lineage chain — source data product → semantic model → report — when launched from the matched-Power-BI banner, and the marketplace view hides Power BI import banners.
  • Data Products: Creating a data contract from the type-selection flow now connects the contract to the selected output port and no longer overwrites an output port that already has a contract bound to it.
  • Data Contracts: The Data Quality card has moved above Support on the ODCS details page. The embedded data contract editor bundle has been refreshed with a semantic-link icon and inherited-type rendering in the diagram view.
  • Import/Export: Governance policies are now included in the organization export zip (policies/) and restored by the entropy-data import zip command.

2.0.6 (2026-05-13)

  • API: New policies REST API (experimental) with GET/PUT/DELETE endpoints under /api/policies for managing governance policies through API tokens, documented in the OpenAPI spec.
  • Git Integration: Pushing newly created files now succeeds on the first push for both data products and data contracts, instead of failing when the path does not yet exist. Pulling no longer silently drops a rename — a contract or product whose externalId was changed in Git is now looked up by UUID first, falling back to externalId on Import, and whitespace in YAML IDs is normalized before lookup. Error messages on Git operations are clearer.
  • Marketplace: AI search now reranks results before truncating to the top 10, so exact name matches are no longer dropped by Postgres ts_rank ordering when many products share similar terms.
  • Data Products: ODPS input port saves with invalid data now surface inline validation errors instead of a generic error page.
  • Integrations: Removing a Snowflake External OAuth configuration now works correctly from the configuration form.
  • List Views: Filter dropdowns in data product and data contract tables no longer get clipped behind the sticky table header.

2.0.5 (2026-05-11)

  • Multi-organization: Users who belong to multiple organizations now land on a new organization-chooser screen after login when no default is set, and the header gains an organization switcher dropdown that makes the active org clear and easy to switch. The default-organization flag is now toggled only by explicit Make Default / Unset Default actions, and never set automatically by SCIM provisioning or SSO auto-join.
  • Data Products: Quick-create forms (data product, application, data consumer, AI agent) now expose an ID field so the externalId can be chosen at creation. The YAML editor opens with an editable example-id # change me placeholder rather than a pre-generated UUID, so the ID is chosen deliberately. Organizations that prefer auto-generated UUIDs can opt back in by setting generationStrategy: uuid on the id standard property.
  • Data Products: "Add Source System Input Port" works again for ODPS data products, with the post-save redirect now resolving to the persisted UUID. Saving a data product with an invalid externalId is blocked at the API with a 422 and shown inline in the form instead of an error page.
  • Data Products: The output port editor now guides users toward picking an existing data contract server when one is available, with an inline warning below the server select.
  • Git Integration: New conflict-resolution wizard replaces the old single-form conflict screen. Step 1 shows local vs. remote YAML side-by-side using CodeMirror MergeView; step 2 offers a Push Directly / Create PR or MR choice with a dedicated PR/MR form. Conflicts also auto-resolve to "patch synced" when an open patch submission already covers the local changes.
  • Intelligence: AI search now reranks results across tools using the same per-card relevance scoring as standard find mode, and honours the active resource-type filter so the LLM no longer queries tools for types that are unticked.
  • Marketplace: The marketplace search filter now defaults to Data Products, and Semantic Concept results have received UX polish.
  • API: Lineage endpoints (GET/POST/DELETE) now accept team- and user-scoped API tokens with proper per-team read and write scoping. A new endpoint returns organization settings, and the OpenAPI spec documents valid team-member role values.
  • Semantics: Data contracts, the concept "Usages" list, and internal Markdown links now resolve hierarchical concept externalIds (e.g. sales/customer), so grouped concepts inherit descriptions and examples in ODCS schemas again and render as internal Semantic Concept pills.
  • Data Contracts: Excel export and import handle property names containing dots and unnamed array items correctly instead of round-tripping them as null cells. ExternalId normalization is tighter on every save path.
  • List Views: Data product and data contract tables scroll inside a height-constrained panel with a sticky header row. Filter dropdowns render above the sticky header instead of behind it, and decorative icons in owner/domain/type/status/version columns have been dropped for a cleaner look.

2.0.4 (2026-05-06)

  • Integrations: New built-in Microsoft Fabric / Power BI ingestion to import Power BI semantic models and reports as assets. Authentication uses a Microsoft Entra service principal scoped to selected workspaces. The asset tree mirrors app.powerbi.com (workspace → folder → model/report → table), with reports carrying a uses edge to their semantic model so lineage resolves the dependency. Marked Experimental.
  • Data Products: Microsoft Fabric is now available in the Import-from-Asset wizard. Power BI semantic models can be imported as Power BI data products with output ports prefilled from the model's tables and columns.
  • Data Products: New ai-agent archetype for data products that expose AI agents. Mirrors the data-consumer pattern with no output ports and no KPI card, and is excluded from the marketplace.
  • Assets: Power BI semantic-model assets show a .pbids download on the details page, so users can open the model directly in Power BI Desktop with the model's storage mode honoured.
  • Assets: Asset details now include a "Used by" section listing downstream relationships, with type-specific icons in the asset header.
  • Navigation: The Assets nav item has moved from Governance to Studio for easier discovery.
  • Marketplace: Domain and owner filter dropdowns now show all available values, not just the ones present in the current view.
  • Git Integration: Pushing to a Git target branch now creates files on the first push instead of failing when the path does not yet exist.
  • Git Integration: Conflict resolution for data products now resolves correctly and renders proper error fragments instead of a generic error page.
  • Git Integration: Push and connect actions confirm success with a flash message after HTMX-driven submits, and credential-info updates are scoped to the relevant import page.
  • Intelligence: Hardened chat suggestions against prompt injection by stripping sentinel sequences from untrusted metadata before the model sees it.
  • Platform: CDN-loaded JavaScript and CSS dependencies have been replaced with local/webjar assets, so the platform runs cleanly in air-gapped installs.

2.0.3 (2026-04-29)

  • Marketplace: Card icons are now clickable links matching their titles, for quicker navigation.
  • Insights: New User Analytics section on the Organization Insights page, with a user growth chart and membership statistics.
  • Insights: Time range filters across the insights pages can now be adjusted dynamically, and data product cards are interactive for drill-down.
  • Insights: New Data Product Reuse metrics highlight how often data products are consumed across the organization.
  • Governance: New "Servers per Contract" histogram on the Governance Insights page surfaces contracts missing server definitions or with unusually many.
  • Power BI: When publishing a semantic model, users can now choose between Import and DirectQuery storage modes from the Open in Power BI dialog.
  • Semantics: The visualizer now persists drag positions and toggle state per diagram in browser local storage, so layouts are preserved across reloads.
  • Semantics: Translated descriptions now support Markdown, both in the editor (multi-line input) and on the details page (rendered output).

2.0.2 (2026-04-24)

  • Integrations: Existing integrations can now be re-configured through the setup wizard. The Edit button is now a dropdown offering either the guided wizard or direct YAML editing, with credential handling that adapts when the authentication method changes.
  • Notifications: New Microsoft Graph mail provider for self-hosted M365 tenants where SMTP AUTH is disabled. Configure with application.mail.provider=graph and an Entra app registration holding the Mail.Send application permission.
  • Data Contracts: Output port IDs are locked once active consumers exist, preventing renames that would break consumers. An inline hint explains the locked state.
  • Data Contracts: External IDs are now normalized and validated on every save path. Invalid external IDs are rejected at the API with 422, and form validation shows inline messages instead of an error page.
  • Data Contracts: Creating a data contract through the editor API now requires the ADD permission.
  • Governance: Data contracts using the DCS specification are now included in the governance insights aggregation.
  • Semantics: The visualizer now supports collapse and expand, and renders semantic groups with a visual boundary around their concepts.
  • Semantics: Property detail pages show the parent concept and its group. A new Technical Fields group surfaces last-updated and process timestamps.
  • Semantics: Concept pages suggest bindable data products, scoped to entity and metric concepts for more relevant matches.
  • Integrations: Amazon Redshift is now available in the integration schema, and credential form field keys are aligned with their data-class fields.
  • ODCS: Data product team members are restricted to native members, and data product pages now include a support sidebar.
  • Saved Filters: Filter scopes can now be set when saving, so the same filter set can be targeted at specific views.
  • Fixed: Team and domain filters in the Data Products graph view.
  • Fixed: Output port duplication when renaming an existing output port id.
  • Fixed: Check run lookups now use the server-based format consistently, with SQL join bugs corrected.
  • Fixed: Tooltip rendering in wrapped elements.
  • Fixed: Integration secrets and ingestion updates are now strictly scoped to the owning organization.

2.0.1 (2026-04-21)

  • Saved Filters: Save and reuse filter combinations on the Data Products list, board, cards, and map. One filter can be marked as default and is applied automatically when no other filters are selected.
  • Data Products: The Owner and Domain filters now support picking a parent in the hierarchy. Selecting a parent filters the whole subtree and saves as a single value, so the filter stays valid when teams are added or moved later.
  • Entropy Intelligence: New Intelligence Inspector with developer mode, tool-call inspection, semantics context, popovers for data-product references in chat, and a modal showing full SQL query details.
  • Entropy Intelligence: Plan management to surface the agent's pre-execution plan before queries are run.
  • Governance: New Data Contract Insights card on the Governance Insights page, including an owner filter.
  • Data Contracts: Schema display now has a visibility toggle so large schemas can be expanded or collapsed in place.
  • Data Products: Image uploads in rich-text fields are validated, rate-limited, and rehosted on the platform.
  • Semantics: Properties linked through ODCS authoritativeDefinition now show the semantics icon on the schema label, and both semantic and semantics link types are recognized. Studio context is preserved when navigating into semantics.
  • Customization: Custom properties and custom sections support enum anchors in customization.schema.json for richer dropdown configuration.
  • Fixed: Validation issues in the Data Contract Editor and missing CSRF header on accepting semantic suggestions.
  • Fixed: Disabled integration badges are now styled in red on both the list and details pages for clearer status.

2.0.0 (2026-04-17)

  • Semantics: Model your business domain as a shared ontology of concepts and relationships, and link them to data products and data contracts. Define what terms like Order, Customer, or Monthly Recurring Revenue mean across your organization, discover data by meaning rather than table name, and power semantic search and AI-driven querying. Semantics replaces Business Definitions.
  • Open in Power BI Support
  • Data Contract Editor: Relationship drawing, layout, and table collapse interactions have been polished for clearer edge handling and node-border anchoring.
  • Access Management: Access agreement URLs and email notifications now use the external ID instead of internal UUIDs, and agreement changes are displayed as a diff in the audit trail.
  • Access Management: Data product visibility is now inherited through team hierarchies, so members of parent teams can see data products owned by descendant teams.
  • Access Management: Access agreements can now be deleted even when referenced entities have already been removed.
  • Access Management: The "Connect" and "Add Access" flows now respect the canRequestAccessFrom check.
  • Integrations: Snowflake now supports dynamic role selection and resolves the appropriate role from access agreements automatically.
  • Integrations: BigQuery ingestion now streams pages instead of loading everything in memory, significantly reducing memory usage on large projects.
  • Customization: Output port customizations now support id, name, and description properties.
  • Notifications: Email notifications now show the data contract title instead of the technical ID, both in the subject and body.
  • Notifications: Quality check and data contract update emails now include a direct unsubscribe link. Clicking it opens a confirmation page where watchers can stop receiving notifications for the contract with a single click, without navigating the app.
  • Notifications: Quality check failure emails now include a summary of the failing checks (check name and reason), so recipients can triage without opening the app.
  • Entropy Intelligence: Snowflake connections via External OAuth now show role and warehouse as editable badges instead of text inputs. When roles are defined in the access agreement, they are pre-selected automatically.
  • Entropy Intelligence: After completing SSO authentication, the query is now automatically retried without requiring manual intervention.
  • Entropy Intelligence: Expired Snowflake OAuth tokens now correctly show the SSO login prompt instead of the PAT credentials form.
  • Fixed: Output port tags overflowing horizontally instead of wrapping when many tags are assigned.
  • Fixed: Various frontend JavaScript errors observed in production.
  • Fixed: Customization links with blank hrefs no longer persisted on save.
  • Fixed: Links in quality check emails now correctly encode server names that contain spaces or special characters.
  • Fixed: Change request rejection emails now use the correct template (previously labelled as approval).

1.9.7 (2026-04-01)

  • Data Contracts: Schema-level relationships are now displayed as edges in the data contract visualizer graph.
  • Data Contracts: Excel exports now include relationships.
  • Customization: Custom properties and custom sections are now supported on output ports, matching the existing data product customization capabilities.
  • Git Integration: Git credentials now support an optional external ID for explicit credential selection. When multiple credentials exist for the same provider, a credential dropdown appears in the Git connection form, and the selected credential is remembered for consistent authentication.
  • Integrations: PostgreSQL ingestion now captures richer column metadata including descriptions, nullability, and default values.
  • Integrations: Snowflake now supports External OAuth as an authentication method with organization-level OAuth settings.
  • API: Git import and connection endpoints now accept an optional gitCredentialExternalId for explicit credential targeting. The gitConnectionType field is optional when an external ID is provided.

1.9.6 (2026-03-31)

  • AI: Data Contract Editor now supports Anthropic as an AI provider for the inline AI assistant.
  • AI: Azure OpenAI endpoint URLs are now automatically normalized to the base URL on save.
  • AI: Fixed support for GPT-4o and other non-reasoning models

1.9.5 (2026-03-30)

  • Integrations: New built-in Amazon Redshift ingestion to sync databases and tables as assets.
  • Integrations: Trino support for querying data via Entropy Intelligence and MCP.
  • Integrations: Oracle and Dataiku icon support and asset import.
  • Data Contract Tests: New Test Connection button on settings page to verify connectivity before running tests.
  • Data Contract Tests: API and MCP tools for running data contract tests programmatically.
  • Data Contracts: SLA properties now support description fields for richer metadata.
  • Data Contracts: Quality results are now aggregated across all servers on the data contract page.
  • Entropy Intelligence: Intelligence card added to data contract detail pages for quick access.
  • Entropy Intelligence: Certification badges are now displayed on data product cards in chat results.
  • Data Map: The data map is now accessible directly from the marketplace sidebar for easier navigation.
  • Navigation: Renamed "Definitions" to "Semantics" in the sidebar.
  • Fixed: External ID not being updated when editing data product YAML.
  • Fixed: Organization members with no team memberships could see all data contracts in Studio.
  • Fixed: Race condition when editing data product YAML by navigating directly.
  • Fixed: ODCS server port serialization now correctly uses integer values.
  • Fixed: Check run detail links and status badges on data contract pages.
  • Fixed: Performance issue with check run summary queries.

1.9.4 (2026-03-20)

  • AI: Anthropic Claude models are now available as a Bring Your Own provider. Supports direct Anthropic API and Azure-hosted endpoints.
  • Access Management: Access agreements approaching expiration are now highlighted, with the option to renew directly.
  • Entropy Intelligence: Improved query result rendering and markdown display.
  • Data Products: Support channels are now displayed on data product detail pages with icons for Slack, Teams, Email, Discord, Google Chat, and more.
  • Data Products: AI context attributes for improved search and discovery.
  • Rich Text Editor: Description fields now support rich text formatting with markdown preview.
  • Data Contract Editor: Test URL can now be changed directly in the editor.
  • Data Contract Editor: Support for regex validation rules via customizations.
  • Integrations: New built-in MariaDB ingestion to sync databases and tables as assets.
  • Integrations: New built-in MySQL ingestion to sync databases and tables as assets.
  • Integrations: New built-in SQL Server ingestion to sync databases and tables as assets.
  • Integrations: AWS Glue ingestion now supports S3 folders as data sources.
  • Customization: Customize Access Agreements and Request Access form.
  • API: Improved owner field validation with clearer error messages.
  • API: Team-level and organization-level Git credentials endpoints.
  • API: API key management and data product Git connection endpoints added to OpenAPI spec.
  • API: Git connection endpoints now use provider type and host instead of connection name.
  • Platform: Upgraded from Java 21 to Java 25.
  • Fixed: Excel export crash when a data contract has duplicate schema names.
  • Fixed: Doubled commit messages caused by duplicate form fields.
  • Fixed: Output port tooltip on the visualizer graph showing null values for missing type or status.
  • Fixed: Improved performance for check run queries and chart loading on data contract pages.

1.9.3 (2026-03-09)

  • Git Integration: Data products can now be imported from Git repositories.
  • Data Products: ODPS team members can now be added and removed directly in the edit form.
  • Data Contracts: External IDs are now editable when enabled via feature flag.
  • SCIM: Added SCIM mapping API endpoints for configuration management.
  • Fixed: Git settings optimistic locking and credential form issues.
  • Fixed: Ingestion runs for parallel deployments.

1.9.2 (2026-03-05)

  • [Experimental] Lineage: OpenLineage integration for ingesting, viewing, and managing lineage events. Lineage graphs are displayed on data product pages.
  • Git Integration: Auto-push for data contracts. Changes to data contracts can now be automatically pushed to Git repositories, with support for conflict detection and configurable push modes at organization and data contract level.
  • Data Products Customization: ODPS data products now have a dedicated edit form with full customization support, including standard property overrides (readOnly, hidden, required), custom properties, and custom sections.
  • Data Products: ODPS description fields (purpose, usage, limitations) are now editable as separate fields with customization support.
  • Data Contract Tests: Interactive check run history chart with bar selection and dynamic detail loading.
  • Data Contract Editor: Tag autocomplete is now available in the Data Contract Editor.
  • Access Management: Rejection emails now include the rejection reason and use consumer-aware wording.
  • API: Improved error responses for invalid URLs and unsupported HTTP methods.
  • Fixed: BigQuery ingestion of nested arrays.
  • Fixed: Tag URLs using incorrect organization vanity URL.
  • Fixed: Filter state lost when navigating back in integration wizard.

1.9.1 (2026-02-23)

  • Certifications: Define certifications (e.g., Gold, Silver, Bronze) and assign them to data products. Certifications are displayed as badges across the catalog. Available via UI and REST API.
  • AI: Support for GPT-5.2
  • Integrations: AWS Glue now supports Entra Federation (OIDC) as an alternative authentication method.
  • Ingestions: Improved experience when cancelling ingestion runs.
  • Git Integration: Hierarchical credential resolution with team-level and organization-level Git credentials.
  • Git Integration: Improved sync status with dedicated status values for patch submissions and better error reporting.
  • Git Integration: Simplified push and patch submission workflow with restructured modals.
  • Git Integration: Fixed various issues with Bitbucket error handling and stale sync state.
  • Data Contract Editor: Better support for multiline YAML values.
  • Search: Significant performance improvements for large search results.
  • API: Added list endpoint for test results with filtering support.
  • [Experimental] Governance Insights: New analytics dashboards for data products and access management, including time-to-insights, time-to-access, contract coverage, consumer distribution, and team-level breakdowns.

1.9.0 (2026-02-13)

  • Major performance improvements.
  • Internal links in data products, data contracts, and other resources are now automatically detected and displayed with resource lookup.