diff --git a/logginghouse-client-requirements.md b/logginghouse-client-requirements.md index db94845..e18aa41 100644 --- a/logginghouse-client-requirements.md +++ b/logginghouse-client-requirements.md @@ -1,14 +1,35 @@ # 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 @@ -16,7 +37,7 @@ 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.