Skip to content

Commit ad717cc

Browse files
committed
Expanding the communication with clients point
Signed-off-by: Hugues de Valon <[email protected]>
1 parent ddeebf6 commit ad717cc

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/parsec_service/stability.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ model.
3737
The communication channels that need to be stable are (some of them are not in the diagram):
3838

3939
1. Communication with clients
40+
1. Definition of requests/responses (their format)
41+
2. Definition of operation contracts (their intended behaviour)
42+
3. Definition of Listeners endpoints (how to contact Parsec)
4043
2. Communication with authenticators
4144
3. Communication received from the CLI invocation
4245
4. Configuration file (including default configuration options)
@@ -57,15 +60,17 @@ Let's look at each of the points above and check:
5760
- how stability is ensured
5861
- how stability is tested
5962

60-
| Stability Requirement | Stability Definition | Stability Enforcement | Stability Test |
61-
|--------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|
62-
| Communication with clients | Requests and responses must be understood correctly by different versions of the service/clients. This also includes a defined behaviour for all operations that is respected. Listeners endpoint must be discovered in a stable way. | The Wire Protocol is [stable by design](../parsec_client/wire_protocol.md#wire-protocol-versions), including operations contracts. A [service discovery mechanism](http://machine.cambridge.arm.com:8000/parsec_client/api_overview.html#service-discovery) exists. | TODO |
63-
| Authenticators | Authentication requests sent by future stable versions of Parsec should be understood by the same version of the authenticators present on the system. | Unix Peer Crendentials: based on top of stable C standard library APIs. JWT SVID: authentication is based on the [SPIFFE Workload API](https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Workload_API.md) which is a standard and should remain stable. | TODO |
64-
| CLI invocation | Old CLI invocations of Parsec should still work with for future stable Parsec versions. | CLI flags should not be removed. New flags should be optional. | TODO |
65-
| Configuration file | Old configuration files should still work with future stable Parsec versions, with the same default for optional options. | Configuration options should not disappear in future stable Parsec versions. Configuration defaults should remain the same. New options should be optional. | TODO |
66-
| Key mappings | Old key mappings should still be read correctly by future stable Parsec versions. | The way the KIM persistently stores the mappings need to be backward-compatible in regards with reading/writing. | TODO |
67-
| OS signals | OS signals should still have the same behaviour in future stable Parsec versions. | Signal handlers must not be removed in Parsec. | TODO |
68-
| systemd communication | systemd should receive the same status information from Parsec in future stable versions. | Status notifications must not be removed. | TODO |
69-
| Dynamic libraries dependencies | Linking and loading the same versions of libraries should still work in future stable versions of Parsec. | Stable versions of Parsec should not require newer dependencies. | TODO |
63+
| Stability Requirement | Stability Definition | Stability Enforcement | Stability Test |
64+
|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|
65+
| Communication with clients (requests/responses) | Requests and responses must be understood correctly by different versions of the service/clients. | The Wire Protocol is [stable by design](../parsec_client/wire_protocol.md#wire-protocol-versions). | TODO |
66+
| Communication with clients (operation contracts) | The behaviour of operations must remain the same for all versions of the service. | There is a [defined behaviour](https://parallaxsecond.github.io/parsec-book/parsec_client/operations/index.html) for all operations that is respected. | TODO |
67+
| Communication with clients (listeners endpoint) | Listeners endpoint must be discovered in a stable way. | A [service discovery mechanism](../parsec_client/api_overview.md#service-discovery) exists. | TODO |
68+
| Authenticators | Authentication requests sent by future stable versions of Parsec should be understood by the same version of the authenticators present on the system. | Unix Peer Crendentials: based on top of stable C standard library APIs. JWT SVID: authentication is based on the [SPIFFE Workload API](https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Workload_API.md) which is a standard and should remain stable. | TODO |
69+
| CLI invocation | Old CLI invocations of Parsec should still work with for future stable Parsec versions. | CLI flags should not be removed. New flags should be optional. | TODO |
70+
| Configuration file | Old configuration files should still work with future stable Parsec versions, with the same default for optional options. | Configuration options should not disappear in future stable Parsec versions. Configuration defaults should remain the same. New options should be optional. | TODO |
71+
| Key mappings | Old key mappings should still be read correctly by future stable Parsec versions. | The way the KIM persistently stores the mappings need to be backward-compatible in regards with reading/writing. | TODO |
72+
| OS signals | OS signals should still have the same behaviour in future stable Parsec versions. | Signal handlers must not be removed in Parsec. | TODO |
73+
| systemd communication | systemd should receive the same status information from Parsec in future stable versions. | Status notifications must not be removed. | TODO |
74+
| Dynamic libraries dependencies | Linking and loading the same versions of libraries should still work in future stable versions of Parsec. | Stable versions of Parsec should not require newer dependencies. | TODO |
7075

7176
*Copyright 2021 Contributors to the Parsec project.*

0 commit comments

Comments
 (0)