Skip to content

Architecture: Component overview

Esta Nagy edited this page Sep 17, 2023 · 3 revisions

The following diagram shows the most important classes and their relations inside Lowkey Vault.

classDiagram

    note "Key: UML\n---\nPackages contain\ncontroller class\nnames."

    class AesKeyVaultKeyEntity
    class EcKeyVaultKeyEntity
    class RsaKeyVaultKeyEntity
    class KeyVaultSecretEntity
    class KeyVaultKeyEntity
    class KeyVaultCertificateEntity
    class KeyVaultBaseEntity
    class VersionedEntityMultiMap {
        <<interface>>
    }
    class ConcurrentVersionedEntityMultiMap
    class BaseVaultFake {
        <<interface>>
    }
    class KeyRotationPolicy
    class KeyVaultFake { <<interface>> }
    class SecretVaultFake { <<interface>> }
    class CertificateVaultFake { <<interface>> }
    class CertificateLifetimeActionPolicy
    class VaultFake { <<interface>> }
    class VaultService { <<interface>> }
    class lowkeyvault_controller_common {
        <<package>>
        CommonKeyController
        CommonKeyCryptoController
        CommonKeyBackupRestoreController
        CommonSecretController
        CommonSecretBackupRestoreController
        CommonCertificateController
        CommonCertificatePolicyController
        CommonCertificateBackupRestoreController
    }
    class lowkeyvault_controller {
        <<package>>
        VaultManagementController
        VaultBackupManagementController
    }
    class lowkeyvault_controller_V72 {
        <<package>>
        KeyController
        KeyCryptoController
        KeyBackupRestoreController
        SecretController
        SecretBackupRestoreController
    }
    class lowkeyvault_controller_V73 {
        <<package>>
        KeyController
        KeyCryptoController
        KeyBackupRestoreController
        SecretController
        SecretBackupRestoreController
        CertificateController
        CertificatePolicyController
        CertificateBackupRestoreController
    }
    class lowkeyvault_controller_V74 {
        <<package>>
        KeyController
        KeyCryptoController
        KeyBackupRestoreController
        SecretController
        SecretBackupRestoreController
        CertificateController
        CertificatePolicyController
        CertificateBackupRestoreController
    }

    KeyVaultKeyEntity <|-- AesKeyVaultKeyEntity
    KeyVaultKeyEntity <|-- EcKeyVaultKeyEntity
    KeyVaultKeyEntity <|-- RsaKeyVaultKeyEntity
    KeyVaultBaseEntity <|-- KeyVaultSecretEntity
    KeyVaultBaseEntity <|-- KeyVaultKeyEntity
    KeyVaultBaseEntity <|-- KeyVaultCertificateEntity
    ConcurrentVersionedEntityMultiMap o-- "0..*" KeyVaultBaseEntity
    VersionedEntityMultiMap <|-- ConcurrentVersionedEntityMultiMap
    BaseVaultFake o-- "2" VersionedEntityMultiMap
    CertificateVaultFake o-- "0..*" CertificateLifetimeActionPolicy
    SecretVaultFake --|> BaseVaultFake
    CertificateVaultFake --|> BaseVaultFake
    KeyVaultFake --|> BaseVaultFake
    KeyVaultFake o-- "0..*" KeyRotationPolicy
    VaultFake o-- "1" CertificateVaultFake
    VaultFake o-- "1" SecretVaultFake
    VaultFake o-- "1" KeyVaultFake
    VaultService o-- "0..*" VaultFake
    lowkeyvault_controller ..> VaultService
    lowkeyvault_controller_common ..> VaultService
    lowkeyvault_controller_V72 --|> lowkeyvault_controller_common
    lowkeyvault_controller_V73 --|> lowkeyvault_controller_common
    lowkeyvault_controller_V74 --|> lowkeyvault_controller_common
    
Loading