dataops-sdk 0.3.4__tar.gz → 0.3.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/PKG-INFO +1 -1
  2. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/__init__.py +10 -1
  3. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/__init__.py +12 -3
  4. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/alarm.py +45 -10
  5. dataops_sdk-0.3.6/src/dataops_sdk/schemas/common.py +9 -0
  6. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/data_table.py +1 -1
  7. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/meta.py +79 -24
  8. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/query.py +5 -7
  9. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/skill.py +6 -3
  10. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/__init__.py +18 -0
  11. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/alarm.py +163 -11
  12. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/auth.py +3 -6
  13. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/data_table.py +103 -163
  14. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/dataset.py +10 -10
  15. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/dict_.py +4 -6
  16. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/meta.py +78 -145
  17. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/metrics.py +3 -3
  18. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/report.py +3 -3
  19. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/skill.py +22 -12
  20. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/table.py +233 -71
  21. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/widget.py +5 -5
  22. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/workflow.py +3 -3
  23. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/session.py +98 -110
  24. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/utils/utils.py +10 -10
  25. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk.egg-info/PKG-INFO +1 -1
  26. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk.egg-info/SOURCES.txt +1 -0
  27. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/pyproject.toml +0 -0
  28. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/setup.cfg +0 -0
  29. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/constants.py +0 -0
  30. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/exceptions.py +0 -0
  31. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/__init__.py +0 -0
  32. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/datasource_factory.py +0 -0
  33. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/__init__.py +0 -0
  34. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/config.py +0 -0
  35. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/constants.py +0 -0
  36. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/instance.py +0 -0
  37. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/nacos_exception.py +0 -0
  38. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/naming_param.py +0 -0
  39. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/naming_request.py +0 -0
  40. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/naming_response.py +0 -0
  41. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/preserved_metadata_key.py +0 -0
  42. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/schemas/nacos/service.py +0 -0
  43. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/__init__.py +0 -0
  44. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/common.py +0 -0
  45. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/dbConn_base.py +0 -0
  46. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/dbConn_sync.py +0 -0
  47. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/duckdb_manager.py +0 -0
  48. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/file_transfer_base.py +0 -0
  49. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/ftp_file_transfer.py +0 -0
  50. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/nacos.py +0 -0
  51. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/neo4j_sync.py +0 -0
  52. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/queue_base.py +0 -0
  53. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/queue_kafka.py +0 -0
  54. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/runner/utils/sftp_file_transfer.py +0 -0
  55. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/api.py +0 -0
  56. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/datasource.py +0 -0
  57. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/dict_.py +0 -0
  58. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/enums.py +0 -0
  59. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/group.py +0 -0
  60. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/hazard.py +0 -0
  61. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/report.py +0 -0
  62. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/table.py +0 -0
  63. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/user.py +0 -0
  64. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/widget.py +0 -0
  65. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/schemas/workflow.py +0 -0
  66. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/api.py +0 -0
  67. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/datasource.py +0 -0
  68. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/hazard.py +0 -0
  69. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/services/ref.py +0 -0
  70. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/tiptap/__init__.py +0 -0
  71. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/tiptap/builder.py +0 -0
  72. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/tiptap/constants.py +0 -0
  73. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/tiptap/markdown_parser.py +0 -0
  74. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/tiptap/models.py +0 -0
  75. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/tiptap/parse_utils.py +0 -0
  76. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/tiptap/render_utils.py +0 -0
  77. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/tiptap/renderers.py +0 -0
  78. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/tiptap/tool.py +0 -0
  79. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/utils/__init__.py +0 -0
  80. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/utils/common.py +0 -0
  81. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk/utils/log.py +0 -0
  82. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk.egg-info/dependency_links.txt +0 -0
  83. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk.egg-info/requires.txt +0 -0
  84. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/src/dataops_sdk.egg-info/top_level.txt +0 -0
  85. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/tests/test_constants.py +0 -0
  86. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/tests/test_exceptions.py +0 -0
  87. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/tests/test_session.py +0 -0
  88. {dataops_sdk-0.3.4 → dataops_sdk-0.3.6}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataops-sdk
3
- Version: 0.3.4
3
+ Version: 0.3.6
4
4
  Summary: Python SDK for the DataOps platform.
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: pydantic<3,>=2
@@ -28,8 +28,11 @@ from .services import ( # noqa: F401
28
28
  service_count_widget_by_code,
29
29
  service_create_data_table,
30
30
  service_create_data_table_record,
31
+ service_create_table_record,
31
32
  service_delete_data_table_record_by_id,
32
33
  service_delete_data_table_record_by_id_list,
34
+ service_delete_table_record_by_id,
35
+ service_delete_table_record_by_id_list,
33
36
  service_exec_sql_by_datasource,
34
37
  service_find_alarm_table_data,
35
38
  service_find_meta_by_codes,
@@ -63,6 +66,9 @@ from .services import ( # noqa: F401
63
66
  service_get_table_data_by_name,
64
67
  service_get_table_detail_by_code,
65
68
  service_get_table_detail_by_name,
69
+ service_get_table_list_by_code,
70
+ service_get_table_records_by_code,
71
+ service_get_table_total_by_code,
66
72
  service_get_widget_data_by_code,
67
73
  service_get_widget_detail_by_code,
68
74
  service_get_workflow_by_code,
@@ -96,6 +102,9 @@ from .services import ( # noqa: F401
96
102
  service_trigger_hazard_task,
97
103
  service_update_data_table_record_by_id,
98
104
  service_update_data_table_record_by_id_list,
105
+ service_update_table_record_by_id,
106
+ service_update_table_record_by_id_list,
99
107
  )
108
+ from .session import dataops_base_url_context, request_context
100
109
 
101
- __version__ = "0.3.4"
110
+ __version__ = "0.3.6"
@@ -4,7 +4,15 @@
4
4
  dataops_sdk.schemas import ...`` 使用。
5
5
  """
6
6
 
7
- from .alarm import AlarmRuleItem
7
+ from .alarm import (
8
+ AlarmActionItem,
9
+ AlarmBuiltinFunctionItem,
10
+ AlarmDetail,
11
+ AlarmPreprocessItem,
12
+ AlarmRuleItem,
13
+ AlarmRuleMatchItem,
14
+ AlarmSpecItem,
15
+ )
8
16
  from .api import ApiMeta, HttpInterfaceData
9
17
  from .data_table import DataTableData, MetaDataTable
10
18
  from .datasource import DataDataSource
@@ -19,12 +27,12 @@ from .meta import (
19
27
  MetaBase,
20
28
  MetaCreate,
21
29
  MetaRef,
22
- MetaRelease,
23
30
  MetaUpdate,
31
+ MetaPageData,
24
32
  )
25
33
  from .query import PageParam, SqlCondition, SqlQueryParam, SqlSort
26
34
  from .report import ReportMeta, ReportMetaData
27
- from .skill import DataSkill, MetaSkill, SkillCallResult
35
+ from .skill import DataSkill, DataSkillSubFile, MetaSkill, SkillCallResult
28
36
  from .table import (
29
37
  ColumnItem,
30
38
  DataBaseColumnDictExternal,
@@ -36,3 +44,4 @@ from .table import (
36
44
  from .user import Application, UserInfo
37
45
  from .widget import WidgetMeta, WidgetMetaData
38
46
  from .workflow import DataWorkflow, MetaWorkflow
47
+ from .common import DataOpsResponse
@@ -1,14 +1,14 @@
1
1
  """告警 (Alarm) 相关实体的 Schema 定义.
2
2
 
3
3
  对应平台告警规则、规则规格、处理动作与匹配项等数据模型,
4
- 统一继承自 ``MetaRelease`` 并复用了启用状态相关字段。
4
+ 统一继承自 ``MetaBase`` 并复用了启用状态相关字段。
5
5
  """
6
6
 
7
7
  from typing import Annotated
8
8
 
9
- from pydantic import BaseModel, Field
9
+ from pydantic import BaseModel, ConfigDict, Field, JsonValue
10
10
 
11
- from dataops_sdk.schemas.meta import MetaRelease
11
+ from dataops_sdk.schemas.meta import Meta, MetaBase, MetaRelease
12
12
 
13
13
 
14
14
  class AlarmExternal(BaseModel):
@@ -21,7 +21,7 @@ class AlarmExternal(BaseModel):
21
21
  N_IS_ENABLED: Annotated[str, Field(description="是否启用名称")]
22
22
 
23
23
 
24
- class AlarmRuleItem(MetaRelease, AlarmExternal):
24
+ class AlarmRuleItem(MetaBase, AlarmExternal):
25
25
  """告警规则条目.
26
26
 
27
27
  Attributes:
@@ -33,7 +33,7 @@ class AlarmRuleItem(MetaRelease, AlarmExternal):
33
33
  DESCRIPTION: Annotated[str, Field(description="描述")] = ""
34
34
 
35
35
 
36
- class AlarmSpecItem(MetaRelease, AlarmExternal):
36
+ class AlarmSpecItem(MetaBase, AlarmExternal):
37
37
  """告警规则规格条目.
38
38
 
39
39
  Attributes:
@@ -46,12 +46,12 @@ class AlarmSpecItem(MetaRelease, AlarmExternal):
46
46
 
47
47
  INDUSTRY: Annotated[str, Field(description="行业")]
48
48
  N_INDUSTRY: Annotated[str, Field(description="行业名称")]
49
- BUSINESS_DOMAIN: Annotated[str, Field(description="业务域")]
50
- N_BUSINESS_DOMAIN: Annotated[str, Field(description="业务域名称")]
51
- KAFKA_TOPICS: Annotated[str, Field(description="Kafka主题列表")]
49
+ BUSINESS_DOMAIN: Annotated[str | None, Field(description="业务域")] = None
50
+ N_BUSINESS_DOMAIN: Annotated[str | None, Field(description="业务域名称")] = None
51
+ KAFKA_TOPICS: Annotated[str | None, Field(description="Kafka主题列表")] = None
52
52
 
53
53
 
54
- class AlarmActionItem(MetaRelease, AlarmExternal):
54
+ class AlarmActionItem(MetaBase, AlarmExternal):
55
55
  """告警处理动作条目.
56
56
 
57
57
  Attributes:
@@ -66,7 +66,7 @@ class AlarmActionItem(MetaRelease, AlarmExternal):
66
66
  SCRIPT_CONTENT: Annotated[str, Field(description="脚本内容")]
67
67
 
68
68
 
69
- class AlarmRuleMatchItem(MetaRelease, AlarmExternal):
69
+ class AlarmRuleMatchItem(MetaBase, AlarmExternal):
70
70
  """告警规则匹配条目.
71
71
 
72
72
  Attributes:
@@ -82,3 +82,38 @@ class AlarmRuleMatchItem(MetaRelease, AlarmExternal):
82
82
  N_SPEC_TYPE: Annotated[str, Field(description="规则类型名称")]
83
83
  RULE_TYPE: Annotated[str, Field(description="规则类型")]
84
84
  N_RULE_TYPE: Annotated[str, Field(description="规则类型名称")]
85
+
86
+
87
+ class AlarmPreprocessItem(MetaRelease, AlarmExternal):
88
+ """预处理脚本列表条目。
89
+
90
+ 前端列表接口返回大写字段;说明、脚本内容和专业名称可能为空,
91
+ 因此这里不把这些展示字段设置为必填。
92
+ """
93
+
94
+ N_SPEC_TYPE: Annotated[str | None, Field(description="关联专业名称")] = None
95
+ DESCRIPTION: Annotated[str | None, Field(description="脚本说明")] = None
96
+ SCRIPT_CONTENT: Annotated[str | None, Field(description="脚本内容")] = None
97
+
98
+ model_config = ConfigDict(extra="allow", str_to_lower=False)
99
+
100
+
101
+ class AlarmBuiltinFunctionItem(MetaRelease, AlarmExternal):
102
+ """内置函数列表条目。"""
103
+
104
+ CLAZZ: Annotated[str | None, Field(description="类全路径")] = None
105
+ SCRIPT: Annotated[str | None, Field(description="函数脚本")] = None
106
+ REMARK: Annotated[str | None, Field(description="备注")] = None
107
+
108
+ model_config = ConfigDict(extra="allow", str_to_lower=False)
109
+
110
+
111
+ class AlarmDetail(BaseModel):
112
+ """告警详情的统一返回结构。
113
+
114
+ ``meta`` 来自主体接口,``params`` 来自 Meta 参数接口;data 使用 JSON
115
+ 映射保留前端可能新增的字段,避免详情查询因未知字段失败。
116
+ """
117
+
118
+ meta: Meta[dict[str, JsonValue]]
119
+ params: dict[str, JsonValue] = Field(default_factory=dict)
@@ -0,0 +1,9 @@
1
+ from typing_extensions import Annotated, TypeVar, Generic
2
+ from pydantic import BaseModel, JsonValue, Field, NonNegativeInt
3
+
4
+ DataVar = TypeVar("DataVar", default=JsonValue | None)
5
+
6
+ class DataOpsResponse(BaseModel, Generic[DataVar]):
7
+ code: Annotated[NonNegativeInt, Field(description="响应码")]
8
+ msg: Annotated[str | None, Field(description="响应消息")]
9
+ data: Annotated[DataVar, Field(description="响应数据")]
@@ -435,7 +435,7 @@ class DataTableField(BaseModel):
435
435
  Field(description="类型扩展配置", validation_alias=AliasChoices("typeExt", "type_ext")),
436
436
  ] = None
437
437
 
438
- model_config = ConfigDict(str_to_lower=True, extra="allow")
438
+ model_config = ConfigDict(extra="allow")
439
439
 
440
440
 
441
441
  # ---------------------------------------------------------------------------
@@ -1,7 +1,6 @@
1
1
  """平台 Meta 通用 Schema 定义.
2
2
 
3
3
  集中管理 ``Meta`` 体系的基类与容器,包括:
4
- - ``MetaRelease``: 后端返回的发布态基类,字段采用大写下划线。
5
4
  - ``MetaBase``: list 接口使用的基类,字段采用小驼峰 + alias。
6
5
  - ``Meta``: 详情响应容器,承载 ``data`` 字段并按需自动反序列化 ``rawData``。
7
6
  - ``MetaRef``: 引用形态元数据。
@@ -70,7 +69,7 @@ class MetaRelease(BaseModel):
70
69
  LAST_MODIFY_TIME: Annotated[datetime, Field(description="最后修改时间")]
71
70
  LAST_MODIFY_USER: Annotated[str, Field(description="最后修改人")]
72
71
 
73
- model_config = ConfigDict(extra="allow", str_to_lower=True)
72
+ model_config = ConfigDict(extra="allow")
74
73
 
75
74
 
76
75
  class MetaBase(BaseModel):
@@ -101,68 +100,117 @@ class MetaBase(BaseModel):
101
100
  version: 版本号。
102
101
  """
103
102
 
104
- id: Annotated[str, Field(description="元数据ID", validation_alias=AliasChoices("id", "cuid"))]
103
+ id: Annotated[
104
+ str, Field(description="元数据ID", validation_alias=AliasChoices("id", "cuid", "CUID"))
105
+ ]
105
106
  parentId: Annotated[
106
107
  str | None,
107
- Field(description="父ID", validation_alias=AliasChoices("parentId", "parent_id")),
108
+ Field(
109
+ description="父ID", validation_alias=AliasChoices("parentId", "parent_id", "PARENT_ID")
110
+ ),
108
111
  ]
109
- code: Annotated[str, Field(description="编码")]
112
+ code: Annotated[str, Field(description="编码", validation_alias=AliasChoices("code", "CODE"))]
110
113
 
111
114
  groupCode: Annotated[
112
115
  str | None,
113
- Field(description="组编码", validation_alias=AliasChoices("groupCode", "group_code")),
116
+ Field(
117
+ description="组编码",
118
+ validation_alias=AliasChoices("groupCode", "group_code", "GROUP_CODE"),
119
+ ),
114
120
  ]
115
- groupName: Annotated[str | None, Field(description="组名称")] = None
116
- spaceName: Annotated[str | None, Field(description="空间名称")] = None
121
+ groupName: Annotated[
122
+ str | None,
123
+ Field(
124
+ description="组名称",
125
+ validation_alias=AliasChoices("groupName", "group_name", "GROUP_NAME"),
126
+ ),
127
+ ] = None
128
+ spaceName: Annotated[
129
+ str | None,
130
+ Field(description="空间名称", validation_alias=AliasChoices("spaceName", "space_name", "SPACE_NAME")),
131
+ ] = None
117
132
 
118
133
  subSystem: Annotated[
119
- str, Field(description="子系统", validation_alias=AliasChoices("subSystem", "sub_system"))
134
+ str,
135
+ Field(
136
+ description="子系统",
137
+ validation_alias=AliasChoices("subSystem", "sub_system", "SUB_SYSTEM"),
138
+ ),
120
139
  ]
121
140
 
122
- type: Annotated[str, Field(description="类型")]
141
+ type: Annotated[str, Field(description="类型", validation_alias=AliasChoices("type", "TYPE"))]
123
142
  subType: Annotated[
124
143
  str | None,
125
- Field(description="子类型", validation_alias=AliasChoices("subType", "sub_type")),
144
+ Field(
145
+ description="子类型", validation_alias=AliasChoices("subType", "sub_type", "SUB_TYPE")
146
+ ),
126
147
  ]
127
148
 
128
- name: Annotated[str, Field(description="名称")]
129
- title: Annotated[str, Field(description="中文名称")]
130
- digest: Annotated[str | None, Field(description="摘要")]
149
+ name: Annotated[str, Field(description="名称", validation_alias=AliasChoices("name", "NAME"))]
150
+ title: Annotated[
151
+ str, Field(description="中文名称", validation_alias=AliasChoices("title", "TITLE"))
152
+ ]
153
+ digest: Annotated[
154
+ str | None, Field(description="摘要", validation_alias=AliasChoices("digest", "DIGEST"))
155
+ ]
131
156
 
132
- remark: Annotated[str | None, Field(description="备注")]
157
+ remark: Annotated[
158
+ str | None, Field(description="备注", validation_alias=AliasChoices("remark", "REMARK"))
159
+ ]
133
160
 
134
161
  createUser: Annotated[
135
- str, Field(description="创建人", validation_alias=AliasChoices("createUser", "create_user"))
162
+ str,
163
+ Field(
164
+ description="创建人",
165
+ validation_alias=AliasChoices("createUser", "create_user", "CREATE_USER"),
166
+ ),
136
167
  ]
137
168
  createTime: Annotated[
138
169
  datetime,
139
- Field(description="创建时间", validation_alias=AliasChoices("createTime", "create_time")),
170
+ Field(
171
+ description="创建时间",
172
+ validation_alias=AliasChoices("createTime", "create_time", "CREATE_TIME"),
173
+ ),
140
174
  ]
141
175
  lastModifyUser: Annotated[
142
176
  str,
143
177
  Field(
144
178
  description="最后修改人",
145
- validation_alias=AliasChoices("lastModifyUser", "last_modify_user"),
179
+ validation_alias=AliasChoices("lastModifyUser", "last_modify_user", "LAST_MODIFY_USER"),
146
180
  ),
147
181
  ]
148
182
  lastModifyTime: Annotated[
149
183
  datetime,
150
184
  Field(
151
185
  description="最后修改时间",
152
- validation_alias=AliasChoices("lastModifyTime", "last_modify_time"),
186
+ validation_alias=AliasChoices("lastModifyTime", "last_modify_time", "LAST_MODIFY_TIME"),
153
187
  ),
154
188
  ]
155
189
 
156
190
  tenantId: Annotated[
157
- str, Field(description="租户ID", validation_alias=AliasChoices("tenantId", "tenant_id"))
191
+ str,
192
+ Field(
193
+ description="租户ID",
194
+ validation_alias=AliasChoices("tenantId", "tenant_id", "TENANT_ID"),
195
+ ),
158
196
  ]
159
197
  prodCode: Annotated[
160
- str, Field(description="产品编码", validation_alias=AliasChoices("prodCode", "prod_code"))
198
+ str,
199
+ Field(
200
+ description="产品编码",
201
+ validation_alias=AliasChoices("prodCode", "prod_code", "PROD_CODE"),
202
+ ),
161
203
  ]
162
- release: Annotated[str, Field(description="版本")]
204
+ release: Annotated[
205
+ str | None, Field(description="版本", validation_alias=AliasChoices("release", "RELEASE"))
206
+ ] = None
163
207
 
164
- action: Annotated[str, Field(description="操作")]
165
- version: Annotated[str, Field(description="版本")]
208
+ action: Annotated[
209
+ str, Field(description="操作", validation_alias=AliasChoices("action", "ACTION"))
210
+ ]
211
+ version: Annotated[
212
+ str, Field(description="版本", validation_alias=AliasChoices("version", "VERSION"))
213
+ ]
166
214
 
167
215
  model_config = ConfigDict(extra="allow")
168
216
 
@@ -288,3 +336,10 @@ class MetaUpdate(BaseModel, Generic[META_DATA_TYPE]):
288
336
  data: Annotated[
289
337
  META_DATA_TYPE | None, Field(description="元数据", exclude_if=lambda x: x is None)
290
338
  ] = None
339
+
340
+
341
+ class MetaPageData(BaseModel):
342
+ total: Annotated[int, Field(description="总数")]
343
+ page_num: Annotated[int, Field(description="页码", validation_alias=AliasChoices("pageNum", "page_num"))]
344
+ page_size: Annotated[int, Field(description="页大小", validation_alias=AliasChoices("pageSize", "page_size"))]
345
+ records: list[MetaBase] = Field(default_factory=list, description="数据")
@@ -32,6 +32,7 @@ class SqlConditionBase(BaseModel):
32
32
 
33
33
  name: Annotated[str, Field(description="字段名")]
34
34
  value: Annotated[Any, Field(description="字段值")]
35
+ expression: Annotated[SqlExpression, Field(description="条件表达式")] = SqlExpression.EQ
35
36
 
36
37
 
37
38
  class SqlCondition(SqlConditionBase):
@@ -45,7 +46,6 @@ class SqlCondition(SqlConditionBase):
45
46
  """
46
47
 
47
48
  alias: Annotated[str | None, Field(description="表别名")] = None
48
- expression: Annotated[SqlExpression, Field(description="条件表达式")]
49
49
 
50
50
 
51
51
  class SqlSort(BaseModel):
@@ -85,7 +85,7 @@ class SqlFilter(BaseModel):
85
85
  Returns:
86
86
  SqlFilter: 对应的过滤器实例。
87
87
  """
88
- return cls(condition=SqlConditionBase(name=name, value=value))
88
+ return cls(condition=SqlConditionBase(name=name, value=value, expression=SqlExpression.EQ))
89
89
 
90
90
  @classmethod
91
91
  def ne(cls, name: str, value: Any):
@@ -222,11 +222,9 @@ class SqlQueryParam(BaseModel):
222
222
  """
223
223
 
224
224
  conjunction: Annotated[Literal["and", "or"], Field(description="条件连接符")] = "and"
225
- conditionList: Annotated[
226
- list[SqlCondition], Field(description="条件列表", default_factory=list)
227
- ]
228
- sorts: Annotated[list[SqlSort], Field(description="排序列表", default_factory=list)]
229
- varMap: Annotated[dict[str, JsonValue], Field(description="变量映射", default_factory=dict)]
225
+ conditionList: list[SqlCondition] = Field(description="条件列表", default_factory=list)
226
+ sorts: list[SqlSort] = Field(description="排序列表", default_factory=list)
227
+ varMap: dict[str, JsonValue] = Field(description="变量映射", default_factory=dict)
230
228
 
231
229
  def add(self, *condition: SqlCondition):
232
230
  """追加条件.
@@ -6,17 +6,17 @@
6
6
 
7
7
  from collections.abc import Mapping
8
8
  from enum import StrEnum
9
- from typing import Annotated, Any
10
-
11
- from pydantic import AliasChoices, BaseModel, Field, JsonValue
9
+ from typing import Annotated, Any, Union
12
10
 
13
11
  from dataops_sdk.schemas.meta import Meta
12
+ from pydantic import AliasChoices, BaseModel, Field, JsonValue
14
13
 
15
14
 
16
15
  class MetaSkillSubType(StrEnum):
17
16
  LLM = "llm"
18
17
  API = "api"
19
18
  REPORT = "report"
19
+ FORM = "form"
20
20
 
21
21
 
22
22
  class MetaSkillFileSubType(StrEnum):
@@ -62,6 +62,9 @@ class DataSkillSubFileImage(BaseModel):
62
62
  language: Annotated[str, Field(description="编程语言")]
63
63
 
64
64
 
65
+ DataSkillSubFile = Union[DataSkillSubFileDoc, DataSkillSubFileCode, DataSkillSubFileImage]
66
+
67
+
65
68
  class MetaSkill(Meta[DataSkill]):
66
69
  """技能详情,继承通用 Meta 字段并附加 DataSkill data.
67
70
 
@@ -5,11 +5,20 @@ from .alarm import (
5
5
  service_count_alarm_specs,
6
6
  service_find_alarm_table_data,
7
7
  service_find_meta_by_codes,
8
+ service_get_alarm_action_detail,
9
+ service_get_alarm_builtin_function_detail,
10
+ service_get_alarm_preprocess_detail,
11
+ service_get_alarm_rule_detail,
12
+ service_get_alarm_rule_type_detail,
8
13
  service_get_alarm_rule_enums,
9
14
  service_get_alarm_table_columns,
10
15
  service_get_rel_table_columns,
16
+ service_get_alarm_spec_detail,
17
+ service_list_alarm_builtin_functions,
18
+ service_list_alarm_action,
11
19
  service_list_alarm_rule_matches,
12
20
  service_list_alarm_rules,
21
+ service_list_alarm_preprocess,
13
22
  service_list_alarm_specs,
14
23
  )
15
24
  from .api import service_get_api_by_code, service_get_api_by_name
@@ -64,6 +73,7 @@ from .meta import (
64
73
  release_list_create,
65
74
  release_list_get_by_code,
66
75
  release_list_get_by_name,
76
+ release_list_params_get_rel_by_code,
67
77
  release_list_list,
68
78
  release_list_list_by_parent_id,
69
79
  release_list_page,
@@ -94,12 +104,20 @@ from .skill import (
94
104
  from .table import (
95
105
  service_count_table_by_code,
96
106
  service_count_table_by_name,
107
+ service_create_table_record,
108
+ service_delete_table_record_by_id,
109
+ service_delete_table_record_by_id_list,
97
110
  service_exec_sql_by_datasource,
98
111
  service_get_table_data_by_code,
99
112
  service_get_table_data_by_name,
100
113
  service_get_table_detail_by_code,
101
114
  service_get_table_detail_by_name,
115
+ service_get_table_list_by_code,
116
+ service_get_table_records_by_code,
117
+ service_get_table_total_by_code,
102
118
  service_list_tables,
119
+ service_update_table_record_by_id,
120
+ service_update_table_record_by_id_list,
103
121
  )
104
122
  from .widget import (
105
123
  service_count_widget_by_code,