-
Notifications
You must be signed in to change notification settings - Fork 14
Add scope diagrams section with C4 Level 1 and Level 2 diagrams #159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 3 commits
954085c
31b52dd
0a39c38
cf9be25
4ada3f2
8f7c768
25cdda7
1e1ea84
685d6fb
aba265c
99e8716
abca902
810e52e
3187ac4
29ece08
624685f
66c4303
457cfc8
7fe9a79
ccafd9d
c6295b9
da07c8f
419ceeb
a99f7df
93eda0c
d8822e8
c6b937a
803567b
04fa8e8
73775ee
4df6eb0
ce51913
f8a88a6
88b9eb2
e917c16
d095282
c535c31
683b542
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| # LWS Protocol — System Context (C4 Level 1) | ||
|
|
||
| ```mermaid | ||
| C4Context | ||
| title LWS Protocol — system context | ||
|
|
||
| Person(user, "User", "Person accessing resources") | ||
| System(client, "Client application", "Requests and manages resources") | ||
| System(lws, "LWS server", "Manages resource hierarchy and access") | ||
| System_Ext(idp, "Identity provider", "Issues signed credentials") | ||
| System_Ext(ext, "External resources", "Web resources under management") | ||
|
|
||
| Rel(user, client, "uses") | ||
| Rel(client, lws, "HTTP requests") | ||
| Rel(lws, idp, "validates credential") | ||
| Rel(lws, ext, "mediates access to") | ||
| ``` | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,27 @@ | ||||||
| # LWS Protocol — Container Diagram (C4 Level 2) | ||||||
|
|
||||||
| ```mermaid | ||||||
| C4Container | ||||||
| title LWS Protocol — container diagram | ||||||
|
|
||||||
| Person(user, "User", "Person accessing resources") | ||||||
| System(client, "Client application", "Requests and manages resources") | ||||||
| System_Ext(idp, "Identity provider", "Issues signed credentials") | ||||||
| System_Ext(ext, "External resources", "Web resources under management") | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| Boundary(lws, "LWS server") { | ||||||
| Container(authn, "Authentication", "Validates credential against identity provider") | ||||||
| Container(authz, "Authorization", "Enforces resource manager access decisions") | ||||||
| Container(rm, "Resource Management", "Manages containers, containment and linksets") | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would rephrase the description to be "Manages containers, metadata and data resources" (linksets are a particular type of metadata resource that don't need explicit mention) |
||||||
| Container(era, "External Resource Access", "Mediates access to external web resources") | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would remove this line. The LWS protocol does not define any behavior to interact with "external resources" |
||||||
| } | ||||||
|
|
||||||
| Rel(user, client, "uses") | ||||||
| Rel(client, authn, "presents credential") | ||||||
| Rel(authn, idp, "validates credential") | ||||||
| Rel(authn, authz, "confirmed identity") | ||||||
| Rel(authz, rm, "permitted operation") | ||||||
| Rel(rm, era, "resolves resource") | ||||||
| Rel(era, ext, "accesses") | ||||||
| ``` | ||||||
| Issue: The internal organisation of container, containment, and linkset management within the LWS server is not yet defined in the protocol. This diagram reflects current terminology and is subject to revision. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The internal organization is intentionally not defined by the protocol -- that is an implementation detail. I would remove this line. |
||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -168,11 +168,39 @@ <h2>Security and Privacy</h2> | |||||
| </p> | ||||||
|
|
||||||
| <p> | ||||||
| A <dfn>LWS Client</dfn> is an HTTP client [[!rfc9112]] that complies with all of the relevant "MUST" statements in this specification. Specifically, the relevant normative "MUST" statements in <a href="#operations"></a> of this document MUST be respected. | ||||||
| An <dfn>LWS Client</dfn> is an HTTP client [[!rfc9112]] that complies with all of the relevant "MUST" statements in this specification. Specifically, the relevant normative "MUST" statements in <a href="#operations"></a> of this document MUST be respected. | ||||||
| </p> | ||||||
| </section> | ||||||
| </section> | ||||||
|
|
||||||
| <section id="scope-diagrams"> <!-- becomes 2.4 Scope Diagrams --> | ||||||
| <h2>Scope Diagrams</h2> | ||||||
| <p> | ||||||
| The following diagrams are platform-independent models | ||||||
| to guide implementation. | ||||||
| </p> | ||||||
| <p> | ||||||
| Figure 1 shows the System Context, identifying the user, the systems | ||||||
| that interact with a compliant LWS server, and the external systems on | ||||||
| which the protocol depends. | ||||||
| </p> | ||||||
| <figure id="fig-1-system-context"> | ||||||
| <img src="diagrams/fig-1-system-context.svg" | ||||||
| alt="LWS Protocol system context diagram showing the user, client application, LWS server, identity provider, and external resources"/> | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would remove "external resources" from this description |
||||||
| <figcaption>LWS Protocol — system context (C4 Level 1)</figcaption> | ||||||
| </figure> | ||||||
| <p> | ||||||
| Figure 2 shows the Container Diagram, describing the protocol-level | ||||||
| responsibilities within a compliant LWS server and the relationships | ||||||
| between them. | ||||||
| </p> | ||||||
| <figure id="fig-2-container-diagram"> | ||||||
| <img src="diagrams/fig-2-container-diagram.svg" | ||||||
| alt="LWS Protocol container diagram showing authentication, authorization, resource management, and external resource access within the LWS server boundary"/> | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| <figcaption>LWS Protocol — container diagram (C4 Level 2)</figcaption> | ||||||
| </figure> | ||||||
| </section> | ||||||
|
|
||||||
| </section> | ||||||
| <section id="terminology"> | ||||||
| <h2>Terminology</h2> | ||||||
| <p> | ||||||
|
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you mean by "external resources"? Are these the same as the "LWS resources" we defined in the terminology? If so, it might be best to re-use that term.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.