Migration
30 Endpunkte. Basis-URL: https://xapi.ambertech.cloud/api/v1
List migration source connections#
/migration/connectionsTokenAntworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/connections" \
-H "Authorization: Bearer $XISUITE_TOKEN"Create a migration source connection (secret encrypted at rest)#
/migration/connectionsTokenRequest-Body
| Name | Typ | Beschreibung |
|---|---|---|
namePflicht | string | Human-readable connection name (unique per organization) |
productPflicht | string | Werte: |
base_urlPflicht | string | Base URL of the Jira/Confluence instance, e.g. https://acme.atlassian.net or http://host:8080 |
auth_typePflicht | string | Werte: |
auth_username | string | Username (Server) or email (Cloud) — required for basic auth |
secretPflicht | string | Password / API token / PAT. Write-only — encrypted at rest, never returned. |
allow_insecure_http | boolean | Allow plain HTTP (on-prem boxes without TLS) |
allow_private_networks | boolean | Allow private/internal network targets (on-prem installs only) |
Antworten
- 201Erstellt
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/connections" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"…","product":"jira","base_url":"…","auth_type":"basic","secret":"…"}'Partial-tolerant preview of a Jira project (counts + warnings) before job creation#
/migration/connections/{connectionId}/discovery/previewTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
connectionIdPflicht | Pfad | string | – |
projectKeyPflicht | Query | string | Jira project key to preview, e.g. "KAN" |
provisionUsers | Query | boolean | Model a provisioning-enabled run: report which users WOULD get an account. Still read-only — nothing is created and no mail is sent. |
inviteUsers | Query | boolean | Model an invite-enabled run: report who WOULD be invited and with which org role. Still read-only. |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/connections/{connectionId}/discovery/preview" \
-H "Authorization: Bearer $XISUITE_TOKEN"List migratable sources (Jira projects) on a connection#
/migration/connections/{connectionId}/discovery/sourcesTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
connectionIdPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/connections/{connectionId}/discovery/sources" \
-H "Authorization: Bearer $XISUITE_TOKEN"Lightweight preview of a Confluence space (page count + warnings) before job creation#
/migration/connections/{connectionId}/discovery/space-previewTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
connectionIdPflicht | Pfad | string | – |
spaceKeyPflicht | Query | string | Confluence space key to preview, e.g. "M0" |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/connections/{connectionId}/discovery/space-preview" \
-H "Authorization: Bearer $XISUITE_TOKEN"Read-only user mapping preview: email matches vs would-be placeholders (creates nothing, sends nothing)#
/migration/connections/{connectionId}/discovery/users-previewTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
connectionIdPflicht | Pfad | string | – |
projectKeyPflicht | Query | string | Jira project key to preview, e.g. "KAN" |
provisionUsers | Query | boolean | Model a provisioning-enabled run: report which users WOULD get an account. Still read-only — nothing is created and no mail is sent. |
inviteUsers | Query | boolean | Model an invite-enabled run: report who WOULD be invited and with which org role. Still read-only. |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/connections/{connectionId}/discovery/users-preview" \
-H "Authorization: Bearer $XISUITE_TOKEN"Get a migration source connection#
/migration/connections/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/connections/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN"Update a migration source connection#
/migration/connections/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
name | string | – |
base_url | string | – |
auth_type | string | Werte: |
auth_username | string | – |
secret | string | New secret; omit to keep the existing one |
allow_insecure_http | boolean | – |
allow_private_networks | boolean | – |
Antworten
- 200OK
curl -X PATCH "https://xapi.ambertech.cloud/api/v1/migration/connections/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"…","base_url":"…","auth_type":"basic"}'Delete a migration source connection#
/migration/connections/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X DELETE "https://xapi.ambertech.cloud/api/v1/migration/connections/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN"Test a saved connection; persists detected deployment/version#
/migration/connections/{id}/testTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 201Erstellt
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/connections/{id}/test" \
-H "Authorization: Bearer $XISUITE_TOKEN"Test connection credentials without saving#
/migration/connections/testTokenRequest-Body
| Name | Typ | Beschreibung |
|---|---|---|
productPflicht | string | Werte: |
base_urlPflicht | string | – |
auth_typePflicht | string | Werte: |
auth_username | string | – |
secretPflicht | string | Password / API token / PAT (not persisted for an ad-hoc test) |
allow_insecure_http | boolean | – |
allow_private_networks | boolean | – |
Antworten
- 201Erstellt
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/connections/test" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"product":"jira","base_url":"…","auth_type":"basic","secret":"…"}'List migration jobs#
/migration/jobsTokenAntworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/jobs" \
-H "Authorization: Bearer $XISUITE_TOKEN"Create a migration job (draft)#
/migration/jobsTokenRequest-Body
| Name | Typ | Beschreibung |
|---|---|---|
namePflicht | string | Human-readable job name (unique per organization) |
connection_idPflicht | string | Migration connection id (same organization) |
source_kindPflicht | string | Werte: |
source_refPflicht | string | Source reference — Jira project key or Confluence space key |
target_space_id | string | Existing target space id (same organization); omitted when the migration creates a new space |
scopePflicht | MigrationScopeDto | – |
scope.issue_type_ids | string[] | Source issue type ids to include; omitted/empty means all issue types |
scope.include_boardsPflicht | boolean | Include boards (and their sprints) |
scope.include_commentsPflicht | boolean | Include issue comments |
scope.include_attachmentsPflicht | boolean | Include attachments |
scope.include_linksPflicht | boolean | Include issue links |
scope.jql | string | Optional JQL filter narrowing which issues are migrated |
optionsPflicht | MigrationOptionsDto | – |
options.modePflicht | string | Werte: |
options.batch_sizePflicht | number | Items per batch when iterating the source (10–100) |
options.macro_strategyPflicht | string | Werte: |
options.user_mappingPflicht | string | Werte: |
options.provision_users | boolean | Create a real XISUITE account for every source user who has a usable email and no existing account, and mail them a set-password link. Defaults to false. Outward-facing and irreversible (real logins, one message per user through the deployment's own relay), so review the dry-run preview's `wouldCreate` list before enabling it. |
options.invite_users | boolean | Invite every source user who has a usable email but no account in this organization. Jira administrators are invited as admin, everyone else as member; accepting hands them their migrated work and project roles. Defaults to false; never sends during a dry run. |
Antworten
- 201Erstellt
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/jobs" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"…","connection_id":"…","source_kind":"jira_project","source_ref":"…","scope":"…","options":"…"}'Get a migration job#
/migration/jobs/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/jobs/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN"Update a migration job (connection/source are immutable after creation)#
/migration/jobs/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
name | string | Human-readable job name (unique per organization) |
target_space_id | string | Existing target space id (same organization) |
scope | MigrationScopeDto | – |
scope.issue_type_ids | string[] | Source issue type ids to include; omitted/empty means all issue types |
scope.include_boardsPflicht | boolean | Include boards (and their sprints) |
scope.include_commentsPflicht | boolean | Include issue comments |
scope.include_attachmentsPflicht | boolean | Include attachments |
scope.include_linksPflicht | boolean | Include issue links |
scope.jql | string | Optional JQL filter narrowing which issues are migrated |
options | MigrationOptionsDto | – |
options.modePflicht | string | Werte: |
options.batch_sizePflicht | number | Items per batch when iterating the source (10–100) |
options.macro_strategyPflicht | string | Werte: |
options.user_mappingPflicht | string | Werte: |
options.provision_users | boolean | Create a real XISUITE account for every source user who has a usable email and no existing account, and mail them a set-password link. Defaults to false. Outward-facing and irreversible (real logins, one message per user through the deployment's own relay), so review the dry-run preview's `wouldCreate` list before enabling it. |
options.invite_users | boolean | Invite every source user who has a usable email but no account in this organization. Jira administrators are invited as admin, everyone else as member; accepting hands them their migrated work and project roles. Defaults to false; never sends during a dry run. |
status | string | Werte: |
Antworten
- 200OK
curl -X PATCH "https://xapi.ambertech.cloud/api/v1/migration/jobs/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"…","target_space_id":"…","scope":"…"}'Delete a migration job#
/migration/jobs/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X DELETE "https://xapi.ambertech.cloud/api/v1/migration/jobs/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN"Start a run for a saved job (defaults to dry-run)#
/migration/jobs/{jobId}/runsTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
jobIdPflicht | Pfad | string | – |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
mode | string | Werte: |
Antworten
- 201Erstellt
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/jobs/{jobId}/runs" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"dry_run"}'Undo a migration: delete everything this job created (requires the job name as confirmation)#
/migration/jobs/{jobId}/undoTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
jobIdPflicht | Pfad | string | – |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
confirm_job_namePflicht | string | The exact name of the job being undone, retyped. Must match, or the request is rejected. |
Antworten
- 201Erstellt
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/jobs/{jobId}/undo" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"confirm_job_name":"SDP → Engineering"}'List runs (optionally for one job)#
/migration/runsTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
job_id | Query | string | Filter runs to one job |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs" \
-H "Authorization: Bearer $XISUITE_TOKEN"Get one run with live item counts#
/migration/runs/{id}TokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}" \
-H "Authorization: Bearer $XISUITE_TOKEN"Cancel a run; open items are skipped#
/migration/runs/{id}/cancelTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/cancel" \
-H "Authorization: Bearer $XISUITE_TOKEN"List a run’s work items (filterable by status/stage)#
/migration/runs/{id}/itemsTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
status | Query | string | Werte: |
stage | Query | string | – |
limit | Query | number | – |
offset | Query | number | – |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/items" \
-H "Authorization: Bearer $XISUITE_TOKEN"List a run’s structured logs (newest first)#
/migration/runs/{id}/logsTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
level | Query | string | Werte: |
limit | Query | number | – |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/logs" \
-H "Authorization: Bearer $XISUITE_TOKEN"Pause a running run (in-flight items finish)#
/migration/runs/{id}/pauseTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/pause" \
-H "Authorization: Bearer $XISUITE_TOKEN"Create a non-destructive repair run for a completed live import#
/migration/runs/{id}/repairTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Request-Body
| Name | Typ | Beschreibung |
|---|---|---|
scope | string | Werte: |
Antworten
- 200OK
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/repair" \
-H "Authorization: Bearer $XISUITE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"scope":"profile_macros"}'Migration audit report for a run (json | csv | pdf)#
/migration/runs/{id}/reportTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
format | Query | string | Response format. Defaults to json. Werte: |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/report" \
-H "Authorization: Bearer $XISUITE_TOKEN"List sanitized audit rows for a migration report#
/migration/runs/{id}/report/itemsTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
status | Query | string | Werte: |
stage | Query | string | – |
entity_type | Query | string | – |
item_kind | Query | string | Werte: |
limit | Query | number | – |
offset | Query | number | – |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/report/items" \
-H "Authorization: Bearer $XISUITE_TOKEN"Resume a paused run#
/migration/runs/{id}/resumeTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/resume" \
-H "Authorization: Bearer $XISUITE_TOKEN"Re-queue failed/dead items and reopen the run#
/migration/runs/{id}/retry-failedTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/retry-failed" \
-H "Authorization: Bearer $XISUITE_TOKEN"Stream live run state via Server-Sent Events#
/migration/runs/{id}/streamTokenParameter
| Name | Ort | Typ | Beschreibung |
|---|---|---|---|
idPflicht | Pfad | string | – |
Antworten
- 200OK
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/stream" \
-H "Authorization: Bearer $XISUITE_TOKEN"