Skip to main content

Catalog migrations

Generated from apiome-rest/openapi.yaml (API version 1.307.0) — do not edit by hand. How to authenticate is on the REST API reference.

Tag: catalog-migrations · 6 operations

GET /v1/tenants/{tenant_slug}/catalog-components/{slug}​

Read a component

An accepted Backstage or Compass component, system or domain (imports:view).

Its owner, facts and dependencies are read through the owners, entity-facts and graph routes with kind component.

Operation id: read_catalog_component_v1_tenants__tenant_slug__catalog_components__slug__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
slugpathstringyesURL-safe resource slug.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read a component.application/json ComponentOut
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/catalog-migration-suggestions/{suggestion_id}/accept​

Accept a suggestion

Accept a suggestion (imports:create; a team also needs teams:create).

  • Team — creates the team with the imported name, description, email and links (or links the live team that already has the slug), then suggests it as the owner of everything the import said it owns. It is never confirmed as an owner here.
  • Component matched to a Project or catalog item — applies the owner suggestion (and, for Compass, the declared dependencies) to that entity. asComponent: true registers it as a component of its own instead.
  • Component — registers a component entity with its links and declared dependencies; references to it that were unresolved resolve now.

name and slug override what was imported. 409 migration-slug-taken when a component has the slug already; 409 migration-suggestion-decided when it was decided before.

Operation id: accept_catalog_migration_suggestion_v1_tenants__tenant_slug__catalog_migration_suggestions__suggestion_id__accept_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suggestion_idpathstringyesPath parameter identifying the suggestion id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for accept a suggestion.

Responses

StatusDescriptionBody
200Successful response for accept a suggestion.application/json MigrationSuggestion
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/catalog-migration-suggestions/{suggestion_id}/dismiss​

Dismiss a suggestion

Dismiss a suggestion (imports:create); later scans and uploads keep it dismissed.

Operation id: dismiss_catalog_migration_suggestion_v1_tenants__tenant_slug__catalog_migration_suggestions__suggestion_id__dismiss_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suggestion_idpathstringyesPath parameter identifying the suggestion id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for dismiss a suggestion.application/json MigrationSuggestion
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/catalog-migrations​

List import reports

Every Backstage and Compass import report, most recently updated first (imports:view).

A repository branch with catalog-info.yaml files has one report, rewritten by each scan; each Compass upload has its own. pending counts the suggestions still waiting for a decision.

Operation id: list_catalog_migrations_v1_tenants__tenant_slug__catalog_migrations_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list import reports.application/json MigrationRunList
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/catalog-migrations/compass​

Import a Compass export

Stage an Atlassian Compass export (imports:create).

content is the export's JSON: {components, teams}, a GraphQL searchComponents response, or a list of components (at most 5 MB). Components become component suggestions (links, DEPENDS_ON relationships as declared references), owners become team suggestions, and every field that has no Apiome equivalent is listed in unmapped. Nothing is created until a suggestion is accepted.

Operation id: import_compass_export_v1_tenants__tenant_slug__catalog_migrations_compass_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for import a compass export.

Responses

StatusDescriptionBody
201Successful response for import a compass export.application/json MigrationRun
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/catalog-migrations/{run_id}​

Read an import report

One report: counts, suggestions (teams, then components) and unmapped fields (imports:view).

Operation id: read_catalog_migration_v1_tenants__tenant_slug__catalog_migrations__run_id__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
run_idpathstringyesPath parameter identifying the run id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read an import report.application/json MigrationRun
422Validation Errorapplication/json HTTPValidationError

Schemas used​

AcceptInput​

Overrides for accepting a suggestion; everything defaults to what the import read.

PropertyTypeRequiredDescription
namestring or nullnoHuman-readable name.
slugstring or nullnoURL-safe identifier.
asComponentbooleannoFor a component matched to an existing Project or catalog item: register it as a component of its own instead of applying it to the match.

CompassUploadInput​

An uploaded Compass export.

PropertyTypeRequiredDescription
filenamestringnoFilename.
contentstringyesThe export's JSON text, as uploaded.

ComponentOut​

An accepted component (the component entity kind).

PropertyTypeRequiredDescription
idstringyesStable resource identifier.
slugstringyesURL-safe identifier.
namestringyesHuman-readable name.
descriptionstring or nullnoFree-text description.
categoryenum "component", "system", "domain"yesClassification category for the primitive type.
componentTypestring or nullnoComponent Type.
lifecyclestring or nullnoLifecycle.
parentRefstring or nullnoParent Ref.
linksarray of ComponentLinknoLinks.
sourceenum "backstage", "compass"yesProvenance source for the record (for example human or imported).
externalRefstringyesExternal Ref.
ownerEntityOwnerRef or nullnoThe confirmed owner, else the oldest suggestion.
createdAtstring or nullnoCreated At.
updatedAtstring or nullnoUpdated At.

HTTPValidationError​

Validation error response emitted when request data fails schema checks.

PropertyTypeRequiredDescription
detailarray of ValidationErrornoDetail.

MigrationRun​

One import report.

PropertyTypeRequiredDescription
idstringyesStable resource identifier.
sourceenum "backstage", "compass"yesProvenance source for the record (for example human or imported).
labelstringyesLabel.
repositoryIdstring or nullnoRepository ID.
branchstring or nullnoBranch.
countsmap of integernoCounts.
unmappedarray of UnmappedFieldOutnoUnmapped.
unmappedTotalintegernoUnmapped Total.
pendingintegernoSuggestions still waiting for a decision.
suggestionsarray of MigrationSuggestion or nullnoPresent on a single report's read.
createdAtstring or nullnoCreated At.
updatedAtstring or nullnoUpdated At.

MigrationRunList​

Every import report of a tenant, newest first.

PropertyTypeRequiredDescription
runsarray of MigrationRunyesRuns.

MigrationSuggestion​

One staged component or team.

PropertyTypeRequiredDescription
idstringyesStable resource identifier.
kindenum "component", "team"yesKind.
sourceenum "backstage", "compass"yesProvenance source for the record (for example human or imported).
externalRefstringyesIts reference in its own catalog.
namestringyesHuman-readable name.
slugstringyesURL-safe identifier.
statusenum "suggested", "accepted", "dismissed"yesStatus.
payloadobjectnoWhat accepting writes: description, category, type, links, ownerRef, references (components); description, contactEmail, chatUrl, oncallUrl, docsUrl (teams).
matchobject or nullno{kind, id, name, slug} of the Project or catalog item the component already is.
entityobject or nullno{kind, id, slug} of what accepting made or applied to.
decidedAtstring or nullnoDecided At.