# [DEF:backend.src.models.connection:Module] # # @SEMANTICS: database, connection, configuration, sqlalchemy, sqlite # @PURPOSE: Defines the database schema for external database connection configurations. # @LAYER: Domain # @RELATION: DEPENDS_ON -> sqlalchemy # # @INVARIANT: All primary keys are UUID strings. # [SECTION: IMPORTS] from sqlalchemy import Column, String, Integer, DateTime from sqlalchemy.sql import func from .mapping import Base import uuid # [/SECTION] # [DEF:ConnectionConfig:Class] # @PURPOSE: Stores credentials for external databases used for column mapping. class ConnectionConfig(Base): __tablename__ = "connection_configs" id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4())) name = Column(String, nullable=False) type = Column(String, nullable=False) # e.g., "postgres" host = Column(String, nullable=True) port = Column(Integer, nullable=True) database = Column(String, nullable=True) username = Column(String, nullable=True) password = Column(String, nullable=True) # Encrypted/Obfuscated password created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now()) # [/DEF:ConnectionConfig:Class] # [/DEF:backend.src.models.connection:Module]