@startuml

hide circle
hide empty members
hide <<i>> stereotype

<style>
class {
    .i {
        FontColor blue
    }
}
</style>

interface "AccessTokenRepository" <<i>>
interface "AccessTokenService" <<i>>
interface "AccessTokenStore" <<i>>
interface "AccountAuthorizationHelper" <<i>>
interface "AccountQuotaEventStore" <<i>>
interface "AccountQuotaService" <<i>>
interface "AccountQuotaStorageChecker" <<i>>
interface "AccountRepository" <<i>>
interface "AccountService" <<i>>
interface "AllResourcesQueryService" <<i>>
interface "AppendDatasetMetadataBatchUseCase" <<i>>
interface "ApplyAccountDatasetRelationsUseCase" <<i>>
interface "ApplyResourceUseCase" <<i>>
interface "AuthenticationProvider" <<i>>
interface "AuthenticationService" <<i>>
interface "BackgroundAgent" <<i>>
interface "CommitDatasetEventUseCase" <<i>>
interface "CompactDatasetUseCase" <<i>>
interface "CompactionExecutor" <<i>>
interface "CompactionPlanner" <<i>>
interface "CreateAccountUseCase" <<i>>
interface "CreateDatasetFromSnapshotUseCase" <<i>>
interface "CreateDatasetUseCase" <<i>>
interface "DataFormatRegistry" <<i>>
interface "DatabasePasswordProvider" <<i>>
interface "DatabaseTransactionManager" <<i>>
interface "DatasetActionAuthorizer" <<i>>
interface "DatasetDataBlockRepository" <<i>>
interface "DatasetDependencyRepository" <<i>>
interface "DatasetEntryRemovalListener" <<i>>
interface "DatasetEntryRepository" <<i>>
interface "DatasetEntryService" <<i>>
interface "DatasetEntryWriter" <<i>>
interface "DatasetEnvVarRepository" <<i>>
interface "DatasetEnvVarService" <<i>>
interface "DatasetFactory" <<i>>
interface "DatasetIncrementQueryService" <<i>>
interface "DatasetKeyBlockRepository" <<i>>
interface "DatasetKeyValueService" <<i>>
interface "DatasetLfsBuilder" <<i>>
interface "DatasetReferenceRepository" <<i>>
interface "DatasetReferenceService" <<i>>
interface "DatasetRegistry" <<i>>
interface "DatasetSearchService" <<i>>
interface "DatasetStatisticsRepository" <<i>>
interface "DatasetStatisticsService" <<i>>
interface "DatasetStorageUnit" <<i>>
interface "DatasetStorageUnitWriter" <<i>>
interface "DeleteAccountResourcesUseCase" <<i>>
interface "DeleteAccountUseCase" <<i>>
interface "DeleteDatasetRebacPropertiesUseCase" <<i>>
interface "DeleteDatasetUseCase" <<i>>
interface "DeleteResourcesUseCase" <<i>>
interface "DependencyGraphService" <<i>>
interface "DidGenerator" <<i>>
interface "DidSecretKeyRepository" <<i>>
interface "EmbeddingsCacheRepository" <<i>>
interface "EmbeddingsChunker" <<i>>
interface "EmbeddingsEncoder" <<i>>
interface "EmbeddingsProvider" <<i>>
interface "EngineProvisioner" <<i>>
interface "ExpensiveAccountRepository" <<i>>
interface "ExportService" <<i>>
interface "FindCollectionEntriesUseCase" <<i>>
interface "FindVersionedFileVersionUseCase" <<i>>
interface "FlowConfigurationEventStore" <<i>>
interface "FlowEventStore" <<i>>
interface "FlowProcessStateQuery" <<i>>
interface "FlowProcessStateRepository" <<i>>
interface "FlowSystemEventBridge" <<i>>
interface "FlowTriggerEventStore" <<i>>
interface "GetDatasetDownstreamDependenciesUseCase" <<i>>
interface "GetDatasetSchemaUseCase" <<i>>
interface "GetDatasetUpstreamDependenciesUseCase" <<i>>
interface "GetResourceByUidUseCase" <<i>>
interface "InitOnStartup" <<i>>
interface "JwtTokenIssuer" <<i>>
interface "ListAllResourcesUseCase" <<i>>
interface "ListResourcesByKindUseCase" <<i>>
interface "MessageConsumer" <<i>>
interface "MessageConsumerT" <<i>>
interface "MetadataQueryService" <<i>>
interface "MetricsProvider" <<i>>
interface "ModifyAccountPasswordUseCase" <<i>>
interface "OAuthDeviceCodeGenerator" <<i>>
interface "OAuthDeviceCodeRepository" <<i>>
interface "OAuthDeviceCodeService" <<i>>
interface "ObjectStoreBuilder" <<i>>
interface "ObjectStoreRegistry" <<i>>
interface "OdfServerAccessTokenResolver" <<i>>
interface "OutboxAgent" <<i>>
interface "OutboxMessageBridge" <<i>>
interface "PasswordHashRepository" <<i>>
interface "PollingIngestService" <<i>>
interface "ProvenanceService" <<i>>
interface "PullDatasetUseCase" <<i>>
interface "PullRequestPlanner" <<i>>
interface "PushDatasetUseCase" <<i>>
interface "PushIngestDataUseCase" <<i>>
interface "PushIngestExecutor" <<i>>
interface "PushIngestPlanner" <<i>>
interface "PushRequestPlanner" <<i>>
interface "QueryDatasetDataUseCase" <<i>>
interface "QueryService" <<i>>
interface "RebacDatasetRegistryFacade" <<i>>
interface "RebacRepository" <<i>>
interface "RebacService" <<i>>
interface "ReconcileResourceUseCase" <<i>>
interface "Reconciler" <<i>>
interface "RemoteAliasResolver" <<i>>
interface "RemoteAliasesRegistry" <<i>>
interface "RemoteRepositoryRegistry" <<i>>
interface "RemoteStatusService" <<i>>
interface "RenameDatasetUseCase" <<i>>
interface "ResetDatasetUseCase" <<i>>
interface "ResetExecutor" <<i>>
interface "ResetPlanner" <<i>>
interface "ResourceAccountResolver" <<i>>
interface "ResourceAggregateLoader" <<i>>
interface "ResourceCrudDispatcher" <<i>>
interface "ResourceFacade" <<i>>
interface "ResourceLifecycleEventDispatcher" <<i>>
interface "ResourceLoader" <<i>>
interface "ResourcePersistenceService" <<i>>
interface "ResourceQueryService" <<i>>
interface "ResourceRawEventStore" <<i>>
interface "ResourceRepository" <<i>>
interface "SchemaService" <<i>>
interface "SearchEntitySchemaProvider" <<i>>
interface "SearchService" <<i>>
interface "SearchServiceRemote" <<i>>
interface "SecretSetEventStore" <<i>>
interface "SecretSetProjectionRepository" <<i>>
interface "SessionAuth" <<i>>
interface "SessionManager" <<i>>
interface "SetDatasetRebacPropertiesUseCase" <<i>>
interface "SetWatermarkExecutor" <<i>>
interface "SetWatermarkPlanner" <<i>>
interface "SetWatermarkUseCase" <<i>>
interface "SmartTransferProtocolClient" <<i>>
interface "StorageEventStore" <<i>>
interface "SyncService" <<i>>
interface "SystemTimeSource" <<i>>
interface "TaskEventStore" <<i>>
interface "TransformElaborationService" <<i>>
interface "TransformExecutor" <<i>>
interface "TransformRequestPlanner" <<i>>
interface "UnsetDatasetAccountsRelationsUseCase" <<i>>
interface "UpdateAccountUseCase" <<i>>
interface "UpdateCollectionEntriesUseCase" <<i>>
interface "UpdateVersionedFileUseCase" <<i>>
interface "VariableSetEventStore" <<i>>
interface "VariableSetProjectionRepository" <<i>>
interface "VerificationService" <<i>>
interface "VerifyDatasetUseCase" <<i>>
interface "ViewCollectionEntriesUseCase" <<i>>
interface "ViewVersionedFileHistoryUseCase" <<i>>
interface "Web3AuthEip4361NonceRepository" <<i>>
interface "Web3AuthEip4361NonceService" <<i>>
interface "WebhookDeliveryRepository" <<i>>
interface "WebhookSubscriptionEventStore" <<i>>
class "AccessTokenRegistryService"
class "AccessTokenServiceImpl"
class "AccountAuthorizationHelperImpl"
class "AccountLifecycleMessageConsumer"
class "AccountProperties" <<singleton>>
class "AccountQuotaCheckerStorageImpl"
class "AccountQuotaServiceImpl"
class "AccountSearchSchemaProvider"
class "AccountSearchUpdater"
class "AccountServiceImpl"
class "AllResourcesQueryServiceImpl"
class "AppendDatasetMetadataBatchUseCaseImpl"
class "ApplyAccountDatasetRelationsUseCaseImpl"
class "AuthConfig" <<singleton>>
class "AuthenticationServiceImpl"
class "BuildInfo" <<singleton>>
class "CLIAccessTokenStore"
class "CacheDir" <<singleton>>
class "CommitDatasetEventUseCaseImpl"
class "CompactDatasetUseCaseImpl"
class "CompactionExecutorImpl"
class "CompactionPlannerImpl"
class "ConfigService"
class "ConfigurationResourceLifecycleMessageConsumer"
class "ConfirmDeleteService"
class "ContainerRuntime"
class "ContainerRuntimeConfig" <<singleton>>
class "CreateAccountUseCaseImpl"
class "CreateDatasetFromSnapshotUseCaseImpl"
class "CreateDatasetUseCaseHelper"
class "CreateDatasetUseCaseImpl"
class "CurrentAccountSubject" <<singleton>>
class "DataFormatRegistryImpl"
class "DatabaseConnectionSettings" <<singleton>>
class "DatabaseNoPasswordProvider"
class "DatabaseTransactionRunner"
class "DatasetAccountLifecycleHandler"
class "DatasetAliasUpdateHandler"
class "DatasetBlockIndexer"
class "DatasetBlockUpdateHandler"
class "DatasetEntryIndexer"
class "DatasetEntryServiceImpl"
class "DatasetEnvVarServiceNull"
class "DatasetEnvVarsConfig" <<singleton>>
class "DatasetFactoryImpl"
class "DatasetIncrementQueryServiceImpl"
class "DatasetKeyValueServiceSysEnv"
class "DatasetLfsBuilderDatabaseBackedImpl"
class "DatasetProperties" <<singleton>>
class "DatasetReferenceIndexer"
class "DatasetReferenceServiceImpl"
class "DatasetSearchSchemaProvider"
class "DatasetSearchServiceImpl"
class "DatasetSearchUpdater"
class "DatasetStatisticsIndexer"
class "DatasetStatisticsServiceImpl"
class "DatasetStatisticsUpdateHandler"
class "DatasetStorageUnitLocalFs"
class "DeleteAccountResourcesUsecaseImpl"
class "DeleteAccountUseCaseImpl"
class "DeleteDatasetRebacPropertiesUseCaseImpl"
class "DeleteDatasetUseCaseImpl"
class "DependencyGraphImmediateListener"
class "DependencyGraphIndexer"
class "DependencyGraphServiceImpl" <<singleton>>
class "DidGeneratorDefault"
class "DidSecretEncryptionConfig" <<singleton>>
class "DidSecretService"
class "DummyEmbeddingsEncoder"
class "DummySearchService"
class "EmbeddingsChunkerConfigSimple" <<singleton>>
class "EmbeddingsChunkerSimple"
class "EmbeddingsProviderImpl"
class "EngineConfigDatafusionEmbeddedBatchQuery" <<singleton>>
class "EngineConfigDatafusionEmbeddedCompaction" <<singleton>>
class "EngineConfigDatafusionEmbeddedIngest" <<singleton>>
class "EngineProvisionerLocal"
class "EngineProvisionerLocalConfig" <<singleton>>
class "EthereumSourceConfig" <<singleton>>
class "ExportServiceImpl"
class "FetchService"
class "FileUploadLimitConfig" <<singleton>>
class "FindCollectionEntriesUseCaseImpl"
class "FindVersionedFileVersionUseCaseImpl"
class "FlightSqlServiceFactory"
class "FlowAgentConfig" <<singleton>>
class "FlowSystemEventAgentConfig" <<singleton>>
class "GcService"
class "GetDatasetDownstreamDependenciesUseCaseImpl"
class "GetDatasetSchemaUseCaseImpl"
class "GetDatasetUpstreamDependenciesUseCaseImpl"
class "GithubAuthenticationConfig" <<singleton>>
class "GqlConfig" <<singleton>>
class "HttpSourceConfig" <<singleton>>
class "Interact" <<singleton>>
class "IpfsClient" <<singleton>>
class "IpfsGateway" <<singleton>>
class "JupyterConfig" <<singleton>>
class "JwtAuthenticationConfig" <<singleton>>
class "KamuAuthOso"
class "KamuFlightSqlService"
class "ListAllResourcesUseCaseImpl"
class "LoginPasswordAuthProvider"
class "LoginService"
class "MessageDispatcherT" <<singleton>>
class "MessageDispatcherT" <<singleton>>
class "MessageDispatcherT" <<singleton>>
class "MessageDispatcherT" <<singleton>>
class "MessageDispatcherT" <<singleton>>
class "MessageDispatcherT" <<singleton>>
class "MessageDispatcherT" <<singleton>>
class "MessageDispatcherT" <<singleton>>
class "MessageDispatcherT" <<singleton>>
class "MetadataChainDbBackedConfig" <<singleton>>
class "MetadataQueryServiceImpl"
class "ModifyAccountPasswordUseCaseImpl"
class "MqttSourceConfig" <<singleton>>
class "NotebookServerFactory"
class "OAuthDeviceCodeGeneratorDefault"
class "OAuthDeviceCodeServiceImpl"
class "OAuthGithub" <<singleton>>
class "ObjectStoreBuilderLocalFs" <<agnostic>>
class "ObjectStoreRegistryImpl" <<singleton>>
class "OsoDatasetAuthorizer"
class "OsoResourceServiceImpl"
class "OutboxAgentConfig" <<singleton>>
class "OutboxAgentImpl" <<singleton>>
class "OutboxAgentMetrics" <<singleton>>
class "OutboxDispatchingImpl"
class "OutboxImmediateImpl"
class "OutboxTransactionalImpl"
class "OutputConfig" <<singleton>>
class "PasswordHashingMode" <<singleton>>
class "PasswordPolicyConfig" <<singleton>>
class "PollingIngestServiceImpl"
class "Pool" <<singleton>>
class "PredefinedAccountsConfig" <<singleton>>
class "PredefinedAccountsRegistrator"
class "ProvenanceServiceImpl"
class "PullDatasetUseCaseImpl"
class "PullRequestPlannerImpl"
class "PushDatasetUseCaseImpl"
class "PushIngestDataUseCaseImpl"
class "PushIngestExecutorImpl"
class "PushIngestPlannerImpl"
class "PushRequestPlannerImpl"
class "QueryDatasetDataUseCaseImpl"
class "QueryServiceImpl"
class "QuotaDefaultsConfig" <<singleton>>
class "RebacDatasetLifecycleMessageConsumer"
class "RebacDatasetRegistryFacadeImpl"
class "RebacIndexer"
class "RebacServiceImpl"
class "Registry" <<singleton>>
class "RemoteAliasResolverImpl"
class "RemoteAliasesRegistryImpl"
class "RemoteReposDir" <<singleton>>
class "RemoteRepositoryRegistryImpl"
class "RemoteStatusServiceImpl"
class "RenameDatasetUseCaseImpl"
class "ResetDatasetUseCaseImpl"
class "ResetExecutorImpl"
class "ResetPlannerImpl"
class "ResourceAccountResolverImpl"
class "ResourceFacadeImpl"
class "ResourceLifecycleMessageConsumer"
class "ResourceLoaderImpl"
class "RunInfoDir" <<singleton>>
class "SchemaServiceImpl"
class "SearchIndexerConfig" <<singleton>>
class "SearchServiceRemoteImpl"
class "SecretSetApplyResourceUseCaseImpl"
class "SecretSetDeleteResourcesUseCaseImpl"
class "SecretSetEventStoreBridge"
class "SecretSetGetResourceByUidUseCaseImpl"
class "SecretSetListResourcesByKindUseCaseImpl"
class "SecretSetReconcileResourceUseCaseImpl"
class "SecretSetReconcilerImpl"
class "SecretSetResourceAggregateLoaderImpl"
class "SecretSetResourceCrudDispatcher"
class "SecretSetResourceLifecycleDispatcher"
class "SecretSetResourcePersistenceServiceImpl"
class "SecretSetResourceQueryServiceImpl"
class "SessionAuthAnonymous"
class "SessionAuthConfig" <<singleton>>
class "SessionCachingConfig" <<singleton>>
class "SessionContextBuilder"
class "SessionId" <<singleton>>
class "SessionManagerCaching"
class "SessionManagerCachingState" <<singleton>>
class "SetDatasetRebacPropertiesUseCaseImpl"
class "SetWatermarkExecutorImpl"
class "SetWatermarkPlannerImpl"
class "SetWatermarkUseCaseImpl"
class "SimpleTransferProtocol"
class "SourceConfig" <<singleton>>
class "SparkLivyServerFactory"
class "SqlInfoData" <<singleton>>
class "SqliteAccessTokenRepository"
class "SqliteAccountQuotaEventStore"
class "SqliteAccountRepository"
class "SqliteDatasetDataBlockRepository"
class "SqliteDatasetDependencyRepository"
class "SqliteDatasetEntryRepository"
class "SqliteDatasetEnvVarRepository"
class "SqliteDatasetKeyBlockRepository"
class "SqliteDatasetReferenceRepository"
class "SqliteDatasetStatisticsRepository"
class "SqliteDidSecretKeyRepository"
class "SqliteEmbeddingsCacheRepository"
class "SqliteFlowConfigurationEventStore"
class "SqliteFlowEventStore"
class "SqliteFlowProcessStateQuery"
class "SqliteFlowProcessStateRepository"
class "SqliteFlowSystemEventBridge" <<agnostic>>
class "SqliteFlowTriggerEventStore"
class "SqliteOAuthDeviceCodeRepository"
class "SqliteOutboxMessageBridge" <<agnostic>>
class "SqlitePlugin"
class "SqliteRebacRepository"
class "SqliteResourceRawEventStore"
class "SqliteResourceRepository"
class "SqliteSecretSetProjectionRepository"
class "SqliteTaskEventStore"
class "SqliteTransactionManager"
class "SqliteVariableSetProjectionRepository"
class "SqliteWeb3AuthEip4361NonceRepository"
class "SqliteWebhookDeliveryRepository"
class "SqliteWebhookSubscriptionEventStore"
class "StorageApplyResourceUseCaseImpl"
class "StorageDeleteResourcesUseCaseImpl"
class "StorageEventStoreBridge"
class "StorageGetResourceByUidUseCaseImpl"
class "StorageListResourcesByKindUseCaseImpl"
class "StorageReconcileResourceUseCaseImpl"
class "StorageReconcilerImpl"
class "StorageResourceAggregateLoaderImpl"
class "StorageResourceLifecycleDispatcher"
class "StorageResourcePersistenceServiceImpl"
class "StorageResourceQueryServiceImpl"
class "SyncRequestBuilder"
class "SyncServiceImpl"
class "SystemTimeSourceDefault" <<agnostic>>
class "TaskAgentConfig" <<singleton>>
class "TenancyConfig" <<singleton>>
class "TransactionRef" <<singleton>>
class "TransactionRefT" <<singleton>>
class "TransformElaborationServiceImpl"
class "TransformExecutorImpl"
class "TransformRequestPlannerImpl"
class "UnsetDatasetAccountsRelationsUseCaseImpl"
class "UpdateAccountUseCaseImpl"
class "UpdateCollectionEntriesUseCaseImpl"
class "UpdateVersionedFileUseCaseImpl"
class "VariableSetApplyResourceUseCaseImpl"
class "VariableSetDeleteResourcesUseCaseImpl"
class "VariableSetEventStoreBridge"
class "VariableSetGetResourceByUidUseCaseImpl"
class "VariableSetListResourcesByKindUseCaseImpl"
class "VariableSetReconcileResourceUseCaseImpl"
class "VariableSetReconcilerImpl"
class "VariableSetResourceAggregateLoaderImpl"
class "VariableSetResourceCrudDispatcher"
class "VariableSetResourceLifecycleDispatcher"
class "VariableSetResourcePersistenceServiceImpl"
class "VariableSetResourceQueryServiceImpl"
class "VerificationServiceImpl"
class "VerifyDatasetUseCaseImpl"
class "ViewCollectionEntriesUseCaseImpl"
class "ViewVersionedFileHistoryUseCaseImpl"
class "Web3AuthEip4361NonceServiceImpl"
class "WebhooksConfig" <<singleton>>
class "WorkspaceLayout" <<singleton>>
class "WorkspaceService"
class "WsSmartTransferProtocolClient"
"ContainerRuntime"  --> "ContainerRuntimeConfig"
"DatabasePasswordProvider" <|-- "DatabaseNoPasswordProvider"
"DatabaseTransactionRunner"  --> "Catalog"
"DatabaseTransactionManager" <|-- "SqliteTransactionManager"
"SqliteTransactionManager"  --> "Pool"
"EngineProvisioner" <|-- "EngineProvisionerLocal"
"EngineProvisionerLocal"  --> "ContainerRuntime"
"EngineProvisionerLocal"  --> "EngineProvisionerLocalConfig"
"EngineProvisionerLocal"  --> "RunInfoDir"
"CompactionExecutor" <|-- "CompactionExecutorImpl"
"CompactionExecutorImpl"  --> "ObjectStoreRegistry"
"CompactionExecutorImpl"  --> "SystemTimeSource"
"CompactionExecutorImpl"  --> "EngineConfigDatafusionEmbeddedCompaction"
"CompactionExecutorImpl"  --> "RunInfoDir"
"CompactionPlanner" <|-- "CompactionPlannerImpl"
"ExportService" <|-- "ExportServiceImpl"
"DataFormatRegistry" <|-- "DataFormatRegistryImpl"
"FetchService"  --> "ContainerRuntime"
"FetchService"  --> "DatasetKeyValueService"
"FetchService" "?" --> "EthereumSourceConfig"
"FetchService" "?" --> "HttpSourceConfig"
"FetchService" "?" --> "MqttSourceConfig"
"FetchService" "?" --> "SourceConfig"
"FetchService"  --> "RunInfoDir"
"PollingIngestService" <|-- "PollingIngestServiceImpl"
"PollingIngestServiceImpl"  --> "EngineProvisioner"
"PollingIngestServiceImpl"  --> "DataFormatRegistry"
"PollingIngestServiceImpl"  --> "ObjectStoreRegistry"
"PollingIngestServiceImpl"  --> "SystemTimeSource"
"PollingIngestServiceImpl"  --> "EngineConfigDatafusionEmbeddedIngest"
"PollingIngestServiceImpl"  --> "FetchService"
"PollingIngestServiceImpl"  --> "CacheDir"
"PollingIngestServiceImpl"  --> "RunInfoDir"
"PushIngestExecutor" <|-- "PushIngestExecutorImpl"
"PushIngestExecutorImpl"  --> "AccountQuotaStorageChecker"
"PushIngestExecutorImpl"  --> "AccountService"
"PushIngestExecutorImpl"  --> "EngineProvisioner"
"PushIngestExecutorImpl"  --> "DataFormatRegistry"
"PushIngestExecutorImpl"  --> "ObjectStoreRegistry"
"PushIngestExecutorImpl"  --> "EngineConfigDatafusionEmbeddedIngest"
"PushIngestExecutorImpl"  --> "TenancyConfig"
"PushIngestPlanner" <|-- "PushIngestPlannerImpl"
"PushIngestPlannerImpl"  --> "DataFormatRegistry"
"PushIngestPlannerImpl"  --> "SystemTimeSource"
"PushIngestPlannerImpl"  --> "RunInfoDir"
"MetadataQueryService" <|-- "MetadataQueryServiceImpl"
"ObjectStoreBuilder" <|-- "ObjectStoreBuilderLocalFs"
"ObjectStoreRegistry" <|-- "ObjectStoreRegistryImpl"
"ObjectStoreRegistryImpl" "*" --> "ObjectStoreBuilder"
"ProvenanceService" <|-- "ProvenanceServiceImpl"
"ProvenanceServiceImpl"  --> "RebacDatasetRegistryFacade"
"ProvenanceServiceImpl"  --> "DatasetRegistry"
"ProvenanceServiceImpl"  --> "DependencyGraphService"
"PullRequestPlanner" <|-- "PullRequestPlannerImpl"
"PullRequestPlannerImpl"  --> "RemoteAliasesRegistry"
"PullRequestPlannerImpl"  --> "TransformRequestPlanner"
"PullRequestPlannerImpl"  --> "DatasetRegistry"
"PullRequestPlannerImpl"  --> "DependencyGraphService"
"PullRequestPlannerImpl"  --> "SyncRequestBuilder"
"PullRequestPlannerImpl"  --> "CurrentAccountSubject"
"PushRequestPlanner" <|-- "PushRequestPlannerImpl"
"PushRequestPlannerImpl"  --> "RemoteAliasResolver"
"QueryService" <|-- "QueryServiceImpl"
"QueryServiceImpl"  --> "RebacDatasetRegistryFacade"
"QueryServiceImpl"  --> "DatasetActionAuthorizer"
"QueryServiceImpl"  --> "DatasetRegistry"
"QueryServiceImpl"  --> "SessionContextBuilder"
"RemoteAliasResolver" <|-- "RemoteAliasResolverImpl"
"RemoteAliasResolverImpl"  --> "RemoteAliasesRegistry"
"RemoteAliasResolverImpl"  --> "RemoteRepositoryRegistry"
"RemoteAliasResolverImpl"  --> "OdfServerAccessTokenResolver"
"RemoteAliasesRegistry" <|-- "RemoteAliasesRegistryImpl"
"RemoteAliasesRegistryImpl"  --> "DatasetRegistry"
"RemoteRepositoryRegistry" <|-- "RemoteRepositoryRegistryImpl"
"RemoteRepositoryRegistryImpl"  --> "RemoteReposDir"
"RemoteStatusService" <|-- "RemoteStatusServiceImpl"
"RemoteStatusServiceImpl"  --> "RemoteAliasesRegistry"
"RemoteStatusServiceImpl"  --> "DatasetRegistry"
"RemoteStatusServiceImpl"  --> "DatasetFactory"
"ResourceLoader" <|-- "ResourceLoaderImpl"
"ResetExecutor" <|-- "ResetExecutorImpl"
"ResetPlanner" <|-- "ResetPlannerImpl"
"SchemaService" <|-- "SchemaServiceImpl"
"SchemaServiceImpl"  --> "SessionContextBuilder"
"SearchServiceRemote" <|-- "SearchServiceRemoteImpl"
"SearchServiceRemoteImpl"  --> "RemoteRepositoryRegistry"
"SearchServiceRemoteImpl"  --> "OdfServerAccessTokenResolver"
"SessionContextBuilder"  --> "ObjectStoreRegistry"
"SessionContextBuilder"  --> "DatasetRegistry"
"SessionContextBuilder"  --> "EngineConfigDatafusionEmbeddedBatchQuery"
"SyncRequestBuilder"  --> "RemoteAliasResolver"
"SyncRequestBuilder"  --> "RemoteRepositoryRegistry"
"SyncRequestBuilder"  --> "DatasetRegistry"
"SyncRequestBuilder"  --> "DatasetFactory"
"SyncService" <|-- "SyncServiceImpl"
"SyncServiceImpl"  --> "SmartTransferProtocolClient"
"SyncServiceImpl"  --> "RemoteRepositoryRegistry"
"SyncServiceImpl"  --> "DatasetFactory"
"SyncServiceImpl"  --> "IpfsClient"
"SyncServiceImpl"  --> "SimpleTransferProtocol"
"TransformElaborationService" <|-- "TransformElaborationServiceImpl"
"TransformElaborationServiceImpl"  --> "CompactionExecutor"
"TransformElaborationServiceImpl"  --> "CompactionPlanner"
"TransformElaborationServiceImpl"  --> "SystemTimeSource"
"TransformExecutor" <|-- "TransformExecutorImpl"
"TransformExecutorImpl"  --> "EngineProvisioner"
"TransformRequestPlanner" <|-- "TransformRequestPlannerImpl"
"TransformRequestPlannerImpl"  --> "DatasetRegistry"
"VerificationService" <|-- "VerificationServiceImpl"
"VerificationServiceImpl"  --> "TransformExecutor"
"VerificationServiceImpl"  --> "TransformRequestPlanner"
"SetWatermarkExecutor" <|-- "SetWatermarkExecutorImpl"
"SetWatermarkPlanner" <|-- "SetWatermarkPlannerImpl"
"SetWatermarkPlannerImpl"  --> "RemoteAliasesRegistry"
"SetWatermarkPlannerImpl"  --> "SystemTimeSource"
"CompactDatasetUseCase" <|-- "CompactDatasetUseCaseImpl"
"CompactDatasetUseCaseImpl"  --> "RebacDatasetRegistryFacade"
"CompactDatasetUseCaseImpl"  --> "CompactionExecutor"
"CompactDatasetUseCaseImpl"  --> "CompactionPlanner"
"PullDatasetUseCase" <|-- "PullDatasetUseCaseImpl"
"PullDatasetUseCaseImpl"  --> "Catalog"
"PullDatasetUseCaseImpl"  --> "PollingIngestService"
"PullDatasetUseCaseImpl"  --> "SyncService"
"PullDatasetUseCaseImpl"  --> "TransformElaborationService"
"PullDatasetUseCaseImpl"  --> "TransformExecutor"
"PullDatasetUseCaseImpl"  --> "TenancyConfig"
"PushDatasetUseCase" <|-- "PushDatasetUseCaseImpl"
"PushDatasetUseCaseImpl"  --> "Catalog"
"PushDatasetUseCaseImpl"  --> "SyncService"
"PushIngestDataUseCase" <|-- "PushIngestDataUseCaseImpl"
"PushIngestDataUseCaseImpl"  --> "PushIngestExecutor"
"PushIngestDataUseCaseImpl"  --> "PushIngestPlanner"
"PushIngestDataUseCaseImpl"  --> "Outbox"
"GetDatasetSchemaUseCase" <|-- "GetDatasetSchemaUseCaseImpl"
"GetDatasetSchemaUseCaseImpl"  --> "RebacDatasetRegistryFacade"
"GetDatasetSchemaUseCaseImpl"  --> "SchemaService"
"QueryDatasetDataUseCase" <|-- "QueryDatasetDataUseCaseImpl"
"QueryDatasetDataUseCaseImpl"  --> "RebacDatasetRegistryFacade"
"QueryDatasetDataUseCaseImpl"  --> "QueryService"
"QueryDatasetDataUseCaseImpl"  --> "DatasetRegistry"
"ResetDatasetUseCase" <|-- "ResetDatasetUseCaseImpl"
"ResetDatasetUseCaseImpl"  --> "RebacDatasetRegistryFacade"
"ResetDatasetUseCaseImpl"  --> "ResetExecutor"
"ResetDatasetUseCaseImpl"  --> "ResetPlanner"
"SetWatermarkUseCase" <|-- "SetWatermarkUseCaseImpl"
"SetWatermarkUseCaseImpl"  --> "RebacDatasetRegistryFacade"
"SetWatermarkUseCaseImpl"  --> "SetWatermarkExecutor"
"SetWatermarkUseCaseImpl"  --> "SetWatermarkPlanner"
"VerifyDatasetUseCase" <|-- "VerifyDatasetUseCaseImpl"
"VerifyDatasetUseCaseImpl"  --> "RebacDatasetRegistryFacade"
"VerifyDatasetUseCaseImpl"  --> "VerificationService"
"SimpleTransferProtocol"  --> "Catalog"
"SearchEntitySchemaProvider" <|-- "AccountSearchSchemaProvider"
"AccountSearchSchemaProvider"  --> "Catalog"
"MessageConsumer" <|-- "AccountSearchUpdater"
"MessageConsumerT" <|-- "AccountSearchUpdater"
"AccountSearchUpdater"  --> "SearchService"
"AccessTokenService" <|-- "AccessTokenServiceImpl"
"AccessTokenServiceImpl"  --> "AccessTokenRepository"
"AccessTokenServiceImpl"  --> "Outbox"
"AccessTokenServiceImpl"  --> "SystemTimeSource"
"AccountQuotaService" <|-- "AccountQuotaServiceImpl"
"AccountQuotaServiceImpl"  --> "AccountQuotaEventStore"
"AccountQuotaServiceImpl"  --> "SystemTimeSource"
"AccountService" <|-- "AccountServiceImpl"
"AccountServiceImpl" "?" --> "PasswordHashingMode"
"AccountServiceImpl"  --> "AccountRepository"
"AccountServiceImpl"  --> "PasswordHashRepository"
"AuthenticationService" <|-- "AuthenticationServiceImpl"
"JwtTokenIssuer" <|-- "AuthenticationServiceImpl"
"AuthenticationServiceImpl"  --> "AccessTokenService"
"AuthenticationServiceImpl"  --> "AccountService"
"AuthenticationServiceImpl" "*" --> "AuthenticationProvider"
"AuthenticationServiceImpl"  --> "OAuthDeviceCodeService"
"AuthenticationServiceImpl"  --> "Outbox"
"AuthenticationServiceImpl"  --> "SystemTimeSource"
"AuthenticationServiceImpl"  --> "AuthConfig"
"AuthenticationServiceImpl"  --> "JwtAuthenticationConfig"
"AuthenticationProvider" <|-- "LoginPasswordAuthProvider"
"LoginPasswordAuthProvider"  --> "AccountService"
"OAuthDeviceCodeGenerator" <|-- "OAuthDeviceCodeGeneratorDefault"
"InitOnStartup" <|-- "OAuthDeviceCodeServiceImpl"
"OAuthDeviceCodeService" <|-- "OAuthDeviceCodeServiceImpl"
"OAuthDeviceCodeServiceImpl"  --> "OAuthDeviceCodeRepository"
"OAuthDeviceCodeServiceImpl"  --> "OAuthDeviceCodeGenerator"
"OAuthDeviceCodeServiceImpl"  --> "SystemTimeSource"
"InitOnStartup" <|-- "PredefinedAccountsRegistrator"
"PredefinedAccountsRegistrator"  --> "AccountService"
"PredefinedAccountsRegistrator"  --> "CreateAccountUseCase"
"PredefinedAccountsRegistrator"  --> "UpdateAccountUseCase"
"PredefinedAccountsRegistrator"  --> "RebacService"
"PredefinedAccountsRegistrator"  --> "PredefinedAccountsConfig"
"PredefinedAccountsRegistrator"  --> "AccountProperties"
"CreateAccountUseCase" <|-- "CreateAccountUseCaseImpl"
"CreateAccountUseCaseImpl"  --> "DidSecretKeyRepository"
"CreateAccountUseCaseImpl"  --> "AccountService"
"CreateAccountUseCaseImpl"  --> "Outbox"
"CreateAccountUseCaseImpl"  --> "SystemTimeSource"
"CreateAccountUseCaseImpl"  --> "DidSecretEncryptionConfig"
"DeleteAccountUseCase" <|-- "DeleteAccountUseCaseImpl"
"DeleteAccountUseCaseImpl"  --> "AccountService"
"DeleteAccountUseCaseImpl"  --> "AccountAuthorizationHelper"
"DeleteAccountUseCaseImpl"  --> "Outbox"
"DeleteAccountUseCaseImpl"  --> "SystemTimeSource"
"ModifyAccountPasswordUseCase" <|-- "ModifyAccountPasswordUseCaseImpl"
"ModifyAccountPasswordUseCaseImpl"  --> "AccountService"
"ModifyAccountPasswordUseCaseImpl"  --> "AccountAuthorizationHelper"
"ModifyAccountPasswordUseCaseImpl"  --> "Outbox"
"ModifyAccountPasswordUseCaseImpl"  --> "SystemTimeSource"
"UpdateAccountUseCase" <|-- "UpdateAccountUseCaseImpl"
"UpdateAccountUseCaseImpl"  --> "AccountService"
"UpdateAccountUseCaseImpl" "lazy" --> "AccountAuthorizationHelper"
"UpdateAccountUseCaseImpl"  --> "Outbox"
"UpdateAccountUseCaseImpl"  --> "SystemTimeSource"
"AccountAuthorizationHelper" <|-- "AccountAuthorizationHelperImpl"
"AccountAuthorizationHelperImpl"  --> "RebacService"
"AccountAuthorizationHelperImpl"  --> "CurrentAccountSubject"
"AccessTokenRepository" <|-- "SqliteAccessTokenRepository"
"SqliteAccessTokenRepository"  --> "TransactionRefT"
"AccountQuotaEventStore" <|-- "SqliteAccountQuotaEventStore"
"SqliteAccountQuotaEventStore"  --> "TransactionRefT"
"AccountRepository" <|-- "SqliteAccountRepository"
"ExpensiveAccountRepository" <|-- "SqliteAccountRepository"
"PasswordHashRepository" <|-- "SqliteAccountRepository"
"SqliteAccountRepository"  --> "TransactionRefT"
"DidSecretKeyRepository" <|-- "SqliteDidSecretKeyRepository"
"SqliteDidSecretKeyRepository"  --> "TransactionRefT"
"OAuthDeviceCodeRepository" <|-- "SqliteOAuthDeviceCodeRepository"
"SqliteOAuthDeviceCodeRepository"  --> "TransactionRefT"
"DatasetActionAuthorizer" <|-- "OsoDatasetAuthorizer"
"OsoDatasetAuthorizer"  --> "CurrentAccountSubject"
"OsoDatasetAuthorizer"  --> "KamuAuthOso"
"OsoDatasetAuthorizer"  --> "OsoResourceServiceImpl"
"OsoResourceServiceImpl"  --> "RebacService"
"OsoResourceServiceImpl"  --> "DatasetEntryService"
"KamuFlightSqlService"  --> "SqlInfoData"
"KamuFlightSqlService" "lazy" --> "SessionAuth"
"KamuFlightSqlService" "lazy" --> "SessionManager"
"SessionAuth" <|-- "SessionAuthAnonymous"
"SessionManager" <|-- "SessionManagerCaching"
"SessionManagerCaching" "lazy" --> "QueryService"
"SessionManagerCaching"  --> "SystemTimeSource"
"SessionManagerCaching"  --> "CurrentAccountSubject"
"SessionManagerCaching"  --> "SessionCachingConfig"
"SessionManagerCaching"  --> "SessionManagerCachingState"
"SessionManagerCaching"  --> "SessionId"
"SmartTransferProtocolClient" <|-- "WsSmartTransferProtocolClient"
"WsSmartTransferProtocolClient"  --> "Catalog"
"WsSmartTransferProtocolClient"  --> "OdfServerAccessTokenResolver"
"AuthenticationProvider" <|-- "OAuthGithub"
"OAuthGithub"  --> "GithubAuthenticationConfig"
"MessageConsumer" <|-- "RebacDatasetLifecycleMessageConsumer"
"MessageConsumerT" <|-- "RebacDatasetLifecycleMessageConsumer"
"RebacDatasetLifecycleMessageConsumer"  --> "DeleteDatasetRebacPropertiesUseCase"
"RebacDatasetLifecycleMessageConsumer"  --> "SetDatasetRebacPropertiesUseCase"
"RebacDatasetLifecycleMessageConsumer"  --> "DatasetProperties"
"RebacDatasetRegistryFacade" <|-- "RebacDatasetRegistryFacadeImpl"
"RebacDatasetRegistryFacadeImpl"  --> "DatasetActionAuthorizer"
"RebacDatasetRegistryFacadeImpl"  --> "DatasetRegistry"
"InitOnStartup" <|-- "RebacIndexer"
"RebacIndexer"  --> "ExpensiveAccountRepository"
"RebacIndexer"  --> "RebacService"
"RebacIndexer"  --> "SetDatasetRebacPropertiesUseCase"
"RebacIndexer"  --> "DatasetEntryService"
"RebacIndexer"  --> "PredefinedAccountsConfig"
"RebacService" <|-- "RebacServiceImpl"
"RebacServiceImpl"  --> "RebacRepository"
"RebacServiceImpl"  --> "AccountProperties"
"RebacServiceImpl"  --> "DatasetProperties"
"ApplyAccountDatasetRelationsUseCase" <|-- "ApplyAccountDatasetRelationsUseCaseImpl"
"ApplyAccountDatasetRelationsUseCaseImpl"  --> "RebacService"
"ApplyAccountDatasetRelationsUseCaseImpl"  --> "DatasetActionAuthorizer"
"ApplyAccountDatasetRelationsUseCaseImpl"  --> "Outbox"
"DeleteDatasetRebacPropertiesUseCase" <|-- "DeleteDatasetRebacPropertiesUseCaseImpl"
"DeleteDatasetRebacPropertiesUseCaseImpl"  --> "RebacService"
"DeleteDatasetRebacPropertiesUseCaseImpl"  --> "Outbox"
"SetDatasetRebacPropertiesUseCase" <|-- "SetDatasetRebacPropertiesUseCaseImpl"
"SetDatasetRebacPropertiesUseCaseImpl"  --> "RebacService"
"SetDatasetRebacPropertiesUseCaseImpl"  --> "Outbox"
"UnsetDatasetAccountsRelationsUseCase" <|-- "UnsetDatasetAccountsRelationsUseCaseImpl"
"UnsetDatasetAccountsRelationsUseCaseImpl"  --> "RebacService"
"UnsetDatasetAccountsRelationsUseCaseImpl"  --> "Outbox"
"RebacRepository" <|-- "SqliteRebacRepository"
"SqliteRebacRepository"  --> "TransactionRefT"
"InitOnStartup" <|-- "Web3AuthEip4361NonceServiceImpl"
"Web3AuthEip4361NonceService" <|-- "Web3AuthEip4361NonceServiceImpl"
"Web3AuthEip4361NonceServiceImpl"  --> "Web3AuthEip4361NonceRepository"
"Web3AuthEip4361NonceServiceImpl"  --> "SystemTimeSource"
"Web3AuthEip4361NonceRepository" <|-- "SqliteWeb3AuthEip4361NonceRepository"
"SqliteWeb3AuthEip4361NonceRepository"  --> "TransactionRefT"
"FlightSqlServiceFactory"  --> "Catalog"
"NotebookServerFactory"  --> "ContainerRuntime"
"NotebookServerFactory"  --> "JupyterConfig"
"NotebookServerFactory"  --> "WorkspaceLayout"
"SparkLivyServerFactory"  --> "ContainerRuntime"
"SparkLivyServerFactory"  --> "JupyterConfig"
"SparkLivyServerFactory"  --> "WorkspaceLayout"
"ConfigService"  --> "WorkspaceLayout"
"ConfirmDeleteService"  --> "RemoteStatusService"
"ConfirmDeleteService"  --> "Interact"
"GcService"  --> "WorkspaceLayout"
"OdfServerAccessTokenResolver" <|-- "AccessTokenRegistryService"
"AccessTokenRegistryService"  --> "AccessTokenStore"
"AccessTokenRegistryService"  --> "CurrentAccountSubject"
"AccessTokenStore" <|-- "CLIAccessTokenStore"
"CLIAccessTokenStore"  --> "WorkspaceLayout"
"LoginService"  --> "SystemTimeSource"
"WorkspaceService"  --> "bool"
"WorkspaceService"  --> "WorkspaceLayout"
"MessageConsumer" <|-- "ConfigurationResourceLifecycleMessageConsumer"
"MessageConsumerT" <|-- "ConfigurationResourceLifecycleMessageConsumer"
"Reconciler" <|-- "SecretSetReconcilerImpl"
"SecretSetReconcilerImpl"  --> "SecretSetProjectionRepository"
"SecretSetReconcilerImpl"  --> "SystemTimeSource"
"SecretSetReconcilerImpl"  --> "DatasetEnvVarsConfig"
"Reconciler" <|-- "VariableSetReconcilerImpl"
"VariableSetReconcilerImpl"  --> "VariableSetProjectionRepository"
"VariableSetReconcilerImpl"  --> "SystemTimeSource"
"ResourceCrudDispatcher" <|-- "SecretSetResourceCrudDispatcher"
"SecretSetResourceCrudDispatcher"  --> "ApplyResourceUseCase"
"SecretSetResourceCrudDispatcher"  --> "DeleteResourcesUseCase"
"SecretSetResourceCrudDispatcher"  --> "GetResourceByUidUseCase"
"SecretSetResourceCrudDispatcher"  --> "ListResourcesByKindUseCase"
"ResourceCrudDispatcher" <|-- "VariableSetResourceCrudDispatcher"
"VariableSetResourceCrudDispatcher"  --> "ApplyResourceUseCase"
"VariableSetResourceCrudDispatcher"  --> "DeleteResourcesUseCase"
"VariableSetResourceCrudDispatcher"  --> "GetResourceByUidUseCase"
"VariableSetResourceCrudDispatcher"  --> "ListResourcesByKindUseCase"
"ApplyResourceUseCase" <|-- "SecretSetApplyResourceUseCaseImpl"
"SecretSetApplyResourceUseCaseImpl"  --> "ResourceAggregateLoader"
"SecretSetApplyResourceUseCaseImpl"  --> "ResourcePersistenceService"
"SecretSetApplyResourceUseCaseImpl"  --> "ResourceQueryService"
"SecretSetApplyResourceUseCaseImpl"  --> "Outbox"
"SecretSetApplyResourceUseCaseImpl"  --> "SystemTimeSource"
"DeleteResourcesUseCase" <|-- "SecretSetDeleteResourcesUseCaseImpl"
"SecretSetDeleteResourcesUseCaseImpl"  --> "ResourceAggregateLoader"
"SecretSetDeleteResourcesUseCaseImpl"  --> "ResourcePersistenceService"
"SecretSetDeleteResourcesUseCaseImpl"  --> "ResourceQueryService"
"SecretSetDeleteResourcesUseCaseImpl"  --> "SystemTimeSource"
"SecretSetEventStore" <|-- "SecretSetEventStoreBridge"
"SecretSetEventStoreBridge"  --> "ResourceRawEventStore"
"GetResourceByUidUseCase" <|-- "SecretSetGetResourceByUidUseCaseImpl"
"SecretSetGetResourceByUidUseCaseImpl"  --> "ResourceQueryService"
"ListResourcesByKindUseCase" <|-- "SecretSetListResourcesByKindUseCaseImpl"
"SecretSetListResourcesByKindUseCaseImpl"  --> "ResourceQueryService"
"ReconcileResourceUseCase" <|-- "SecretSetReconcileResourceUseCaseImpl"
"SecretSetReconcileResourceUseCaseImpl"  --> "Catalog"
"SecretSetReconcileResourceUseCaseImpl"  --> "Reconciler"
"SecretSetReconcileResourceUseCaseImpl"  --> "Outbox"
"SecretSetReconcileResourceUseCaseImpl"  --> "SystemTimeSource"
"ResourceAggregateLoader" <|-- "SecretSetResourceAggregateLoaderImpl"
"SecretSetResourceAggregateLoaderImpl"  --> "SecretSetEventStore"
"ResourceLifecycleEventDispatcher" <|-- "SecretSetResourceLifecycleDispatcher"
"SecretSetResourceLifecycleDispatcher"  --> "ReconcileResourceUseCase"
"ResourcePersistenceService" <|-- "SecretSetResourcePersistenceServiceImpl"
"SecretSetResourcePersistenceServiceImpl"  --> "SecretSetEventStore"
"SecretSetResourcePersistenceServiceImpl"  --> "ResourceRepository"
"ResourceQueryService" <|-- "SecretSetResourceQueryServiceImpl"
"SecretSetResourceQueryServiceImpl"  --> "ResourceRepository"
"ApplyResourceUseCase" <|-- "VariableSetApplyResourceUseCaseImpl"
"VariableSetApplyResourceUseCaseImpl"  --> "ResourceAggregateLoader"
"VariableSetApplyResourceUseCaseImpl"  --> "ResourcePersistenceService"
"VariableSetApplyResourceUseCaseImpl"  --> "ResourceQueryService"
"VariableSetApplyResourceUseCaseImpl"  --> "Outbox"
"VariableSetApplyResourceUseCaseImpl"  --> "SystemTimeSource"
"DeleteResourcesUseCase" <|-- "VariableSetDeleteResourcesUseCaseImpl"
"VariableSetDeleteResourcesUseCaseImpl"  --> "ResourceAggregateLoader"
"VariableSetDeleteResourcesUseCaseImpl"  --> "ResourcePersistenceService"
"VariableSetDeleteResourcesUseCaseImpl"  --> "ResourceQueryService"
"VariableSetDeleteResourcesUseCaseImpl"  --> "SystemTimeSource"
"VariableSetEventStore" <|-- "VariableSetEventStoreBridge"
"VariableSetEventStoreBridge"  --> "ResourceRawEventStore"
"GetResourceByUidUseCase" <|-- "VariableSetGetResourceByUidUseCaseImpl"
"VariableSetGetResourceByUidUseCaseImpl"  --> "ResourceQueryService"
"ListResourcesByKindUseCase" <|-- "VariableSetListResourcesByKindUseCaseImpl"
"VariableSetListResourcesByKindUseCaseImpl"  --> "ResourceQueryService"
"ReconcileResourceUseCase" <|-- "VariableSetReconcileResourceUseCaseImpl"
"VariableSetReconcileResourceUseCaseImpl"  --> "Catalog"
"VariableSetReconcileResourceUseCaseImpl"  --> "Reconciler"
"VariableSetReconcileResourceUseCaseImpl"  --> "Outbox"
"VariableSetReconcileResourceUseCaseImpl"  --> "SystemTimeSource"
"ResourceAggregateLoader" <|-- "VariableSetResourceAggregateLoaderImpl"
"VariableSetResourceAggregateLoaderImpl"  --> "VariableSetEventStore"
"ResourceLifecycleEventDispatcher" <|-- "VariableSetResourceLifecycleDispatcher"
"VariableSetResourceLifecycleDispatcher"  --> "ReconcileResourceUseCase"
"ResourcePersistenceService" <|-- "VariableSetResourcePersistenceServiceImpl"
"VariableSetResourcePersistenceServiceImpl"  --> "VariableSetEventStore"
"VariableSetResourcePersistenceServiceImpl"  --> "ResourceRepository"
"ResourceQueryService" <|-- "VariableSetResourceQueryServiceImpl"
"VariableSetResourceQueryServiceImpl"  --> "ResourceRepository"
"SecretSetProjectionRepository" <|-- "SqliteSecretSetProjectionRepository"
"SqliteSecretSetProjectionRepository"  --> "TransactionRefT"
"VariableSetProjectionRepository" <|-- "SqliteVariableSetProjectionRepository"
"SqliteVariableSetProjectionRepository"  --> "TransactionRefT"
"DidGenerator" <|-- "DidGeneratorDefault"
"SearchEntitySchemaProvider" <|-- "DatasetSearchSchemaProvider"
"DatasetSearchSchemaProvider"  --> "Catalog"
"DatasetSearchService" <|-- "DatasetSearchServiceImpl"
"DatasetSearchServiceImpl"  --> "DatasetRegistry"
"DatasetSearchServiceImpl"  --> "EmbeddingsProvider"
"DatasetSearchServiceImpl"  --> "SearchService"
"MessageConsumer" <|-- "DatasetSearchUpdater"
"MessageConsumerT" <|-- "DatasetSearchUpdater"
"MessageConsumerT" <|-- "DatasetSearchUpdater"
"MessageConsumerT" <|-- "DatasetSearchUpdater"
"MessageConsumerT" <|-- "DatasetSearchUpdater"
"MessageConsumerT" <|-- "DatasetSearchUpdater"
"DatasetSearchUpdater"  --> "RebacService"
"DatasetSearchUpdater"  --> "DatasetEntryService"
"DatasetSearchUpdater"  --> "DatasetRegistry"
"DatasetSearchUpdater"  --> "EmbeddingsProvider"
"DatasetSearchUpdater"  --> "SearchService"
"AccountQuotaStorageChecker" <|-- "AccountQuotaCheckerStorageImpl"
"AccountQuotaCheckerStorageImpl"  --> "AccountQuotaEventStore"
"AccountQuotaCheckerStorageImpl"  --> "DatasetStatisticsService"
"AccountQuotaCheckerStorageImpl"  --> "QuotaDefaultsConfig"
"InitOnStartup" <|-- "DatasetBlockIndexer"
"DatasetBlockIndexer"  --> "Catalog"
"MessageConsumer" <|-- "DatasetBlockUpdateHandler"
"MessageConsumerT" <|-- "DatasetBlockUpdateHandler"
"DatasetBlockUpdateHandler"  --> "DatasetDataBlockRepository"
"DatasetBlockUpdateHandler"  --> "DatasetKeyBlockRepository"
"DatasetBlockUpdateHandler"  --> "DatasetRegistry"
"DatasetBlockUpdateHandler"  --> "Outbox"
"MessageConsumer" <|-- "DatasetAccountLifecycleHandler"
"MessageConsumerT" <|-- "DatasetAccountLifecycleHandler"
"DatasetAccountLifecycleHandler"  --> "DatasetRegistry"
"DatasetAccountLifecycleHandler"  --> "DeleteDatasetUseCase"
"DatasetAccountLifecycleHandler"  --> "DatasetEntryWriter"
"MessageConsumer" <|-- "DatasetAliasUpdateHandler"
"MessageConsumerT" <|-- "DatasetAliasUpdateHandler"
"MessageConsumerT" <|-- "DatasetAliasUpdateHandler"
"DatasetAliasUpdateHandler"  --> "DatasetRegistry"
"DatasetIncrementQueryService" <|-- "DatasetIncrementQueryServiceImpl"
"DatasetIncrementQueryServiceImpl"  --> "DatasetRegistry"
"MessageConsumer" <|-- "DidSecretService"
"MessageConsumerT" <|-- "DidSecretService"
"MessageConsumerT" <|-- "DidSecretService"
"DidSecretService"  --> "DidSecretKeyRepository"
"InitOnStartup" <|-- "DatasetEntryIndexer"
"DatasetEntryIndexer"  --> "AccountService"
"DatasetEntryIndexer" "lazy" --> "DatasetEntryRepository"
"DatasetEntryIndexer"  --> "DatasetStorageUnit"
"DatasetEntryIndexer"  --> "SystemTimeSource"
"DatasetEntryService" <|-- "DatasetEntryServiceImpl"
"DatasetRegistry" <|-- "DatasetEntryServiceImpl"
"DatasetEntryWriter" <|-- "DatasetEntryServiceImpl"
"DatasetEntryServiceImpl"  --> "AccountService"
"DatasetEntryServiceImpl"  --> "DatasetEntryRepository"
"DatasetEntryServiceImpl"  --> "DatasetStorageUnit"
"DatasetEntryServiceImpl"  --> "SystemTimeSource"
"DatasetEntryServiceImpl"  --> "CurrentAccountSubject"
"DatasetEntryServiceImpl"  --> "TenancyConfig"
"DatasetEnvVarService" <|-- "DatasetEnvVarServiceNull"
"DatasetKeyValueService" <|-- "DatasetKeyValueServiceSysEnv"
"MessageConsumer" <|-- "DependencyGraphImmediateListener"
"MessageConsumerT" <|-- "DependencyGraphImmediateListener"
"DependencyGraphImmediateListener"  --> "DatasetDependencyRepository"
"DependencyGraphImmediateListener"  --> "DatasetRegistry"
"DependencyGraphImmediateListener"  --> "DependencyGraphService"
"DependencyGraphImmediateListener"  --> "Outbox"
"InitOnStartup" <|-- "DependencyGraphIndexer"
"DependencyGraphIndexer"  --> "DatasetDependencyRepository"
"DependencyGraphIndexer"  --> "DatasetRegistry"
"DependencyGraphIndexer"  --> "DependencyGraphServiceImpl"
"DependencyGraphService" <|-- "DependencyGraphServiceImpl"
"MessageConsumer" <|-- "DependencyGraphServiceImpl"
"MessageConsumerT" <|-- "DependencyGraphServiceImpl"
"MessageConsumerT" <|-- "DependencyGraphServiceImpl"
"DatasetLfsBuilder" <|-- "DatasetLfsBuilderDatabaseBackedImpl"
"DatasetLfsBuilderDatabaseBackedImpl"  --> "Catalog"
"DatasetLfsBuilderDatabaseBackedImpl"  --> "MetadataChainDbBackedConfig"
"InitOnStartup" <|-- "DatasetReferenceIndexer"
"DatasetReferenceIndexer"  --> "DatasetEntryRepository"
"DatasetReferenceIndexer"  --> "DatasetReferenceRepository"
"DatasetReferenceIndexer"  --> "DatasetStorageUnit"
"DatasetReferenceService" <|-- "DatasetReferenceServiceImpl"
"MessageConsumer" <|-- "DatasetReferenceServiceImpl"
"MessageConsumerT" <|-- "DatasetReferenceServiceImpl"
"DatasetReferenceServiceImpl"  --> "DatasetReferenceRepository"
"DatasetReferenceServiceImpl"  --> "Outbox"
"DatasetReferenceServiceImpl"  --> "DatasetStorageUnitWriter"
"DatasetReferenceServiceImpl"  --> "SystemTimeSource"
"InitOnStartup" <|-- "DatasetStatisticsIndexer"
"DatasetStatisticsIndexer"  --> "Catalog"
"DatasetStatisticsService" <|-- "DatasetStatisticsServiceImpl"
"DatasetStatisticsServiceImpl"  --> "DatasetStatisticsRepository"
"MessageConsumer" <|-- "DatasetStatisticsUpdateHandler"
"MessageConsumerT" <|-- "DatasetStatisticsUpdateHandler"
"DatasetStatisticsUpdateHandler"  --> "DatasetStatisticsRepository"
"DatasetStatisticsUpdateHandler"  --> "DatasetRegistry"
"FindCollectionEntriesUseCase" <|-- "FindCollectionEntriesUseCaseImpl"
"FindCollectionEntriesUseCaseImpl"  --> "QueryService"
"UpdateCollectionEntriesUseCase" <|-- "UpdateCollectionEntriesUseCaseImpl"
"UpdateCollectionEntriesUseCaseImpl"  --> "QueryService"
"UpdateCollectionEntriesUseCaseImpl"  --> "PushIngestDataUseCase"
"ViewCollectionEntriesUseCase" <|-- "ViewCollectionEntriesUseCaseImpl"
"ViewCollectionEntriesUseCaseImpl"  --> "QueryService"
"AppendDatasetMetadataBatchUseCase" <|-- "AppendDatasetMetadataBatchUseCaseImpl"
"CommitDatasetEventUseCase" <|-- "CommitDatasetEventUseCaseImpl"
"CommitDatasetEventUseCaseImpl"  --> "RebacDatasetRegistryFacade"
"CommitDatasetEventUseCaseImpl"  --> "SystemTimeSource"
"CreateDatasetFromSnapshotUseCase" <|-- "CreateDatasetFromSnapshotUseCaseImpl"
"CreateDatasetFromSnapshotUseCaseImpl"  --> "DidSecretKeyRepository"
"CreateDatasetFromSnapshotUseCaseImpl" "lazy" --> "RebacService"
"CreateDatasetFromSnapshotUseCaseImpl"  --> "DidGenerator"
"CreateDatasetFromSnapshotUseCaseImpl"  --> "DatasetRegistry"
"CreateDatasetFromSnapshotUseCaseImpl"  --> "SystemTimeSource"
"CreateDatasetFromSnapshotUseCaseImpl"  --> "CurrentAccountSubject"
"CreateDatasetFromSnapshotUseCaseImpl"  --> "DidSecretEncryptionConfig"
"CreateDatasetFromSnapshotUseCaseImpl"  --> "CreateDatasetUseCaseHelper"
"CreateDatasetUseCase" <|-- "CreateDatasetUseCaseImpl"
"CreateDatasetUseCaseImpl" "lazy" --> "RebacService"
"CreateDatasetUseCaseImpl"  --> "CurrentAccountSubject"
"CreateDatasetUseCaseImpl"  --> "CreateDatasetUseCaseHelper"
"DeleteDatasetUseCase" <|-- "DeleteDatasetUseCaseImpl"
"DeleteDatasetUseCaseImpl"  --> "RebacDatasetRegistryFacade"
"DeleteDatasetUseCaseImpl"  --> "DatasetRegistry"
"DeleteDatasetUseCaseImpl"  --> "DependencyGraphService"
"DeleteDatasetUseCaseImpl"  --> "DatasetEntryWriter"
"DeleteDatasetUseCaseImpl"  --> "Outbox"
"DeleteDatasetUseCaseImpl"  --> "DatasetStorageUnitWriter"
"DeleteDatasetUseCaseImpl"  --> "SystemTimeSource"
"GetDatasetDownstreamDependenciesUseCase" <|-- "GetDatasetDownstreamDependenciesUseCaseImpl"
"GetDatasetDownstreamDependenciesUseCaseImpl"  --> "DatasetActionAuthorizer"
"GetDatasetDownstreamDependenciesUseCaseImpl"  --> "DatasetEntryService"
"GetDatasetDownstreamDependenciesUseCaseImpl"  --> "DependencyGraphService"
"GetDatasetDownstreamDependenciesUseCaseImpl"  --> "TenancyConfig"
"GetDatasetUpstreamDependenciesUseCase" <|-- "GetDatasetUpstreamDependenciesUseCaseImpl"
"GetDatasetUpstreamDependenciesUseCaseImpl"  --> "DatasetActionAuthorizer"
"GetDatasetUpstreamDependenciesUseCaseImpl"  --> "DatasetEntryService"
"GetDatasetUpstreamDependenciesUseCaseImpl"  --> "DependencyGraphService"
"GetDatasetUpstreamDependenciesUseCaseImpl"  --> "TenancyConfig"
"RenameDatasetUseCase" <|-- "RenameDatasetUseCaseImpl"
"RenameDatasetUseCaseImpl"  --> "RebacDatasetRegistryFacade"
"RenameDatasetUseCaseImpl"  --> "DatasetEntryWriter"
"RenameDatasetUseCaseImpl"  --> "Outbox"
"RenameDatasetUseCaseImpl"  --> "SystemTimeSource"
"FindVersionedFileVersionUseCase" <|-- "FindVersionedFileVersionUseCaseImpl"
"FindVersionedFileVersionUseCaseImpl"  --> "QueryService"
"UpdateVersionedFileUseCase" <|-- "UpdateVersionedFileUseCaseImpl"
"UpdateVersionedFileUseCaseImpl"  --> "QueryService"
"UpdateVersionedFileUseCaseImpl"  --> "PushIngestDataUseCase"
"UpdateVersionedFileUseCaseImpl"  --> "SystemTimeSource"
"ViewVersionedFileHistoryUseCase" <|-- "ViewVersionedFileHistoryUseCaseImpl"
"ViewVersionedFileHistoryUseCaseImpl"  --> "QueryService"
"CreateDatasetUseCaseHelper"  --> "DatasetEntryWriter"
"CreateDatasetUseCaseHelper"  --> "Outbox"
"CreateDatasetUseCaseHelper"  --> "DatasetStorageUnitWriter"
"CreateDatasetUseCaseHelper"  --> "SystemTimeSource"
"CreateDatasetUseCaseHelper"  --> "TenancyConfig"
"DatasetDataBlockRepository" <|-- "SqliteDatasetDataBlockRepository"
"SqliteDatasetDataBlockRepository"  --> "TransactionRefT"
"DatasetDependencyRepository" <|-- "SqliteDatasetDependencyRepository"
"DatasetEntryRemovalListener" <|-- "SqliteDatasetDependencyRepository"
"SqliteDatasetDependencyRepository"  --> "TransactionRefT"
"DatasetEntryRepository" <|-- "SqliteDatasetEntryRepository"
"SqliteDatasetEntryRepository"  --> "TransactionRefT"
"SqliteDatasetEntryRepository" "*" --> "DatasetEntryRemovalListener"
"DatasetEnvVarRepository" <|-- "SqliteDatasetEnvVarRepository"
"SqliteDatasetEnvVarRepository"  --> "TransactionRefT"
"DatasetKeyBlockRepository" <|-- "SqliteDatasetKeyBlockRepository"
"SqliteDatasetKeyBlockRepository"  --> "TransactionRefT"
"DatasetReferenceRepository" <|-- "SqliteDatasetReferenceRepository"
"SqliteDatasetReferenceRepository"  --> "TransactionRefT"
"DatasetStatisticsRepository" <|-- "SqliteDatasetStatisticsRepository"
"SqliteDatasetStatisticsRepository"  --> "TransactionRefT"
"FlowProcessStateQuery" <|-- "SqliteFlowProcessStateQuery"
"SqliteFlowProcessStateQuery"  --> "TransactionRefT"
"FlowProcessStateRepository" <|-- "SqliteFlowProcessStateRepository"
"SqliteFlowProcessStateRepository"  --> "TransactionRefT"
"SqliteFlowProcessStateRepository"  --> "SystemTimeSource"
"FlowConfigurationEventStore" <|-- "SqliteFlowConfigurationEventStore"
"SqliteFlowConfigurationEventStore"  --> "TransactionRefT"
"FlowEventStore" <|-- "SqliteFlowEventStore"
"SqliteFlowEventStore"  --> "TransactionRefT"
"FlowSystemEventBridge" <|-- "SqliteFlowSystemEventBridge"
"SqliteFlowSystemEventBridge"  --> "Pool"
"FlowTriggerEventStore" <|-- "SqliteFlowTriggerEventStore"
"SqliteFlowTriggerEventStore"  --> "TransactionRefT"
"OutboxMessageBridge" <|-- "SqliteOutboxMessageBridge"
"SqliteOutboxMessageBridge"  --> "Pool"
"ResourceAccountResolver" <|-- "ResourceAccountResolverImpl"
"ResourceAccountResolverImpl"  --> "AccountService"
"ResourceAccountResolverImpl"  --> "RebacService"
"ResourceAccountResolverImpl"  --> "CurrentAccountSubject"
"ResourceFacade" <|-- "ResourceFacadeImpl"
"ResourceFacadeImpl"  --> "Catalog"
"ResourceFacadeImpl"  --> "AllResourcesQueryService"
"ResourceFacadeImpl"  --> "ResourceAccountResolver"
"MessageConsumer" <|-- "AccountLifecycleMessageConsumer"
"MessageConsumerT" <|-- "AccountLifecycleMessageConsumer"
"AccountLifecycleMessageConsumer"  --> "DeleteAccountResourcesUseCase"
"MessageConsumer" <|-- "ResourceLifecycleMessageConsumer"
"MessageConsumerT" <|-- "ResourceLifecycleMessageConsumer"
"AllResourcesQueryService" <|-- "AllResourcesQueryServiceImpl"
"AllResourcesQueryServiceImpl"  --> "ResourceRepository"
"DeleteAccountResourcesUseCase" <|-- "DeleteAccountResourcesUsecaseImpl"
"DeleteAccountResourcesUsecaseImpl"  --> "Catalog"
"DeleteAccountResourcesUsecaseImpl"  --> "AllResourcesQueryService"
"ListAllResourcesUseCase" <|-- "ListAllResourcesUseCaseImpl"
"ListAllResourcesUseCaseImpl"  --> "AllResourcesQueryService"
"ResourceRawEventStore" <|-- "SqliteResourceRawEventStore"
"SqliteResourceRawEventStore"  --> "TransactionRefT"
"ResourceRepository" <|-- "SqliteResourceRepository"
"SqliteResourceRepository"  --> "TransactionRefT"
"EmbeddingsCacheRepository" <|-- "SqliteEmbeddingsCacheRepository"
"SqliteEmbeddingsCacheRepository"  --> "TransactionRefT"
"EmbeddingsEncoder" <|-- "DummyEmbeddingsEncoder"
"SearchService" <|-- "DummySearchService"
"EmbeddingsChunker" <|-- "EmbeddingsChunkerSimple"
"EmbeddingsChunkerSimple"  --> "EmbeddingsChunkerConfigSimple"
"EmbeddingsProvider" <|-- "EmbeddingsProviderImpl"
"EmbeddingsProviderImpl"  --> "EmbeddingsCacheRepository"
"EmbeddingsProviderImpl"  --> "EmbeddingsChunker"
"EmbeddingsProviderImpl"  --> "EmbeddingsEncoder"
"EmbeddingsProviderImpl"  --> "SystemTimeSource"
"Reconciler" <|-- "StorageReconcilerImpl"
"ApplyResourceUseCase" <|-- "StorageApplyResourceUseCaseImpl"
"StorageApplyResourceUseCaseImpl"  --> "ResourceAggregateLoader"
"StorageApplyResourceUseCaseImpl"  --> "ResourcePersistenceService"
"StorageApplyResourceUseCaseImpl"  --> "ResourceQueryService"
"StorageApplyResourceUseCaseImpl"  --> "Outbox"
"StorageApplyResourceUseCaseImpl"  --> "SystemTimeSource"
"DeleteResourcesUseCase" <|-- "StorageDeleteResourcesUseCaseImpl"
"StorageDeleteResourcesUseCaseImpl"  --> "ResourceAggregateLoader"
"StorageDeleteResourcesUseCaseImpl"  --> "ResourcePersistenceService"
"StorageDeleteResourcesUseCaseImpl"  --> "ResourceQueryService"
"StorageDeleteResourcesUseCaseImpl"  --> "SystemTimeSource"
"StorageEventStore" <|-- "StorageEventStoreBridge"
"StorageEventStoreBridge"  --> "ResourceRawEventStore"
"GetResourceByUidUseCase" <|-- "StorageGetResourceByUidUseCaseImpl"
"StorageGetResourceByUidUseCaseImpl"  --> "ResourceQueryService"
"ListResourcesByKindUseCase" <|-- "StorageListResourcesByKindUseCaseImpl"
"StorageListResourcesByKindUseCaseImpl"  --> "ResourceQueryService"
"ReconcileResourceUseCase" <|-- "StorageReconcileResourceUseCaseImpl"
"StorageReconcileResourceUseCaseImpl"  --> "Catalog"
"StorageReconcileResourceUseCaseImpl"  --> "Reconciler"
"StorageReconcileResourceUseCaseImpl"  --> "Outbox"
"StorageReconcileResourceUseCaseImpl"  --> "SystemTimeSource"
"ResourceAggregateLoader" <|-- "StorageResourceAggregateLoaderImpl"
"StorageResourceAggregateLoaderImpl"  --> "StorageEventStore"
"ResourceLifecycleEventDispatcher" <|-- "StorageResourceLifecycleDispatcher"
"StorageResourceLifecycleDispatcher"  --> "ReconcileResourceUseCase"
"ResourcePersistenceService" <|-- "StorageResourcePersistenceServiceImpl"
"StorageResourcePersistenceServiceImpl"  --> "ResourceRepository"
"StorageResourcePersistenceServiceImpl"  --> "StorageEventStore"
"ResourceQueryService" <|-- "StorageResourceQueryServiceImpl"
"StorageResourceQueryServiceImpl"  --> "ResourceRepository"
"TaskEventStore" <|-- "SqliteTaskEventStore"
"SqliteTaskEventStore"  --> "TransactionRefT"
"WebhookDeliveryRepository" <|-- "SqliteWebhookDeliveryRepository"
"SqliteWebhookDeliveryRepository"  --> "TransactionRefT"
"WebhookSubscriptionEventStore" <|-- "SqliteWebhookSubscriptionEventStore"
"SqliteWebhookSubscriptionEventStore"  --> "TransactionRefT"
"BackgroundAgent" <|-- "OutboxAgentImpl"
"InitOnStartup" <|-- "OutboxAgentImpl"
"OutboxAgent" <|-- "OutboxAgentImpl"
"OutboxAgentImpl"  --> "CatalogWeakRef"
"OutboxAgentImpl" "*" --> "MessageDispatcher"
"OutboxAgentImpl"  --> "OutboxMessageBridge"
"OutboxAgentImpl"  --> "OutboxAgentMetrics"
"OutboxAgentImpl"  --> "OutboxAgentConfig"
"MetricsProvider" <|-- "OutboxAgentMetrics"
"OutboxDispatchingImpl"  --> "Catalog"
"OutboxDispatchingImpl"  --> "OutboxImmediateImpl"
"OutboxDispatchingImpl"  --> "OutboxTransactionalImpl"
"OutboxImmediateImpl"  --> "Catalog"
"OutboxImmediateImpl" "*" --> "MessageDispatcher"
"OutboxTransactionalImpl"  --> "CatalogWeakRef"
"OutboxTransactionalImpl"  --> "OutboxMessageBridge"
"OutboxTransactionalImpl"  --> "SystemTimeSource"
"DatasetStorageUnit" <|-- "DatasetStorageUnitLocalFs"
"DatasetStorageUnitWriter" <|-- "DatasetStorageUnitLocalFs"
"DatasetStorageUnitLocalFs"  --> "DatasetLfsBuilder"
"DatasetFactory" <|-- "DatasetFactoryImpl"
"DatasetFactoryImpl"  --> "OdfServerAccessTokenResolver"
"DatasetFactoryImpl"  --> "IpfsGateway"
"DatasetFactoryImpl" "?" --> "S3Metrics"
"SystemTimeSource" <|-- "SystemTimeSourceDefault"
@enduml
