Changelog
The changes to the public API that a consumer can see. The most recent change is first.
2026-10 — Connectors: the connection id is accepted
A workspace can hold several connections of one integration. The connector identifier will name one connection. This change prepares it: every route accepts the id of the connection, and the responses name the integration beside each identifier. The identifiers the API returns do not change yet.
What is new
-
kindandmethodon each connector: the integration it connects to, and how Corma reaches it. -
kindandmethodon thesourceanddisconnectedmappings ofGET /user-fields. -
connectorIdon licences and users: the id of the connection the record belongs to.nullwhen no connector holds it. -
connectorIdonPOST /action-runsandPOST /tasks: the connector the action runs on. It must connect the integration of the action. Omitted, the action runs on the only connector of that integration. -
The id of a connection is accepted wherever a connector identifier is,
for example
GET /connectors/12.
What changes meaning
-
nameon a connector is the name of the integration. The name of the connection isconnectionName.
What stays compatible
-
The connector identifiers in every response keep their current form. Read
kindandmethodinstead of parsing the identifier: its form changes in a later release.
2026-10 — Sources: one model for every record
Corma now records the provenance of every record in one model: one source per
writer, with its own dates. The sources arrays read that model.
What is new
-
authoron each source: the name of the member who wrote through a Corma channel, or the name of the public API key.nullfor a connector, an agent, an action, and for the writes from before this change. -
isOriginatingon each source:trueon the source that created the record.falsealso means "unknown" on older records. - Two new source types, beside
integration_sync_unitandcorma:-
custom_integration: a custom integration agent of the workspace. A license found by a custom agent now lists it insources. It was missing before. -
action: a registry action that wrote the record, for example a workflow that provisioned a license.kindandmethodname its connector.
-
-
sourceson more records: job titles, thecountryof a user, user emails and application instances.
What changes meaning
-
createdAtandlastUpdatedAton a source are the dates the source saw the record first, and confirmed it last. Since the 2026-09 migration of the sync units they held the dates of an internal row, which the migration reset. They read "known by this source since" again. -
The
manualCorma channel is legacy. New writes use a precise channel:web_app: a member in the Corma app;csv_import: a CSV import;sso: an OAuth sign-in;sso_saml: a SAML sign-in, just-in-time provisioning included;copilot: Cormie;api: the public API.
A consumer that filters on
kind: manualsees only the older records. Filter on the precise channels to see the new ones. -
remoteIdandremoteEmailon a userintegration_sync_unitsource can now benull, for a source that has no connector identity behind it. -
Team sources: a team lists its typed sources (
type), and its oldersourceKindrows only when no source of the same family covers them. -
License type and license role sources keep their shape, list one entry per writer, and add
authorandisOriginating.
What does not change
-
The existing
typevalues:integration_sync_unitandcormaon licenses, users and teams,merge_legacy_integrationon users. -
The order of
sources: the source that confirmed the record last comes first.