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.
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
-
201CreatedRegistrationToken -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
404Error (spec/API.md).Error -
409Error (spec/API.md).Error
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
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
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
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 |