feat(server): wire device_id through delivery proto and v2 handlers
Add device_id field to FetchRequest, FetchWaitRequest, PeekRequest, and AckRequest proto messages. V2 handlers now build composite queue keys (identity_key + device_id) when device_id is provided, enabling per-device fetch/ack scoping.
This commit is contained in:
@@ -14,17 +14,25 @@ message EnqueueRequest {
|
||||
bytes payload = 2;
|
||||
bytes channel_id = 3;
|
||||
uint32 ttl_secs = 4;
|
||||
// Client-generated idempotency key (16 bytes, UUID v7).
|
||||
// Server deduplicates enqueue requests with the same message_id within a TTL window.
|
||||
bytes message_id = 5;
|
||||
}
|
||||
|
||||
message EnqueueResponse {
|
||||
uint64 seq = 1;
|
||||
bytes delivery_proof = 2;
|
||||
// True if this was a duplicate enqueue (message_id already seen).
|
||||
bool duplicate = 3;
|
||||
}
|
||||
|
||||
message FetchRequest {
|
||||
bytes recipient_key = 1;
|
||||
bytes channel_id = 2;
|
||||
uint32 limit = 3;
|
||||
// Device ID for multi-device scoping. When set, the server builds
|
||||
// a composite queue key (identity_key + device_id). Empty = bare key.
|
||||
bytes device_id = 4;
|
||||
}
|
||||
|
||||
message FetchResponse {
|
||||
@@ -36,6 +44,7 @@ message FetchWaitRequest {
|
||||
bytes channel_id = 2;
|
||||
uint64 timeout_ms = 3;
|
||||
uint32 limit = 4;
|
||||
bytes device_id = 5;
|
||||
}
|
||||
|
||||
message FetchWaitResponse {
|
||||
@@ -46,6 +55,7 @@ message PeekRequest {
|
||||
bytes recipient_key = 1;
|
||||
bytes channel_id = 2;
|
||||
uint32 limit = 3;
|
||||
bytes device_id = 4;
|
||||
}
|
||||
|
||||
message PeekResponse {
|
||||
@@ -56,6 +66,7 @@ message AckRequest {
|
||||
bytes recipient_key = 1;
|
||||
bytes channel_id = 2;
|
||||
uint64 seq_up_to = 3;
|
||||
bytes device_id = 4;
|
||||
}
|
||||
|
||||
message AckResponse {}
|
||||
@@ -65,6 +76,8 @@ message BatchEnqueueRequest {
|
||||
bytes payload = 2;
|
||||
bytes channel_id = 3;
|
||||
uint32 ttl_secs = 4;
|
||||
// Client-generated idempotency key (16 bytes, UUID v7).
|
||||
bytes message_id = 5;
|
||||
}
|
||||
|
||||
message BatchEnqueueResponse {
|
||||
|
||||
Reference in New Issue
Block a user