## FIT-Co Java SDK ### Project Setup Info - Java 17 (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 ### API Architecture ## Structure ```mermaid classDiagram class DecryptionService{ + decryptString + decryptBytes } class EncryptionService{ + encryptString + encryptBytes } class CryptoService{ } class CertificateValidator{ + validatePublicKey } class MetadataValidator{ + validateMetadataSchema + validateMetadataHashValues } class MetadataService{ + createMetadata } class OAuthService{ + authenticate } class SubmissionSender{ OAuthService EncryptionService CertificateValidator MetadataService } class SubmissionSubscriber{ OAuthService DecryptionService MetadataValidator } class FitCoClient{ ClientFactory } FitCoClient ..> ClientFactory : Uses ClientFactory ..> SubmissionSender : Creates ClientFactory ..> SubmissionSubscriber : Creates SubmissionSender ..> CertificateValidator : Implements SubmissionSender ..> EncryptionService : Implements SubmissionSender ..> MetadataService : Implements SubmissionSender ..> OAuthService : Implements SubmissionSubscriber ..> OAuthService : Implements SubmissionSubscriber ..> DecryptionService : Implements SubmissionSubscriber ..> MetadataValidator : Implements DecryptionService ..> CryptoService : IsA EncryptionService ..> CryptoService : IsA ``` #### Client Module API implementations and Tests ### Documentation https://docs.fitko.de/fit-connect/docs/ ### Self Service Portal (DEV) https://portal.auth-testing.fit-connect.fitko.dev/