XISUITEDokumentation

Migration

30 Endpunkte. Basis-URL: https://xapi.ambertech.cloud/api/v1

List migration source connections#

GET/migration/connectionsToken

Antworten

  • 200OK
Beispiel (cURL)
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)#

POST/migration/connectionsToken

Request-Bodyapplication/jsonCreateConnectionDto

NameTypBeschreibung
namePflichtstring

Human-readable connection name (unique per organization)

productPflichtstring

Werte: jiraconfluence

base_urlPflichtstring

Base URL of the Jira/Confluence instance, e.g. https://acme.atlassian.net or http://host:8080

auth_typePflichtstring

Werte: basicpatoauth

auth_usernamestring

Username (Server) or email (Cloud) — required for basic auth

secretPflichtstring

Password / API token / PAT. Write-only — encrypted at rest, never returned.

allow_insecure_httpboolean

Allow plain HTTP (on-prem boxes without TLS)

allow_private_networksboolean

Allow private/internal network targets (on-prem installs only)

Antworten

  • 201Erstellt
Beispiel (cURL)
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#

GET/migration/connections/{connectionId}/discovery/previewToken

Parameter

NameOrtTypBeschreibung
connectionIdPflichtPfadstring–
projectKeyPflichtQuerystring

Jira project key to preview, e.g. "KAN"

provisionUsersQueryboolean

Model a provisioning-enabled run: report which users WOULD get an account. Still read-only — nothing is created and no mail is sent.

inviteUsersQueryboolean

Model an invite-enabled run: report who WOULD be invited and with which org role. Still read-only.

Antworten

  • 200OK
Beispiel (cURL)
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#

GET/migration/connections/{connectionId}/discovery/sourcesToken

Parameter

NameOrtTypBeschreibung
connectionIdPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
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#

GET/migration/connections/{connectionId}/discovery/space-previewToken

Parameter

NameOrtTypBeschreibung
connectionIdPflichtPfadstring–
spaceKeyPflichtQuerystring

Confluence space key to preview, e.g. "M0"

Antworten

  • 200OK
Beispiel (cURL)
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)#

GET/migration/connections/{connectionId}/discovery/users-previewToken

Parameter

NameOrtTypBeschreibung
connectionIdPflichtPfadstring–
projectKeyPflichtQuerystring

Jira project key to preview, e.g. "KAN"

provisionUsersQueryboolean

Model a provisioning-enabled run: report which users WOULD get an account. Still read-only — nothing is created and no mail is sent.

inviteUsersQueryboolean

Model an invite-enabled run: report who WOULD be invited and with which org role. Still read-only.

Antworten

  • 200OK
Beispiel (cURL)
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#

GET/migration/connections/{id}Token

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/connections/{id}" \
  -H "Authorization: Bearer $XISUITE_TOKEN"

Update a migration source connection#

PATCH/migration/connections/{id}Token

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Request-Bodyapplication/jsonUpdateConnectionDto

NameTypBeschreibung
namestring–
base_urlstring–
auth_typestring

Werte: basicpatoauth

auth_usernamestring–
secretstring

New secret; omit to keep the existing one

allow_insecure_httpboolean–
allow_private_networksboolean–

Antworten

  • 200OK
Beispiel (cURL)
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#

DELETE/migration/connections/{id}Token

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
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#

POST/migration/connections/{id}/testToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 201Erstellt
Beispiel (cURL)
curl -X POST "https://xapi.ambertech.cloud/api/v1/migration/connections/{id}/test" \
  -H "Authorization: Bearer $XISUITE_TOKEN"

Test connection credentials without saving#

POST/migration/connections/testToken

Request-Bodyapplication/jsonTestConnectionDto

NameTypBeschreibung
productPflichtstring

Werte: jiraconfluence

base_urlPflichtstring–
auth_typePflichtstring

Werte: basicpatoauth

auth_usernamestring–
secretPflichtstring

Password / API token / PAT (not persisted for an ad-hoc test)

allow_insecure_httpboolean–
allow_private_networksboolean–

Antworten

  • 201Erstellt
Beispiel (cURL)
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#

GET/migration/jobsToken

Antworten

  • 200OK
Beispiel (cURL)
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/jobs" \
  -H "Authorization: Bearer $XISUITE_TOKEN"

Create a migration job (draft)#

POST/migration/jobsToken

Request-Bodyapplication/jsonCreateMigrationJobDto

NameTypBeschreibung
namePflichtstring

Human-readable job name (unique per organization)

connection_idPflichtstring

Migration connection id (same organization)

source_kindPflichtstring

Werte: jira_projectconfluence_space

source_refPflichtstring

Source reference — Jira project key or Confluence space key

target_space_idstring

Existing target space id (same organization); omitted when the migration creates a new space

scopePflichtMigrationScopeDto–
scope.issue_type_idsstring[]

Source issue type ids to include; omitted/empty means all issue types

scope.include_boardsPflichtboolean

Include boards (and their sprints)

scope.include_commentsPflichtboolean

Include issue comments

scope.include_attachmentsPflichtboolean

Include attachments

scope.include_linksPflichtboolean

Include issue links

scope.jqlstring

Optional JQL filter narrowing which issues are migrated

optionsPflichtMigrationOptionsDto–
options.modePflichtstring

Werte: dry_runlive

options.batch_sizePflichtnumber

Items per batch when iterating the source (10–100)

options.macro_strategyPflichtstring

Werte: semanticfallback

options.user_mappingPflichtstring

Werte: match_or_placeholder

options.provision_usersboolean

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.

Standard: false

options.invite_usersboolean

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.

Standard: false

Antworten

  • 201Erstellt
Beispiel (cURL)
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#

GET/migration/jobs/{id}Token

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
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)#

PATCH/migration/jobs/{id}Token

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Request-Bodyapplication/jsonUpdateMigrationJobDto

NameTypBeschreibung
namestring

Human-readable job name (unique per organization)

target_space_idstring

Existing target space id (same organization)

scopeMigrationScopeDto–
scope.issue_type_idsstring[]

Source issue type ids to include; omitted/empty means all issue types

scope.include_boardsPflichtboolean

Include boards (and their sprints)

scope.include_commentsPflichtboolean

Include issue comments

scope.include_attachmentsPflichtboolean

Include attachments

scope.include_linksPflichtboolean

Include issue links

scope.jqlstring

Optional JQL filter narrowing which issues are migrated

optionsMigrationOptionsDto–
options.modePflichtstring

Werte: dry_runlive

options.batch_sizePflichtnumber

Items per batch when iterating the source (10–100)

options.macro_strategyPflichtstring

Werte: semanticfallback

options.user_mappingPflichtstring

Werte: match_or_placeholder

options.provision_usersboolean

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.

Standard: false

options.invite_usersboolean

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.

Standard: false

statusstring

Werte: draftready

Antworten

  • 200OK
Beispiel (cURL)
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#

DELETE/migration/jobs/{id}Token

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
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)#

POST/migration/jobs/{jobId}/runsToken

Parameter

NameOrtTypBeschreibung
jobIdPflichtPfadstring–

Request-Bodyapplication/jsonStartRunDto

NameTypBeschreibung
modestring

Werte: dry_runlive

Antworten

  • 201Erstellt
Beispiel (cURL)
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)#

POST/migration/jobs/{jobId}/undoToken

Parameter

NameOrtTypBeschreibung
jobIdPflichtPfadstring–

Request-Bodyapplication/jsonDeleteTargetsDto

NameTypBeschreibung
confirm_job_namePflichtstring

The exact name of the job being undone, retyped. Must match, or the request is rejected.

Beispiel: SDP → Engineering

Antworten

  • 201Erstellt
Beispiel (cURL)
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)#

GET/migration/runsToken

Parameter

NameOrtTypBeschreibung
job_idQuerystring

Filter runs to one job

Antworten

  • 200OK
Beispiel (cURL)
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs" \
  -H "Authorization: Bearer $XISUITE_TOKEN"

Get one run with live item counts#

GET/migration/runs/{id}Token

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}" \
  -H "Authorization: Bearer $XISUITE_TOKEN"

Cancel a run; open items are skipped#

POST/migration/runs/{id}/cancelToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
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)#

GET/migration/runs/{id}/itemsToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–
statusQuerystring

Werte: pendingrunningsleepingsucceededfailedskippedpausedblockeddead

stageQuerystring–
limitQuerynumber–
offsetQuerynumber–

Antworten

  • 200OK
Beispiel (cURL)
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)#

GET/migration/runs/{id}/logsToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–
levelQuerystring

Werte: debuginfowarnerror

limitQuerynumber–

Antworten

  • 200OK
Beispiel (cURL)
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)#

POST/migration/runs/{id}/pauseToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
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#

POST/migration/runs/{id}/repairToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Request-Bodyapplication/jsonRepairRunDto

NameTypBeschreibung
scopestring

Werte: profile_macros

Antworten

  • 200OK
Beispiel (cURL)
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)#

GET/migration/runs/{id}/reportToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–
formatQuerystring

Response format. Defaults to json.

Werte: jsoncsvpdf

Antworten

  • 200OK
Beispiel (cURL)
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#

GET/migration/runs/{id}/report/itemsToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–
statusQuerystring

Werte: pendingrunningsleepingsucceededfailedskippedpausedblockeddead

stageQuerystring–
entity_typeQuerystring–
item_kindQuerystring

Werte: collectionentity

limitQuerynumber–
offsetQuerynumber–

Antworten

  • 200OK
Beispiel (cURL)
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/report/items" \
  -H "Authorization: Bearer $XISUITE_TOKEN"

Resume a paused run#

POST/migration/runs/{id}/resumeToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
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#

POST/migration/runs/{id}/retry-failedToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
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#

GET/migration/runs/{id}/streamToken

Parameter

NameOrtTypBeschreibung
idPflichtPfadstring–

Antworten

  • 200OK
Beispiel (cURL)
curl -X GET "https://xapi.ambertech.cloud/api/v1/migration/runs/{id}/stream" \
  -H "Authorization: Bearer $XISUITE_TOKEN"
Stand: 25. Oktober 2026© 2026 XISUITE · AmberTech Solutions