@josephyan/qingflow-cli 0.2.0-beta.71 → 0.2.0-beta.73
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.
- package/README.md +2 -2
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/qingflow_mcp/backend_client.py +1 -0
- package/src/qingflow_mcp/builder_facade/models.py +22 -11
- package/src/qingflow_mcp/builder_facade/service.py +183 -121
- package/src/qingflow_mcp/cli/commands/__init__.py +4 -1
- package/src/qingflow_mcp/cli/commands/builder.py +81 -64
- package/src/qingflow_mcp/cli/commands/chart.py +18 -0
- package/src/qingflow_mcp/cli/commands/portal.py +25 -0
- package/src/qingflow_mcp/cli/commands/view.py +18 -0
- package/src/qingflow_mcp/cli/context.py +9 -0
- package/src/qingflow_mcp/response_trim.py +219 -178
- package/src/qingflow_mcp/server_app_builder.py +18 -42
- package/src/qingflow_mcp/server_app_user.py +21 -1
- package/src/qingflow_mcp/tools/ai_builder_tools.py +244 -124
- package/src/qingflow_mcp/tools/app_tools.py +0 -4
- package/src/qingflow_mcp/tools/resource_read_tools.py +399 -0
|
@@ -8,6 +8,8 @@ from typing import Any, Callable
|
|
|
8
8
|
|
|
9
9
|
JSONObject = dict[str, Any]
|
|
10
10
|
TransformFn = Callable[[JSONObject], None]
|
|
11
|
+
USER_DOMAIN = "user"
|
|
12
|
+
BUILDER_DOMAIN = "builder"
|
|
11
13
|
|
|
12
14
|
|
|
13
15
|
COMMON_SUCCESS_DROP_TOP = {
|
|
@@ -45,6 +47,10 @@ COMMON_ERROR_DROP_TOP = {
|
|
|
45
47
|
SUCCESS_POLICY_BY_TOOL: dict[str, TransformFn] = {}
|
|
46
48
|
|
|
47
49
|
|
|
50
|
+
def _tool_key(domain: str, tool_name: str) -> str:
|
|
51
|
+
return f"{domain}:{tool_name}"
|
|
52
|
+
|
|
53
|
+
|
|
48
54
|
def trim_public_response(tool_name: str | None, payload: dict[str, Any]) -> dict[str, Any]:
|
|
49
55
|
if not isinstance(payload, dict):
|
|
50
56
|
return payload
|
|
@@ -97,215 +103,242 @@ def resolve_cli_tool_name(args: Any) -> str | None:
|
|
|
97
103
|
command = getattr(args, "command", None)
|
|
98
104
|
if command == "auth":
|
|
99
105
|
return {
|
|
100
|
-
"login": "auth_login",
|
|
101
|
-
"use-token": "auth_use_token",
|
|
102
|
-
"whoami": "auth_whoami",
|
|
103
|
-
"logout": "auth_logout",
|
|
106
|
+
"login": _tool_key(USER_DOMAIN, "auth_login"),
|
|
107
|
+
"use-token": _tool_key(USER_DOMAIN, "auth_use_token"),
|
|
108
|
+
"whoami": _tool_key(USER_DOMAIN, "auth_whoami"),
|
|
109
|
+
"logout": _tool_key(USER_DOMAIN, "auth_logout"),
|
|
104
110
|
}.get(getattr(args, "auth_command", None))
|
|
105
111
|
if command == "workspace":
|
|
106
112
|
return {
|
|
107
|
-
"list": "workspace_list",
|
|
108
|
-
"select": "workspace_select",
|
|
113
|
+
"list": _tool_key(USER_DOMAIN, "workspace_list"),
|
|
114
|
+
"select": _tool_key(USER_DOMAIN, "workspace_select"),
|
|
109
115
|
}.get(getattr(args, "workspace_command", None))
|
|
110
116
|
if command == "app":
|
|
111
117
|
return {
|
|
112
|
-
"list": "app_list",
|
|
113
|
-
"search": "app_search",
|
|
114
|
-
"get": "app_get",
|
|
118
|
+
"list": _tool_key(USER_DOMAIN, "app_list"),
|
|
119
|
+
"search": _tool_key(USER_DOMAIN, "app_search"),
|
|
120
|
+
"get": _tool_key(USER_DOMAIN, "app_get"),
|
|
115
121
|
}.get(getattr(args, "app_command", None))
|
|
122
|
+
if command == "portal":
|
|
123
|
+
return {
|
|
124
|
+
"list": _tool_key(USER_DOMAIN, "portal_list"),
|
|
125
|
+
"get": _tool_key(USER_DOMAIN, "portal_get"),
|
|
126
|
+
}.get(getattr(args, "portal_command", None))
|
|
127
|
+
if command == "view":
|
|
128
|
+
return {
|
|
129
|
+
"get": _tool_key(USER_DOMAIN, "view_get"),
|
|
130
|
+
}.get(getattr(args, "view_command", None))
|
|
131
|
+
if command == "chart":
|
|
132
|
+
return {
|
|
133
|
+
"get": _tool_key(USER_DOMAIN, "chart_get"),
|
|
134
|
+
}.get(getattr(args, "chart_command", None))
|
|
116
135
|
if command == "record":
|
|
117
136
|
record_command = getattr(args, "record_command", None)
|
|
118
137
|
if record_command == "schema":
|
|
119
138
|
return {
|
|
120
|
-
"applicant": "record_schema_get",
|
|
121
|
-
"browse": "record_browse_schema_get",
|
|
122
|
-
"insert": "record_insert_schema_get",
|
|
123
|
-
"update": "record_update_schema_get",
|
|
124
|
-
"import": "record_import_schema_get",
|
|
125
|
-
"code-block": "record_code_block_schema_get",
|
|
139
|
+
"applicant": _tool_key(USER_DOMAIN, "record_schema_get"),
|
|
140
|
+
"browse": _tool_key(USER_DOMAIN, "record_browse_schema_get"),
|
|
141
|
+
"insert": _tool_key(USER_DOMAIN, "record_insert_schema_get"),
|
|
142
|
+
"update": _tool_key(USER_DOMAIN, "record_update_schema_get"),
|
|
143
|
+
"import": _tool_key(USER_DOMAIN, "record_import_schema_get"),
|
|
144
|
+
"code-block": _tool_key(USER_DOMAIN, "record_code_block_schema_get"),
|
|
126
145
|
}.get(getattr(args, "record_schema_command", None))
|
|
127
146
|
return {
|
|
128
|
-
"list": "record_list",
|
|
129
|
-
"get": "record_get",
|
|
130
|
-
"insert": "record_insert",
|
|
131
|
-
"update": "record_update",
|
|
132
|
-
"delete": "record_delete",
|
|
133
|
-
"analyze": "record_analyze",
|
|
134
|
-
"code-block-run": "record_code_block_run",
|
|
147
|
+
"list": _tool_key(USER_DOMAIN, "record_list"),
|
|
148
|
+
"get": _tool_key(USER_DOMAIN, "record_get"),
|
|
149
|
+
"insert": _tool_key(USER_DOMAIN, "record_insert"),
|
|
150
|
+
"update": _tool_key(USER_DOMAIN, "record_update"),
|
|
151
|
+
"delete": _tool_key(USER_DOMAIN, "record_delete"),
|
|
152
|
+
"analyze": _tool_key(USER_DOMAIN, "record_analyze"),
|
|
153
|
+
"code-block-run": _tool_key(USER_DOMAIN, "record_code_block_run"),
|
|
135
154
|
}.get(record_command)
|
|
136
155
|
if command == "import":
|
|
137
156
|
return {
|
|
138
|
-
"template": "record_import_template_get",
|
|
139
|
-
"verify": "record_import_verify",
|
|
140
|
-
"repair": "record_import_repair_local",
|
|
141
|
-
"start": "record_import_start",
|
|
142
|
-
"status": "record_import_status_get",
|
|
157
|
+
"template": _tool_key(USER_DOMAIN, "record_import_template_get"),
|
|
158
|
+
"verify": _tool_key(USER_DOMAIN, "record_import_verify"),
|
|
159
|
+
"repair": _tool_key(USER_DOMAIN, "record_import_repair_local"),
|
|
160
|
+
"start": _tool_key(USER_DOMAIN, "record_import_start"),
|
|
161
|
+
"status": _tool_key(USER_DOMAIN, "record_import_status_get"),
|
|
143
162
|
}.get(getattr(args, "import_command", None))
|
|
144
163
|
if command == "task":
|
|
145
164
|
return {
|
|
146
|
-
"list": "task_list",
|
|
147
|
-
"get": "task_get",
|
|
148
|
-
"action": "task_action_execute",
|
|
149
|
-
"log": "task_workflow_log_get",
|
|
165
|
+
"list": _tool_key(USER_DOMAIN, "task_list"),
|
|
166
|
+
"get": _tool_key(USER_DOMAIN, "task_get"),
|
|
167
|
+
"action": _tool_key(USER_DOMAIN, "task_action_execute"),
|
|
168
|
+
"log": _tool_key(USER_DOMAIN, "task_workflow_log_get"),
|
|
150
169
|
}.get(getattr(args, "task_command", None))
|
|
151
170
|
if command not in {"builder", "build"}:
|
|
152
171
|
return None
|
|
153
172
|
builder_command = getattr(args, "builder_command", None)
|
|
173
|
+
if builder_command == "file":
|
|
174
|
+
return {
|
|
175
|
+
"upload-local": _tool_key(BUILDER_DOMAIN, "file_upload_local"),
|
|
176
|
+
}.get(getattr(args, "builder_file_command", None))
|
|
177
|
+
if builder_command == "feedback":
|
|
178
|
+
return {
|
|
179
|
+
"submit": _tool_key(BUILDER_DOMAIN, "feedback_submit"),
|
|
180
|
+
}.get(getattr(args, "builder_feedback_command", None))
|
|
154
181
|
if builder_command == "contract":
|
|
155
|
-
return "builder_tool_contract"
|
|
182
|
+
return _tool_key(BUILDER_DOMAIN, "builder_tool_contract")
|
|
156
183
|
if builder_command == "member":
|
|
157
184
|
return {
|
|
158
|
-
"search": "member_search",
|
|
185
|
+
"search": _tool_key(BUILDER_DOMAIN, "member_search"),
|
|
159
186
|
}.get(getattr(args, "builder_member_command", None))
|
|
160
187
|
if builder_command == "role":
|
|
161
188
|
return {
|
|
162
|
-
"search": "role_search",
|
|
163
|
-
"create": "role_create",
|
|
189
|
+
"search": _tool_key(BUILDER_DOMAIN, "role_search"),
|
|
190
|
+
"create": _tool_key(BUILDER_DOMAIN, "role_create"),
|
|
164
191
|
}.get(getattr(args, "builder_role_command", None))
|
|
165
192
|
if builder_command == "package":
|
|
166
193
|
return {
|
|
167
|
-
"list": "package_list",
|
|
168
|
-
"resolve": "package_resolve",
|
|
169
|
-
"create": "package_create",
|
|
170
|
-
"attach-app": "package_attach_app",
|
|
194
|
+
"list": _tool_key(BUILDER_DOMAIN, "package_list"),
|
|
195
|
+
"resolve": _tool_key(BUILDER_DOMAIN, "package_resolve"),
|
|
196
|
+
"create": _tool_key(BUILDER_DOMAIN, "package_create"),
|
|
197
|
+
"attach-app": _tool_key(BUILDER_DOMAIN, "package_attach_app"),
|
|
171
198
|
}.get(getattr(args, "builder_package_command", None))
|
|
172
199
|
if builder_command == "app":
|
|
200
|
+
app_command = getattr(args, "builder_app_command", None)
|
|
201
|
+
if app_command == "get":
|
|
202
|
+
return {
|
|
203
|
+
"summary": _tool_key(BUILDER_DOMAIN, "app_get"),
|
|
204
|
+
"fields": _tool_key(BUILDER_DOMAIN, "app_get_fields"),
|
|
205
|
+
"layout": _tool_key(BUILDER_DOMAIN, "app_get_layout"),
|
|
206
|
+
"views": _tool_key(BUILDER_DOMAIN, "app_get_views"),
|
|
207
|
+
"flow": _tool_key(BUILDER_DOMAIN, "app_get_flow"),
|
|
208
|
+
"charts": _tool_key(BUILDER_DOMAIN, "app_get_charts"),
|
|
209
|
+
}.get(getattr(args, "builder_app_get_section", "summary"))
|
|
173
210
|
return {
|
|
174
|
-
"resolve": "app_resolve",
|
|
175
|
-
"release-edit-lock-if-mine": "app_release_edit_lock_if_mine",
|
|
176
|
-
|
|
177
|
-
"read-fields": "app_read_fields",
|
|
178
|
-
"read-layout": "app_read_layout_summary",
|
|
179
|
-
"read-views": "app_read_views_summary",
|
|
180
|
-
"read-flow": "app_read_flow_summary",
|
|
181
|
-
"read-charts": "app_read_charts_summary",
|
|
182
|
-
}.get(getattr(args, "builder_app_command", None))
|
|
211
|
+
"resolve": _tool_key(BUILDER_DOMAIN, "app_resolve"),
|
|
212
|
+
"release-edit-lock-if-mine": _tool_key(BUILDER_DOMAIN, "app_release_edit_lock_if_mine"),
|
|
213
|
+
}.get(app_command)
|
|
183
214
|
if builder_command == "button":
|
|
184
215
|
return {
|
|
185
|
-
"list": "app_custom_button_list",
|
|
186
|
-
"get": "app_custom_button_get",
|
|
187
|
-
"create": "app_custom_button_create",
|
|
188
|
-
"update": "app_custom_button_update",
|
|
189
|
-
"delete": "app_custom_button_delete",
|
|
216
|
+
"list": _tool_key(BUILDER_DOMAIN, "app_custom_button_list"),
|
|
217
|
+
"get": _tool_key(BUILDER_DOMAIN, "app_custom_button_get"),
|
|
218
|
+
"create": _tool_key(BUILDER_DOMAIN, "app_custom_button_create"),
|
|
219
|
+
"update": _tool_key(BUILDER_DOMAIN, "app_custom_button_update"),
|
|
220
|
+
"delete": _tool_key(BUILDER_DOMAIN, "app_custom_button_delete"),
|
|
190
221
|
}.get(getattr(args, "builder_button_command", None))
|
|
191
222
|
if builder_command == "portal":
|
|
192
223
|
return {
|
|
193
|
-
"list": "portal_list",
|
|
194
|
-
"get": "portal_get",
|
|
195
|
-
"
|
|
196
|
-
"apply": "portal_apply",
|
|
224
|
+
"list": _tool_key(BUILDER_DOMAIN, "portal_list"),
|
|
225
|
+
"get": _tool_key(BUILDER_DOMAIN, "portal_get"),
|
|
226
|
+
"apply": _tool_key(BUILDER_DOMAIN, "portal_apply"),
|
|
197
227
|
}.get(getattr(args, "builder_portal_command", None))
|
|
198
228
|
if builder_command == "view":
|
|
199
229
|
return {
|
|
200
|
-
"get": "view_get",
|
|
230
|
+
"get": _tool_key(BUILDER_DOMAIN, "view_get"),
|
|
201
231
|
}.get(getattr(args, "builder_view_command", None))
|
|
202
232
|
if builder_command == "chart":
|
|
203
233
|
return {
|
|
204
|
-
"get": "chart_get",
|
|
234
|
+
"get": _tool_key(BUILDER_DOMAIN, "chart_get"),
|
|
205
235
|
}.get(getattr(args, "builder_chart_command", None))
|
|
206
236
|
if builder_command == "schema":
|
|
207
|
-
return {"apply": "app_schema_apply"}.get(getattr(args, "builder_schema_command", None))
|
|
237
|
+
return {"apply": _tool_key(BUILDER_DOMAIN, "app_schema_apply")}.get(getattr(args, "builder_schema_command", None))
|
|
208
238
|
if builder_command == "layout":
|
|
209
|
-
return {"apply": "app_layout_apply"}.get(getattr(args, "builder_layout_command", None))
|
|
239
|
+
return {"apply": _tool_key(BUILDER_DOMAIN, "app_layout_apply")}.get(getattr(args, "builder_layout_command", None))
|
|
210
240
|
if builder_command == "views":
|
|
211
|
-
return {"apply": "app_views_apply"}.get(getattr(args, "builder_views_command", None))
|
|
241
|
+
return {"apply": _tool_key(BUILDER_DOMAIN, "app_views_apply")}.get(getattr(args, "builder_views_command", None))
|
|
212
242
|
if builder_command == "flow":
|
|
213
|
-
return {"apply": "app_flow_apply"}.get(getattr(args, "builder_flow_command", None))
|
|
243
|
+
return {"apply": _tool_key(BUILDER_DOMAIN, "app_flow_apply")}.get(getattr(args, "builder_flow_command", None))
|
|
214
244
|
if builder_command == "charts":
|
|
215
|
-
return {"apply": "app_charts_apply"}.get(getattr(args, "builder_charts_command", None))
|
|
245
|
+
return {"apply": _tool_key(BUILDER_DOMAIN, "app_charts_apply")}.get(getattr(args, "builder_charts_command", None))
|
|
216
246
|
if builder_command == "publish":
|
|
217
|
-
return {"verify": "app_publish_verify"}.get(getattr(args, "builder_publish_command", None))
|
|
247
|
+
return {"verify": _tool_key(BUILDER_DOMAIN, "app_publish_verify")}.get(getattr(args, "builder_publish_command", None))
|
|
218
248
|
return None
|
|
219
249
|
|
|
220
250
|
|
|
221
251
|
USER_SERVER_METHOD_MAP = {
|
|
222
|
-
"auth_login": "auth_login",
|
|
223
|
-
"auth_use_token": "auth_use_token",
|
|
224
|
-
"auth_whoami": "auth_whoami",
|
|
225
|
-
"auth_logout": "auth_logout",
|
|
226
|
-
"workspace_list": "workspace_list",
|
|
227
|
-
"workspace_select": "workspace_select",
|
|
228
|
-
"app_list": "app_list",
|
|
229
|
-
"app_search": "app_search",
|
|
230
|
-
"app_get": "app_get",
|
|
231
|
-
"
|
|
232
|
-
"
|
|
233
|
-
"
|
|
234
|
-
"
|
|
235
|
-
"
|
|
236
|
-
"
|
|
237
|
-
"
|
|
238
|
-
"
|
|
239
|
-
"
|
|
240
|
-
"
|
|
241
|
-
"
|
|
242
|
-
"
|
|
243
|
-
"
|
|
244
|
-
"
|
|
245
|
-
"
|
|
246
|
-
"
|
|
247
|
-
"
|
|
248
|
-
"
|
|
249
|
-
"
|
|
250
|
-
"
|
|
251
|
-
"
|
|
252
|
-
"
|
|
253
|
-
"
|
|
254
|
-
"
|
|
255
|
-
"
|
|
256
|
-
"
|
|
257
|
-
"
|
|
258
|
-
"
|
|
259
|
-
"
|
|
260
|
-
"
|
|
261
|
-
"
|
|
262
|
-
"
|
|
263
|
-
"
|
|
264
|
-
"
|
|
252
|
+
"auth_login": _tool_key(USER_DOMAIN, "auth_login"),
|
|
253
|
+
"auth_use_token": _tool_key(USER_DOMAIN, "auth_use_token"),
|
|
254
|
+
"auth_whoami": _tool_key(USER_DOMAIN, "auth_whoami"),
|
|
255
|
+
"auth_logout": _tool_key(USER_DOMAIN, "auth_logout"),
|
|
256
|
+
"workspace_list": _tool_key(USER_DOMAIN, "workspace_list"),
|
|
257
|
+
"workspace_select": _tool_key(USER_DOMAIN, "workspace_select"),
|
|
258
|
+
"app_list": _tool_key(USER_DOMAIN, "app_list"),
|
|
259
|
+
"app_search": _tool_key(USER_DOMAIN, "app_search"),
|
|
260
|
+
"app_get": _tool_key(USER_DOMAIN, "app_get"),
|
|
261
|
+
"portal_list": _tool_key(USER_DOMAIN, "portal_list"),
|
|
262
|
+
"portal_get": _tool_key(USER_DOMAIN, "portal_get"),
|
|
263
|
+
"view_get": _tool_key(USER_DOMAIN, "view_get"),
|
|
264
|
+
"chart_get": _tool_key(USER_DOMAIN, "chart_get"),
|
|
265
|
+
"file_get_upload_info": _tool_key(USER_DOMAIN, "file_get_upload_info"),
|
|
266
|
+
"file_upload_local": _tool_key(USER_DOMAIN, "file_upload_local"),
|
|
267
|
+
"feedback_submit": _tool_key(USER_DOMAIN, "feedback_submit"),
|
|
268
|
+
"record_import_schema_get": _tool_key(USER_DOMAIN, "record_import_schema_get"),
|
|
269
|
+
"record_import_template_get": _tool_key(USER_DOMAIN, "record_import_template_get"),
|
|
270
|
+
"record_import_verify": _tool_key(USER_DOMAIN, "record_import_verify"),
|
|
271
|
+
"record_import_repair_local": _tool_key(USER_DOMAIN, "record_import_repair_local"),
|
|
272
|
+
"record_import_start": _tool_key(USER_DOMAIN, "record_import_start"),
|
|
273
|
+
"record_import_status_get": _tool_key(USER_DOMAIN, "record_import_status_get"),
|
|
274
|
+
"record_insert_schema_get_public": _tool_key(USER_DOMAIN, "record_insert_schema_get"),
|
|
275
|
+
"record_member_candidates": _tool_key(USER_DOMAIN, "record_member_candidates"),
|
|
276
|
+
"record_department_candidates": _tool_key(USER_DOMAIN, "record_department_candidates"),
|
|
277
|
+
"record_analyze": _tool_key(USER_DOMAIN, "record_analyze"),
|
|
278
|
+
"record_list": _tool_key(USER_DOMAIN, "record_list"),
|
|
279
|
+
"record_get_public": _tool_key(USER_DOMAIN, "record_get"),
|
|
280
|
+
"record_browse_schema_get_public": _tool_key(USER_DOMAIN, "record_browse_schema_get"),
|
|
281
|
+
"record_update_schema_get_public": _tool_key(USER_DOMAIN, "record_update_schema_get"),
|
|
282
|
+
"record_insert_public": _tool_key(USER_DOMAIN, "record_insert"),
|
|
283
|
+
"record_update_public": _tool_key(USER_DOMAIN, "record_update"),
|
|
284
|
+
"record_delete_public": _tool_key(USER_DOMAIN, "record_delete"),
|
|
285
|
+
"record_code_block_schema_get_public": _tool_key(USER_DOMAIN, "record_code_block_schema_get"),
|
|
286
|
+
"record_code_block_run": _tool_key(USER_DOMAIN, "record_code_block_run"),
|
|
287
|
+
"task_list": _tool_key(USER_DOMAIN, "task_list"),
|
|
288
|
+
"task_get": _tool_key(USER_DOMAIN, "task_get"),
|
|
289
|
+
"task_action_execute": _tool_key(USER_DOMAIN, "task_action_execute"),
|
|
290
|
+
"task_associated_report_detail_get": _tool_key(USER_DOMAIN, "task_associated_report_detail_get"),
|
|
291
|
+
"task_workflow_log_get": _tool_key(USER_DOMAIN, "task_workflow_log_get"),
|
|
292
|
+
"directory_search": _tool_key(USER_DOMAIN, "directory_search"),
|
|
293
|
+
"directory_list_internal_users": _tool_key(USER_DOMAIN, "directory_list_internal_users"),
|
|
294
|
+
"directory_list_all_internal_users": _tool_key(USER_DOMAIN, "directory_list_all_internal_users"),
|
|
295
|
+
"directory_list_internal_departments": _tool_key(USER_DOMAIN, "directory_list_internal_departments"),
|
|
296
|
+
"directory_list_all_departments": _tool_key(USER_DOMAIN, "directory_list_all_departments"),
|
|
297
|
+
"directory_list_sub_departments": _tool_key(USER_DOMAIN, "directory_list_sub_departments"),
|
|
298
|
+
"directory_list_external_members": _tool_key(USER_DOMAIN, "directory_list_external_members"),
|
|
265
299
|
}
|
|
266
300
|
|
|
267
301
|
BUILDER_SERVER_METHOD_MAP = {
|
|
268
|
-
"auth_login": "auth_login",
|
|
269
|
-
"auth_use_token": "auth_use_token",
|
|
270
|
-
"auth_whoami": "auth_whoami",
|
|
271
|
-
"auth_logout": "auth_logout",
|
|
272
|
-
"workspace_list": "workspace_list",
|
|
273
|
-
"workspace_select": "workspace_select",
|
|
274
|
-
"file_upload_local": "file_upload_local",
|
|
275
|
-
"feedback_submit": "feedback_submit",
|
|
276
|
-
"package_list": "package_list",
|
|
277
|
-
"package_resolve": "package_resolve",
|
|
278
|
-
"builder_tool_contract": "builder_tool_contract",
|
|
279
|
-
"package_create": "package_create",
|
|
280
|
-
"member_search": "member_search",
|
|
281
|
-
"role_search": "role_search",
|
|
282
|
-
"role_create": "role_create",
|
|
283
|
-
"package_attach_app": "package_attach_app",
|
|
284
|
-
"app_release_edit_lock_if_mine": "app_release_edit_lock_if_mine",
|
|
285
|
-
"app_resolve": "app_resolve",
|
|
286
|
-
"app_custom_button_list": "app_custom_button_list",
|
|
287
|
-
"app_custom_button_get": "app_custom_button_get",
|
|
288
|
-
"app_custom_button_create": "app_custom_button_create",
|
|
289
|
-
"app_custom_button_update": "app_custom_button_update",
|
|
290
|
-
"app_custom_button_delete": "app_custom_button_delete",
|
|
291
|
-
"
|
|
292
|
-
"
|
|
293
|
-
"
|
|
294
|
-
"
|
|
295
|
-
"
|
|
296
|
-
"
|
|
297
|
-
"portal_list": "portal_list",
|
|
298
|
-
"portal_get": "portal_get",
|
|
299
|
-
"
|
|
300
|
-
"
|
|
301
|
-
"
|
|
302
|
-
"
|
|
303
|
-
"
|
|
304
|
-
"
|
|
305
|
-
"
|
|
306
|
-
"
|
|
307
|
-
"
|
|
308
|
-
"app_publish_verify": "app_publish_verify",
|
|
302
|
+
"auth_login": _tool_key(BUILDER_DOMAIN, "auth_login"),
|
|
303
|
+
"auth_use_token": _tool_key(BUILDER_DOMAIN, "auth_use_token"),
|
|
304
|
+
"auth_whoami": _tool_key(BUILDER_DOMAIN, "auth_whoami"),
|
|
305
|
+
"auth_logout": _tool_key(BUILDER_DOMAIN, "auth_logout"),
|
|
306
|
+
"workspace_list": _tool_key(BUILDER_DOMAIN, "workspace_list"),
|
|
307
|
+
"workspace_select": _tool_key(BUILDER_DOMAIN, "workspace_select"),
|
|
308
|
+
"file_upload_local": _tool_key(BUILDER_DOMAIN, "file_upload_local"),
|
|
309
|
+
"feedback_submit": _tool_key(BUILDER_DOMAIN, "feedback_submit"),
|
|
310
|
+
"package_list": _tool_key(BUILDER_DOMAIN, "package_list"),
|
|
311
|
+
"package_resolve": _tool_key(BUILDER_DOMAIN, "package_resolve"),
|
|
312
|
+
"builder_tool_contract": _tool_key(BUILDER_DOMAIN, "builder_tool_contract"),
|
|
313
|
+
"package_create": _tool_key(BUILDER_DOMAIN, "package_create"),
|
|
314
|
+
"member_search": _tool_key(BUILDER_DOMAIN, "member_search"),
|
|
315
|
+
"role_search": _tool_key(BUILDER_DOMAIN, "role_search"),
|
|
316
|
+
"role_create": _tool_key(BUILDER_DOMAIN, "role_create"),
|
|
317
|
+
"package_attach_app": _tool_key(BUILDER_DOMAIN, "package_attach_app"),
|
|
318
|
+
"app_release_edit_lock_if_mine": _tool_key(BUILDER_DOMAIN, "app_release_edit_lock_if_mine"),
|
|
319
|
+
"app_resolve": _tool_key(BUILDER_DOMAIN, "app_resolve"),
|
|
320
|
+
"app_custom_button_list": _tool_key(BUILDER_DOMAIN, "app_custom_button_list"),
|
|
321
|
+
"app_custom_button_get": _tool_key(BUILDER_DOMAIN, "app_custom_button_get"),
|
|
322
|
+
"app_custom_button_create": _tool_key(BUILDER_DOMAIN, "app_custom_button_create"),
|
|
323
|
+
"app_custom_button_update": _tool_key(BUILDER_DOMAIN, "app_custom_button_update"),
|
|
324
|
+
"app_custom_button_delete": _tool_key(BUILDER_DOMAIN, "app_custom_button_delete"),
|
|
325
|
+
"app_get": _tool_key(BUILDER_DOMAIN, "app_get"),
|
|
326
|
+
"app_get_fields": _tool_key(BUILDER_DOMAIN, "app_get_fields"),
|
|
327
|
+
"app_get_layout": _tool_key(BUILDER_DOMAIN, "app_get_layout"),
|
|
328
|
+
"app_get_views": _tool_key(BUILDER_DOMAIN, "app_get_views"),
|
|
329
|
+
"app_get_flow": _tool_key(BUILDER_DOMAIN, "app_get_flow"),
|
|
330
|
+
"app_get_charts": _tool_key(BUILDER_DOMAIN, "app_get_charts"),
|
|
331
|
+
"portal_list": _tool_key(BUILDER_DOMAIN, "portal_list"),
|
|
332
|
+
"portal_get": _tool_key(BUILDER_DOMAIN, "portal_get"),
|
|
333
|
+
"view_get": _tool_key(BUILDER_DOMAIN, "view_get"),
|
|
334
|
+
"chart_get": _tool_key(BUILDER_DOMAIN, "chart_get"),
|
|
335
|
+
"app_schema_apply": _tool_key(BUILDER_DOMAIN, "app_schema_apply"),
|
|
336
|
+
"app_layout_apply": _tool_key(BUILDER_DOMAIN, "app_layout_apply"),
|
|
337
|
+
"app_flow_apply": _tool_key(BUILDER_DOMAIN, "app_flow_apply"),
|
|
338
|
+
"app_views_apply": _tool_key(BUILDER_DOMAIN, "app_views_apply"),
|
|
339
|
+
"app_charts_apply": _tool_key(BUILDER_DOMAIN, "app_charts_apply"),
|
|
340
|
+
"portal_apply": _tool_key(BUILDER_DOMAIN, "portal_apply"),
|
|
341
|
+
"app_publish_verify": _tool_key(BUILDER_DOMAIN, "app_publish_verify"),
|
|
309
342
|
}
|
|
310
343
|
|
|
311
344
|
|
|
@@ -475,6 +508,7 @@ def _trim_app_search_like(payload: JSONObject) -> None:
|
|
|
475
508
|
|
|
476
509
|
|
|
477
510
|
def _trim_app_get(payload: JSONObject) -> None:
|
|
511
|
+
_trim_builder_envelope(payload)
|
|
478
512
|
_trim_nested_item_list(
|
|
479
513
|
payload,
|
|
480
514
|
("data", "accessible_views"),
|
|
@@ -563,20 +597,23 @@ def _trim_builder_list_like(payload: JSONObject) -> None:
|
|
|
563
597
|
_trim_builder_envelope(payload)
|
|
564
598
|
|
|
565
599
|
|
|
566
|
-
def _register_policy(names: tuple[str, ...], transform: TransformFn) -> None:
|
|
567
|
-
for
|
|
568
|
-
|
|
600
|
+
def _register_policy(domains: tuple[str, ...], names: tuple[str, ...], transform: TransformFn) -> None:
|
|
601
|
+
for domain in domains:
|
|
602
|
+
for name in names:
|
|
603
|
+
SUCCESS_POLICY_BY_TOOL[_tool_key(domain, name)] = transform
|
|
569
604
|
|
|
570
605
|
|
|
571
|
-
_register_policy(("auth_login", "auth_use_token", "auth_whoami"), _trim_auth_payload)
|
|
572
|
-
_register_policy(("auth_logout",), _trim_auth_logout)
|
|
573
|
-
_register_policy(("workspace_list",), _trim_workspace_list)
|
|
574
|
-
_register_policy(("workspace_select",), _trim_workspace_select)
|
|
575
|
-
_register_policy(("app_list", "app_search"), _trim_app_search_like)
|
|
576
|
-
_register_policy(("app_get",), _trim_app_get)
|
|
577
|
-
_register_policy(("
|
|
578
|
-
_register_policy(("
|
|
606
|
+
_register_policy((USER_DOMAIN, BUILDER_DOMAIN), ("auth_login", "auth_use_token", "auth_whoami"), _trim_auth_payload)
|
|
607
|
+
_register_policy((USER_DOMAIN, BUILDER_DOMAIN), ("auth_logout",), _trim_auth_logout)
|
|
608
|
+
_register_policy((USER_DOMAIN, BUILDER_DOMAIN), ("workspace_list",), _trim_workspace_list)
|
|
609
|
+
_register_policy((USER_DOMAIN, BUILDER_DOMAIN), ("workspace_select",), _trim_workspace_select)
|
|
610
|
+
_register_policy((USER_DOMAIN,), ("app_list", "app_search"), _trim_app_search_like)
|
|
611
|
+
_register_policy((USER_DOMAIN, BUILDER_DOMAIN), ("app_get",), _trim_app_get)
|
|
612
|
+
_register_policy((USER_DOMAIN, BUILDER_DOMAIN), ("portal_list", "portal_get", "view_get", "chart_get"), _trim_builder_list_like)
|
|
613
|
+
_register_policy((USER_DOMAIN,), ("file_get_upload_info",), _trim_file_upload_info)
|
|
614
|
+
_register_policy((USER_DOMAIN, BUILDER_DOMAIN), ("file_upload_local",), _trim_file_upload_local)
|
|
579
615
|
_register_policy(
|
|
616
|
+
(USER_DOMAIN,),
|
|
580
617
|
(
|
|
581
618
|
"record_import_schema_get",
|
|
582
619
|
"record_import_template_get",
|
|
@@ -588,6 +625,7 @@ _register_policy(
|
|
|
588
625
|
_trim_import_schema,
|
|
589
626
|
)
|
|
590
627
|
_register_policy(
|
|
628
|
+
(USER_DOMAIN,),
|
|
591
629
|
(
|
|
592
630
|
"record_schema_get",
|
|
593
631
|
"record_insert_schema_get",
|
|
@@ -597,13 +635,14 @@ _register_policy(
|
|
|
597
635
|
),
|
|
598
636
|
_trim_record_schema,
|
|
599
637
|
)
|
|
600
|
-
_register_policy(("record_insert", "record_update"), _trim_record_write)
|
|
601
|
-
_register_policy(("record_get",), _trim_record_get)
|
|
602
|
-
_register_policy(("record_list",), _trim_record_list)
|
|
603
|
-
_register_policy(("record_analyze",), _trim_record_analyze)
|
|
604
|
-
_register_policy(("record_code_block_run",), _trim_code_block_run)
|
|
605
|
-
_register_policy(("task_list",), _trim_task_list)
|
|
638
|
+
_register_policy((USER_DOMAIN,), ("record_insert", "record_update"), _trim_record_write)
|
|
639
|
+
_register_policy((USER_DOMAIN,), ("record_get",), _trim_record_get)
|
|
640
|
+
_register_policy((USER_DOMAIN,), ("record_list",), _trim_record_list)
|
|
641
|
+
_register_policy((USER_DOMAIN,), ("record_analyze",), _trim_record_analyze)
|
|
642
|
+
_register_policy((USER_DOMAIN,), ("record_code_block_run",), _trim_code_block_run)
|
|
643
|
+
_register_policy((USER_DOMAIN,), ("task_list",), _trim_task_list)
|
|
606
644
|
_register_policy(
|
|
645
|
+
(USER_DOMAIN,),
|
|
607
646
|
(
|
|
608
647
|
"task_get",
|
|
609
648
|
"task_action_execute",
|
|
@@ -613,6 +652,7 @@ _register_policy(
|
|
|
613
652
|
_trim_task_get,
|
|
614
653
|
)
|
|
615
654
|
_register_policy(
|
|
655
|
+
(USER_DOMAIN,),
|
|
616
656
|
(
|
|
617
657
|
"directory_search",
|
|
618
658
|
"directory_list_internal_users",
|
|
@@ -624,12 +664,19 @@ _register_policy(
|
|
|
624
664
|
),
|
|
625
665
|
_trim_directory,
|
|
626
666
|
)
|
|
627
|
-
_register_policy(("feedback_submit",), _trim_feedback)
|
|
667
|
+
_register_policy((USER_DOMAIN, BUILDER_DOMAIN), ("feedback_submit",), _trim_feedback)
|
|
628
668
|
_register_policy(
|
|
669
|
+
(USER_DOMAIN,),
|
|
629
670
|
(
|
|
630
671
|
"record_member_candidates",
|
|
631
672
|
"record_department_candidates",
|
|
632
673
|
"record_delete",
|
|
674
|
+
),
|
|
675
|
+
_trim_builder_list_like,
|
|
676
|
+
)
|
|
677
|
+
_register_policy(
|
|
678
|
+
(BUILDER_DOMAIN,),
|
|
679
|
+
(
|
|
633
680
|
"package_list",
|
|
634
681
|
"package_resolve",
|
|
635
682
|
"builder_tool_contract",
|
|
@@ -645,17 +692,11 @@ _register_policy(
|
|
|
645
692
|
"app_custom_button_create",
|
|
646
693
|
"app_custom_button_update",
|
|
647
694
|
"app_custom_button_delete",
|
|
648
|
-
"
|
|
649
|
-
"
|
|
650
|
-
"
|
|
651
|
-
"
|
|
652
|
-
"
|
|
653
|
-
"app_read_charts_summary",
|
|
654
|
-
"portal_list",
|
|
655
|
-
"portal_get",
|
|
656
|
-
"portal_read_summary",
|
|
657
|
-
"view_get",
|
|
658
|
-
"chart_get",
|
|
695
|
+
"app_get_fields",
|
|
696
|
+
"app_get_layout",
|
|
697
|
+
"app_get_views",
|
|
698
|
+
"app_get_flow",
|
|
699
|
+
"app_get_charts",
|
|
659
700
|
"app_schema_apply",
|
|
660
701
|
"app_layout_apply",
|
|
661
702
|
"app_flow_apply",
|