Skip to content

Introduce the notion of a collection - #422

Open
mickenordin wants to merge 1 commit into
developfrom
kano-collection
Open

mickenordin wants to merge 1 commit into
developfrom
kano-collection

Conversation

@mickenordin

Copy link
Copy Markdown
Member

Like we have discussed, I am now proposing the notion of a collection. I made it a little bit more generic than I had previously though, allowing a collection to span multiple resourceTypes, so you can request access to a collection of for example files and webapps in the same request for share.

I also added an optional collectionSize, so that we can build nice uis with pending share requests and know if the are only partially fullfilled.

@mickenordin
mickenordin requested review from MahdiBaghbani and glpatcern and a balanced review from Copilot and removed request for MahdiBaghbani October 30, 2026 11:25

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Legacy REQUEST_SHARE payloads are rejected without an API version change, while collection fulfillment counts can mix unrelated requests and collection declines can validate without required recipient data.

3 open issues
What changed in this PR

This PR introduces Collections to group resources across locations and resource types, allowing a single share request to cover multiple resources.

Changes:

  • Adds optional collectionId and collectionSize share metadata for grouping and completion tracking.
  • Defines collection-based REQUEST_SHARE payloads and decline responses.
  • Updates notification scope rules and registry entries while keeping share updates resource-specific.
File Description
spec.yaml Adds collection metadata and collection-request schemas and validation.
IETF-OCM.md Defines Collection semantics, fulfillment and decline behavior, and notification scopes.

Review effort: Balanced

Comment thread spec.yaml
Comment on lines +979 to +983
- $ref: "#/components/schemas/RequestShare"
- properties:
notificationType:
not:
enum: [REQUEST_SHARE]
Comment thread IETF-OCM.md
Comment on lines +1069 to +1072
this field MUST be omitted. The Receiving Server MAY compare this
value with the number of distinct `providerId` values received for
the Collection and recipient from the Sending Server to determine
whether receipt of the Collection is complete.
Comment thread spec.yaml
Comment on lines +980 to +983
- properties:
notificationType:
not:
enum: [REQUEST_SHARE]

@glpatcern glpatcern left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Micke, looks generally good (not sure why we got Copilot reviewing it too, its concerns can be dismissed though as what you touched is not yet implemented, as we know, so no backwards compatibility concerns).

There's only one thing to fix on the spec.yaml

Comment thread spec.yaml
Comment on lines +1152 to +1156
- notificationType
- senderDomain
- collectionId
- shareType
- notification

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure this works, the RequestShare object represents the inner object of a notification, whereas here you have again the list of all fields including notificationType, that is already defined one level up

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants