Underground-Digital/Workflow-Engine
0
1import json2 3from sqlalchemy.dialects.postgresql import JSONB4 5from extensions.ext_database import db6 7from .types import StringUUID8 9 10class DataSourceOauthBinding(db.Model):11 __tablename__ = "data_source_oauth_bindings"12 __table_args__ = (13 db.PrimaryKeyConstraint("id", name="source_binding_pkey"),14 db.Index("source_binding_tenant_id_idx", "tenant_id"),15 db.Index("source_info_idx", "source_info", postgresql_using="gin"),16 )17 18 id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))19 tenant_id = db.Column(StringUUID, nullable=False)20 access_token = db.Column(db.String(255), nullable=False)21 provider = db.Column(db.String(255), nullable=False)22 source_info = db.Column(JSONB, nullable=False)23 created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))24 updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))25 disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false"))26 27 28class DataSourceApiKeyAuthBinding(db.Model):29 __tablename__ = "data_source_api_key_auth_bindings"30 __table_args__ = (31 db.PrimaryKeyConstraint("id", name="data_source_api_key_auth_binding_pkey"),32 db.Index("data_source_api_key_auth_binding_tenant_id_idx", "tenant_id"),33 db.Index("data_source_api_key_auth_binding_provider_idx", "provider"),34 )35 36 id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))37 tenant_id = db.Column(StringUUID, nullable=False)38 category = db.Column(db.String(255), nullable=False)39 provider = db.Column(db.String(255), nullable=False)40 credentials = db.Column(db.Text, nullable=True) # JSON41 created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))42 updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))43 disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false"))44 45 def to_dict(self):46 return {47 "id": self.id,48 "tenant_id": self.tenant_id,49 "category": self.category,50 "provider": self.provider,51 "credentials": json.loads(self.credentials),52 "created_at": self.created_at.timestamp(),53 "updated_at": self.updated_at.timestamp(),54 "disabled": self.disabled,55 }56 