Skip to content

Commit

Permalink
chore(docs): update requirements
Browse files Browse the repository at this point in the history
* Update logginghouse-client-requirements.md

* Update logginghouse-client-requirements.md

* Update logginghouse-client-requirements.md

With Feedback from MDS

---------

Co-authored-by: Maximilian Schönenberg <[email protected]>
  • Loading branch information
dhommen and schoenenberg committed Jan 23, 2024
1 parent 3274f71 commit cf94a99
Showing 1 changed file with 29 additions and 8 deletions.
37 changes: 29 additions & 8 deletions logginghouse-client-requirements.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,43 @@
# LoggingHouse Client Requirements

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
[RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119).

## Environment Constraints (Phase 1&2)
- The LH client MUST be implemented as an EDC extension
- The LH client MUST be developed against MDS EDC 7.x.x
- The LH client SHOULD NOT interfere with other EDC extensions
- The LH client repository MUST provide a Maven package for the MDS EDC integration

## Functional Requirements
- A LH client SHOULD report every transaction to the LH server
- A LH client MUST create a process id while negotiating a contract
- A LH client MUST report every transaction to the LH server (Phase 1 or 2)
- ... MUST log Contract Agreements
- ... MUST log Transfer init, completed, error ...
- ... MAY log query messages, for the purpose of marking audits ... (Phase 2)
- ... MAY log other messages
- A LH client MUST create a process id while negotiating a contract (Phase 1)
- The process id MUST be accessable (read/write) by provider and consumer.
- A Connector MUST NOT agree on any contract if it is not able to log a message to the shared process id.
- A LH client SHOULD NOT transfer any data if the transaction cannot be logged to the LH server.
- A LH client MUST buffer log messages of transfers if the LH server is unreachable.
- A LH client SHOULD archive LH server transaction reciept.
- A LH client MAY query their transaction data from the LH server.
- The process id MUST be accessable (read) by the specified MDS connector. (Logginghouse server feature)
- A Connector MUST NOT agree on any contract if it is not able to log a message to the shared process id. (Phase 2 - TBC MDS Community Management)
- A LH client SHOULD NOT transfer any data if the transaction cannot be logged to the LH server. (Phase 2)
- different behaviour on contract negotiation and transfer
- A LH client MUST buffer log messages of transfers if the LH server is unreachable. (Phase 1)
- time constraint ... (Phase 2 - TBC)
- mechanism to protect against modification of buffered messages ... (Phase 2 - TBC)
- A LH client MUST push buffered log messages as soon as the LH server is reachable. (Phase 1)
- A LH client SHOULD archive/store LH server transaction reciept. (Phase 1)
- A LH client MAY query their transaction data from the LH server. (Phase 1)
- A LH client MUST expose a query API to enable a connector developler to implement their use case specific functions. (Phase 1)

## Process Words

### Transaction
A transaction is either a contract negotiation action or data transfer action.

### Process id
A process id is a unique idendifiert to group each transaction to a contract. The LH server enables a LH client to create a process id with the option to specify the owners.
A process id is a unique identifier to group each transaction to a contract. The LH server enables a LH client to create a process id with the option to specify the owners.

### LH server
Is the logging house server that acts a central logging component.
Expand Down

0 comments on commit cf94a99

Please sign in to comment.