From 21e2ba92babcd80f3c6f8c0bf608e364cfb4dcdb Mon Sep 17 00:00:00 2001 From: Anatolii Kurotych Date: Thu, 29 Jan 2026 17:37:22 +0200 Subject: [PATCH 1/2] Get a stream of gateway info (V4) --- src/service/mobile_config.proto | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/src/service/mobile_config.proto b/src/service/mobile_config.proto index 07c0631e..4f7d630e 100644 --- a/src/service/mobile_config.proto +++ b/src/service/mobile_config.proto @@ -128,6 +128,28 @@ message gateway_info_v3 { uint64 num_location_asserts = 6; } +message gateway_info_v4 { + // The public key binary address and on-chain identity of the gateway + bytes address = 1; + // The gateway metadata + gateway_metadata_v3 metadata = 2; + // The asserted device type of the gateway + device_type_v2 device_type = 3; + // The Unix epoch timestamp (in seconds) when the gateway was first added to + // the database + uint64 created_at = 4; + // The Unix epoch timestamp (in seconds) when the gateway parameters were last + // updated. NOTE: This field is also updated when the location or owner + // changes. + uint64 updated_at = 5; + // Count of hotspot location changes + uint64 num_location_asserts = 6; + // The gateway's owner + string owner = 7; + // The last time the owner was changed (in seconds) + uint64 owner_changed_at = 8; +} + message gateway_info_req_v1 { // The public key address of the gateway to look up bytes address = 1; @@ -208,6 +230,32 @@ message gateway_info_stream_req_v3 { uint64 min_location_changed_at = 6; } +message gateway_info_stream_req_v4 { + // max number of gateway info records in each message of the response stream + uint32 batch_size = 1; + // pubkey binary of the signing keypair + bytes signer = 2; + bytes signature = 3; + // Device types that will be returned in the response + // Use empty array if you don't want to apply this filter + repeated device_type_v2 device_types = 4; + // The Unix epoch timestamp (in seconds). + // Filters the response based on the last time gateway parameter(s) was + // updated (Includes location and owner changing). + // Use 0 if you don't want to apply this filter + // NOTE: It is recommended to use the highest `updated_at` field from + // returned radios in the next subsequent requests. + uint64 min_updated_at = 5; + // The Unix epoch timestamp (in seconds). + // Filters the response based on the last time gateway changed its location. + // Use 0 if you don't want to apply this filter + uint64 min_location_changed_at = 6; + // The Unix epoch timestamp (in seconds). + // Filters the response based on the last time gateway's owner was changed + // Use 0 if you don't want to apply this filter + uint64 min_owner_changed_at = 7; +} + message gateway_info_stream_req_v2 { // max number of gateway info records in each message of the response stream uint32 batch_size = 1; @@ -255,6 +303,16 @@ message gateway_info_stream_res_v3 { bytes signature = 4; } +message gateway_info_stream_res_v4 { + // a list of gateway info numbering up to the request batch size + repeated gateway_info_v4 gateways = 1; + // unix epoch timestamp in seconds + uint64 timestamp = 2; + // pubkey binary of the signing keypair + bytes signer = 3; + bytes signature = 4; +} + message entity_verify_req_v1 { // binary identifier of the entity bytes entity_id = 1; @@ -475,6 +533,11 @@ service gateway { // Get a stream of gateway info (V3) rpc info_stream_v3(gateway_info_stream_req_v3) returns (stream gateway_info_stream_res_v3); + + // V4 + // Get a stream of gateway info (V4) + rpc info_stream_v4(gateway_info_stream_req_v4) + returns (stream gateway_info_stream_res_v4); } service entity { From 69e9004e1acedfdcf1195d2375ec670d343726f4 Mon Sep 17 00:00:00 2001 From: Anatolii Kurotych Date: Fri, 30 Jan 2026 08:41:28 +0200 Subject: [PATCH 2/2] upd comments --- src/service/mobile_config.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/service/mobile_config.proto b/src/service/mobile_config.proto index 4f7d630e..5aa34b0f 100644 --- a/src/service/mobile_config.proto +++ b/src/service/mobile_config.proto @@ -146,7 +146,7 @@ message gateway_info_v4 { uint64 num_location_asserts = 6; // The gateway's owner string owner = 7; - // The last time the owner was changed (in seconds) + // The Unix epoch timestamp (in seconds) when the owner was last changed uint64 owner_changed_at = 8; } @@ -237,7 +237,7 @@ message gateway_info_stream_req_v4 { bytes signer = 2; bytes signature = 3; // Device types that will be returned in the response - // Use empty array if you don't want to apply this filter + // Returns all devices if empty repeated device_type_v2 device_types = 4; // The Unix epoch timestamp (in seconds). // Filters the response based on the last time gateway parameter(s) was