platform-integration/
βββ src/main/kotlin/com/transformplatform/integration/
β
βββ domain/ # JPA entities
β βββ Client.kt # Tenant entity
β βββ ClientIntegration.kt # Integration config entity
β βββ IntegrationCredential.kt # Encrypted credential entity
β βββ IntegrationEventLog.kt # Audit log entity
β βββ IntegrationType.kt # enum: SFTP, KAFKA, REST, S3, FTP, AS2
β βββ IntegrationDirection.kt # enum: INBOUND, OUTBOUND, BIDIRECTIONAL
β βββ IntegrationStatus.kt # enum: ACTIVE, INACTIVE, ERROR, TESTING
β
βββ config/ # Type-specific config data classes
β βββ IntegrationConfig.kt # sealed class β base
β βββ SftpIntegrationConfig.kt
β βββ KafkaIntegrationConfig.kt
β βββ RestIntegrationConfig.kt
β βββ S3IntegrationConfig.kt
β
βββ connector/ # Live connection objects
β βββ IntegrationConnector.kt # interface
β βββ InboundConnector.kt # interface
β βββ OutboundConnector.kt # interface
β βββ sftp/
β β βββ SftpConnector.kt # implements both In + Out
β β βββ SftpConnectionPool.kt # Apache MINA SSHD pool
β β βββ SftpInboundPoller.kt # @Scheduled polling task
β βββ kafka/
β β βββ KafkaConnector.kt
β βββ rest/
β β βββ RestConnector.kt
β β βββ auth/
β β βββ BasicAuthHandler.kt
β β βββ BearerAuthHandler.kt
β β βββ OAuth2AuthHandler.kt
β βββ s3/
β βββ S3Connector.kt
β
βββ registry/
β βββ IntegrationRegistry.kt # manages live connectors, handles events
β βββ IntegrationFactory.kt # creates connectors from config + credentials
β
βββ credential/
β βββ CredentialService.kt # encrypt / decrypt
β βββ AesGcmEncryption.kt # AES-256-GCM implementation
β
βββ writers/ # RecordWriter implementations for pipeline
β βββ SftpRecordWriter.kt # implements RecordWriter, looks up registry
β βββ S3RecordWriter.kt
β βββ RestRecordWriter.kt
β
βββ inbound/
β βββ FileIngestionService.kt # orchestrates inbound polling β pipeline
β
βββ repository/
β βββ ClientRepository.kt
β βββ ClientIntegrationRepository.kt
β βββ IntegrationCredentialRepository.kt
β
βββ service/
β βββ IntegrationService.kt # CRUD + lifecycle management
β
βββ events/
βββ IntegrationCreatedEvent.kt
βββ IntegrationUpdatedEvent.kt
βββ IntegrationDeletedEvent.kt