> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcollate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Breaking Changes - API & Schema | Official Documentation

> The Suggestions API is removed, search_after and entity name validation change shape, and several enum and default values change across the REST surface in Collate 2.0.

# API & Schema

Across the 1.13 → 2.0 jump the REST surface gains **208 endpoints** and loses **10** (Collate's own
surface adds 76 and removes 47 on top of that). The JSON Schema specification gains **86 files**,
modifies **107**, and removes **3** — verified directly against the `openmetadata-spec` module at the
`2.0.0` tag. This page covers the schema and contract changes that cut across components; component
pages cover the domain-specific ones.

## The Suggestions API is removed

**Breaking.** Affects API clients, SDKs, and automation bots. The entire `/v1/suggestions` namespace
(ten endpoints, including accept-all/reject-all) is gone — see
[Collaboration](/ai-2-0/release-2.0/breaking-changes/collaboration) for the full replacement mapping onto
`/v1/tasks`.

## search\_after becomes a repeated parameter

**Breaking.** Affects anyone paginating `/v1/search/query`. Each sort value is now carried as its
own `search_after` parameter, rather than one comma-joined string, so values containing a comma (a
glossary term's fully qualified name, for example) are safe:

```diff theme={null}
- GET /api/v1/search/query?q=*&index=table&search_after=1712345678000,abc-123
+ GET /api/v1/search/query?q=*&index=table&search_after=1712345678000&search_after=abc-123
```

Split the cursor on the client and emit one parameter per sort value. The `deleted` parameter on the
same endpoint is **deprecated** for removal — express deleted-entity filtering through `query_filter`
instead. Separately, `GET /v1/dataQuality/testCases` now binds `testCaseStatus` as a repeated
parameter too, validated against the enum, with an unknown value returning `400` naming the allowed
values.

## Entity name validation is tightened

**Breaking.** Affects every write path, ingestion connectors and CSV import. `entityName` and
`testCaseEntityName` change pattern:

```diff theme={null}
- "pattern": "^((?!::).)*$"
+ "pattern": "^((?!::)[^>\"\\x00-\\x1f])*$"
```

Verified directly against `openmetadata-spec/.../type/basic.json` — confirmed present at the `2.0.0`
tag and absent at `1.13.4-release`. In addition to the existing `::` restriction, names may no longer
contain `>`, `"`, or any ASCII control character. Entities already stored with these characters are
not rewritten by the migration, but the next `PUT` or `PATCH` that revalidates the name will fail —
audit source systems whose object names can contain quotes or angle brackets before upgrading.

## Enum values are removed and added across several schemas

**Breaking** where values are removed, **additive-with-caveats** where they're added.

| Schema                         | Enum        | Removed values                                             |
| ------------------------------ | ----------- | ---------------------------------------------------------- |
| `entity/applications/app.json` | `agentType` | `CollateAI`, `CollateAITierAgent`, `CollateAIQualityAgent` |

Only `Metadata` remains, and the corresponding application configuration schemas are deleted
entirely. Additions worth checking exhaustive `switch` statements or pattern matching against:
`resourceDescriptor.operation` gains the five task operations, `changeEventType` gains
`taskCreated`/`taskUpdated`/three lineage event types, `entityRelationship.relationshipType` gains
`assignedTo`, `backgroundJob.jobType` gains `CSV_IMPORT`/`CSV_EXPORT`/`AUDIT_EXPORT`, and
`table.tableType` gains `SemanticView`.

## Default values change for RDF, workflow timing and connector filters

**Behavioural.** Affects deployments that never set these explicitly.

| Schema                  | Field                                               | 1.13       | 2.0         |
| ----------------------- | --------------------------------------------------- | ---------- | ----------- |
| `rdfConfiguration.json` | `inferenceEnabled`                                  | `true`     | **`false`** |
| `rdfConfiguration.json` | `bulkEntityBatchSize`                               | `50`       | `100`       |
| `rdfConfiguration.json` | `bulkRelationshipSourceBatchSize`                   | `25`       | `100`       |
| `workflowSettings.json` | `executorConfiguration.asyncJobAcquisitionInterval` | `10000` ms | `1000` ms   |

<Warning>
  RDF inference is off by default in 2.0. If you relied on inferred triples in SPARQL queries, set
  `RDF_INFERENCE_ENABLED=true` explicitly.
</Warning>

## Schema reference relocations affect generated models

**Behavioural.** Affects code generated from the specification and JSON Schema validators. Chart
`function` and `kpiDetails` definitions moved out of `dataInsightCustomChart.json` into a new
`dataInsight/custom/chartFunctions.json` — `formulaHolder.json`, `lineChart.json`, `summaryCard.json`
and `dataInsightCustomChartResultList.json` all update their `$ref` accordingly. Regenerate any
client model built from the JSON Schema; if you resolve `$ref` pointers by hand, update the paths.

## Notable new endpoint groups replace common client-side patterns

**Additive.** None of these break anything, but they replace patterns you may currently implement
yourself.

| Namespace                                              | Purpose                                                | Replaces                                |
| ------------------------------------------------------ | ------------------------------------------------------ | --------------------------------------- |
| `/v1/tasks/**`                                         | First-class Task entity (22 endpoints)                 | `/v1/feed/tasks/*`, `/v1/suggestions/*` |
| `/v1/announcements/**`                                 | Standalone Announcement entity                         | `/v1/feed?type=Announcement`            |
| `/v1/activity/**`                                      | Ephemeral activity stream                              | System-generated `/v1/feed` threads     |
| `/v1/csvAsyncJobs/**`                                  | CSV import/export job status and result download       | WebSocket-only job tracking             |
| `/v1/services/overview`                                | One call for per-type and per-connector service counts | N per-service `GET` calls               |
| `/v1/lineage/hydrate`                                  | Batch-hydrate up to 200 lineage nodes                  | N per-node entity `GET` calls           |
| `/v1/{entityType}/deleteStale`                         | Connector-driven stale-entity cleanup                  | Manual delete loops                     |
| `/v1/search/export/async`                              | Queue a CSV export as a background job                 | Synchronous `/v1/search/export`         |
| `/v1/columns/name/{fqn}`                               | Fetch a single column by fully qualified name          | Fetching the whole table                |
| `/v1/personas/{id}/context`, `/v1/personas/me/context` | Persona-scoped AI context                              | —                                       |
| `/v1/contextCenter/**`, `/v1/attachments/**`           | Context Center and file assets                         | —                                       |
| `/v1/aiGovernance/**` and related                      | AI Governance Studio                                   | —                                       |

## Two items are deprecated, not yet removed

**Deprecated**, plan a migration but no immediate action is required:

| Item                                                          | Replacement                                 |
| ------------------------------------------------------------- | ------------------------------------------- |
| `GET /v1/search/query?deleted=`                               | `query_filter`                              |
| `authenticationConfiguration.oidcConfiguration.sessionExpiry` | `authenticationConfiguration.sessionExpiry` |

## Full detail

For the full narrative walkthrough of API & Schema in Collate 2.0 — including screenshots and step-by-step context — see [Release 2.0: API & Schema](/ai-2-0/release-2.0/api-and-schema).
