Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12345678910111213141516171819202122232425262728293031323334353637
  1. from datetime import datetime
  2. from sqlalchemy.dialects.postgresql import JSONB
  3. from sqlalchemy.orm import Mapped
  4. from .base import Base
  5. from .engine import db
  6. from .types import StringUUID
  7. class DatasourceOauthParamConfig(Base): # type: ignore[name-defined]
  8. __tablename__ = "datasource_oauth_params"
  9. __table_args__ = (
  10. db.PrimaryKeyConstraint("id", name="datasource_oauth_config_pkey"),
  11. db.UniqueConstraint("plugin_id", "provider", name="datasource_oauth_config_datasource_id_provider_idx"),
  12. )
  13. id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
  14. plugin_id: Mapped[str] = db.Column(StringUUID, nullable=False)
  15. provider: Mapped[str] = db.Column(db.String(255), nullable=False)
  16. system_credentials: Mapped[dict] = db.Column(JSONB, nullable=False)
  17. class DatasourceProvider(Base):
  18. __tablename__ = "datasource_providers"
  19. __table_args__ = (
  20. db.PrimaryKeyConstraint("id", name="datasource_provider_pkey"),
  21. db.UniqueConstraint("plugin_id", "provider", name="datasource_provider_plugin_id_provider_idx"),
  22. )
  23. id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
  24. tenant_id = db.Column(StringUUID, nullable=False)
  25. plugin_id: Mapped[str] = db.Column(db.TEXT, nullable=False)
  26. provider: Mapped[str] = db.Column(db.String(255), nullable=False)
  27. auth_type: Mapped[str] = db.Column(db.String(255), nullable=False)
  28. encrypted_credentials: Mapped[dict] = db.Column(JSONB, nullable=False)
  29. created_at: Mapped[datetime] = db.Column(db.DateTime, nullable=False, default=datetime.now)
  30. updated_at: Mapped[datetime] = db.Column(db.DateTime, nullable=False, default=datetime.now)