Master Records Configuration
Read, check and save the Master Records configuration: per-domain read-only SQL sources, change logs, open items and thresholds. Saving needs an owner key.
GET /v1/master-records/config returns the saved configuration, or an object with empty domains when none is saved. PUT /v1/master-records/config replaces the stored configuration with the one in the body. The whole configuration replaces the stored one, so send every domain you want to keep. The PUT needs the write scope and an owner (Admin) key person; it is the only route of this surface with that tier.
Each configured domain needs at least one source with a unique label, an existing SQL connection of the workspace, and a single read-only SELECT, checked for the connection's engine. The optional changes and open_items queries must name one of the domain's sources by label. Thresholds are between 0 and 1, exclusive, and review_threshold does not exceed auto_threshold. A configuration that fails these checks is refused with 400 and nothing is stored. With dry_run: true the configuration is only checked and the response has saved: false.
/v1/master-records/config/v1/master-records/configBody fields
config.domains.<domain> fields
cURL: Save a configuration with a change log
curl -X PUT "https://api.talonic.com/v1/master-records/config" \
-H "Authorization: Bearer $TALONIC_OWNER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"config": {
"domains": {
"vendors": {
"sources": [
{ "label": "ERP-A", "connection_id": "c2f4a6e8-1b3d-4f5a-8c7e-9d0b1a2c3e4f", "sql": "SELECT lifnr AS id, name1 AS name, stcd1 AS tax_id, land1 AS country, iban FROM vendors" },
{ "label": "ERP-B", "connection_id": "7e5d3b1a-9c8f-4a6e-b2d0-1f3a5c7e9b2d", "sql": "SELECT vendor_no AS id, vendor_name AS name, vat_no AS tax_id, country, iban FROM ap_vendor" }
],
"changes": [
{ "label": "ERP-A", "connection_id": "c2f4a6e8-1b3d-4f5a-8c7e-9d0b1a2c3e4f", "sql": "SELECT changed_at, id, field, old_value, new_value, changed_by FROM vendor_changes" }
],
"review_threshold": 0.6,
"auto_threshold": 0.9
}
}
}
}'Response: 200 Saved
{ "config": { "domains": { "vendors": { "sources": [ { "label": "ERP-A" }, { "label": "ERP-B" } ] } } }, "saved": true }id and name fails the run with 400, not the save.