eclipse-uprotocol / eclipse-uprotocol/up-spec
usubscription: explicitly require SubscriberInfo.uri.resource_id = 0 for subscriber identity
- Dominant language
- Gherkin
- Stars
- 43
- Forks
- 29
- Avg merge
- 20m
- Merged PRs (30d)
- 3
Description
## Problem
During review of eclipse-uprotocol/up-streamer-rust#77, we hit ambiguity around subscriber URI examples used in subscription data (for example `//authority-b/5678/1/1234`).
Reviewer feedback suggested using resource `0x0000` for subscriber UUris for clarity. That appears consistent with endpoint semantics, but the current uSubscription text does not explicitly require it.
## Relevant spec context
- `SubscriberInfo` is defined as subscriber identification (URI of the subscribing uEntity):
- https://github.com/eclipse-uprotocol/up-spec/blob/main/up-core-api/uprotocol/core/usubscription/v3/usubscription.proto#L120-L124
- `FetchSubscriptions` by subscriber is defined as subscriber -> topics:
- https://github.com/eclipse-uprotocol/up-spec/blob/main/up-l3/usubscription/v3/README.adoc#L242-L245
- Subscriber URI validity currently requires non-wildcard authority/ue_id/resource_id, but does not require resource `0`:
- https://github.com/eclipse-uprotocol/up-spec/blob/main/up-l3/usubscription/v3/README.adoc#L264-L273
- Endpoint-style addressing in uProtocol consistently uses `resource_id = 0`:
- notification sink: https://github.com/eclipse-uprotocol/up-spec/blob/main/basics/uattributes.adoc#L263-L266
- request source: https://github.com/eclipse-uprotocol/up-spec/blob/main/basics/uattributes.adoc#L293-L296
- response sink: https://github.com/eclipse-uprotocol/up-spec/blob/main/basics/uattributes.adoc#L384-L387
- By contrast, publish topic resources use `[0x8000, 0xFFFE]`:
- https://github.com/eclipse-uprotocol/up-spec/blob/main/basics/uattributes.adoc#L213-L216
## Gap
There is no explicit normative statement that `SubscriberInfo.uri.resource_id` must be `0`, which leads to inconsistent examples and reviewer confusion.
## Proposed change
Add explicit uSubscription requirement text that for `SubscriberInfo.uri`:
- `resource_id` MUST be `0` (subscriber endpoint identity),
- existing non-wildcard requirements remain in force.
Also update:
- `up-l3/usubscription/v3/README.adoc` (normative text + examples),
- `up-core-api/uprotocol/core/usubscription/v3/usubscription.proto` comments for `SubscriberInfo`.
## Why
This removes ambiguity, aligns `SubscriberInfo` with established endpoint semantics, and improves interoperability/readability across implementations and tests.
Contributor guide
Assessment
This issue has not been assessed yet.