Appearance
Imports API
4 operations. Paths are relative to the API host (http://localhost:5080 in local development). Every operation accepts an OIDC bearer token (Authorization: Bearer …) or a workspace API key (X-Api-Key: keel_live_…); errors are RFC 9457 Problem Details with a code (error codes). Permissions: matrix.
| Method | Path | Summary |
|---|---|---|
| GET | /api/v1/workspaces/{workspaceId}/models/{modelId}/imports | Import history of a model, newest first, with each import's report and change request. |
| POST | /api/v1/workspaces/{workspaceId}/models/{modelId}/imports | Import dbt MetricFlow, LookML or Cube files (or a zip): every object becomes a proposal (origin Imported, file:line evidence) on branch keel/import-{format}-{id} with a change request into main; objects main has differently are kept as merge conflicts. EditModels; audited. |
| POST | /api/v1/workspaces/{workspaceId}/models/{modelId}/imports:preview | What importing dbt MetricFlow, LookML or Cube files would do: objects added, already on main, in conflict, and the report. Nothing is written (EditModels). |
| GET | /api/v1/workspaces/{workspaceId}/models/{modelId}/imports/{importId} | One import with its report. |
ListModelImports
http
GET /api/v1/workspaces/{workspaceId}/models/{modelId}/importsImport history of a model, newest first, with each import's report and change request.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes | |
modelId | path | uuid | yes | |
limit | query | int32 | no |
| Status | Description | Body |
|---|---|---|
| 200 | OK | ModelImportDto[] |
ImportModel
http
POST /api/v1/workspaces/{workspaceId}/models/{modelId}/importsImport dbt MetricFlow, LookML or Cube files (or a zip): every object becomes a proposal (origin Imported, file:line evidence) on branch keel/import-{format}-{id} with a change request into main; objects main has differently are kept as merge conflicts. EditModels; audited.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes | |
modelId | path | uuid | yes |
Request body (multipart/form-data): object
| Status | Description | Body |
|---|---|---|
| 201 | Created | ModelImportDto |
Response 201: ModelImportDto
| Field | Type | Notes |
|---|---|---|
added | int32 | |
approximated | int32 | |
branch | string? | |
changeRequestNumber | int32? | |
conflicts | int32 | |
entities | int32 | |
errors | int32 | |
files | int32 | |
format | string | |
id | uuid | |
importedAt | date-time | |
importedBy | string | |
issues | ImportIssueDto[] | |
joins | int32 | |
metrics | int32 | |
modelId | uuid | |
objects | ImportedObjectDto[] | |
skipped | int32 | |
source | string | |
status | ModelImportStatus | One of ChangeRequestOpened, NothingNew, NothingImported |
unchanged | int32 |
PreviewModelImport
http
POST /api/v1/workspaces/{workspaceId}/models/{modelId}/imports:previewWhat importing dbt MetricFlow, LookML or Cube files would do: objects added, already on main, in conflict, and the report. Nothing is written (EditModels).
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes | |
modelId | path | uuid | yes |
Request body (multipart/form-data): object
| Status | Description | Body |
|---|---|---|
| 200 | OK | ModelImportPreviewDto |
Response 200: ModelImportPreviewDto
| Field | Type | Notes |
|---|---|---|
added | int32 | |
approximated | int32 | |
conflicts | int32 | |
entities | int32 | |
errors | int32 | |
files | int32 | |
format | string | |
issues | ImportIssueDto[] | |
joins | int32 | |
metrics | int32 | |
objects | ImportedObjectDto[] | |
skipped | int32 | |
unchanged | int32 |
GetModelImport
http
GET /api/v1/workspaces/{workspaceId}/models/{modelId}/imports/{importId}One import with its report.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes | |
modelId | path | uuid | yes | |
importId | path | uuid | yes |
| Status | Description | Body |
|---|---|---|
| 200 | OK | ModelImportDto |
Response 200: ModelImportDto
| Field | Type | Notes |
|---|---|---|
added | int32 | |
approximated | int32 | |
branch | string? | |
changeRequestNumber | int32? | |
conflicts | int32 | |
entities | int32 | |
errors | int32 | |
files | int32 | |
format | string | |
id | uuid | |
importedAt | date-time | |
importedBy | string | |
issues | ImportIssueDto[] | |
joins | int32 | |
metrics | int32 | |
modelId | uuid | |
objects | ImportedObjectDto[] | |
skipped | int32 | |
source | string | |
status | ModelImportStatus | One of ChangeRequestOpened, NothingNew, NothingImported |
unchanged | int32 |