Define archive control v1 protocol
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"messageId": "2fc6a524-84cd-47ab-bd73-30d463b7c43f",
|
||||
"sentAt": "2026-07-22T12:03:00Z",
|
||||
"command": {
|
||||
"commandId": "6bfccbf4-866f-46fe-bf67-d8943c1ece91",
|
||||
"createdAt": "2026-07-22T12:03:00Z",
|
||||
"assignJob": {
|
||||
"job": {
|
||||
"jobId": "fd6844d0-ed76-475e-8375-2f98d8eea470",
|
||||
"idempotencyKey": "telegram-confirmation-615e42",
|
||||
"operation": "JOB_OPERATION_ARCHIVE",
|
||||
"resourceId": {
|
||||
"infoHashV1Hex": "0123456789abcdef0123456789abcdef01234567"
|
||||
},
|
||||
"resourceDisplayName": "Resource A",
|
||||
"createdAt": "2026-07-22T12:03:00Z",
|
||||
"transfer": {
|
||||
"sourceClientId": "x1",
|
||||
"targetClientId": "lithium",
|
||||
"routeId": "archive-control-x1-lithium-f8b629",
|
||||
"requestedFiles": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 2,
|
||||
"last": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"expectedTargetPlacementGeneration": "3",
|
||||
"targetBaselineFiles": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 2,
|
||||
"last": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"transferDeltaFiles": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 3,
|
||||
"last": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"requestedLogicalBytes": "10735000000",
|
||||
"transferDeltaLogicalBytes": "7340000000"
|
||||
}
|
||||
},
|
||||
"expectedLastEventSequence": "0"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"messageId": "9c62fcda-5f83-4286-80cf-a628001e44d3",
|
||||
"sentAt": "2026-07-22T12:05:00Z",
|
||||
"command": {
|
||||
"commandId": "daf7ebaf-f3fa-4ff9-979e-1c0c95e08376",
|
||||
"createdAt": "2026-07-22T12:05:00Z",
|
||||
"assignJob": {
|
||||
"job": {
|
||||
"jobId": "5e76f086-79ed-41e5-9306-c4a0312e4d26",
|
||||
"idempotencyKey": "evict-confirmation-c9c04a",
|
||||
"operation": "JOB_OPERATION_EVICT_CACHE",
|
||||
"resourceId": {
|
||||
"infoHashV1Hex": "0123456789abcdef0123456789abcdef01234567"
|
||||
},
|
||||
"resourceDisplayName": "Resource A",
|
||||
"createdAt": "2026-07-22T12:05:00Z",
|
||||
"eviction": {
|
||||
"cacheClientId": "x1",
|
||||
"filesToEvict": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 0,
|
||||
"last": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"cachePlacementGeneration": "8",
|
||||
"archiveCoverage": [
|
||||
{
|
||||
"archiveClientId": "lithium",
|
||||
"coveredFiles": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 0,
|
||||
"last": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"placementGeneration": "4"
|
||||
},
|
||||
{
|
||||
"archiveClientId": "cold2",
|
||||
"coveredFiles": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 5,
|
||||
"last": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"placementGeneration": "2"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expectedLastEventSequence": "0"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"messageId": "7c4a3534-c754-4c4d-a12e-1a1047e3f96e",
|
||||
"sentAt": "2026-07-22T12:06:00Z",
|
||||
"command": {
|
||||
"commandId": "d9721ad2-f98d-485f-9370-476e49f7897a",
|
||||
"createdAt": "2026-07-22T12:06:00Z",
|
||||
"cancelJob": {
|
||||
"jobId": "fd6844d0-ed76-475e-8375-2f98d8eea470",
|
||||
"expectedJobRevision": "6",
|
||||
"reason": "administrator requested removal",
|
||||
"expectedLastEventSequence": "17"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"messageId": "56aae470-d1c9-402a-bf14-d7a28ff8998f",
|
||||
"sentAt": "2026-07-22T12:10:00Z",
|
||||
"clientStateSnapshot": {
|
||||
"snapshotId": "6067263d-548c-4548-974f-9f73ca9fb7ec",
|
||||
"activeJobs": [
|
||||
{
|
||||
"job": {
|
||||
"definition": {
|
||||
"jobId": "fd6844d0-ed76-475e-8375-2f98d8eea470",
|
||||
"idempotencyKey": "telegram-confirmation-615e42",
|
||||
"operation": "JOB_OPERATION_ARCHIVE",
|
||||
"resourceId": {
|
||||
"infoHashV1Hex": "0123456789abcdef0123456789abcdef01234567"
|
||||
},
|
||||
"resourceDisplayName": "Resource A",
|
||||
"createdAt": "2026-07-22T12:03:00Z",
|
||||
"transfer": {
|
||||
"sourceClientId": "x1",
|
||||
"targetClientId": "lithium",
|
||||
"routeId": "archive-control-x1-lithium-f8b629",
|
||||
"requestedFiles": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 2,
|
||||
"last": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"expectedTargetPlacementGeneration": "3",
|
||||
"targetBaselineFiles": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 2,
|
||||
"last": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"transferDeltaFiles": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 3,
|
||||
"last": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"requestedLogicalBytes": "10735000000",
|
||||
"transferDeltaLogicalBytes": "7340000000"
|
||||
}
|
||||
},
|
||||
"state": "JOB_STATE_RUNNING",
|
||||
"revision": "6",
|
||||
"progress": {
|
||||
"step": "JOB_STEP_KIND_SYNCTHING_TRANSFER",
|
||||
"displayStepNumber": 2,
|
||||
"displayStepTotal": 5,
|
||||
"state": "STEP_STATE_RUNNING",
|
||||
"fractionComplete": 0.4231,
|
||||
"bytesComplete": "4543000000",
|
||||
"bytesTotal": "10735000000",
|
||||
"lastProgressAt": "2026-07-22T12:04:00Z",
|
||||
"overallFractionComplete": 0.2846
|
||||
},
|
||||
"updatedAt": "2026-07-22T12:04:00Z"
|
||||
},
|
||||
"lastEventSequence": "17",
|
||||
"inFlightCommandIds": [
|
||||
"f253f9fc-2a43-491d-8317-24795bb7638a"
|
||||
]
|
||||
}
|
||||
],
|
||||
"observedAt": "2026-07-22T12:10:00Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"messageId": "830626f3-dc76-46f0-a9b1-a6fb61b3ba73",
|
||||
"sentAt": "2026-07-22T12:02:00Z",
|
||||
"command": {
|
||||
"commandId": "75425c3b-1ceb-4e9d-9af6-402a06e5bf8d",
|
||||
"createdAt": "2026-07-22T12:02:00Z",
|
||||
"ensureRoute": {
|
||||
"route": {
|
||||
"routeId": "archive-control-x1-lithium-f8b629",
|
||||
"peerClientId": "lithium",
|
||||
"peerSyncthingDeviceId": "LITHIUM-DEVICE-ID",
|
||||
"peerAddresses": [
|
||||
"tcp://lithium-syncthing:22000"
|
||||
],
|
||||
"localRelativePath": ".archive-control/routes/archive-control-x1-lithium-f8b629",
|
||||
"setupTimeoutSeconds": 1800
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"messageId": "d00def27-cde1-43b7-a6af-ee3582d0c7c1",
|
||||
"sentAt": "2026-07-22T12:01:00Z",
|
||||
"command": {
|
||||
"commandId": "cc791b88-cbca-418f-9732-c605c8144c90",
|
||||
"createdAt": "2026-07-22T12:01:00Z",
|
||||
"inventoryQuery": {
|
||||
"queryId": "1944768a-843c-460a-8ea2-27ea0f682aa6",
|
||||
"scope": "INVENTORY_SCOPE_RESOURCE_SUMMARIES",
|
||||
"page": {
|
||||
"pageSize": 200
|
||||
},
|
||||
"selectedCompleteOnly": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"messageId": "f337dc9c-84b8-42c6-a2ae-52f8f91258a8",
|
||||
"correlationId": "6bfccbf4-866f-46fe-bf67-d8943c1ece91",
|
||||
"sentAt": "2026-07-22T12:08:00Z",
|
||||
"jobEvent": {
|
||||
"eventId": "ecfbd79e-e0fe-41da-ab77-012cde0ed53f",
|
||||
"jobId": "fd6844d0-ed76-475e-8375-2f98d8eea470",
|
||||
"sequence": "23",
|
||||
"jobRevision": "9",
|
||||
"type": "JOB_EVENT_TYPE_COMMITTED",
|
||||
"state": "JOB_STATE_RUNNING",
|
||||
"committed": true,
|
||||
"progress": {
|
||||
"step": "JOB_STEP_KIND_QB_VERIFY",
|
||||
"displayStepNumber": 4,
|
||||
"displayStepTotal": 5,
|
||||
"state": "STEP_STATE_SUCCEEDED",
|
||||
"fractionComplete": 1,
|
||||
"bytesComplete": "10735000000",
|
||||
"bytesTotal": "10735000000",
|
||||
"detail": "target selection passed a stopped full recheck",
|
||||
"lastProgressAt": "2026-07-22T12:08:00Z",
|
||||
"overallFractionComplete": 0.95
|
||||
},
|
||||
"observedPlacement": {
|
||||
"resourceId": {
|
||||
"infoHashV1Hex": "0123456789abcdef0123456789abcdef01234567"
|
||||
},
|
||||
"clientId": "lithium",
|
||||
"state": "PLACEMENT_STATE_PRESENT",
|
||||
"verifiedFiles": {
|
||||
"ranges": [
|
||||
{
|
||||
"first": 2,
|
||||
"last": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"verifiedLogicalBytes": "10735000000",
|
||||
"generation": "4",
|
||||
"verifiedAt": "2026-07-22T12:08:00Z",
|
||||
"createdByJobId": "fd6844d0-ed76-475e-8375-2f98d8eea470"
|
||||
},
|
||||
"occurredAt": "2026-07-22T12:08:00Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"messageId": "44b64096-cd58-4f49-bae4-d829f50f787c",
|
||||
"correlationId": "6bfccbf4-866f-46fe-bf67-d8943c1ece91",
|
||||
"sentAt": "2026-07-22T12:04:00Z",
|
||||
"jobEvent": {
|
||||
"eventId": "18cf6a34-b0a5-429e-b56a-9228b2dca640",
|
||||
"jobId": "fd6844d0-ed76-475e-8375-2f98d8eea470",
|
||||
"sequence": "17",
|
||||
"jobRevision": "6",
|
||||
"type": "JOB_EVENT_TYPE_PROGRESS",
|
||||
"state": "JOB_STATE_RUNNING",
|
||||
"progress": {
|
||||
"step": "JOB_STEP_KIND_SYNCTHING_TRANSFER",
|
||||
"displayStepNumber": 2,
|
||||
"displayStepTotal": 5,
|
||||
"state": "STEP_STATE_RUNNING",
|
||||
"fractionComplete": 0.4231,
|
||||
"bytesComplete": "4543000000",
|
||||
"bytesTotal": "10735000000",
|
||||
"approximateBytesPerSecond": 12450000,
|
||||
"detail": "x1 to lithium",
|
||||
"lastProgressAt": "2026-07-22T12:04:00Z",
|
||||
"overallFractionComplete": 0.2846
|
||||
},
|
||||
"occurredAt": "2026-07-22T12:04:00Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"messageId": "0d6d31f8-1242-4a40-a261-433897102fe4",
|
||||
"sentAt": "2026-07-22T12:00:00Z",
|
||||
"registerRequest": {
|
||||
"protocolVersion": {
|
||||
"major": 1,
|
||||
"minor": 0
|
||||
},
|
||||
"client": {
|
||||
"clientId": "x1",
|
||||
"displayName": "Cache x1",
|
||||
"role": "CLIENT_ROLE_CACHE"
|
||||
},
|
||||
"connectionInstanceId": "fd4f7c2a-836a-4699-8078-f0ec8601febe",
|
||||
"sharedToken": "redacted-example-token",
|
||||
"capabilities": {
|
||||
"features": [
|
||||
"CLIENT_FEATURE_INVENTORY_CHUNKS",
|
||||
"CLIENT_FEATURE_CONTENT_TREE",
|
||||
"CLIENT_FEATURE_ROUTE_PROVISIONING",
|
||||
"CLIENT_FEATURE_EVICTION"
|
||||
],
|
||||
"syncthingDeviceId": "CACHE1-DEVICE-ID",
|
||||
"syncthingAdvertisedAddresses": [
|
||||
"dynamic"
|
||||
],
|
||||
"qbittorrentVersion": "v5.1.2",
|
||||
"qbittorrentWebApiVersion": "2.11.3",
|
||||
"libtorrentVersion": "2.0.11.0",
|
||||
"syncthingVersion": "v2.0.0",
|
||||
"maxEnvelopeBytes": 1048576
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user