Documentation Index

Fetch the complete documentation index at: https://docs.aifabrix.ai/llms.txt

Use this file to discover all available pages before exploring further.

Configure entity configuration

Prev Next

Business Entity configuration[] holds runtime overrides for variables already declared on the Connected System. Each entry is name + value only — entity scope replaces the system default for that variable when CIP, sync, or capabilities run on this datasource.

Use this when one Connected System hosts multiple Business Entities that share connection/auth but need different vendor scope — for example one SharePoint integration with separate document libraries for deals, contracts, and general documents.

Why it matters

Connected System Configure system configuration defines what variables exist (name, location, required, portalInput). Business Entities declare which values differ per entity without duplicating auth, OpenAPI bindings, or CIP pipelines.

System configuration     →  declares SHAREPOINT_SITE_ID, SHAREPOINT_LIST_ID, …
Entity A configuration   →  overrides SHAREPOINT_LIST_ID → deals library GUID
Entity B configuration   →  overrides SHAREPOINT_LIST_ID → contracts library GUID
Entity C configuration   →  (no override) → uses system default list id

At runtime the platform merges system definitions with datasource overrides before resolving {{VARIABLE}} placeholders in CIP steps and OpenAPI paths.

Prerequisites

  • Configure system configuration on <systemKey>-system.json with every variable you intend to override
  • Entity identity bands complete (key, systemKey, entityType, resourceType, …)
  • CIP/OpenAPI paths reference configuration variables with {{NAME}} syntax where appropriate

System vs entity configuration

Aspect Connected System (system.configuration) Business Entity (datasource.configuration)
Purpose Declare variables for the whole integration Override values per entity
Shape name, value, location, required, optional portalInput name and value only
New variables Yes — define keys here first No — every name must exist on the parent system
Secrets / keyvault location: keyvault allowed on system Cannot override keyvault variables
Auth Never — use Configure authentication Never

Validation rejects entity overrides for unknown names, extra fields (location, required, …), or keyvault targets.

Where it lives

Layer Location
Variable definitions <systemKey>-system.jsonconfiguration[]
Per-entity overrides <datasourceKey>.jsonconfiguration[]
Runtime resolution Merged map passed into CIP execution context
UI Business Entity Configuration tab (?tab=configuration)

Manifest section: datasource.configuration.

Builder MCP

Manifest section datasource.configuration
UI tab Configuration (?tab=configuration)
Help topics section, dependencyGraph
Repair hooks

When reading help topic sections, distinguish system.configuration (definitions) from datasource.configuration (overrides).

How to set

1. Declare shared variables on the Connected System

Example — one SharePoint site, default list id, operator fills values at deploy:

{
  "configuration": [
    {
      "name": "SHAREPOINT_SITE_ID",
      "value": "{{SHAREPOINT_SITE_ID}}",
      "location": "variable",
      "required": true,
      "portalInput": {
        "field": "text",
        "label": "SharePoint Site ID"
      }
    },
    {
      "name": "SHAREPOINT_LIST_ID",
      "value": "{{SHAREPOINT_LIST_ID}}",
      "location": "variable",
      "required": true,
      "portalInput": {
        "field": "text",
        "label": "Default document library (list GUID)"
      }
    }
  ]
}

2. Override per Business Entity (name + value only)

Deals library — same site, different list:

{
  "key": "sharepoint-deals",
  "displayName": "Deal documents",
  "systemKey": "sharepoint-crm",
  "entityType": "documentStorage",
  "resourceType": "deal",
  "configuration": [
    {
      "name": "SHAREPOINT_LIST_ID",
      "value": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    }
  ]
}

Contracts library:

{
  "key": "sharepoint-contracts",
  "displayName": "Contract documents",
  "systemKey": "sharepoint-crm",
  "entityType": "documentStorage",
  "resourceType": "contract",
  "configuration": [
    {
      "name": "SHAREPOINT_LIST_ID",
      "value": "f9e8d7c6-b5a4-3210-fedc-ba9876543210"
    }
  ]
}

General documents — omit configuration[] to inherit the system default SHAREPOINT_LIST_ID.

Each entity still has its own resourceType, metadata schema, sync band, and CIP operations — only the resolved configuration values change.

3. Reference variables in CIP and OpenAPI bindings

Use {{SHAREPOINT_SITE_ID}} and {{SHAREPOINT_LIST_ID}} in path templates, query parameters, and CIP fetch steps. When execution runs for sharepoint-deals, the platform resolves SHAREPOINT_LIST_ID from the entity override; for sharepoint-documents it uses the system value.

4. Validate and upload

aifabrix validate <systemKey>
aifabrix datasource validate <datasourceKey>
aifabrix upload <systemKey> --probe
aifabrix test-integration <systemKey>
aifabrix datasource test-e2e <datasourceKey> --app <systemKey>

After upload, operators can adjust entity-specific values on the Business Entity Configuration tab without changing system-wide defaults.

Runtime merge behavior

For each name in system.configuration:
  if datasource.configuration declares same name AND a stored datasource value exists
    → use datasource-scoped value
  else
    → use system-scoped (or global, when enabled) value

Overrides affect this entity only — sync jobs, webhooks, and capabilities on sibling entities keep their own resolved values.

Defaults and examples

Pattern When to use
Shared site / tenant on system One SHAREPOINT_SITE_ID or TENANT_ID for all entities
Per-library / per-folder override on entity Different SHAREPOINT_LIST_ID, FOLDER_PATH, or API resource id
No entity configuration[] Entity inherits all system defaults
Literal value in override Fixed GUID or path known at manifest time
{{NAME}} in override Template resolved at deploy like system entries
Do on system Do on entity
Add new configuration variable Override existing variable values
Set required, portalInput name + value only
OAuth secrets, API keys Never — authentication band only

Validate

aifabrix validate <systemKey>
aifabrix datasource validate <datasourceKey>

Validation errors to expect:

Error Cause
Override 'X' is not declared on the parent system Add X to system configuration[] first
Override must contain only name and value Remove location, required, portalInput from entity file
Keyvault override not allowed Change variable to location: variable on system, or do not override secrets

Re-run integration/E2E per entity after override changes — a green system validate does not prove each library path resolves correctly.

Common mistakes

Mistake Fix
Full configuration object on entity file Use name + value overrides only
New variable only on datasource Declare on system first, then override on entity
Duplicate auth or secrets in entity config Use system.authentications[]
Same list id on every SharePoint entity Add per-entity SHAREPOINT_LIST_ID override
System tenant id copied into every entity Keep shared ids on system; override only what differs
Skip validate after override edit datasource validate + entity-scoped E2E

Limits

  • Override names must match system definitions exactly (uppercase NAME pattern).
  • Keyvault-backed system variables cannot be overridden at entity level.
  • Entity configuration does not replace documentStorage, sync, or CIP bands — it only changes resolved variable values at runtime.

Related reading