## FIT-Co Java SDK ### Project Setup Info - Java 14 (LTS) - Maven - Junit 5 ### Build To build the maven artifact, run: `mvn clean install` #### To run all tests, run: `mvn test` #### Modules The SDk is set up as a maven multi module to separate the (internal) API properly from implementation details ##### API Module The api module consists of all domain model classes and (api-) public interfaces needed to build an sdk-client #### Client Module Factories and Helper to create Sender and Subscriber. It acts as the actual user client. #### Impl Module Interface implementations ### API Architecture ## Structure ```mermaid classDiagram class CryptoService{ + decryptString + decryptBytes + encryptString + encryptBytes } class CertificateValidator{ + validatePublicKey } class MetadataValidator{ + validateMetadataSchema + validateMetadataHashValues } class MetadataService{ + createMetadata } class OAuthService{ + authenticate } class Sender { + retrieveOAuthToken + validatePublicKey + encryptSubmissionData + encryptAttachment + MetadataService + createMetadata } class Subscriber { + retrieveOAuthToken + decryptSubmissionData + decryptAttachment + validateMetadataSchema + validateMetadataHashValues } class FitCoClient{ ClientFactory } FitCoClient ..> ClientFactory : Uses ClientFactory ..> Sender : Creates ClientFactory ..> Subscriber : Creates Sender ..> CertificateValidator : Uses Sender ..> MetadataService : Uses Sender ..> OAuthService : Uses Sender ..> CryptoService : Uses Subscriber ..> OAuthService : Uses Subscriber ..> CryptoService : Uses Subscriber ..> MetadataValidator : Uses ``` ### Documentation https://docs.fitko.de/fit-connect/docs/ ### Self Service Portal (DEV) https://portal.auth-testing.fit-connect.fitko.dev/