@qingflow-tech/qingflow-cli 1.1.43 → 1.1.44-beta.2
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 +13 -6
- package/entry_point.py +1 -1
- package/npm/bin/qingflow.mjs +1 -2
- package/npm/lib/runtime.mjs +3 -7
- package/package.json +2 -2
- package/pyproject.toml +3 -4
- package/skills/qingflow-app-form/SKILL.md +66 -0
- package/skills/qingflow-app-form/agents/openai.yaml +4 -0
- package/skills/qingflow-cli/SKILL.md +8 -6
- package/skills/qingflow-cli/manifest.yaml +1 -1
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_BUILDER_APP_DELIVERY_WORKFLOW.md +4 -4
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_FIELD_DATA_TYPES.md +1 -1
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_SCHEMA_APPLY_FIELD_TYPES_AND_SCENARIOS.md +4 -4
- package/skills/qingflow-cli/reference/builder/10-build-single-app.md +5 -5
- package/skills/qingflow-cli/reference/builder/20-build-complete-system.md +14 -14
- package/skills/qingflow-cli/reference/builder/30-schema-fields.md +108 -103
- package/skills/qingflow-cli/reference/builder/40-layout.md +39 -31
- package/skills/qingflow-cli/reference/builder/README.md +9 -9
- package/skills/qingflow-cli/reference/builder/code-integrations/README.md +4 -2
- package/skills/qingflow-cli/reference/builder/code-integrations/code-block.md +2 -0
- package/skills/qingflow-cli/reference/builder/code-integrations/q-linker.md +2 -0
- package/skills/qingflow-cli/reference/builder/reference/app-delivery-sop.md +45 -38
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_FIELD_DATA_TYPES.md +1 -1
- package/skills/qingflow-cli/reference/examples/README.md +3 -3
- package/skills/qingflow-common/SKILL.md +47 -0
- package/skills/qingflow-common/agents/openai.yaml +4 -0
- package/src/qingflow_mcp/__main__.py +2 -3
- package/src/qingflow_mcp/app_form_compat.py +104 -0
- package/src/qingflow_mcp/app_form_validator.py +462 -0
- package/src/qingflow_mcp/builder_facade/app_form.py +4205 -0
- package/src/qingflow_mcp/builder_facade/app_form_schema.py +425 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/manifest.json +42 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +2969 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +392 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +236 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +425 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/code_block.json +318 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/data_relation.json +580 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date.json +150 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/datetime.json +150 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/department.json +345 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/email.json +190 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/link.json +190 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/long_text.json +190 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/member.json +484 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/multi_select.json +214 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +236 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/phone.json +199 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +412 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +454 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_choice.json +214 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_select.json +214 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +1921 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/text.json +190 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/formula.json +1594 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +718 -0
- package/src/qingflow_mcp/builder_facade/service.py +8 -4
- package/src/qingflow_mcp/cli/commands/builder.py +93 -28
- package/src/qingflow_mcp/cli/json_io.py +21 -2
- package/src/qingflow_mcp/cli/main.py +3 -39
- package/src/qingflow_mcp/public_surface.py +5 -2
- package/src/qingflow_mcp/response_trim.py +50 -0
- package/src/qingflow_mcp/server.py +24 -3
- package/src/qingflow_mcp/server_app_builder.py +44 -87
- package/src/qingflow_mcp/tools/ai_builder_tools.py +103 -100
- package/src/qingflow_mcp/tools/app_tools.py +46 -65
- package/src/qingflow_mcp/tools/record_tools.py +3 -3
- package/src/qingflow_mcp/version.py +2 -4
- package/docs/local-agent-install.md +0 -370
- package/skills/qingflow-mcp-setup/SKILL.md +0 -115
- package/skills/qingflow-mcp-setup/agents/openai.yaml +0 -4
- package/skills/qingflow-mcp-setup/references/claude-desktop.md +0 -34
- package/skills/qingflow-mcp-setup/references/environments.md +0 -62
- package/skills/qingflow-mcp-setup/references/generic-stdio.md +0 -32
- package/skills/qingflow-mcp-setup/scripts/check_local_server.sh +0 -38
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$defs": {
|
|
3
|
+
"FieldCommon": {
|
|
4
|
+
"allOf": [
|
|
5
|
+
{
|
|
6
|
+
"if": {
|
|
7
|
+
"properties": {
|
|
8
|
+
"defaultType": {
|
|
9
|
+
"const": 2
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"required": [
|
|
13
|
+
"defaultType"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"then": {
|
|
17
|
+
"properties": {
|
|
18
|
+
"defaultValue": {
|
|
19
|
+
"type": "null"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"if": {
|
|
26
|
+
"properties": {
|
|
27
|
+
"defaultType": {
|
|
28
|
+
"const": 3
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"required": [
|
|
32
|
+
"defaultType"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"then": {
|
|
36
|
+
"properties": {
|
|
37
|
+
"defaultValue": {
|
|
38
|
+
"minLength": 1,
|
|
39
|
+
"type": [
|
|
40
|
+
"string",
|
|
41
|
+
"null"
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"anyOf": [
|
|
49
|
+
{
|
|
50
|
+
"required": [
|
|
51
|
+
"queId"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"required": [
|
|
56
|
+
"name"
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"description": "顶层业务字段的公共属性;字段类型由 TopField 的判别分支定义。",
|
|
61
|
+
"properties": {
|
|
62
|
+
"beingRequired": {
|
|
63
|
+
"description": "该字段是否必填;缺失时保留已有字段当前值。",
|
|
64
|
+
"type": "boolean"
|
|
65
|
+
},
|
|
66
|
+
"defaultType": {
|
|
67
|
+
"default": 1,
|
|
68
|
+
"description": "默认值类型,与 defaultValue 联动;1 表示静态值,2 表示关联/绑定值且 defaultValue 只能省略或为 null,3 表示公式值且提供 defaultValue 时必须为非空公式文本。省略 defaultType 但提供 defaultValue 时按 1 处理。",
|
|
69
|
+
"enum": [
|
|
70
|
+
1,
|
|
71
|
+
2,
|
|
72
|
+
3
|
|
73
|
+
],
|
|
74
|
+
"type": "integer"
|
|
75
|
+
},
|
|
76
|
+
"defaultValue": {
|
|
77
|
+
"$ref": "#/$defs/ScalarDefaultValue",
|
|
78
|
+
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
79
|
+
},
|
|
80
|
+
"name": {
|
|
81
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
|
|
82
|
+
"minLength": 1,
|
|
83
|
+
"type": "string"
|
|
84
|
+
},
|
|
85
|
+
"queId": {
|
|
86
|
+
"description": "已有字段的后端 ID;更新时用于精确定位并复用,新增字段通常省略。",
|
|
87
|
+
"minimum": 1,
|
|
88
|
+
"type": "integer"
|
|
89
|
+
},
|
|
90
|
+
"questionDescription": {
|
|
91
|
+
"description": "字段说明;null 或空字符串表示清空。",
|
|
92
|
+
"type": [
|
|
93
|
+
"string",
|
|
94
|
+
"null"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"questionType": {
|
|
98
|
+
"description": "字段类型;具体可用值由当前字段详情 Schema 的判别分支约束。",
|
|
99
|
+
"type": "string"
|
|
100
|
+
},
|
|
101
|
+
"width": {
|
|
102
|
+
"description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
|
|
103
|
+
"enum": [
|
|
104
|
+
25,
|
|
105
|
+
50,
|
|
106
|
+
75,
|
|
107
|
+
100
|
|
108
|
+
],
|
|
109
|
+
"type": "integer"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"type": "object"
|
|
113
|
+
},
|
|
114
|
+
"FieldSelector": {
|
|
115
|
+
"additionalProperties": false,
|
|
116
|
+
"anyOf": [
|
|
117
|
+
{
|
|
118
|
+
"required": [
|
|
119
|
+
"queId"
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"required": [
|
|
124
|
+
"name"
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。",
|
|
129
|
+
"properties": {
|
|
130
|
+
"name": {
|
|
131
|
+
"description": "字段名称;仅在当前作用域内唯一时可用于解析。",
|
|
132
|
+
"minLength": 1,
|
|
133
|
+
"type": "string"
|
|
134
|
+
},
|
|
135
|
+
"queId": {
|
|
136
|
+
"description": "已有字段的后端 ID;优先用于精确解析。",
|
|
137
|
+
"minimum": 1,
|
|
138
|
+
"type": "integer"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"type": "object"
|
|
142
|
+
},
|
|
143
|
+
"QLinkerBinding": {
|
|
144
|
+
"additionalProperties": false,
|
|
145
|
+
"description": "Q-Linker 的输入映射、请求配置和输出映射;每个输出目标还必须满足应用级唯一性规则,不能与任何 Q-Linker 或代码块的其他输出指向同一实际字段。多个生产方需要回写时,请选择不同目标字段或合并为一个生产方。",
|
|
146
|
+
"properties": {
|
|
147
|
+
"inputs": {
|
|
148
|
+
"description": "将当前表单字段映射到请求参数的规则。query_param、header、url_encoded 会直接生成对应位置的动态参数;json_path 用于替换 request.url、request.jsonValue 或 request.xmlValue 中的 {{key}} 占位符。",
|
|
149
|
+
"items": {
|
|
150
|
+
"$ref": "#/$defs/QLinkerInputBinding"
|
|
151
|
+
},
|
|
152
|
+
"type": "array"
|
|
153
|
+
},
|
|
154
|
+
"outputs": {
|
|
155
|
+
"description": "将响应路径映射到目标字段的规则;至少一个。所有 targetField 在整个应用的 Q-Linker 和代码块输出中必须全局唯一。",
|
|
156
|
+
"items": {
|
|
157
|
+
"$ref": "#/$defs/QLinkerOutputBinding"
|
|
158
|
+
},
|
|
159
|
+
"minItems": 1,
|
|
160
|
+
"type": "array"
|
|
161
|
+
},
|
|
162
|
+
"request": {
|
|
163
|
+
"$ref": "#/$defs/QLinkerRequest",
|
|
164
|
+
"description": "远程请求配置。"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"required": [
|
|
168
|
+
"request",
|
|
169
|
+
"outputs"
|
|
170
|
+
],
|
|
171
|
+
"type": "object"
|
|
172
|
+
},
|
|
173
|
+
"QLinkerConfig": {
|
|
174
|
+
"additionalProperties": false,
|
|
175
|
+
"description": "Q-Linker 的高层声明;无法无损还原为该结构时阻断处理。",
|
|
176
|
+
"properties": {
|
|
177
|
+
"qLinkerBinding": {
|
|
178
|
+
"$ref": "#/$defs/QLinkerBinding"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"required": [
|
|
182
|
+
"qLinkerBinding"
|
|
183
|
+
],
|
|
184
|
+
"type": "object"
|
|
185
|
+
},
|
|
186
|
+
"QLinkerInputBinding": {
|
|
187
|
+
"additionalProperties": false,
|
|
188
|
+
"description": "一个表单字段到请求参数的映射。需要把字段值嵌入 URL、JSON 或 XML 字符串时,source 必须为 json_path,key 必须等于所选字段名,并在对应请求字符串中写 {{key}};其他 source 不会替换 {{key}}。",
|
|
189
|
+
"properties": {
|
|
190
|
+
"field": {
|
|
191
|
+
"$ref": "#/$defs/FieldSelector",
|
|
192
|
+
"description": "输入来源字段。"
|
|
193
|
+
},
|
|
194
|
+
"key": {
|
|
195
|
+
"description": "请求参数名。source 为 json_path 时必须等于 field 选中的字段名,并与请求字符串中的 {{key}} 完全一致。",
|
|
196
|
+
"minLength": 1,
|
|
197
|
+
"type": "string"
|
|
198
|
+
},
|
|
199
|
+
"source": {
|
|
200
|
+
"description": "字段值的写入位置。query_param、header、url_encoded 分别生成动态查询参数、请求头、表单项;json_path 替换 URL、JSON 或 XML 中的 {{key}}。不要用前三种 source 提供字符串占位符。",
|
|
201
|
+
"enum": [
|
|
202
|
+
"query_param",
|
|
203
|
+
"header",
|
|
204
|
+
"url_encoded",
|
|
205
|
+
"json_path"
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"required": [
|
|
210
|
+
"field",
|
|
211
|
+
"key",
|
|
212
|
+
"source"
|
|
213
|
+
],
|
|
214
|
+
"type": "object"
|
|
215
|
+
},
|
|
216
|
+
"QLinkerKeyValue": {
|
|
217
|
+
"additionalProperties": false,
|
|
218
|
+
"description": "HTTP 请求中的键值对。",
|
|
219
|
+
"properties": {
|
|
220
|
+
"key": {
|
|
221
|
+
"description": "参数名。",
|
|
222
|
+
"minLength": 1,
|
|
223
|
+
"type": "string"
|
|
224
|
+
},
|
|
225
|
+
"value": {
|
|
226
|
+
"description": "参数值;null 表示空值。",
|
|
227
|
+
"type": [
|
|
228
|
+
"string",
|
|
229
|
+
"null"
|
|
230
|
+
]
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"required": [
|
|
234
|
+
"key"
|
|
235
|
+
],
|
|
236
|
+
"type": "object"
|
|
237
|
+
},
|
|
238
|
+
"QLinkerOutputBinding": {
|
|
239
|
+
"additionalProperties": false,
|
|
240
|
+
"description": "一个响应值到表单目标字段的映射;同一实际目标字段在整个应用中只能被一个 Q-Linker 或代码块输出映射写入。",
|
|
241
|
+
"properties": {
|
|
242
|
+
"alias": {
|
|
243
|
+
"description": "输出别名;用于后续数据关联引用。",
|
|
244
|
+
"minLength": 1,
|
|
245
|
+
"type": "string"
|
|
246
|
+
},
|
|
247
|
+
"aliasId": {
|
|
248
|
+
"description": "后端生成的输出别名 ID;新增输出时省略,Builder 在首次写入后按 alias 与 path 自动回填再保存关系。更新已有输出时必须保留 get 返回值,不得自行编造或置空。",
|
|
249
|
+
"minimum": 1,
|
|
250
|
+
"type": "integer"
|
|
251
|
+
},
|
|
252
|
+
"path": {
|
|
253
|
+
"description": "从响应中取值的 JSONPath。",
|
|
254
|
+
"minLength": 1,
|
|
255
|
+
"type": "string"
|
|
256
|
+
},
|
|
257
|
+
"targetField": {
|
|
258
|
+
"$ref": "#/$defs/FieldSelector",
|
|
259
|
+
"description": "接收结果的当前表单字段;该字段在整个应用的全部 Q-Linker 和代码块 outputs 中只能作为 targetField 出现一次,不得被多个输出关系重复写入。"
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"required": [
|
|
263
|
+
"alias",
|
|
264
|
+
"path",
|
|
265
|
+
"targetField"
|
|
266
|
+
],
|
|
267
|
+
"type": "object"
|
|
268
|
+
},
|
|
269
|
+
"QLinkerRequest": {
|
|
270
|
+
"additionalProperties": false,
|
|
271
|
+
"description": "Q-Linker 远程 HTTP 请求配置。",
|
|
272
|
+
"properties": {
|
|
273
|
+
"autoTrigger": {
|
|
274
|
+
"description": "是否在输入变化时自动触发请求。",
|
|
275
|
+
"type": [
|
|
276
|
+
"boolean",
|
|
277
|
+
"null"
|
|
278
|
+
]
|
|
279
|
+
},
|
|
280
|
+
"bodyType": {
|
|
281
|
+
"default": "url_encoded",
|
|
282
|
+
"description": "请求体格式;分别映射后端 bodyType 1、2、3。",
|
|
283
|
+
"enum": [
|
|
284
|
+
"url_encoded",
|
|
285
|
+
"json",
|
|
286
|
+
"xml"
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
"customButtonText": {
|
|
290
|
+
"description": "自定义触发按钮文案。",
|
|
291
|
+
"type": [
|
|
292
|
+
"string",
|
|
293
|
+
"null"
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
"customButtonTextEnabled": {
|
|
297
|
+
"description": "是否启用自定义触发按钮文案。",
|
|
298
|
+
"type": [
|
|
299
|
+
"boolean",
|
|
300
|
+
"null"
|
|
301
|
+
]
|
|
302
|
+
},
|
|
303
|
+
"headers": {
|
|
304
|
+
"description": "请求头键值对。",
|
|
305
|
+
"items": {
|
|
306
|
+
"$ref": "#/$defs/QLinkerKeyValue"
|
|
307
|
+
},
|
|
308
|
+
"type": "array"
|
|
309
|
+
},
|
|
310
|
+
"hideOnForm": {
|
|
311
|
+
"description": "是否在表单填写界面隐藏该 Q-Linker 字段。",
|
|
312
|
+
"type": [
|
|
313
|
+
"boolean",
|
|
314
|
+
"null"
|
|
315
|
+
]
|
|
316
|
+
},
|
|
317
|
+
"insertValueDirectly": {
|
|
318
|
+
"description": "是否把请求结果直接写入目标字段。",
|
|
319
|
+
"type": [
|
|
320
|
+
"boolean",
|
|
321
|
+
"null"
|
|
322
|
+
]
|
|
323
|
+
},
|
|
324
|
+
"jsonValue": {
|
|
325
|
+
"description": "bodyType 为 json 时的 JSON 请求体字符串。动态字段值写成 {{key}},且 inputs 必须存在同名 source=json_path 映射;query_param、header、url_encoded 不会替换这里的占位符。",
|
|
326
|
+
"type": [
|
|
327
|
+
"string",
|
|
328
|
+
"null"
|
|
329
|
+
]
|
|
330
|
+
},
|
|
331
|
+
"method": {
|
|
332
|
+
"default": "GET",
|
|
333
|
+
"description": "HTTP 方法;当前 Q-Linker 仅支持 GET 和 POST,缺失时按 GET 处理。",
|
|
334
|
+
"enum": [
|
|
335
|
+
"GET",
|
|
336
|
+
"POST"
|
|
337
|
+
]
|
|
338
|
+
},
|
|
339
|
+
"queryParams": {
|
|
340
|
+
"description": "URL 查询参数键值对。",
|
|
341
|
+
"items": {
|
|
342
|
+
"$ref": "#/$defs/QLinkerKeyValue"
|
|
343
|
+
},
|
|
344
|
+
"type": "array"
|
|
345
|
+
},
|
|
346
|
+
"resultType": {
|
|
347
|
+
"default": "json",
|
|
348
|
+
"description": "响应解析格式;分别映射后端 resultType 1、2、3。",
|
|
349
|
+
"enum": [
|
|
350
|
+
"json",
|
|
351
|
+
"xml",
|
|
352
|
+
"text"
|
|
353
|
+
]
|
|
354
|
+
},
|
|
355
|
+
"url": {
|
|
356
|
+
"description": "请求 URL;动态嵌入字段值时使用 {{key}},并在 inputs 中提供同名 source=json_path 映射。",
|
|
357
|
+
"minLength": 1,
|
|
358
|
+
"type": "string"
|
|
359
|
+
},
|
|
360
|
+
"urlEncodedValue": {
|
|
361
|
+
"description": "bodyType 为 url_encoded 时的表单键值对。",
|
|
362
|
+
"items": {
|
|
363
|
+
"$ref": "#/$defs/QLinkerKeyValue"
|
|
364
|
+
},
|
|
365
|
+
"type": "array"
|
|
366
|
+
},
|
|
367
|
+
"xmlValue": {
|
|
368
|
+
"description": "bodyType 为 xml 时的 XML 请求体字符串。动态字段值写成 {{key}},且 inputs 必须存在同名 source=json_path 映射。",
|
|
369
|
+
"type": [
|
|
370
|
+
"string",
|
|
371
|
+
"null"
|
|
372
|
+
]
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
"required": [
|
|
376
|
+
"url"
|
|
377
|
+
],
|
|
378
|
+
"type": "object"
|
|
379
|
+
},
|
|
380
|
+
"ScalarDefaultValue": {
|
|
381
|
+
"description": "后端 queDefaultValue 支持的普通字段默认值;非空值必须是字符串,显式 null 表示清除默认值。数字和布尔值应先转换为字符串,对象和数组必须使用字段专用默认值配置。defaultType 为 3 时,通过 AppForm Schema 查询能力传入当前 schema_version 并设置 schema_kind=formula 获取公式语法、字段引用、运算符和全部函数说明;CLI 使用 builder app-form schema --schema-kind formula。需要配置结构化默认值时,传入当前 schema_version,并将字段的 questionType 作为 field_type 获取字段详细 Schema。",
|
|
382
|
+
"type": [
|
|
383
|
+
"null",
|
|
384
|
+
"string"
|
|
385
|
+
]
|
|
386
|
+
}
|
|
387
|
+
},
|
|
388
|
+
"$id": "https://builder.qingflow.com/schemas/app-form-apply/v1alpha1/fields/q_linker.json",
|
|
389
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
390
|
+
"allOf": [
|
|
391
|
+
{
|
|
392
|
+
"$ref": "#/$defs/FieldCommon"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"properties": {
|
|
396
|
+
"config": {
|
|
397
|
+
"$ref": "#/$defs/QLinkerConfig"
|
|
398
|
+
},
|
|
399
|
+
"questionType": {
|
|
400
|
+
"const": "q_linker"
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
"required": [
|
|
404
|
+
"questionType",
|
|
405
|
+
"config"
|
|
406
|
+
]
|
|
407
|
+
}
|
|
408
|
+
],
|
|
409
|
+
"title": "Qingflow AppForm v1alpha1 q_linker field",
|
|
410
|
+
"type": "object",
|
|
411
|
+
"unevaluatedProperties": false
|
|
412
|
+
}
|