deepdata: core product code (backend, frontend, runtime, deepflow module)

This commit is contained in:
figmar
2026-08-30 19:23:38 +08:00
commit bd3db30be9
1405 changed files with 271727 additions and 0 deletions
@@ -0,0 +1,51 @@
from sqlalchemy import Column, String, TIMESTAMP, Text
from sqlalchemy.orm import declarative_base
from sqlalchemy.sql import func
Base = declarative_base()
class BaseEntity(Base):
"""
Common base entity with audit fields.
Subclasses may set `__ignore_data_scope__ = True` to opt-out of data-scope filtering.
"""
__abstract__ = True
created_at = Column(TIMESTAMP, server_default=func.current_timestamp(), comment="创建时间")
updated_at = Column(TIMESTAMP, server_default=func.current_timestamp(), onupdate=func.current_timestamp(),
comment="更新时间")
created_by = Column(String(255), nullable=True, comment="创建者")
updated_by = Column(String(255), nullable=True, comment="更新者")
# default: do enforce data scope unless subclass sets this to True
__ignore_data_scope__ = False
class LineageNode(Base):
"""数据血缘:节点表(实体对象)"""
__tablename__ = "t_lineage_node"
id = Column(String(36), primary_key=True, comment="节点ID")
graph_id = Column(String(36), nullable=True, comment="图ID")
node_type = Column(String(64), nullable=False, comment="节点类型")
name = Column(String(256), nullable=False, comment="节点名称")
description = Column(Text, nullable=True, comment="节点描述")
node_metadata = Column(Text, nullable=True, comment="节点扩展信息(JSON)")
class LineageEdge(Base):
"""数据血缘:边表(处理流程)"""
__tablename__ = "t_lineage_edge"
id = Column(String(36), primary_key=True, comment="边ID")
graph_id = Column(String(36), nullable=True, comment="图ID")
process_id = Column(String(36), nullable=True, comment="处理流程ID")
edge_type = Column(String(64), nullable=False, comment="边类型")
name = Column(String(256), nullable=True, comment="边名称")
description = Column(Text, nullable=True, comment="边描述")
edge_metadata = Column(Text, nullable=True, comment="边扩展信息(JSON)")
from_node_id = Column(String(36), nullable=False, comment="源节点ID")
to_node_id = Column(String(36), nullable=False, comment="目标节点ID")