Transport Records
The sync module records major operations as transports under .iflowkit/transports/.
Why transports exist
Transport records support two goals:
- Auditability: what changed, which branch was used, which tenant was targeted and which commits were involved.
- Retry: when CPI operations fail, the CLI can continue from remaining upload, delete or deploy work.
Folder structure
.iflowkit/transports/{tenant}/
index.json
{transportId}.transport.json{tenant} is the target environment, not necessarily the branch name:
devqasprd
A work branch maps to DEV, so its transport records are written under transports/dev/.
Transport ID format
Transport IDs use UTC timestamp format:
YYYYMMDDTHHMMSSmmmZExample:
20260106T101530123Zindex.json
The index file keeps a flat list of transports for quick lookup.
Simplified structure:
{
"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:
| Field | Meaning |
|---|---|
schemaVersion | Transport schema version. |
transportId | Unique transport ID. |
transportType | init, pull, push or deliver. |
packageId | CPI IntegrationPackage ID. |
branch | Git branch used by the operation. |
createdAt | UTC creation timestamp. |
gitCommits | Commit SHA list involved in the operation. |
objects | Changed objects reported by the transport. |
deletedObjects | Deleted objects reported by the transport. |
transportStatus | pending or completed. |
error | Last error message, if pending. |
uploadRemaining | Upload queue remaining for retry. |
deleteRemaining | Delete queue remaining for retry. |
deployRemaining | Deploy 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.
# If a push failed during CPI upload
iflowkit sync push
# If a deliver failed during target tenant update
iflowkit sync deliver --to prdThe 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.