Skip to content

Commit 99d4f8b

Browse files
Address feedback from Giuseppe
Co-authored-by: Giuseppe Lo Presti <[email protected]>
1 parent 327385b commit 99d4f8b

File tree

1 file changed

+51
-51
lines changed

1 file changed

+51
-51
lines changed

IETF-RFC.md

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,14 @@ they appear in all capitals, as shown here.
8787

8888
## Functions
8989

90-
Open Cloud Mesh defines distinct functions, it is not neccessary for an
90+
Open Cloud Mesh defines distinct functions. It is not necessary for an
9191
implementation to provide all of them. In fact, it may be useful to
9292
have separate implementations for different functions.
9393

9494
### OCM Provider
9595

9696
An 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

112112
A Sending Server is an OCM Provider that holds Resources and exposes
113113
APIs 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
115115
provide 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
118118
be limited to a set of trusted OCM Providers, for instance those in the
119119
same _Federation_.
120120

@@ -124,7 +124,7 @@ same _Federation_.
124124
A Receiving Server is an OCM Provider that receives _Share_ Creation
125125
Notifications 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.
179179
The 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
181181
URI as it does not have scheme and the identifier may contain reserved
182182
characters.
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

272272
In 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
478478
To 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
611611
the URL instead.
612612
Step 5: If that results in a valid HTTP response with a valid JSON
613613
response 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
615615
of HTTPS in testing setups and retry steps 2-5, in particular when
616616
an optional port is given in the address.
617617
Step 7: The JSON response body is the data that was discovered.
@@ -988,7 +988,7 @@ with any related share.
988988
Notifications from Sending Server to Receiving Server SHOULD use
989989
httpsig [RFC9421] so the Receiving Server can authenticate the origin
990990
of 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
992992
notification is coming from.
993993

994994
### Receiving Party Notification
@@ -1076,7 +1076,7 @@ Date: Wed, 05 Nov 2025 14:00:00 GMT
10761076
Content-Type: application/x-www-form-urlencoded
10771077
Digest: SHA-256=ok6mQ3WZzKc8nb7s/Jt2yY1uK7d2n8Zq7dhl3Q0s1xk=
10781078
Content-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

12091209
All `{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
12111211
confidential and never logged, persisted beyond their lifetime, or
12121212
transmitted 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
12321232
Signatures](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](
12391239
https://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

14451445
An implementor of OCM MAY choose any internal object model to represent
14461446
an _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
14481448
the 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
14561456
Party_ in preparation for Share Creation.
14571457

14581458
The 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
14931493
A 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
14961496
of course contain much more detailed information about the referenced
14971497
user 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

15301530
The 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
15321532
on different OCM Servers.
15331533

15341534
```
@@ -1564,7 +1564,7 @@ on different OCM Servers.
15641564
## Provider
15651565

15661566
The 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
15681568
represents both the Sending Server and Receiving Server roles, and an
15691569
implementor might find it useful to have a Provider object model to
15701570
store the discovered information about federation peers or other remote
@@ -1576,7 +1576,7 @@ OCM Providers.
15761576
| (OCM Server) |
15771577
+-----------------------+
15781578
| - apiVersion |
1579-
| - enabled: bool |
1579+
| - enabled |
15801580
| - endPoint |
15811581
| - inviteAcceptDialog |
15821582
| - provider |
@@ -1588,22 +1588,22 @@ 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
+------------------+
1606-
| - datatx |
1606+
| - ssh |
16071607
| - webapp |
16081608
| - webdav |
16091609
| - ... |
@@ -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 | +------------------+
@@ -1662,7 +1662,7 @@ from a Sending Party to a Receiving Party.
16621662
* __expiration__: Optional expiration timestamp
16631663
* __name__: Human-readable name of the shared Resource
16641664
* __owner__: OCM Address of the Resource owner
1665-
* __protocol__: Access protocol configuration (webdav, webapp, datatx)
1665+
* __protocol__: Access protocol name and details (webdav, ssh, webapp, ...)
16661666
* __providerId__: Unique identifier for the Share at the provider
16671667
* __requirements__: Array of access requirements (must-use-mfa,
16681668
must-exchange-token)
@@ -1736,8 +1736,8 @@ Shares and Invites and manage Contacts, and interact with Resources.
17361736
## Resource
17371737

17381738
The 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
17411741
is a much more complex entity, but for the purpose of OCM we only need
17421742
to model a few key properties.
17431743

0 commit comments

Comments
 (0)