Domains

Domains are named groupings that organise model objects into bounded contexts. They map closely to the Domain-Driven Design (DDD).


What a domain is

Every model object in a version belongs to exactly one domain. Domains provide a way to segment a large architecture either by business unit (e.g., Payments) or by team ownership (e.g., platform).


Creating domains

Create a domain in a version:

POST
/v1/landscapes/:landscapeId/versions/:versionId/domains
1curl -X POST https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/domains \
2 -H "X-API-Key: <apiKey>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "name": "string"
6}'

Filtering model objects by domain

Use the GET endpoint with query parameter ?filter[domainId]={domainId} to filter objects.

GET
/v1/landscapes/:landscapeId/versions/:versionId/model/objects
1curl https://api.icepanel.io/v1/landscapes/landscapeId/versions/versionId/model/objects \
2 -H "X-API-Key: <apiKey>"

This is useful for extracting a bounded-context slice of the architecture for reports or external tools.