@@ -94,7 +94,7 @@ have separate implementations for different functions.
9494# ## OCM Provider
9595
9696An OCM Provider is an entity that can take on the two _roles_ of a
97- _Sending Server_ and a _Receiving Server_. An OCM Provider MUST be a
97+ _Sending Server_ and a _Receiving Server_. An OCM Provider MUST be a
9898_Discoverable Server_ and SHOULD be able to receive _Notifications_.
9999
100100# ## OCM Directory Service
@@ -111,10 +111,10 @@ take on: the _Sending Server_ role and the _Receiving Server_ role.
111111
112112A Sending Server is an OCM Provider that holds Resources and exposes
113113APIs to allow access to them. It allows its users to create _Shares_
114- to give other users access to those Resources. A Sending Server MAY
114+ to give other users access to those Resources. A Sending Server MAY
115115provide its users with the ability to generate _Invites_ to establish
116- contact with other users on other OCM Providers. When doing so it MAY
117- provide a _WAYF Page_ to facilitate the Invite Flow. The WAYF page MAY
116+ contact with other users on other OCM Providers. When doing so it MAY
117+ provide a _WAYF Page_ to facilitate the Invite Flow. The WAYF page MAY
118118be limited to a set of trusted OCM Providers, for instance those in the
119119same _Federation_.
120120
@@ -124,7 +124,7 @@ same _Federation_.
124124A Receiving Server is an OCM Provider that receives _Share_ Creation
125125Notifications from Sending Servers, notifies its users about incoming
126126_Shares_, and acts as an API client to allow its users to access Remote
127- Resources. It MAY provide it's users with an _Address Book_ of
127+ Resources. It MAY provide its users with an _Address Book_ of
128128_Contacts_ and the ability to accept _Invites_.
129129
130130
@@ -139,7 +139,7 @@ elsewhere:
139139* __Discoverable Server__ - A server that tries to supply information in
140140 OCM API Discovery.
141141* __Federation__ - A group of OCM Providers that have established
142- mutual trust and agree on certain policies for interaction. A
142+ mutual trust and agree on certain policies for interaction. A
143143 Federation MAY be facilitated by a Directory Service.
144144* __FQDN__ - Fully Qualified Domain Name, such as `"cloud.example.com"`.
145145* __Invite Acceptance Gesture__ - Gesture from the Invite Receiver to
@@ -177,19 +177,19 @@ elsewhere:
177177 Invite Sender's OCM Address.
178178* __OCM Address__ - identifies a user or group "at" an OCM Server.
179179The OCM Address contains a server specific Party identifier, a host
180- locating the OCM Server and an optional port. The OCM Address is not a
180+ locating the OCM Server and an optional port. The OCM Address is not a
181181URI as it does not have scheme and the identifier may contain reserved
182182characters.
183183
184184 ocm-address = identifier "@" host [ ":" port]
185185
186- The identifier is an opaque, case-sensitive UTF-8 string. It is
187- separated from the host by the last "@" in the OCM Address. It is
188- possible to have multiple @-signs in a OCM-address, e.g. when an
189- email address is the local part of the address like
186+ The identifier is an opaque, case-sensitive UTF-8 string. It is
187+ separated from the host by the last "@" in the OCM Address. It is
188+ possible to have multiple @-signs in a OCM-address, e.g. when an
189+ email address is the local part of the address like
190190 ` [email protected] @ocm.example.org` . 191191
192- host is an IP literal encapsulated within square brackets, an IPv4
192+ host is an IP literal encapsulated within square brackets, an IPv4
193193 address in dotted decimal form, or a registered name as described in
194194 [RFC3986].
195195
@@ -198,8 +198,8 @@ characters.
198198 The optional port subcomponent can be used to specify a port to use
199199 for discovery (see Discovery Process).
200200
201- The OCM Server MUST be discoverable at the given host and optional
202- port via the Well-Known [RFC8615] path `/.well-known/ocm`. The OCM
201+ The OCM Server MUST be discoverable at the given host and optional
202+ port via the Well-Known [RFC8615] path `/.well-known/ocm`. The OCM
203203 Address MUST NOT contain a path.
204204
205205* __OCM API Discovery__ - Process of evaluating properties of a Remote
@@ -262,15 +262,15 @@ characters.
262262 another OCM Server, based on out-of-band information, federation
263263 membership or prior interactions, SHOULD be recorded in an internal
264264 registry of trusted servers, that SHOULD be updated over time based
265- on new information. The registry SHOULD include the FQDN of the
266- trusted server and the Public Key used for HTTP Signatures. It MAY
265+ on new information. The registry SHOULD include the FQDN of the
266+ trusted server and the Public Key used for HTTP Signatures. It MAY
267267 also include additional metadata such as the inviteAcceptDialog URL
268268 or supported capabilities.
269269* __WAYF Page__ - A Where-Are-You-From page is a discovery service used
270270 to identify the OCM Server of an Invite Receiver.
271271
272272In Appendix D, an object model is presented as a non-normative guide for
273- implementators to understand the relationships between these terms.
273+ implementers to understand the relationships between these terms.
274274
275275# General Flow
276276
@@ -476,11 +476,11 @@ time without notifying them.
476476
477477# ## Invite format
478478To accept an invite, two pieces of information are required : a `token`
479- and a `provider`. There are two recognized formats :
479+ and a `provider`. There are two recognized formats :
480480
481481* **Invite string format:**
482482 A base64-encoded string containing the token and the provider’s FQDN,
483- joined by an `@` sign. Example :
483+ joined by an `@` sign. Example :
484484
485485 If the `token` is `a55a966e-15c1-4cb9-a39d-4e4c54399baf` and the
486486 ` provider` is `my-cloud-storage.org`, the combined string is
@@ -495,7 +495,7 @@ and a `provider`. There are two recognized formats:
495495
496496* **Link format:**
497497 If the inviting OCM Server supports a WAYF page, the invite may be
498- provided as a link with the token as a request parameter. Example :
498+ provided as a link with the token as a request parameter. Example :
499499
500500 ` https://my-cloud-storage.org/wayf?token=
501501 a55a966e-15c1-4cb9-a39d-4e4c54399baf`
@@ -611,7 +611,7 @@ Step 4: If not, try a HTTP GET with `https://<fqdn>/ocm-provider` as
611611the URL instead.
612612Step 5 : If that results in a valid HTTP response with a valid JSON
613613response body within reasonable time, go to step 7.
614- Step 6 : If not, fail. Implementations MAY fallback to HTTP instead
614+ Step 6 : If not, fail. Implementations MAY fallback to HTTP instead
615615of HTTPS in testing setups and retry steps 2-5, in particular when
616616an optional port is given in the address.
617617Step 7 : The JSON response body is the data that was discovered.
@@ -988,7 +988,7 @@ with any related share.
988988Notifications from Sending Server to Receiving Server SHOULD use
989989httpsig [RFC9421] so the Receiving Server can authenticate the origin
990990of the notification. Receiving Servers SHOULD decline notifications
991- from Sending Servers without httpsig as it can't identify where the
991+ from Sending Servers without httpsig as it can't identify where the
992992notification is coming from.
993993
994994# ## Receiving Party Notification
@@ -1076,7 +1076,7 @@ Date: Wed, 05 Nov 2025 14:00:00 GMT
10761076Content-Type: application/x-www-form-urlencoded
10771077Digest: SHA-256=ok6mQ3WZzKc8nb7s/Jt2yY1uK7d2n8Zq7dhl3Q0s1xk=
10781078Content-Length: 101
1079- Signature-Input:
1079+ Signature-Input:
10801080 sig1=("@method" "@target-uri" "content-digest" "date"); \
10811081 created=1730815200; keyid="receiver.example.org#2025"; \
10821082 alg="rsa-sha256"
@@ -1207,7 +1207,7 @@ Implementers SHOULD NOT use it and prefer short-lived tokens instead.
12071207# # Code Flow
12081208
12091209All `{tokenEndPoint}` requests MUST be transmitted over HTTPS and
1210- signed using HTTP Signatures. Bearer tokens MUST be treated as
1210+ signed using HTTP Signatures. Bearer tokens MUST be treated as
12111211confidential and never logged, persisted beyond their lifetime, or
12121212transmitted over unsecured channels.
12131213
@@ -1231,14 +1231,14 @@ Key Words](https://datatracker.ietf.org/html/rfc8174)", May 2017.
12311231[RFC9421] Backman, A., Richer, J. and Sporny, M. "[HTTP Message
12321232Signatures](https://tools.ietf.org/html/rfc9421)", February 2024.
12331233
1234- [RFC3986] Berners-Lee, T., Fielding, R. and Masinter, L.
1234+ [RFC3986] Berners-Lee, T., Fielding, R. and Masinter, L.
12351235" [Uniform Resource Identifier (URI): Generic Syntax
12361236](https://datatracker.ietf.org/doc/html/rfc3986)" , January 2005
12371237
12381238[RFC6749] Hardt, D. (ed), "[The OAuth 2.0 Authorization Framework](
12391239https://datatracker.ietf.org/html/rfc6749)", October 2012.
12401240
1241- [RFC8615] Nottingham, M. "[Well-Known Uniform Resource Identifiers
1241+ [RFC8615] Nottingham, M. "[Well-Known Uniform Resource Identifiers
12421242(URIs)](https://datatracker.ietf.org/doc/html/rfc8615)", May 2019
12431243
12441244
@@ -1444,7 +1444,7 @@ format:
14441444
14451445An implementor of OCM MAY choose any internal object model to represent
14461446an _Address Book_, a _Contact_, an _Invite_, a _Provider_, a _Share_,
1447- and a _User_. However, the following diagrams are provided to clarify
1447+ and a _User_. The following diagrams are provided to clarify
14481448the concepts and their relationships, as a guide for implementors.
14491449
14501450# # Address Book
@@ -1456,12 +1456,12 @@ the Sending Server's database from the selection of the _Receiving
14561456Party_ in preparation for Share Creation.
14571457
14581458The Address Book entity maintains a collection of contacts for a user
1459- within the OCM provider. It serves as the primary mechanism for managing
1460- federated relationships between users across different OCM Servers.
1461- _Contacts_ may be added to the Address Book through the Invite flow or
1462- direct entry. It provides a convenient way for users to organize and
1463- access their federated contacts, and MAY allow users to generate
1464- _Invites_.
1459+ within the OCM provider. It serves as the primary mechanism for
1460+ managing federated relationships between users across different OCM
1461+ Servers. _Contacts_ may be added to the Address Book through the Invite
1462+ flow or direct entry. It provides a convenient way for users to
1463+ organize and access their federated contacts, and MAY allow users to
1464+ generate _Invites_.
14651465
14661466` ` `
14671467+-----------------+
@@ -1491,8 +1491,8 @@ _Invites_.
14911491
14921492# # Contact
14931493A Contact represents a federated user relationship established through
1494- the OCM protocol. Contacts are stored in _Address Books_ and may be
1495- created through the Invite process or via direct entry. A Contact MAY
1494+ the OCM protocol. Contacts are stored in _Address Books_ and may be
1495+ created through the Invite process or via direct entry. A Contact MAY
14961496of course contain much more detailed information about the referenced
14971497user such as if it was added via _Invites_ or direct entry.
14981498
@@ -1528,7 +1528,7 @@ user such as if it was added via _Invites_ or direct entry.
15281528# # Invite
15291529
15301530The Invite entity represents the bidirectional trust establishment
1531- mechanism in OCM. It facilitates secure contact exchange between users
1531+ mechanism in OCM. It facilitates secure contact exchange between users
15321532on different OCM Servers.
15331533
15341534` ` `
@@ -1564,7 +1564,7 @@ on different OCM Servers.
15641564# # Provider
15651565
15661566The Provider entity represents an OCM Server's capabilities and
1567- configuration as discovered through the OCM API Discovery process. It
1567+ configuration as discovered through the OCM API Discovery process. It
15681568represents both the Sending Server and Receiving Server roles, and an
15691569implementor might find it useful to have a Provider object model to
15701570store the discovered information about federation peers or other remote
@@ -1588,19 +1588,19 @@ OCM Providers.
15881588 |
15891589 +---------+---------+----------------------+
15901590 | | |
1591- v v v
1592- +------------------+ +------------------+ +------------------+
1593- | ResourceTypes[] | | Capabilities[] | | Criteria[] |
1591+ v v v
1592+ +------------------+ +------------------+ +------------------+
1593+ | ResourceTypes[] | | Capabilities[] | | Criteria[] |
15941594+------------------+ +------------------+ +------------------+
15951595| - name | | - enforce-mfa | | - allowlist |
15961596| - shareTypes[] | | - exchange-token | | - denylist |
15971597| - protocols{} | | - invite-wayf | | - http-signatures|
15981598+------------------+ | - invites | | - invite |
15991599 | | - webdav-uri | | - token-exchange |
16001600 | +------------------+ +------------------+
1601- | supports
1602- v
1603- +------------------+
1601+ | supports
1602+ v
1603+ +------------------+
16041604| Protocols |
16051605+------------------+
16061606| - datatx |
@@ -1634,10 +1634,10 @@ from a Sending Party to a Receiving Party.
16341634 | |
16351635 | creates | accesses
16361636 v v
1637- +------------------+ notification +------------------+
1637+ +------------------+ notification +------------------+
16381638| Share |-------------------->| Receiving Server |
16391639+------------------+ +------------------+
1640- | - expiration | |
1640+ | - expiration | |
16411641| - name | | mediates access to
16421642| - owner | v
16431643| - protocol | +------------------+
@@ -1736,8 +1736,8 @@ Shares and Invites and manage Contacts, and interact with Resources.
17361736# # Resource
17371737
17381738The Resource entity represents the data or service being shared between
1739- OCM Providers. It is the target of Shares and is accessed by the
1740- Receiving Party through the Sending Server's API. In general a Resource
1739+ OCM Providers. It is the target of Shares and is accessed by the
1740+ Receiving Party through the Sending Server's API. In general a Resource
17411741is a much more complex entity, but for the purpose of OCM we only need
17421742to model a few key properties.
17431743
0 commit comments