iRetail PRO hub 1.0.0-m5: nodes

4 operations

← All documentation · Source: contracts openapi/hub-v1.yaml at 8000474.

Store nodes registered with the hub.

← iRetail PRO hub 1.0.0-m5

Operations

POST /v1/stores/{id}/registration-tokens A one-time token a store's node registers with (spec/SYNC.md, Registration); shown once.

operationId createRegistrationToken · Permission node.manage

Parameters

Name In Type Description
id required path string (uuid)
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

GET /v1/nodes Registered store nodes and their sync state.

operationId listNodes · Permission node.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

  • 200 OK array of Node
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
GET /v1/nodes/{id} One node and its sync state.

operationId getNode · Permission node.manage

Parameters

Name In Type Description
id required path string (uuid)
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

  • 200 OK Node
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
POST /v1/nodes/{id}/revoke Refuse the node's certificate from now on; the store keeps selling, cut off from the hub.

operationId revokeNode · Permission node.manage

Parameters

Name In Type Description
id required path string (uuid)
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

  • 200 OK Node
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error

Schemas

RegistrationToken object

token required string Shown once; works once (spec/SYNC.md, Registration).
store_id required string (uuid)
expires_at required string (date-time)

Node object

id required string (uuid)
store_id required string (uuid)
status required "active" | "revoked"
version required string The node's version at its last exchange.
connected required boolean An exchange is open now.
last_seen_at required string (date-time) | null
hub_cursor required integer (int64) The last hub seq the store applied.
hub_head required integer (int64) The hub's newest seq for this store; hub_head − hub_cursor is how far behind the store is.
store_ack required integer (int64) The last store seq the hub applied.
store_head required integer (int64) The store's newest seq at its last exchange; store_head − store_ack is what waits to arrive.
certificate_expires_at required string (date-time)
registered_at required string (date-time)
health required NodeHealth | null The store's last health report (spec/HEALTH.md), or null before the first.
compatibility required Compatibility | null Why the hub refuses this node at the exchange (spec/RELEASES.md, Compatibility), until it connects; null otherwise.

NodeHealth object

reported_at required string (date-time)
started_at required string (date-time)
shifts_open required integer
oldest_shift_opened_at required string (date-time) | null
journal_pending required integer (int64)
search_queue required integer (int64)
redis_ok required boolean
tunnel_state required "off" | "up" | "down" | null The store's tunnel to the hub (spec/NETWORK.md); null from a node that does not report it.
audit_head required object | null The head of the store's audit chain from its last report (spec/AUDIT.md, Anchors); null from a node that does not report it.
update required NodeUpdate | null The store's update from its last report (spec/RELEASES.md); null from a node that does not report it.
apps required array of AppVersionCount Per app, platform and version, how many of the store's devices run it, failed it and are silent, from its last report (spec/RELEASES.md, Reporting); empty from a node that does not report them.
app_offers required array of AppOffer The store's offers of the release it runs (spec/RELEASES.md, One device first).

NodeUpdate object

The update fields of a store's last health report (spec/HEALTH.md, spec/RELEASES.md).

running_version required string
previous_version required string | null
target_version required string | null
target_record_version required integer (int64)
state required UpdateState
state_since required string (date-time) | null
step required UpdateStep | null
error required string | null
healthz required "ok" | "failing" | null
backup required UpdateBackup | null The pre-update archive of the target's attempt; null before it or from a node that does not report it.
rehearsal required UpdateRehearsal | null
background_tasks_running required integer The store's background tasks pending or running (spec/RELEASES.md, Migrations).
background_tasks_failed required integer