From cd714946d57c105a077ebdddeb880e38adeaa4d6 Mon Sep 17 00:00:00 2001 From: Manjunath Davanam Date: Fri, 12 Jun 2026 11:37:40 +0530 Subject: [PATCH 1/3] feat(context): support array of networkIds for multi-network scoping context.networkId now accepts either a string or an array of strings. A bare string remains valid and is treated as a single-element array, preserving full backward compatibility for existing publishers. Use case: a Provider Node can publish a catalog to multiple networks simultaneously, and a Consumer Node can scope a discovery request across multiple networks, by supplying an array of network identifiers. Closes: https://github.com/Networks-for-Humanity/fabric-support/discussions/24 --- api/v2.0.0/beckn.yaml | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/api/v2.0.0/beckn.yaml b/api/v2.0.0/beckn.yaml index 85727e24..98ee6375 100644 --- a/api/v2.0.0/beckn.yaml +++ b/api/v2.0.0/beckn.yaml @@ -2984,12 +2984,28 @@ components: type: string format: uuid networkId: - description: "The unique identifier of the Beckn subnet within which this\ - \ transaction is occurring. Actors use this value to resolve the subnet's\ - \ registry URL before performing identity and address lookups. The RECOMMENDED\ - \ format is namespace_id followed by a slash followed by registry_id, for\ - \ example acmenet.org/charge-net." - type: string + description: >- + Unique identifier of a network or list of networks. Each identifier + ALWAYS represents a specific beckn registry in a specific namespace + on dedi.global. Format: `{namespace_id}/{registry_id}@{dedi-host}`. + The `@{dedi-host}` suffix is optional. If it is not present, the + network is assumed to be registered on dedi.global. Example: + Assuming acmenet.org is the namespace, and registry_name = + charge-net, so networkId should be `acmenet.org/charge-net`. + + An array of identifiers is accepted to allow a catalog to be + published to, or a discovery request scoped across, multiple + networks simultaneously. A bare string is treated as equivalent to + a single-element array. + oneOf: + - type: string + minLength: 1 + - type: array + items: + type: string + minLength: 1 + minItems: 1 + uniqueItems: true timestamp: description: The date and time at which this message was generated by the sender, expressed in RFC 3339 date-time format. The receiving actor MAY From 7f30d01b4a0631a1819fbe2ea54bec5e4e65ca37 Mon Sep 17 00:00:00 2001 From: Manjunath Davanam Date: Fri, 12 Jun 2026 11:44:32 +0530 Subject: [PATCH 2/3] chore(context): simplify networkId description --- api/v2.0.0/beckn.yaml | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/api/v2.0.0/beckn.yaml b/api/v2.0.0/beckn.yaml index 98ee6375..016d8624 100644 --- a/api/v2.0.0/beckn.yaml +++ b/api/v2.0.0/beckn.yaml @@ -2984,19 +2984,12 @@ components: type: string format: uuid networkId: - description: >- - Unique identifier of a network or list of networks. Each identifier - ALWAYS represents a specific beckn registry in a specific namespace - on dedi.global. Format: `{namespace_id}/{registry_id}@{dedi-host}`. - The `@{dedi-host}` suffix is optional. If it is not present, the - network is assumed to be registered on dedi.global. Example: - Assuming acmenet.org is the namespace, and registry_name = - charge-net, so networkId should be `acmenet.org/charge-net`. - - An array of identifiers is accepted to allow a catalog to be - published to, or a discovery request scoped across, multiple - networks simultaneously. A bare string is treated as equivalent to - a single-element array. + description: "The unique identifier of the Beckn subnet within which this\ + \ transaction is occurring. Actors use this value to resolve the subnet's\ + \ registry URL before performing identity and address lookups. The RECOMMENDED\ + \ format is namespace_id followed by a slash followed by registry_id, for\ + \ example acmenet.org/charge-net. Accepts either a single string or an\ + \ array of strings to support multi-network scoping." oneOf: - type: string minLength: 1 From 092a1c23917249d4314efec3558931acdeadb46a Mon Sep 17 00:00:00 2001 From: Manjunath Davanam Date: Fri, 12 Jun 2026 11:46:56 +0530 Subject: [PATCH 3/3] chore(context): clean up networkId oneOf constraints --- api/v2.0.0/beckn.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/api/v2.0.0/beckn.yaml b/api/v2.0.0/beckn.yaml index 016d8624..0a87fcec 100644 --- a/api/v2.0.0/beckn.yaml +++ b/api/v2.0.0/beckn.yaml @@ -2992,11 +2992,9 @@ components: \ array of strings to support multi-network scoping." oneOf: - type: string - minLength: 1 - type: array items: type: string - minLength: 1 minItems: 1 uniqueItems: true timestamp: