Skip to content
Snippets Groups Projects
README.md 1.87 KiB
Newer Older
Martin Vogel's avatar
Martin Vogel committed
## FIT-Co Java SDK

### Project Setup Info
- Java 14 (LTS)
- Maven
- Junit 5
Martin Vogel's avatar
Martin Vogel committed
### Build

To build the maven artifact, run: `mvn clean install`
Martin Vogel's avatar
Martin Vogel committed
####
Martin Vogel's avatar
Martin Vogel committed
To run all tests, run: `mvn test`

Martin Vogel's avatar
Martin Vogel committed
#### Modules
The SDk is set up as a maven multi module to separate the (internal) API properly from implementation details
Martin Vogel's avatar
Martin Vogel committed
##### API Module

The api module consists of all domain model classes and (api-) public interfaces needed to build an sdk-client

Martin Vogel's avatar
Martin Vogel committed
#### 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


Martin Vogel's avatar
Martin Vogel committed
  class CryptoService{
    + decryptString
    + decryptBytes 
Martin Vogel's avatar
Martin Vogel committed
    + encryptString
    + encryptBytes 
   class CertificateValidator{
        + validatePublicKey
  }

Martin Vogel's avatar
Martin Vogel committed
  class MetadataValidator{
    + validateMetadataSchema
    + validateMetadataHashValues
  }
Martin Vogel's avatar
Martin Vogel committed
  class MetadataService{
    + createMetadata
  }
Martin Vogel's avatar
Martin Vogel committed
  class OAuthService{
   + authenticate
  }

Martin Vogel's avatar
Martin Vogel committed
  class Sender {
    + retrieveOAuthToken
    + validatePublicKey
    + encryptSubmissionData
    + encryptAttachment
    + MetadataService
    + createMetadata
  }
Martin Vogel's avatar
Martin Vogel committed
   class Subscriber {
    + retrieveOAuthToken
    + decryptSubmissionData
    + decryptAttachment
    + validateMetadataSchema
    + validateMetadataHashValues
  }
Martin Vogel's avatar
Martin Vogel committed
  class FitCoClient{
    ClientFactory
  }
Martin Vogel's avatar
Martin Vogel committed
FitCoClient  ..> ClientFactory : Uses
ClientFactory  ..> Sender : Creates
ClientFactory  ..> Subscriber : Creates
Martin Vogel's avatar
Martin Vogel committed
Sender ..> CertificateValidator : Uses
Martin Vogel's avatar
Martin Vogel committed
Sender ..> MetadataService : Uses
Sender ..> OAuthService : Uses
Sender ..> CryptoService : Uses
Martin Vogel's avatar
Martin Vogel committed
Subscriber ..> OAuthService : Uses
Subscriber ..> CryptoService : Uses
Subscriber ..> MetadataValidator : Uses
Martin Vogel's avatar
Martin Vogel committed

Martin Vogel's avatar
Martin Vogel committed
```
Martin Vogel's avatar
Martin Vogel committed

### Documentation
Martin Vogel's avatar
Martin Vogel committed
https://docs.fitko.de/fit-connect/docs/

### Self Service Portal (DEV)
Martin Vogel's avatar
Martin Vogel committed
https://portal.auth-testing.fit-connect.fitko.dev/