> ## 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 - Applications & Automation | Official Documentation

> Search Indexing app config fields are removed, RDF Index defaults change, and MCP tool contracts change for 15 tools in Collate 2.0.

# Applications & Automation

Four installed applications have their stored configuration rewritten by the 2.0.0 migration:
Search Indexing, RDF Index, Data Insights and MCP. If you manage application configuration as code,
read this before you replay it. The Documentation, Tier, and Quality agent apps are deleted by the
same migration — that's covered separately under
[AI Agents & Automations](/ai-2-0/release-2.0/breaking-changes/ai-agents-and-automations).

## Search Indexing app configuration fields are removed

**Breaking.** Affects scripted reindex triggers and infrastructure-as-code.

```diff theme={null}
- "recreateIndex": { "type": "boolean", "default": true },
- "useDistributedIndexing": { "type": "boolean", "default": true },
```

In 2.0, reindex **always** recreates the index and distributed indexing is **always** used — there
is no incremental mode. New supporting infrastructure: `search_index_job` for distributed reindex
job tracking, and `search_index_retry_queue` for failed search-index writes with claim leasing.

<Warning>
  Any automation triggering a reindex with `{"recreateIndex": false}` — an "incremental reindex" job,
  for example — must drop the field. New diagnostics ship alongside: reindex-drift and index-health
  checks in `/v1/system/validate`, plus a cluster-fitness diagnostic.
</Warning>

## RDF Index app defaults change, and your settings get overwritten

**Behavioural.** The migration overwrites your settings, not just the schema defaults.

| Setting                          | Before            | After                               |
| -------------------------------- | ----------------- | ----------------------------------- |
| `appSchedule.cronExpression`     | daily             | **`0 0 * * 6`** (weekly, Saturday)  |
| `appConfiguration.recreateIndex` | incremental       | **`true`** (full rebuild every run) |
| `appConfiguration.entities`      | operator's subset | **`["all"]`**                       |

Incremental RDF indexing produced unbounded triple growth because relationship-removal paths weren't
fully reconciled. A full per-run clear always converges to the relational state, and the weekly
cadence keeps per-run cost from saturating the triple store. The `entities` reset is a safety measure:
with a full rebuild issuing a clear before indexing, a narrowed entity subset would wipe triples for
entity types still present in the database.

<Warning>
  Your `entities` subset is **not preserved**. Reapply it after the migration if you need partial RDF
  indexing — understanding that the following run will still clear first. `inferenceEnabled` also
  flips from `true` to `false`; set `RDF_INFERENCE_ENABLED=true` to restore 1.13 behaviour.
</Warning>

## Data Insights and MCP application configuration are stripped

**Breaking**, for two unrelated reasons landing in the same migration pass.

A stored `DataInsightsApplication` configuration containing `moduleConfiguration.dataQuality` fails
to deserialize at startup — see
[Data Quality](/ai-2-0/release-2.0/breaking-changes/data-quality) for the full removal. Separately, MCP
configuration now lives **solely** in the `mcpConfiguration` setting; the application-level copy
(which no code read) is dropped by the migration, and the now-empty configure step is hidden in the
UI. Configure MCP through **Settings** > **MCP**, not through the application's own configuration.

Two more fields are stripped from stored application rows for security reasons
(**behavioural**): `openMetadataServerConnection` and `privateConfiguration` were being persisted
into application rows and version history despite being runtime-only. 2.0 also stops exposing the
application bot JWT and `privateConfiguration` secrets in API responses — if your tooling read the
bot token out of `/v1/apps/...`, obtain it through the bot API instead.

<Note>
  The `appConfig` union also drops the three Collate AI agent configurations and gains a permissive
  terminal branch — branch **indexes shift**, so generated unions that key on position must be
  regenerated rather than hand-patched.
</Note>

## MCP tool contracts change for 15 tools, and 7 tools are added

**Breaking for MCP clients that parse responses.** No tools are removed, but the contract changes in
ways that will silently misbehave if you don't update the client:

| Change                                           | Detail                                                                                                                                                                                                                                                        |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `queryFilter` no longer honours `size` or `aggs` | A `size`/`aggs` key inside `search_metadata`'s `queryFilter` is **ignored**. Read `totalFound` for counts, or set `includeAggregations=true` for facets — a count query written as `{"size": 0, "aggs": {...}}` silently returns a normal result page in 2.0. |
| Opaque `nextCursor` pagination                   | All read tools page behind a single opaque cursor instead of per-tool offset conventions.                                                                                                                                                                     |
| Response size budget                             | A global budget trims wide payloads by **paging items, not truncating content** — a response can now be a partial page where 1.13 returned a truncated blob.                                                                                                  |
| `queries` is not a retrievable field             | `search_metadata`'s `fields` no longer resolves `queries`. Search `entityType='query'` instead.                                                                                                                                                               |
| Name term queries must be lowercased             | `fullyQualifiedName` is indexed with a lowercase normalizer, so `{"terms": {"fullyQualifiedName": ["DailyActiveUsers"]}}` silently matches nothing.                                                                                                           |
| `create_*` tools return a compact entity         | Instead of the full entity.                                                                                                                                                                                                                                   |

The changed tools are `create_classification`, `create_data_product`, `create_domain`,
`create_glossary`, `create_glossary_term`, `create_lineage`, `create_metric`, `create_tag`,
`create_test_case`, `get_entity_lineage`, `get_test_definitions`, `patch_entity`,
`root_cause_analysis`, `search_metadata` and `semantic_search`. The seven new tools are all Context
Center and AI-context tools: `create_context_memory`, `find_context`, `get_asset_context`,
`get_company_context`, `get_knowledge_content`, `get_persona_context` and
`search_company_context`.

<Tip>
  Re-run your MCP client against 2.0 before rolling out. Anything that counted results with a
  `size: 0` aggregation query, or paged with a bespoke offset, must change.
</Tip>

## CSV import and export become tracked background jobs

**Behavioural.** Affects CSV automation and the UI. In 1.13, async CSV progress was delivered
**only** over WebSocket — a client without a live socket had no way to observe the job. In 2.0,
`background_jobs` gains `progress`, `total`, `result`, `error`, `cancelRequested` and `completedAt`;
jobs are pollable at `GET /v1/csvAsyncJobs/{jobId}` and downloadable from
`GET /v1/csvAsyncJobs/{jobId}/result`, and the UI surfaces them in a **Background jobs** tray. Async
entity restore is also available via `PUT /v1/{entityType}/restore?async=true`.

## Concurrency limits protect the connection pool during background fan-out

**Additive.** A new `openmetadata.yaml` block caps how much background work can run at once:

```yaml theme={null}
asyncOperations:
  maxConcurrentDbTasks: ${ASYNC_MAX_CONCURRENT_DB_TASKS:-25}
  maxConcurrentRdfWrites: ${ASYNC_MAX_CONCURRENT_RDF_WRITES:-8}
  dataInsightsMaxConcurrentDbTasks: ${DATA_INSIGHTS_MAX_CONCURRENT_DB_TASKS:-16}
```

This prevents background fan-out (reindex, Data Insights runs) from exhausting the request
connection pool. Tune the values down if you see connection-pool starvation during those runs.

## Search and vector infrastructure gain new capabilities

**Additive.** Native Elasticsearch vector search is available alongside the existing OpenSearch
path, and Google Gemini joins as an embedding provider. Multi-chunk hybrid ranking is backed by
denormalised chunk documents with a staged, generation-based index recreate, inspectable at
`GET /v1/search/vector/fingerprint`. The candidate multiplier for vector search is tunable via
`knnNumCandidatesMultiplier` (`num_candidates = max(k × multiplier, 100)`, default `2`), and NLQ's
`filterExtractor` block gains its own cache size, TTL, and prompt sample limits.

## A new cache layer ships with admin controls

**Additive.** New admin endpoints — `GET /v1/system/cache/keys`, `POST /v1/system/cache/invalidate`
and `POST /v1/system/cache/invalidate/entity` — manage a cache layer that's a no-op by default. Set
`CACHE_PROVIDER=redis` to enable the Redis L2 cache; it falls back to the no-op provider if Redis is
unreachable at startup.

## Full detail

For the full narrative walkthrough of Platform Applications in Collate 2.0 — including screenshots and step-by-step context — see [Release 2.0: Platform Applications](/ai-2-0/release-2.0/platform-applications).
