Skip to main content

Field sets & mapping sets

Field sets and mapping sets are tenant-wide, named and colored groupings used to organize content in the datasource and query builders. A field set groups fields; a mapping set groups mappings. Both are siblings with the same shape — { name, icon?, color? } — and the same CRUD surface.

Mapping-set membership is managed separately, through mapping-set entries.

Field sets

GET /api/field-sets

List field sets. A HAL collection (rel inf:field-sets) sorted by name; pass ?q= to filter by name.

List field setsGET /api/field-sets
GET /api/field-sets is a HAL collection (rel inf:field-sets) sorted by name. Pass ?q= to filter by name.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/field-sets?sort=name&limit=0&start=0"
}
},
"start": 0,
"count": 1,
"total": 1,
"_embedded": {
"inf:field-set": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/field-sets/00000000-0000-4000-8000-000000000001"
}
},
"id": "00000000-0000-4000-8000-000000000001",
"name": "Financials",
"color": "#2E7D32",
"icon": "flaticon-coins",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"tenant": "acme"
}
]
}
}
Captured from the API examples test suite; ids and timestamps are normalized.

POST /api/field-sets

Create a field set.

FieldTypeRequiredDescription
namestringYesDisplay name.
iconstringNoIcon class.
colorstringNoHex color.

Returns 201 with a Location header.

Create a field setPOST /api/field-sets
POST /api/field-sets creates a tenant-wide field set (a named, colored grouping for fields). Payload { name (required), icon?, color? }. Returns 201 with a Location header.
Request body
{
"name": "Financials",
"color": "#2E7D32",
"icon": "flaticon-coins"
}
Response · 201
{
"_links": {
"self": {
"href": "https://informer.example.com/api/field-sets/00000000-0000-4000-8000-000000000001"
}
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"name": "Financials",
"color": "#2E7D32",
"icon": "flaticon-coins",
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z"
}
Captured from the API examples test suite; ids and timestamps are normalized.

GET /api/field-sets/{id}

Get one field set.

Get a field setGET /api/field-sets/00000000-0000-4000-8000-000000000001
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/field-sets/00000000-0000-4000-8000-000000000001"
}
},
"id": "00000000-0000-4000-8000-000000000001",
"name": "Financials",
"color": "#2E7D32",
"icon": "flaticon-coins",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"tenant": "acme"
}
Captured from the API examples test suite; ids and timestamps are normalized.

PUT /api/field-sets/{id}

Upsert a field set. Returns 200 with the updated record.

Update a field setPUT /api/field-sets/00000000-0000-4000-8000-000000000001
PUT /api/field-sets/{id} upserts the field set. Returns 200 with the updated record.
Request body
{
"name": "Financial Fields",
"color": "#1B5E20",
"icon": "flaticon-coins"
}
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/field-sets/00000000-0000-4000-8000-000000000001"
}
},
"id": "00000000-0000-4000-8000-000000000001",
"name": "Financial Fields",
"color": "#1B5E20",
"icon": "flaticon-coins",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"tenant": "acme"
}
Captured from the API examples test suite; ids and timestamps are normalized.

DELETE /api/field-sets/{id}

Delete a field set. Returns 200 with an empty body (Informer convention).

Delete a field setDELETE /api/field-sets/00000000-0000-4000-8000-000000000001
DELETE /api/field-sets/{id} removes the field set and returns 200 with an empty body (Informer convention).
Response · 200 · no body
Captured from the API examples test suite; ids and timestamps are normalized.

POST /api/field-sets-bulk

Apply adds, updates, and removes in a single transaction.

FieldTypeDescription
addarrayField sets to create ({ name, icon?, color? }).
updatearrayField sets to update (each with id).
removearrayField-set ids to delete.

Returns 200 with an empty body.

Bulk add/update/remove field setsPOST /api/field-sets-bulk
POST /api/field-sets-bulk applies adds, updates, and removes in one transaction. Payload { add[], update[] (each with id), remove[] (ids) }. Returns 200 with an empty body.
Request body
{
"add": [
{
"name": "Dates",
"color": "#1565C0"
}
],
"update": [],
"remove": []
}
Response · 200 · no body
Captured from the API examples test suite; ids and timestamps are normalized.

Mapping sets

GET /api/mapping-sets

List mapping sets. A HAL collection (rel inf:mapping-sets) sorted by name, carrying the caller's mappingSets permissions; pass ?q= to filter by name.

List mapping setsGET /api/mapping-sets
GET /api/mapping-sets is a HAL collection (rel inf:mapping-sets) sorted by name, carrying the caller’s mappingSets permissions. Pass ?q= to filter by name.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/mapping-sets?sort=name&limit=0&start=0"
}
},
"start": 0,
"count": 1,
"total": 1,
"permissions": {
"create": true
},
"_embedded": {
"inf:mapping-set": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/mapping-sets/sales-tables"
}
},
"tenant": "acme",
"id": "sales-tables",
"name": "Sales Tables",
"icon": "flaticon-table",
"color": "#6A1B9A",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z"
}
]
}
}
Captured from the API examples test suite; ids and timestamps are normalized.

POST /api/mapping-sets

Create a mapping set ({ name, icon?, color? }). Returns 201 with a Location header.

Create a mapping setPOST /api/mapping-sets
POST /api/mapping-sets creates a tenant-wide mapping set (a named, colored grouping for mappings). Payload { name (required), icon?, color? }. Returns 201 with a Location header.
Request body
{
"name": "Sales Tables",
"color": "#6A1B9A",
"icon": "flaticon-table"
}
Response · 201
{
"_links": {
"self": {
"href": "https://informer.example.com/api/mapping-sets/sales-tables"
}
},
"tenant": "acme",
"id": "sales-tables",
"name": "Sales Tables",
"color": "#6A1B9A",
"icon": "flaticon-table",
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z"
}
Captured from the API examples test suite; ids and timestamps are normalized.

GET /api/mapping-sets/{id}

Get one mapping set.

Get a mapping setGET /api/mapping-sets/sales-tables
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/mapping-sets/sales-tables"
}
},
"tenant": "acme",
"id": "sales-tables",
"name": "Sales Tables",
"icon": "flaticon-table",
"color": "#6A1B9A",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z"
}
Captured from the API examples test suite; ids and timestamps are normalized.

PUT /api/mapping-sets/{id}

Upsert a mapping set. Returns 200 with the updated record.

Update a mapping setPUT /api/mapping-sets/sales-tables
PUT /api/mapping-sets/{id} upserts the mapping set. Returns 200 with the updated record.
Request body
{
"name": "Sales & Orders",
"color": "#4A148C"
}
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/mapping-sets/sales-tables"
}
},
"tenant": "acme",
"id": "sales-tables",
"name": "Sales & Orders",
"icon": "flaticon-table",
"color": "#4A148C",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z"
}
Captured from the API examples test suite; ids and timestamps are normalized.

DELETE /api/mapping-sets/{id}

Delete a mapping set. Returns 200 with an empty body.

Delete a mapping setDELETE /api/mapping-sets/scratch-mapping-set
DELETE /api/mapping-sets/{id} removes the mapping set and returns 200 with an empty body (Informer convention).
Response · 200 · no body
Captured from the API examples test suite; ids and timestamps are normalized.

POST /api/mapping-sets-bulk

Bulk add / update / remove, same shape as the field-sets bulk endpoint. Returns 200 with an empty body.

Bulk add/update/remove mapping setsPOST /api/mapping-sets-bulk
POST /api/mapping-sets-bulk applies adds, updates, and removes in one transaction. Payload { add[], update[] (each with id), remove[] (ids) }. Returns 200 with an empty body.
Request body
{
"add": [
{
"name": "Reference Tables",
"color": "#00838F"
}
],
"update": [],
"remove": []
}
Response · 200 · no body
Captured from the API examples test suite; ids and timestamps are normalized.

POST /api/mapping-set-entries

Set which mapping sets each mapping belongs to. The payload is an object keyed by Mapping id, whose values are arrays of mapping-set ids:

{ "<mappingId>": ["<setId>", "<setId>"] }

Passing an empty array for a mapping clears all of its set assignments. The caller needs datasource:write on each mapping's datasource (mappings whose datasource is not writable are silently skipped). The response echoes the resulting { mappingId: [setId] } map.

Assign mappings to mapping setsPOST /api/mapping-set-entries
POST /api/mapping-set-entries sets which mapping sets a mapping belongs to. The payload is an object keyed by Mapping id with arrays of mapping-set ids: { "<mappingId>": ["<setId>"] }. An empty array clears a mapping’s sets. Requires datasource:write on each mapping’s datasource. Returns the resulting { mappingId: [setId] } map.
Request body
{
"00000000-0000-4000-8000-000000000001:public+categories": [
"sales-tables"
]
}
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/mapping-set-entries"
}
},
"00000000-0000-4000-8000-000000000001:public+categories": [
"sales-tables"
]
}
Captured from the API examples test suite; ids and timestamps are normalized.