Skip to main content
POST
Compare Configuration

Authorizations

Authorization
string
header
required

User-principal OAuth 2.0 Bearer authentication. Send a user-scoped Auth0 access token (audience = the app API audience) as Authorization: Bearer <jwt>. The request resolves to the user's identity and is authorized by their Role on the {companyId} in the path — the same role-based permissions the web app enforces. This is the path the MCP connector uses to act on a user's behalf; endpoints that accept it list both BearerAuth and ApiKeyAuth.

Path Parameters

companyId
string<uuid>
required

Company identifier

Body

application/json

A COMPLETE configuration body (the same one export returns). A delta/patch body is rejected with a 400 — typed changes go to the patch endpoint (POST .../configuration/patch).

fields
object[]
required

Field definitions, keyed by entity + reference id.

One top-level field definition, keyed by entity + reference id. Declare its type with structured typeInfo. Legacy type and string-encoded typeArgs remain accepted; when both representations are supplied they must agree semantically. A conflict is rejected with the field identity. Exports use typeInfo without the legacy duplicate properties.

pages
object[]
required

Page definitions.

cards
object[]
required

Card definitions.

cardPageRelationships
object[]
required

Placements of cards onto pages.

optionSetTypes
object[]
required

Option-set type declarations.

objectTypes
object[]
required

Custom-object type declarations.

optionSets
object[]
required

Option sets and their options.

objects
object[]
required

Custom-object sub-field definitions, joined to object types.

fieldLocations
object[]
required

Field placements (the layout) onto cards.

ratingWorkflows
object[]
required

Rating workflow definitions.

entityInvariants
object[]
required

Per-entity invariant conditions enforced on every write.

formLogicRules
object[]

Forms-logic rules (quote-flow auto-add rules). Optional — existing payloads predate the "Forms" tab; absent ⇒ no rules.

smartTags
object[]

Smart tags — the named values resolved into generated documents. Optional: existing payloads predate the slice, and absent ⇒ no smart tags, which is also how a company that has not yet moved to this format is recognised.

Omitted from an export when the company has none, rather than emitted as an empty array.

exportSurfaces
object[]

Declared export columns — the tenant-facing column set of each export surface (the seven entity exports plus the bordereau). Optional: existing payloads predate the slice, and absent ⇒ no declared columns, which is also how a surface that still offers every configured field is recognised.

Activation is per surface: a surface with at least one row here resolves its whole tenant column set through those rows, in the order they appear; a surface with none behaves exactly as it did before this section existed.

Omitted from an export when the company has declared none, rather than emitted as an empty array.

listColumns
object[]

Declared list columns — the complete tenant-facing column set of each entity list page. Optional: existing payloads predate the slice, and absent ⇒ no declared tenant columns, so each list renders only its platform/system columns.

Rows declare membership, not order or default visibility. The platform's per-page defaults and each user's saved view own those choices; the stored configuration sorts rows canonically by (surface, key).

Omitted from an export when the company has declared none, rather than emitted as an empty array.

listFilters
object[]

Tenant-defined list filters, one per (surface, key). Together with page-owned system filters, these rows are the complete user-visible filter catalog. listColumns contributes no filters.

Optional for wire compatibility with payloads that predate the slice. Absent or empty means that each entity list offers only its page-owned system filters. Omitted from an export when the company has none.

billingConditions
object[]

Optional named Quote billing conditions. Each condition key has one * default and optional per-flow overrides. False conditions skip the billing calculation and leave its value null without refusing saving or binding. Rows are sorted by (conditionKey, quoteFlow). Omitted from an export when absent or empty, preserving existing configuration exports.

conversionRules
object[]

Exceptions to the default copy between Policy and Quote. At bind and at draft generation, every shared field (declared on Quote and Policy with the same referenceId and value type, and neither calculated on the destination nor system-managed or platform-owned) is copied unchanged unless a rule in that direction and transaction type names it. A rule names a field when its destinationPath is the field or a path under it. An expression of exactly SKIP() writes nothing; any other expression writes its result, including to a differently named destination. A field declared on one entity only is written only by a rule. The default copy is not stored as rules and is not exported.

Each rule is identified by its (direction, transactionType, destinationPath) triple; duplicates are rejected. The stored configuration sorts the section canonically by that triple. Import validates explicit rules and requires all framework-pinned rows, including on first import. Omitting or emptying the section is invalid, even with force enabled. Preserve the authored slice through whole-configuration imports. Field edits require reviewing affected rules against business intent: adding a shared field carries it with no rule, and deleting a rule on a shared field turns the default copy on for it.

retirementIdentities
object[]

Server-derived memory for retired data addresses. Records have exactly one of three kinds: top-level field, custom-object subfield, or option-set value. A submitted copy is accepted for export/import round trips but is non-authoritative; the server derives the next set from the previous immutable configuration version. Omitted when empty.

exportPlatformColumns
object[]

Spreadsheet types for built-in (platform) export columns, one per (surface, column). Optional: absent or empty means platform columns keep their built-in formatting. column must name a built-in column of the surface (checked by name at import). Omitted from an export when empty.

brokerPortal
object

Broker Portal customization. Optional, and omitted from an export when absent. This section does not turn the portal on: a platform admin enables the portal separately, and a configuration import cannot. The portal's logo and colours are the company's branding in Company Settings, not configuration.

searchFields
object[]

The values the search index holds, per record type: list search and global search find a record by them. A record's display-name field is always searchable without a row. Optional: absent or empty means each record is searchable by its name only. Omitted from an export when empty.

searchResultFields
object[]

The fields or calculated values a global search result shows, per record type, read from the record when the search runs. Optional: absent or empty means a result shows its name and the fields that matched. Omitted from an export when empty.

A field or calculated value shown in global search and authorized relationship pickers. Without an expression, key names a top-level field of any kind. With an expression, key is an independent identifier and valueType and cardinality are required. Copy these three properties from a list column on the same entity type. Expressions use the same bare field/JEXL grammar and pure/temporal functions as list columns. VIEW_AS_OF_DATE() is today's UTC date here. Database reads, entity-bound functions, mutations and attached form numbers are unavailable. Values are evaluated when search runs; they do not make records searchable and require no reindex.

graphSettings
object

The company's graph settings: the time zone every graph reads today and day boundaries in. Required once any graph data point is declared. Omitted from an export when absent.

graphDataPoints
object[]

Graph data points: how dashboard graphs read numbers out of records. Optional: absent or empty means none. Omitted from an export when empty.

Response

Comparison completed

Diff between the supplied configuration and the current database configuration

fieldDefinitions
object
required

Change counts for a single configuration category

optionSets
object
required

Change counts for a single configuration category

customObjects
object
required

Change counts for a single configuration category

cardDefinitions
object
required

Change counts for a single configuration category

cardPageRelationships
object
required

Change counts for a single configuration category

fieldLocations
object
required

Change counts for a single configuration category

billingConditions
object

Present only when either compared configuration declares billing condition rows.

searchFields
object

Present only when either compared configuration declares searchFields rows.

searchResultFields
object

Present only when either compared configuration declares searchResultFields rows.

graphDataPoints
object

Present only when either compared configuration declares graphDataPoints rows.

graphSettings
object

Present only when either compared configuration declares graphSettings.