| 
									
										
										
										
											2025-05-26 17:00:16 +08:00
										 |  |  | from datetime import datetime | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from sqlalchemy.dialects.postgresql import JSONB | 
					
						
							|  |  |  | from sqlalchemy.orm import Mapped | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .base import Base | 
					
						
							|  |  |  | from .engine import db | 
					
						
							|  |  |  | from .types import StringUUID | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DatasourceOauthParamConfig(Base):  # type: ignore[name-defined] | 
					
						
							|  |  |  |     __tablename__ = "datasource_oauth_params" | 
					
						
							|  |  |  |     __table_args__ = ( | 
					
						
							|  |  |  |         db.PrimaryKeyConstraint("id", name="datasource_oauth_config_pkey"), | 
					
						
							|  |  |  |         db.UniqueConstraint("plugin_id", "provider", name="datasource_oauth_config_datasource_id_provider_idx"), | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()")) | 
					
						
							|  |  |  |     plugin_id: Mapped[str] = db.Column(StringUUID, nullable=False) | 
					
						
							|  |  |  |     provider: Mapped[str] = db.Column(db.String(255), nullable=False) | 
					
						
							|  |  |  |     system_credentials: Mapped[dict] = db.Column(JSONB, nullable=False) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-03 19:02:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-26 17:00:16 +08:00
										 |  |  | class DatasourceProvider(Base): | 
					
						
							|  |  |  |     __tablename__ = "datasource_providers" | 
					
						
							|  |  |  |     __table_args__ = ( | 
					
						
							|  |  |  |         db.PrimaryKeyConstraint("id", name="datasource_provider_pkey"), | 
					
						
							| 
									
										
										
										
											2025-06-05 14:09:50 +08:00
										 |  |  |         db.Index("datasource_provider_auth_type_provider_idx", "tenant_id", "plugin_id", "provider"), | 
					
						
							| 
									
										
										
										
											2025-05-26 17:00:16 +08:00
										 |  |  |     ) | 
					
						
							|  |  |  |     id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()")) | 
					
						
							| 
									
										
										
										
											2025-05-30 00:37:27 +08:00
										 |  |  |     tenant_id = db.Column(StringUUID, nullable=False) | 
					
						
							| 
									
										
										
										
											2025-05-26 17:00:16 +08:00
										 |  |  |     provider: Mapped[str] = db.Column(db.String(255), nullable=False) | 
					
						
							| 
									
										
										
										
											2025-06-04 15:12:05 +08:00
										 |  |  |     plugin_id: Mapped[str] = db.Column(db.TEXT, nullable=False) | 
					
						
							| 
									
										
										
										
											2025-05-26 17:00:16 +08:00
										 |  |  |     auth_type: Mapped[str] = db.Column(db.String(255), nullable=False) | 
					
						
							|  |  |  |     encrypted_credentials: Mapped[dict] = db.Column(JSONB, nullable=False) | 
					
						
							|  |  |  |     created_at: Mapped[datetime] = db.Column(db.DateTime, nullable=False, default=datetime.now) | 
					
						
							|  |  |  |     updated_at: Mapped[datetime] = db.Column(db.DateTime, nullable=False, default=datetime.now) |