Skip to content

Transport Records

The sync module records major operations as transports under .iflowkit/transports/.

Why transports exist

Transport records support two goals:

  1. Auditability: what changed, which branch was used, which tenant was targeted and which commits were involved.
  2. Retry: when CPI operations fail, the CLI can continue from remaining upload, delete or deploy work.

Folder structure

text
.iflowkit/transports/{tenant}/
  index.json
  {transportId}.transport.json

{tenant} is the target environment, not necessarily the branch name:

  • dev
  • qas
  • prd

A work branch maps to DEV, so its transport records are written under transports/dev/.

Transport ID format

Transport IDs use UTC timestamp format:

text
YYYYMMDDTHHMMSSmmmZ

Example:

text
20260106T101530123Z

index.json

The index file keeps a flat list of transports for quick lookup.

Simplified structure:

json
{
  "schemaVersion": 1,
  "items": [
    {
      "seq": 1,
      "transportId": "20260106T101530123Z",
      "transportType": "push",
      "transportStatus": "pending",
      "createdAt": "2026-01-06T10:15:30Z"
    }
  ]
}

Transport detail file

Each {transportId}.transport.json file stores detailed state, including:

FieldMeaning
schemaVersionTransport schema version.
transportIdUnique transport ID.
transportTypeinit, pull, push or deliver.
packageIdCPI IntegrationPackage ID.
branchGit branch used by the operation.
createdAtUTC creation timestamp.
gitCommitsCommit SHA list involved in the operation.
objectsChanged objects reported by the transport.
deletedObjectsDeleted objects reported by the transport.
transportStatuspending or completed.
errorLast error message, if pending.
uploadRemainingUpload queue remaining for retry.
deleteRemainingDelete queue remaining for retry.
deployRemainingDeploy queue remaining for retry.

Retry behavior

If a CPI call fails, the transport may remain pending. Re-run the same command after fixing the underlying issue.

bash
# If a push failed during CPI upload
iflowkit sync push

# If a deliver failed during target tenant update
iflowkit sync deliver --to prd

The CLI uses the remaining work lists to continue instead of starting from scratch.

Git tags

Successful push and deliver operations may create a Git tag named with the transport ID. This connects Git history with deployment records.