@social-data/social-neuron-subscription 1.0.0-beta.2 → 1.0.0-beta.21
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/bin/cli.js +72 -8
- package/bin/install-skills.js +1 -1
- package/manifest.json +929 -81
- package/package.json +1 -1
- package/skills/social-neuron-subscription/SKILL.md +415 -31
package/manifest.json
CHANGED
|
@@ -1,9 +1,128 @@
|
|
|
1
1
|
{
|
|
2
|
-
"revision":
|
|
2
|
+
"revision": 9,
|
|
3
3
|
"capability": "subscription",
|
|
4
4
|
"command": "social-neuron-subscription",
|
|
5
|
+
"default_action": null,
|
|
5
6
|
"mcp_path": "/subscription/mcp",
|
|
6
7
|
"tools": [
|
|
8
|
+
{
|
|
9
|
+
"action": "get-field-values",
|
|
10
|
+
"op": "get_field_values",
|
|
11
|
+
"name": "subscription/get_field_values",
|
|
12
|
+
"summary": "取字段值字典 [{code, value}];**仅在需要把导出的码值换成中文时按需取用**。",
|
|
13
|
+
"description": "取字段值字典 [{code, value}];**仅在需要把导出的码值换成中文时按需取用**。\n\n枚举字段与编码字段统一走这里(值从哪来是元数据内部的事,对外只有\"有没有字典\"之分)。\n\n换值**不是订阅的标准步骤**:导出文件默认按大库原值交付,只有调用方(或其用户)明确要求\n中文时才用这份字典自行替换 —— 系统不做出参自动回显,也不读产出的文件。\n\n**空列表原样返回**:不在出参里猜原因 —— \"该字段真是明文(本就无字典)\"与\"元数据侧没配值来源\"\n在出参上无法区分,猜错反而误导(说成\"直接当原值用\"会让调用方把一列 code 当中文发出去)。",
|
|
14
|
+
"input_schema": {
|
|
15
|
+
"additionalProperties": false,
|
|
16
|
+
"properties": {
|
|
17
|
+
"field": {
|
|
18
|
+
"description": "字段 name_en(取自 list_fields);仅 is_enum / is_code 为真的字段有值字典(按需取用:只有要把导出的码值换成中文时才需要)",
|
|
19
|
+
"title": "Field",
|
|
20
|
+
"type": "string"
|
|
21
|
+
},
|
|
22
|
+
"keyword": {
|
|
23
|
+
"anyOf": [
|
|
24
|
+
{
|
|
25
|
+
"maxLength": 64,
|
|
26
|
+
"type": "string"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "null"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"default": null,
|
|
33
|
+
"description": "按中文值 / code 模糊过滤(如品牌搜「兰」);不传=全量,编码类字段(品牌/品类标签)可上千条,建议带",
|
|
34
|
+
"title": "Keyword"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"required": [
|
|
38
|
+
"field"
|
|
39
|
+
],
|
|
40
|
+
"title": "SubFieldValuesInput",
|
|
41
|
+
"type": "object"
|
|
42
|
+
},
|
|
43
|
+
"output_schema": {
|
|
44
|
+
"$defs": {
|
|
45
|
+
"SubFieldValue": {
|
|
46
|
+
"additionalProperties": false,
|
|
47
|
+
"description": "值字典的一项。\n\n刻意**不复用** ``commons.metadata.schemas.values.FieldValue``:那是元数据面的内部契约,\n字段说明里带着上游系统的字段名(``tagCode`` / ``tagName`` 之类),对外没有意义也不该暴露。\n这里只说调用方需要知道的两件事:导出列里存的是什么、对应的中文是什么。",
|
|
48
|
+
"properties": {
|
|
49
|
+
"code": {
|
|
50
|
+
"description": "编码值 —— 导出列里实际存的那个值(如 1、V200500020023)",
|
|
51
|
+
"title": "Code",
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
54
|
+
"value": {
|
|
55
|
+
"description": "该编码值对应的中文",
|
|
56
|
+
"title": "Value",
|
|
57
|
+
"type": "string"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"required": [
|
|
61
|
+
"code",
|
|
62
|
+
"value"
|
|
63
|
+
],
|
|
64
|
+
"title": "SubFieldValue",
|
|
65
|
+
"type": "object"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"additionalProperties": false,
|
|
69
|
+
"properties": {
|
|
70
|
+
"field": {
|
|
71
|
+
"description": "字段 name_en(回显入参)",
|
|
72
|
+
"title": "Field",
|
|
73
|
+
"type": "string"
|
|
74
|
+
},
|
|
75
|
+
"items": {
|
|
76
|
+
"description": "值字典 [{code, value}]:code 是导出列里存的值,value 是对应中文;明文字段无字典,返回空列表",
|
|
77
|
+
"items": {
|
|
78
|
+
"$ref": "#/$defs/SubFieldValue"
|
|
79
|
+
},
|
|
80
|
+
"title": "Items",
|
|
81
|
+
"type": "array"
|
|
82
|
+
},
|
|
83
|
+
"total": {
|
|
84
|
+
"description": "值总数",
|
|
85
|
+
"title": "Total",
|
|
86
|
+
"type": "integer"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"required": [
|
|
90
|
+
"field",
|
|
91
|
+
"items",
|
|
92
|
+
"total"
|
|
93
|
+
],
|
|
94
|
+
"title": "SubFieldValueList",
|
|
95
|
+
"type": "object"
|
|
96
|
+
},
|
|
97
|
+
"flags": [
|
|
98
|
+
{
|
|
99
|
+
"flag": "--field",
|
|
100
|
+
"field": "field",
|
|
101
|
+
"type": "string",
|
|
102
|
+
"required": true,
|
|
103
|
+
"desc": "字段 name_en(取自 list_fields);仅 is_enum / is_code 为真的字段有值字典(按需取用:只有要把导出的码值换成中文时才需要)"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"flag": "--keyword",
|
|
107
|
+
"field": "keyword",
|
|
108
|
+
"type": "string",
|
|
109
|
+
"required": false,
|
|
110
|
+
"desc": "按中文值 / code 模糊过滤(如品牌搜「兰」);不传=全量,编码类字段(品牌/品类标签)可上千条,建议带"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"transport": {
|
|
114
|
+
"method": "POST",
|
|
115
|
+
"path": "/subscription/get_field_values",
|
|
116
|
+
"send": "args"
|
|
117
|
+
},
|
|
118
|
+
"errors": [
|
|
119
|
+
"auth_error",
|
|
120
|
+
"validation",
|
|
121
|
+
"api_error",
|
|
122
|
+
"network",
|
|
123
|
+
"internal"
|
|
124
|
+
]
|
|
125
|
+
},
|
|
7
126
|
{
|
|
8
127
|
"action": "job-create",
|
|
9
128
|
"op": "job_create",
|
|
@@ -84,7 +203,7 @@
|
|
|
84
203
|
},
|
|
85
204
|
"SftpTarget": {
|
|
86
205
|
"additionalProperties": false,
|
|
87
|
-
"description": "sftp(本期):把导出文件上传到 SFTP
|
|
206
|
+
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task\n重跑多少次,远端路径与文件名都不变。",
|
|
88
207
|
"properties": {
|
|
89
208
|
"type": {
|
|
90
209
|
"const": "sftp",
|
|
@@ -114,10 +233,23 @@
|
|
|
114
233
|
"type": "string"
|
|
115
234
|
},
|
|
116
235
|
"remote_path": {
|
|
117
|
-
"description": "
|
|
236
|
+
"description": "远端目录/路径。可在**任意一层**用日期变量,但变量必须**独占一层**:`/data/sub/yyyyMM/yyyyMMdd` 合法,`/data/sub_yyyyMMdd` 非法。只认 yyyyMMdd / yyyyMM / yyyy 三种;不允许 '..'、空目录层。",
|
|
118
237
|
"title": "Remote Path",
|
|
119
238
|
"type": "string"
|
|
120
239
|
},
|
|
240
|
+
"filename_template": {
|
|
241
|
+
"anyOf": [
|
|
242
|
+
{
|
|
243
|
+
"type": "string"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"type": "null"
|
|
247
|
+
}
|
|
248
|
+
],
|
|
249
|
+
"default": null,
|
|
250
|
+
"description": "自定义文件名模板(不含扩展名)。只允许字母、数字、'_'、'-' 与日期变量,且变量前后必须是 '_' 或首尾:`daily_yyyyMMdd_export`、`yyyyMM_summary` 合法,`dailyyyyyMMdd`、`report-yyyyMMdd-x` 非法。系统统一追加 `_<task_id>` 与扩展名。不传=沿用默认 `<job_id>_<task_id>.<ext>`。",
|
|
251
|
+
"title": "Filename Template"
|
|
252
|
+
},
|
|
121
253
|
"format": {
|
|
122
254
|
"default": "json",
|
|
123
255
|
"description": "文件格式:csv/excel/json(默认 json)",
|
|
@@ -139,12 +271,38 @@
|
|
|
139
271
|
],
|
|
140
272
|
"title": "SftpTarget",
|
|
141
273
|
"type": "object"
|
|
274
|
+
},
|
|
275
|
+
"TopSpec": {
|
|
276
|
+
"additionalProperties": false,
|
|
277
|
+
"description": "全局TopN排序规格(subscription专用)。",
|
|
278
|
+
"properties": {
|
|
279
|
+
"field": {
|
|
280
|
+
"description": "排序字段(name_en);仅支持可排序类型(keyword/long/double/date)",
|
|
281
|
+
"title": "Field",
|
|
282
|
+
"type": "string"
|
|
283
|
+
},
|
|
284
|
+
"order": {
|
|
285
|
+
"default": "desc",
|
|
286
|
+
"description": "排序方向:desc降序(取最大的N个)/asc升序(取最小的N个)",
|
|
287
|
+
"enum": [
|
|
288
|
+
"asc",
|
|
289
|
+
"desc"
|
|
290
|
+
],
|
|
291
|
+
"title": "Order",
|
|
292
|
+
"type": "string"
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
"required": [
|
|
296
|
+
"field"
|
|
297
|
+
],
|
|
298
|
+
"title": "TopSpec",
|
|
299
|
+
"type": "object"
|
|
142
300
|
}
|
|
143
301
|
},
|
|
144
302
|
"additionalProperties": false,
|
|
145
303
|
"properties": {
|
|
146
304
|
"name": {
|
|
147
|
-
"description": "job
|
|
305
|
+
"description": "job 名称,同一凭证(token)下唯一",
|
|
148
306
|
"maxLength": 128,
|
|
149
307
|
"minLength": 1,
|
|
150
308
|
"title": "Name",
|
|
@@ -171,15 +329,39 @@
|
|
|
171
329
|
"type": "array"
|
|
172
330
|
},
|
|
173
331
|
"published": {
|
|
174
|
-
"description": "
|
|
175
|
-
"
|
|
176
|
-
"T-0",
|
|
177
|
-
"T-1",
|
|
178
|
-
"T-7"
|
|
179
|
-
],
|
|
332
|
+
"description": "**发布时间**口径(必填,主口径 —— 它同时决定查哪个月的索引、怎么拆分片,所以不能缺省)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。",
|
|
333
|
+
"pattern": "^(?:T-\\d+~T-\\d+|T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d~T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d)$",
|
|
180
334
|
"title": "Published",
|
|
181
335
|
"type": "string"
|
|
182
336
|
},
|
|
337
|
+
"idate": {
|
|
338
|
+
"anyOf": [
|
|
339
|
+
{
|
|
340
|
+
"pattern": "^(?:T-\\d+~T-\\d+|T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d~T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d)$",
|
|
341
|
+
"type": "string"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"type": "null"
|
|
345
|
+
}
|
|
346
|
+
],
|
|
347
|
+
"default": null,
|
|
348
|
+
"description": "**入库时间**口径(选填,不传=该维度不过滤)。在发布时间窗**之内**再 AND 一层:入库时间落在本区间的数据。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。",
|
|
349
|
+
"title": "Idate"
|
|
350
|
+
},
|
|
351
|
+
"udate": {
|
|
352
|
+
"anyOf": [
|
|
353
|
+
{
|
|
354
|
+
"pattern": "^(?:T-\\d+~T-\\d+|T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d~T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d)$",
|
|
355
|
+
"type": "string"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"type": "null"
|
|
359
|
+
}
|
|
360
|
+
],
|
|
361
|
+
"default": null,
|
|
362
|
+
"description": "**更新时间**口径(选填,不传=该维度不过滤)。在发布时间窗**之内**再 AND 一层:更新时间落在本区间的数据。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。",
|
|
363
|
+
"title": "Udate"
|
|
364
|
+
},
|
|
183
365
|
"frequency": {
|
|
184
366
|
"description": "自然语言同步频率,系统转 cron(东八区)。可指定具体时间、并**支持一天多次**:如「每天9点」「每天9点和15点」(一天跑两次)「每周一9点」「每小时」「每30分钟」。无法解析为 cron 会被拒绝。",
|
|
185
367
|
"maxLength": 64,
|
|
@@ -196,6 +378,21 @@
|
|
|
196
378
|
"title": "Fields",
|
|
197
379
|
"type": "array"
|
|
198
380
|
},
|
|
381
|
+
"size": {
|
|
382
|
+
"anyOf": [
|
|
383
|
+
{
|
|
384
|
+
"maximum": 500000,
|
|
385
|
+
"minimum": 1,
|
|
386
|
+
"type": "integer"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"type": "null"
|
|
390
|
+
}
|
|
391
|
+
],
|
|
392
|
+
"default": null,
|
|
393
|
+
"description": "每次执行最多导出的记录行数。省略则按模式取默认:取全部命中 500,000(同时是上限);传了 top(只取前 N 条)则默认 1,000、上限 10,000",
|
|
394
|
+
"title": "Size"
|
|
395
|
+
},
|
|
199
396
|
"target": {
|
|
200
397
|
"anyOf": [
|
|
201
398
|
{
|
|
@@ -224,8 +421,24 @@
|
|
|
224
421
|
}
|
|
225
422
|
],
|
|
226
423
|
"default": null,
|
|
227
|
-
"description": "投递目标;省略默认 octo(
|
|
424
|
+
"description": "投递目标;省略默认 octo(json)。本期支持 octo(上传存储→CDN url)与 sftp(账密上传远端,路径/文件名可用日期变量);kafka: 暂未实现。",
|
|
228
425
|
"title": "Target"
|
|
426
|
+
},
|
|
427
|
+
"top": {
|
|
428
|
+
"anyOf": [
|
|
429
|
+
{
|
|
430
|
+
"items": {
|
|
431
|
+
"$ref": "#/$defs/TopSpec"
|
|
432
|
+
},
|
|
433
|
+
"type": "array"
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
"type": "null"
|
|
437
|
+
}
|
|
438
|
+
],
|
|
439
|
+
"default": null,
|
|
440
|
+
"description": "只取前 N 条(可选)。**不改变筛选条件** —— 省略时给命中条件的全部数据,传了则在同一批命中结果里按指定字段排序、只取前 size 条。排序跨发布窗内所有日期 / 站点 / 规则**全局生效**(不是每天各取 N)。多字段按顺序作排序优先级(前者相同时比后者)。字段必须是可排序类型(keyword / long / double / date)。该模式下 size 默认 1,000、最大 10,000;且多条规则改为 OR 合并并去重,导出的 kw_ruleId 恒为 topN、无法区分来源规则",
|
|
441
|
+
"title": "Top"
|
|
229
442
|
}
|
|
230
443
|
},
|
|
231
444
|
"required": [
|
|
@@ -240,15 +453,15 @@
|
|
|
240
453
|
},
|
|
241
454
|
"output_schema": {
|
|
242
455
|
"additionalProperties": false,
|
|
243
|
-
"description": "订阅 job
|
|
456
|
+
"description": "订阅 job 出参对象。",
|
|
244
457
|
"properties": {
|
|
245
458
|
"job_id": {
|
|
246
|
-
"description": "job ID
|
|
459
|
+
"description": "job ID",
|
|
247
460
|
"title": "Job Id",
|
|
248
461
|
"type": "integer"
|
|
249
462
|
},
|
|
250
463
|
"name": {
|
|
251
|
-
"description": "job
|
|
464
|
+
"description": "job 名称,同一凭证(token)下唯一",
|
|
252
465
|
"title": "Name",
|
|
253
466
|
"type": "string"
|
|
254
467
|
},
|
|
@@ -269,10 +482,34 @@
|
|
|
269
482
|
"type": "array"
|
|
270
483
|
},
|
|
271
484
|
"published": {
|
|
272
|
-
"description": "
|
|
485
|
+
"description": "发布时间口径(相对,支持按天或按分钟);触发时按 task_time 折算成绝对时间区间",
|
|
273
486
|
"title": "Published",
|
|
274
487
|
"type": "string"
|
|
275
488
|
},
|
|
489
|
+
"idate": {
|
|
490
|
+
"anyOf": [
|
|
491
|
+
{
|
|
492
|
+
"type": "string"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"type": "null"
|
|
496
|
+
}
|
|
497
|
+
],
|
|
498
|
+
"description": "入库时间口径(相对,按天或按分钟);null=该维度不过滤",
|
|
499
|
+
"title": "Idate"
|
|
500
|
+
},
|
|
501
|
+
"udate": {
|
|
502
|
+
"anyOf": [
|
|
503
|
+
{
|
|
504
|
+
"type": "string"
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"type": "null"
|
|
508
|
+
}
|
|
509
|
+
],
|
|
510
|
+
"description": "更新时间口径(相对,按天或按分钟);null=该维度不过滤",
|
|
511
|
+
"title": "Udate"
|
|
512
|
+
},
|
|
276
513
|
"fields": {
|
|
277
514
|
"description": "拉取/导出字段(空=全量)",
|
|
278
515
|
"items": {
|
|
@@ -281,6 +518,28 @@
|
|
|
281
518
|
"title": "Fields",
|
|
282
519
|
"type": "array"
|
|
283
520
|
},
|
|
521
|
+
"size": {
|
|
522
|
+
"description": "每次执行最多导出的记录行数;取全部命中时上限 500000,只取前 N 条时上限 10000",
|
|
523
|
+
"title": "Size",
|
|
524
|
+
"type": "integer"
|
|
525
|
+
},
|
|
526
|
+
"top": {
|
|
527
|
+
"anyOf": [
|
|
528
|
+
{
|
|
529
|
+
"items": {
|
|
530
|
+
"additionalProperties": true,
|
|
531
|
+
"type": "object"
|
|
532
|
+
},
|
|
533
|
+
"type": "array"
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
"type": "null"
|
|
537
|
+
}
|
|
538
|
+
],
|
|
539
|
+
"default": null,
|
|
540
|
+
"description": "只取前 N 条的排序定义 [{field, order}];null = 给命中条件的全部数据。非 null 时每次执行只取按该排序排在前 size 条的数据",
|
|
541
|
+
"title": "Top"
|
|
542
|
+
},
|
|
284
543
|
"frequency": {
|
|
285
544
|
"description": "自然语言频率",
|
|
286
545
|
"title": "Frequency",
|
|
@@ -292,7 +551,7 @@
|
|
|
292
551
|
"type": "string"
|
|
293
552
|
},
|
|
294
553
|
"target_type": {
|
|
295
|
-
"description": "投递类型:octo(
|
|
554
|
+
"description": "投递类型:octo、sftp、kafka(暂不支持)",
|
|
296
555
|
"title": "Target Type",
|
|
297
556
|
"type": "string"
|
|
298
557
|
},
|
|
@@ -324,7 +583,10 @@
|
|
|
324
583
|
"rule_ids",
|
|
325
584
|
"source",
|
|
326
585
|
"published",
|
|
586
|
+
"idate",
|
|
587
|
+
"udate",
|
|
327
588
|
"fields",
|
|
589
|
+
"size",
|
|
328
590
|
"frequency",
|
|
329
591
|
"cron",
|
|
330
592
|
"target_type",
|
|
@@ -342,28 +604,42 @@
|
|
|
342
604
|
"field": "name",
|
|
343
605
|
"type": "string",
|
|
344
606
|
"required": true,
|
|
345
|
-
"desc": "job
|
|
607
|
+
"desc": "job 名称,同一凭证(token)下唯一"
|
|
346
608
|
},
|
|
347
609
|
{
|
|
348
610
|
"flag": "--rule-ids",
|
|
349
611
|
"field": "rule_ids",
|
|
350
|
-
"type": "list[str]",
|
|
612
|
+
"type": "list[str](json)",
|
|
351
613
|
"required": true,
|
|
352
614
|
"desc": "魔方规则ID数组,至少 1 个"
|
|
353
615
|
},
|
|
354
616
|
{
|
|
355
617
|
"flag": "--source",
|
|
356
618
|
"field": "source",
|
|
357
|
-
"type": "list[str]",
|
|
619
|
+
"type": "list[str](json)",
|
|
358
620
|
"required": true,
|
|
359
621
|
"desc": "站点数组,至少 1 个;只能取已配置站点"
|
|
360
622
|
},
|
|
361
623
|
{
|
|
362
624
|
"flag": "--published",
|
|
363
625
|
"field": "published",
|
|
364
|
-
"type": "
|
|
626
|
+
"type": "string",
|
|
365
627
|
"required": true,
|
|
366
|
-
"desc": "
|
|
628
|
+
"desc": "**发布时间**口径(必填,主口径 —— 它同时决定查哪个月的索引、怎么拆分片,所以不能缺省)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。"
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"flag": "--idate",
|
|
632
|
+
"field": "idate",
|
|
633
|
+
"type": "string",
|
|
634
|
+
"required": false,
|
|
635
|
+
"desc": "**入库时间**口径(选填,不传=该维度不过滤)。在发布时间窗**之内**再 AND 一层:入库时间落在本区间的数据。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。"
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"flag": "--udate",
|
|
639
|
+
"field": "udate",
|
|
640
|
+
"type": "string",
|
|
641
|
+
"required": false,
|
|
642
|
+
"desc": "**更新时间**口径(选填,不传=该维度不过滤)。在发布时间窗**之内**再 AND 一层:更新时间落在本区间的数据。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。"
|
|
367
643
|
},
|
|
368
644
|
{
|
|
369
645
|
"flag": "--frequency",
|
|
@@ -375,16 +651,30 @@
|
|
|
375
651
|
{
|
|
376
652
|
"flag": "--fields",
|
|
377
653
|
"field": "fields",
|
|
378
|
-
"type": "list[str]",
|
|
654
|
+
"type": "list[str](json)",
|
|
379
655
|
"required": false,
|
|
380
656
|
"desc": "拉取/导出字段;不填拉全量"
|
|
381
657
|
},
|
|
658
|
+
{
|
|
659
|
+
"flag": "--size",
|
|
660
|
+
"field": "size",
|
|
661
|
+
"type": "integer",
|
|
662
|
+
"required": false,
|
|
663
|
+
"desc": "每次执行最多导出的记录行数。省略则按模式取默认:取全部命中 500,000(同时是上限);传了 top(只取前 N 条)则默认 1,000、上限 10,000"
|
|
664
|
+
},
|
|
382
665
|
{
|
|
383
666
|
"flag": "--target",
|
|
384
667
|
"field": "target",
|
|
385
668
|
"type": "object(json)",
|
|
386
669
|
"required": false,
|
|
387
|
-
"desc": "投递目标;省略默认 octo(
|
|
670
|
+
"desc": "投递目标;省略默认 octo(json)。本期支持 octo(上传存储→CDN url)与 sftp(账密上传远端,路径/文件名可用日期变量);kafka: 暂未实现。"
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"flag": "--top",
|
|
674
|
+
"field": "top",
|
|
675
|
+
"type": "list[object](json)",
|
|
676
|
+
"required": false,
|
|
677
|
+
"desc": "只取前 N 条(可选)。**不改变筛选条件** —— 省略时给命中条件的全部数据,传了则在同一批命中结果里按指定字段排序、只取前 size 条。排序跨发布窗内所有日期 / 站点 / 规则**全局生效**(不是每天各取 N)。多字段按顺序作排序优先级(前者相同时比后者)。字段必须是可排序类型(keyword / long / double / date)。该模式下 size 默认 1,000、最大 10,000;且多条规则改为 OR 合并并去重,导出的 kw_ruleId 恒为 topN、无法区分来源规则"
|
|
388
678
|
}
|
|
389
679
|
],
|
|
390
680
|
"transport": {
|
|
@@ -498,15 +788,15 @@
|
|
|
498
788
|
"$defs": {
|
|
499
789
|
"SubJob": {
|
|
500
790
|
"additionalProperties": false,
|
|
501
|
-
"description": "订阅 job
|
|
791
|
+
"description": "订阅 job 出参对象。",
|
|
502
792
|
"properties": {
|
|
503
793
|
"job_id": {
|
|
504
|
-
"description": "job ID
|
|
794
|
+
"description": "job ID",
|
|
505
795
|
"title": "Job Id",
|
|
506
796
|
"type": "integer"
|
|
507
797
|
},
|
|
508
798
|
"name": {
|
|
509
|
-
"description": "job
|
|
799
|
+
"description": "job 名称,同一凭证(token)下唯一",
|
|
510
800
|
"title": "Name",
|
|
511
801
|
"type": "string"
|
|
512
802
|
},
|
|
@@ -527,10 +817,34 @@
|
|
|
527
817
|
"type": "array"
|
|
528
818
|
},
|
|
529
819
|
"published": {
|
|
530
|
-
"description": "
|
|
820
|
+
"description": "发布时间口径(相对,支持按天或按分钟);触发时按 task_time 折算成绝对时间区间",
|
|
531
821
|
"title": "Published",
|
|
532
822
|
"type": "string"
|
|
533
823
|
},
|
|
824
|
+
"idate": {
|
|
825
|
+
"anyOf": [
|
|
826
|
+
{
|
|
827
|
+
"type": "string"
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
"type": "null"
|
|
831
|
+
}
|
|
832
|
+
],
|
|
833
|
+
"description": "入库时间口径(相对,按天或按分钟);null=该维度不过滤",
|
|
834
|
+
"title": "Idate"
|
|
835
|
+
},
|
|
836
|
+
"udate": {
|
|
837
|
+
"anyOf": [
|
|
838
|
+
{
|
|
839
|
+
"type": "string"
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"type": "null"
|
|
843
|
+
}
|
|
844
|
+
],
|
|
845
|
+
"description": "更新时间口径(相对,按天或按分钟);null=该维度不过滤",
|
|
846
|
+
"title": "Udate"
|
|
847
|
+
},
|
|
534
848
|
"fields": {
|
|
535
849
|
"description": "拉取/导出字段(空=全量)",
|
|
536
850
|
"items": {
|
|
@@ -539,6 +853,28 @@
|
|
|
539
853
|
"title": "Fields",
|
|
540
854
|
"type": "array"
|
|
541
855
|
},
|
|
856
|
+
"size": {
|
|
857
|
+
"description": "每次执行最多导出的记录行数;取全部命中时上限 500000,只取前 N 条时上限 10000",
|
|
858
|
+
"title": "Size",
|
|
859
|
+
"type": "integer"
|
|
860
|
+
},
|
|
861
|
+
"top": {
|
|
862
|
+
"anyOf": [
|
|
863
|
+
{
|
|
864
|
+
"items": {
|
|
865
|
+
"additionalProperties": true,
|
|
866
|
+
"type": "object"
|
|
867
|
+
},
|
|
868
|
+
"type": "array"
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
"type": "null"
|
|
872
|
+
}
|
|
873
|
+
],
|
|
874
|
+
"default": null,
|
|
875
|
+
"description": "只取前 N 条的排序定义 [{field, order}];null = 给命中条件的全部数据。非 null 时每次执行只取按该排序排在前 size 条的数据",
|
|
876
|
+
"title": "Top"
|
|
877
|
+
},
|
|
542
878
|
"frequency": {
|
|
543
879
|
"description": "自然语言频率",
|
|
544
880
|
"title": "Frequency",
|
|
@@ -550,7 +886,7 @@
|
|
|
550
886
|
"type": "string"
|
|
551
887
|
},
|
|
552
888
|
"target_type": {
|
|
553
|
-
"description": "投递类型:octo(
|
|
889
|
+
"description": "投递类型:octo、sftp、kafka(暂不支持)",
|
|
554
890
|
"title": "Target Type",
|
|
555
891
|
"type": "string"
|
|
556
892
|
},
|
|
@@ -582,7 +918,10 @@
|
|
|
582
918
|
"rule_ids",
|
|
583
919
|
"source",
|
|
584
920
|
"published",
|
|
921
|
+
"idate",
|
|
922
|
+
"udate",
|
|
585
923
|
"fields",
|
|
924
|
+
"size",
|
|
586
925
|
"frequency",
|
|
587
926
|
"cron",
|
|
588
927
|
"target_type",
|
|
@@ -644,8 +983,8 @@
|
|
|
644
983
|
"action": "job-trigger",
|
|
645
984
|
"op": "job_trigger",
|
|
646
985
|
"name": "subscription/job_trigger",
|
|
647
|
-
"summary": "临时触发一次本人 job,落一条
|
|
648
|
-
"description": "临时触发一次本人 job,落一条
|
|
986
|
+
"summary": "临时触发一次本人 job,落一条 ik_subscription_task(manual);默认用 job 存的 target,可覆盖。",
|
|
987
|
+
"description": "临时触发一次本人 job,落一条 ik_subscription_task(manual);默认用 job 存的 target,可覆盖。\n\n落 pending task 后触发 Airflow DAG(``social_capability_subscription``)\n跑取数→组装→投递(上传取 url);\n未配 airflow_base_url 时(本地/测试)触发被跳过,仅留 pending task。**无通知**:结果落\n``file_info.url``,调用方轮询 ``task-list`` 拉取。",
|
|
649
988
|
"input_schema": {
|
|
650
989
|
"$defs": {
|
|
651
990
|
"KafkaTarget": {
|
|
@@ -720,7 +1059,7 @@
|
|
|
720
1059
|
},
|
|
721
1060
|
"SftpTarget": {
|
|
722
1061
|
"additionalProperties": false,
|
|
723
|
-
"description": "sftp(本期):把导出文件上传到 SFTP
|
|
1062
|
+
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task\n重跑多少次,远端路径与文件名都不变。",
|
|
724
1063
|
"properties": {
|
|
725
1064
|
"type": {
|
|
726
1065
|
"const": "sftp",
|
|
@@ -750,10 +1089,23 @@
|
|
|
750
1089
|
"type": "string"
|
|
751
1090
|
},
|
|
752
1091
|
"remote_path": {
|
|
753
|
-
"description": "
|
|
1092
|
+
"description": "远端目录/路径。可在**任意一层**用日期变量,但变量必须**独占一层**:`/data/sub/yyyyMM/yyyyMMdd` 合法,`/data/sub_yyyyMMdd` 非法。只认 yyyyMMdd / yyyyMM / yyyy 三种;不允许 '..'、空目录层。",
|
|
754
1093
|
"title": "Remote Path",
|
|
755
1094
|
"type": "string"
|
|
756
1095
|
},
|
|
1096
|
+
"filename_template": {
|
|
1097
|
+
"anyOf": [
|
|
1098
|
+
{
|
|
1099
|
+
"type": "string"
|
|
1100
|
+
},
|
|
1101
|
+
{
|
|
1102
|
+
"type": "null"
|
|
1103
|
+
}
|
|
1104
|
+
],
|
|
1105
|
+
"default": null,
|
|
1106
|
+
"description": "自定义文件名模板(不含扩展名)。只允许字母、数字、'_'、'-' 与日期变量,且变量前后必须是 '_' 或首尾:`daily_yyyyMMdd_export`、`yyyyMM_summary` 合法,`dailyyyyyMMdd`、`report-yyyyMMdd-x` 非法。系统统一追加 `_<task_id>` 与扩展名。不传=沿用默认 `<job_id>_<task_id>.<ext>`。",
|
|
1107
|
+
"title": "Filename Template"
|
|
1108
|
+
},
|
|
757
1109
|
"format": {
|
|
758
1110
|
"default": "json",
|
|
759
1111
|
"description": "文件格式:csv/excel/json(默认 json)",
|
|
@@ -787,6 +1139,7 @@
|
|
|
787
1139
|
"start_time": {
|
|
788
1140
|
"anyOf": [
|
|
789
1141
|
{
|
|
1142
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T(?:[01]\\d|2[0-3]):[0-5]\\d)?$",
|
|
790
1143
|
"type": "string"
|
|
791
1144
|
},
|
|
792
1145
|
{
|
|
@@ -794,12 +1147,13 @@
|
|
|
794
1147
|
}
|
|
795
1148
|
],
|
|
796
1149
|
"default": null,
|
|
797
|
-
"description": "
|
|
1150
|
+
"description": "**发布时间**闭区间下界(东八区)。支持 yyyy-MM-dd(整日)、yyyy-MM-ddTHH:mm(整分钟);与 end_time 同传同不传;不传则按 job 上的 published 相对口径折算",
|
|
798
1151
|
"title": "Start Time"
|
|
799
1152
|
},
|
|
800
1153
|
"end_time": {
|
|
801
1154
|
"anyOf": [
|
|
802
1155
|
{
|
|
1156
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T(?:[01]\\d|2[0-3]):[0-5]\\d)?$",
|
|
803
1157
|
"type": "string"
|
|
804
1158
|
},
|
|
805
1159
|
{
|
|
@@ -807,39 +1161,110 @@
|
|
|
807
1161
|
}
|
|
808
1162
|
],
|
|
809
1163
|
"default": null,
|
|
810
|
-
"description": "
|
|
1164
|
+
"description": "**发布时间**闭区间上界(东八区,精度须与下界一致);日期包含整日,分钟包含整分钟",
|
|
811
1165
|
"title": "End Time"
|
|
812
1166
|
},
|
|
813
|
-
"
|
|
1167
|
+
"idate_start": {
|
|
814
1168
|
"anyOf": [
|
|
815
1169
|
{
|
|
816
|
-
"
|
|
817
|
-
|
|
818
|
-
"kafka": "#/$defs/KafkaTarget",
|
|
819
|
-
"octo": "#/$defs/OctoTarget",
|
|
820
|
-
"sftp": "#/$defs/SftpTarget"
|
|
821
|
-
},
|
|
822
|
-
"propertyName": "type"
|
|
823
|
-
},
|
|
824
|
-
"oneOf": [
|
|
825
|
-
{
|
|
826
|
-
"$ref": "#/$defs/OctoTarget"
|
|
827
|
-
},
|
|
828
|
-
{
|
|
829
|
-
"$ref": "#/$defs/SftpTarget"
|
|
830
|
-
},
|
|
831
|
-
{
|
|
832
|
-
"$ref": "#/$defs/KafkaTarget"
|
|
833
|
-
}
|
|
834
|
-
]
|
|
1170
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T(?:[01]\\d|2[0-3]):[0-5]\\d)?$",
|
|
1171
|
+
"type": "string"
|
|
835
1172
|
},
|
|
836
1173
|
{
|
|
837
1174
|
"type": "null"
|
|
838
1175
|
}
|
|
839
1176
|
],
|
|
840
1177
|
"default": null,
|
|
841
|
-
"description": "
|
|
842
|
-
"title": "
|
|
1178
|
+
"description": "**入库时间**闭区间下界(东八区,支持日期/分钟);与 idate_end 同传同不传;不传则按 job 上的 idate 相对口径折算,job 也没配=该维度不过滤",
|
|
1179
|
+
"title": "Idate Start"
|
|
1180
|
+
},
|
|
1181
|
+
"idate_end": {
|
|
1182
|
+
"anyOf": [
|
|
1183
|
+
{
|
|
1184
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T(?:[01]\\d|2[0-3]):[0-5]\\d)?$",
|
|
1185
|
+
"type": "string"
|
|
1186
|
+
},
|
|
1187
|
+
{
|
|
1188
|
+
"type": "null"
|
|
1189
|
+
}
|
|
1190
|
+
],
|
|
1191
|
+
"default": null,
|
|
1192
|
+
"description": "本次**入库时间**闭区间上界(东八区,精度须与下界一致)",
|
|
1193
|
+
"title": "Idate End"
|
|
1194
|
+
},
|
|
1195
|
+
"udate_start": {
|
|
1196
|
+
"anyOf": [
|
|
1197
|
+
{
|
|
1198
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T(?:[01]\\d|2[0-3]):[0-5]\\d)?$",
|
|
1199
|
+
"type": "string"
|
|
1200
|
+
},
|
|
1201
|
+
{
|
|
1202
|
+
"type": "null"
|
|
1203
|
+
}
|
|
1204
|
+
],
|
|
1205
|
+
"default": null,
|
|
1206
|
+
"description": "**更新时间**闭区间下界(东八区,支持日期/分钟);与 udate_end 同传同不传;不传则按 job 上的 udate 相对口径折算,job 也没配=该维度不过滤",
|
|
1207
|
+
"title": "Udate Start"
|
|
1208
|
+
},
|
|
1209
|
+
"udate_end": {
|
|
1210
|
+
"anyOf": [
|
|
1211
|
+
{
|
|
1212
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T(?:[01]\\d|2[0-3]):[0-5]\\d)?$",
|
|
1213
|
+
"type": "string"
|
|
1214
|
+
},
|
|
1215
|
+
{
|
|
1216
|
+
"type": "null"
|
|
1217
|
+
}
|
|
1218
|
+
],
|
|
1219
|
+
"default": null,
|
|
1220
|
+
"description": "**更新时间**闭区间上界(东八区,精度须与下界一致)",
|
|
1221
|
+
"title": "Udate End"
|
|
1222
|
+
},
|
|
1223
|
+
"target": {
|
|
1224
|
+
"anyOf": [
|
|
1225
|
+
{
|
|
1226
|
+
"discriminator": {
|
|
1227
|
+
"mapping": {
|
|
1228
|
+
"kafka": "#/$defs/KafkaTarget",
|
|
1229
|
+
"octo": "#/$defs/OctoTarget",
|
|
1230
|
+
"sftp": "#/$defs/SftpTarget"
|
|
1231
|
+
},
|
|
1232
|
+
"propertyName": "type"
|
|
1233
|
+
},
|
|
1234
|
+
"oneOf": [
|
|
1235
|
+
{
|
|
1236
|
+
"$ref": "#/$defs/OctoTarget"
|
|
1237
|
+
},
|
|
1238
|
+
{
|
|
1239
|
+
"$ref": "#/$defs/SftpTarget"
|
|
1240
|
+
},
|
|
1241
|
+
{
|
|
1242
|
+
"$ref": "#/$defs/KafkaTarget"
|
|
1243
|
+
}
|
|
1244
|
+
]
|
|
1245
|
+
},
|
|
1246
|
+
{
|
|
1247
|
+
"type": "null"
|
|
1248
|
+
}
|
|
1249
|
+
],
|
|
1250
|
+
"default": null,
|
|
1251
|
+
"description": "覆盖本次投递目标",
|
|
1252
|
+
"title": "Target"
|
|
1253
|
+
},
|
|
1254
|
+
"size": {
|
|
1255
|
+
"anyOf": [
|
|
1256
|
+
{
|
|
1257
|
+
"maximum": 500000,
|
|
1258
|
+
"minimum": 1,
|
|
1259
|
+
"type": "integer"
|
|
1260
|
+
},
|
|
1261
|
+
{
|
|
1262
|
+
"type": "null"
|
|
1263
|
+
}
|
|
1264
|
+
],
|
|
1265
|
+
"default": null,
|
|
1266
|
+
"description": "覆盖本次导出行数;不传则继承 job 的 size,最大 500000",
|
|
1267
|
+
"title": "Size"
|
|
843
1268
|
}
|
|
844
1269
|
},
|
|
845
1270
|
"required": [
|
|
@@ -882,14 +1307,42 @@
|
|
|
882
1307
|
"field": "start_time",
|
|
883
1308
|
"type": "string",
|
|
884
1309
|
"required": false,
|
|
885
|
-
"desc": "
|
|
1310
|
+
"desc": "**发布时间**闭区间下界(东八区)。支持 yyyy-MM-dd(整日)、yyyy-MM-ddTHH:mm(整分钟);与 end_time 同传同不传;不传则按 job 上的 published 相对口径折算"
|
|
886
1311
|
},
|
|
887
1312
|
{
|
|
888
1313
|
"flag": "--end-time",
|
|
889
1314
|
"field": "end_time",
|
|
890
1315
|
"type": "string",
|
|
891
1316
|
"required": false,
|
|
892
|
-
"desc": "
|
|
1317
|
+
"desc": "**发布时间**闭区间上界(东八区,精度须与下界一致);日期包含整日,分钟包含整分钟"
|
|
1318
|
+
},
|
|
1319
|
+
{
|
|
1320
|
+
"flag": "--idate-start",
|
|
1321
|
+
"field": "idate_start",
|
|
1322
|
+
"type": "string",
|
|
1323
|
+
"required": false,
|
|
1324
|
+
"desc": "**入库时间**闭区间下界(东八区,支持日期/分钟);与 idate_end 同传同不传;不传则按 job 上的 idate 相对口径折算,job 也没配=该维度不过滤"
|
|
1325
|
+
},
|
|
1326
|
+
{
|
|
1327
|
+
"flag": "--idate-end",
|
|
1328
|
+
"field": "idate_end",
|
|
1329
|
+
"type": "string",
|
|
1330
|
+
"required": false,
|
|
1331
|
+
"desc": "本次**入库时间**闭区间上界(东八区,精度须与下界一致)"
|
|
1332
|
+
},
|
|
1333
|
+
{
|
|
1334
|
+
"flag": "--udate-start",
|
|
1335
|
+
"field": "udate_start",
|
|
1336
|
+
"type": "string",
|
|
1337
|
+
"required": false,
|
|
1338
|
+
"desc": "**更新时间**闭区间下界(东八区,支持日期/分钟);与 udate_end 同传同不传;不传则按 job 上的 udate 相对口径折算,job 也没配=该维度不过滤"
|
|
1339
|
+
},
|
|
1340
|
+
{
|
|
1341
|
+
"flag": "--udate-end",
|
|
1342
|
+
"field": "udate_end",
|
|
1343
|
+
"type": "string",
|
|
1344
|
+
"required": false,
|
|
1345
|
+
"desc": "**更新时间**闭区间上界(东八区,精度须与下界一致)"
|
|
893
1346
|
},
|
|
894
1347
|
{
|
|
895
1348
|
"flag": "--target",
|
|
@@ -897,6 +1350,13 @@
|
|
|
897
1350
|
"type": "object(json)",
|
|
898
1351
|
"required": false,
|
|
899
1352
|
"desc": "覆盖本次投递目标"
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
"flag": "--size",
|
|
1356
|
+
"field": "size",
|
|
1357
|
+
"type": "integer",
|
|
1358
|
+
"required": false,
|
|
1359
|
+
"desc": "覆盖本次导出行数;不传则继承 job 的 size,最大 500000"
|
|
900
1360
|
}
|
|
901
1361
|
],
|
|
902
1362
|
"transport": {
|
|
@@ -992,7 +1452,7 @@
|
|
|
992
1452
|
},
|
|
993
1453
|
"SftpTarget": {
|
|
994
1454
|
"additionalProperties": false,
|
|
995
|
-
"description": "sftp(本期):把导出文件上传到 SFTP
|
|
1455
|
+
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task\n重跑多少次,远端路径与文件名都不变。",
|
|
996
1456
|
"properties": {
|
|
997
1457
|
"type": {
|
|
998
1458
|
"const": "sftp",
|
|
@@ -1022,10 +1482,23 @@
|
|
|
1022
1482
|
"type": "string"
|
|
1023
1483
|
},
|
|
1024
1484
|
"remote_path": {
|
|
1025
|
-
"description": "
|
|
1485
|
+
"description": "远端目录/路径。可在**任意一层**用日期变量,但变量必须**独占一层**:`/data/sub/yyyyMM/yyyyMMdd` 合法,`/data/sub_yyyyMMdd` 非法。只认 yyyyMMdd / yyyyMM / yyyy 三种;不允许 '..'、空目录层。",
|
|
1026
1486
|
"title": "Remote Path",
|
|
1027
1487
|
"type": "string"
|
|
1028
1488
|
},
|
|
1489
|
+
"filename_template": {
|
|
1490
|
+
"anyOf": [
|
|
1491
|
+
{
|
|
1492
|
+
"type": "string"
|
|
1493
|
+
},
|
|
1494
|
+
{
|
|
1495
|
+
"type": "null"
|
|
1496
|
+
}
|
|
1497
|
+
],
|
|
1498
|
+
"default": null,
|
|
1499
|
+
"description": "自定义文件名模板(不含扩展名)。只允许字母、数字、'_'、'-' 与日期变量,且变量前后必须是 '_' 或首尾:`daily_yyyyMMdd_export`、`yyyyMM_summary` 合法,`dailyyyyyMMdd`、`report-yyyyMMdd-x` 非法。系统统一追加 `_<task_id>` 与扩展名。不传=沿用默认 `<job_id>_<task_id>.<ext>`。",
|
|
1500
|
+
"title": "Filename Template"
|
|
1501
|
+
},
|
|
1029
1502
|
"format": {
|
|
1030
1503
|
"default": "json",
|
|
1031
1504
|
"description": "文件格式:csv/excel/json(默认 json)",
|
|
@@ -1047,6 +1520,32 @@
|
|
|
1047
1520
|
],
|
|
1048
1521
|
"title": "SftpTarget",
|
|
1049
1522
|
"type": "object"
|
|
1523
|
+
},
|
|
1524
|
+
"TopSpec": {
|
|
1525
|
+
"additionalProperties": false,
|
|
1526
|
+
"description": "全局TopN排序规格(subscription专用)。",
|
|
1527
|
+
"properties": {
|
|
1528
|
+
"field": {
|
|
1529
|
+
"description": "排序字段(name_en);仅支持可排序类型(keyword/long/double/date)",
|
|
1530
|
+
"title": "Field",
|
|
1531
|
+
"type": "string"
|
|
1532
|
+
},
|
|
1533
|
+
"order": {
|
|
1534
|
+
"default": "desc",
|
|
1535
|
+
"description": "排序方向:desc降序(取最大的N个)/asc升序(取最小的N个)",
|
|
1536
|
+
"enum": [
|
|
1537
|
+
"asc",
|
|
1538
|
+
"desc"
|
|
1539
|
+
],
|
|
1540
|
+
"title": "Order",
|
|
1541
|
+
"type": "string"
|
|
1542
|
+
}
|
|
1543
|
+
},
|
|
1544
|
+
"required": [
|
|
1545
|
+
"field"
|
|
1546
|
+
],
|
|
1547
|
+
"title": "TopSpec",
|
|
1548
|
+
"type": "object"
|
|
1050
1549
|
}
|
|
1051
1550
|
},
|
|
1052
1551
|
"additionalProperties": false,
|
|
@@ -1068,7 +1567,7 @@
|
|
|
1068
1567
|
}
|
|
1069
1568
|
],
|
|
1070
1569
|
"default": null,
|
|
1071
|
-
"description": "新名称(
|
|
1570
|
+
"description": "新名称(同一凭证下唯一)",
|
|
1072
1571
|
"title": "Name"
|
|
1073
1572
|
},
|
|
1074
1573
|
"rule_ids": {
|
|
@@ -1110,11 +1609,7 @@
|
|
|
1110
1609
|
"published": {
|
|
1111
1610
|
"anyOf": [
|
|
1112
1611
|
{
|
|
1113
|
-
"
|
|
1114
|
-
"T-0",
|
|
1115
|
-
"T-1",
|
|
1116
|
-
"T-7"
|
|
1117
|
-
],
|
|
1612
|
+
"pattern": "^(?:T-\\d+~T-\\d+|T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d~T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d)$",
|
|
1118
1613
|
"type": "string"
|
|
1119
1614
|
},
|
|
1120
1615
|
{
|
|
@@ -1122,9 +1617,37 @@
|
|
|
1122
1617
|
}
|
|
1123
1618
|
],
|
|
1124
1619
|
"default": null,
|
|
1125
|
-
"description": "
|
|
1620
|
+
"description": "**发布时间**口径(必填字段,只能改不能清)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。",
|
|
1126
1621
|
"title": "Published"
|
|
1127
1622
|
},
|
|
1623
|
+
"idate": {
|
|
1624
|
+
"anyOf": [
|
|
1625
|
+
{
|
|
1626
|
+
"pattern": "^(?:T-\\d+~T-\\d+|T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d~T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d)?$",
|
|
1627
|
+
"type": "string"
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
"type": "null"
|
|
1631
|
+
}
|
|
1632
|
+
],
|
|
1633
|
+
"default": null,
|
|
1634
|
+
"description": "**入库时间**口径。不传=不改;传空串 \"\"=**清除**该维度(恢复成不过滤)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。",
|
|
1635
|
+
"title": "Idate"
|
|
1636
|
+
},
|
|
1637
|
+
"udate": {
|
|
1638
|
+
"anyOf": [
|
|
1639
|
+
{
|
|
1640
|
+
"pattern": "^(?:T-\\d+~T-\\d+|T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d~T-\\d+@(?:[01]\\d|2[0-3]):[0-5]\\d)?$",
|
|
1641
|
+
"type": "string"
|
|
1642
|
+
},
|
|
1643
|
+
{
|
|
1644
|
+
"type": "null"
|
|
1645
|
+
}
|
|
1646
|
+
],
|
|
1647
|
+
"default": null,
|
|
1648
|
+
"description": "**更新时间**口径。不传=不改;传空串 \"\"=**清除**该维度(恢复成不过滤)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。",
|
|
1649
|
+
"title": "Udate"
|
|
1650
|
+
},
|
|
1128
1651
|
"fields": {
|
|
1129
1652
|
"anyOf": [
|
|
1130
1653
|
{
|
|
@@ -1142,6 +1665,21 @@
|
|
|
1142
1665
|
"description": "整组全量覆盖",
|
|
1143
1666
|
"title": "Fields"
|
|
1144
1667
|
},
|
|
1668
|
+
"size": {
|
|
1669
|
+
"anyOf": [
|
|
1670
|
+
{
|
|
1671
|
+
"maximum": 500000,
|
|
1672
|
+
"minimum": 1,
|
|
1673
|
+
"type": "integer"
|
|
1674
|
+
},
|
|
1675
|
+
{
|
|
1676
|
+
"type": "null"
|
|
1677
|
+
}
|
|
1678
|
+
],
|
|
1679
|
+
"default": null,
|
|
1680
|
+
"description": "每次执行最多导出的记录行数;不传则不修改,最大 500000",
|
|
1681
|
+
"title": "Size"
|
|
1682
|
+
},
|
|
1145
1683
|
"frequency": {
|
|
1146
1684
|
"anyOf": [
|
|
1147
1685
|
{
|
|
@@ -1188,6 +1726,22 @@
|
|
|
1188
1726
|
"description": "整体替换投递目标",
|
|
1189
1727
|
"title": "Target"
|
|
1190
1728
|
},
|
|
1729
|
+
"top": {
|
|
1730
|
+
"anyOf": [
|
|
1731
|
+
{
|
|
1732
|
+
"items": {
|
|
1733
|
+
"$ref": "#/$defs/TopSpec"
|
|
1734
|
+
},
|
|
1735
|
+
"type": "array"
|
|
1736
|
+
},
|
|
1737
|
+
{
|
|
1738
|
+
"type": "null"
|
|
1739
|
+
}
|
|
1740
|
+
],
|
|
1741
|
+
"default": null,
|
|
1742
|
+
"description": "只取前 N 条的排序规格:传入则整组替换,不传则不修改。切到该模式后 size 最大 10,000;传空数组 [] 表示改回「给全部命中数据」",
|
|
1743
|
+
"title": "Top"
|
|
1744
|
+
},
|
|
1191
1745
|
"active": {
|
|
1192
1746
|
"anyOf": [
|
|
1193
1747
|
{
|
|
@@ -1214,15 +1768,15 @@
|
|
|
1214
1768
|
},
|
|
1215
1769
|
"output_schema": {
|
|
1216
1770
|
"additionalProperties": false,
|
|
1217
|
-
"description": "订阅 job
|
|
1771
|
+
"description": "订阅 job 出参对象。",
|
|
1218
1772
|
"properties": {
|
|
1219
1773
|
"job_id": {
|
|
1220
|
-
"description": "job ID
|
|
1774
|
+
"description": "job ID",
|
|
1221
1775
|
"title": "Job Id",
|
|
1222
1776
|
"type": "integer"
|
|
1223
1777
|
},
|
|
1224
1778
|
"name": {
|
|
1225
|
-
"description": "job
|
|
1779
|
+
"description": "job 名称,同一凭证(token)下唯一",
|
|
1226
1780
|
"title": "Name",
|
|
1227
1781
|
"type": "string"
|
|
1228
1782
|
},
|
|
@@ -1243,10 +1797,34 @@
|
|
|
1243
1797
|
"type": "array"
|
|
1244
1798
|
},
|
|
1245
1799
|
"published": {
|
|
1246
|
-
"description": "
|
|
1800
|
+
"description": "发布时间口径(相对,支持按天或按分钟);触发时按 task_time 折算成绝对时间区间",
|
|
1247
1801
|
"title": "Published",
|
|
1248
1802
|
"type": "string"
|
|
1249
1803
|
},
|
|
1804
|
+
"idate": {
|
|
1805
|
+
"anyOf": [
|
|
1806
|
+
{
|
|
1807
|
+
"type": "string"
|
|
1808
|
+
},
|
|
1809
|
+
{
|
|
1810
|
+
"type": "null"
|
|
1811
|
+
}
|
|
1812
|
+
],
|
|
1813
|
+
"description": "入库时间口径(相对,按天或按分钟);null=该维度不过滤",
|
|
1814
|
+
"title": "Idate"
|
|
1815
|
+
},
|
|
1816
|
+
"udate": {
|
|
1817
|
+
"anyOf": [
|
|
1818
|
+
{
|
|
1819
|
+
"type": "string"
|
|
1820
|
+
},
|
|
1821
|
+
{
|
|
1822
|
+
"type": "null"
|
|
1823
|
+
}
|
|
1824
|
+
],
|
|
1825
|
+
"description": "更新时间口径(相对,按天或按分钟);null=该维度不过滤",
|
|
1826
|
+
"title": "Udate"
|
|
1827
|
+
},
|
|
1250
1828
|
"fields": {
|
|
1251
1829
|
"description": "拉取/导出字段(空=全量)",
|
|
1252
1830
|
"items": {
|
|
@@ -1255,6 +1833,28 @@
|
|
|
1255
1833
|
"title": "Fields",
|
|
1256
1834
|
"type": "array"
|
|
1257
1835
|
},
|
|
1836
|
+
"size": {
|
|
1837
|
+
"description": "每次执行最多导出的记录行数;取全部命中时上限 500000,只取前 N 条时上限 10000",
|
|
1838
|
+
"title": "Size",
|
|
1839
|
+
"type": "integer"
|
|
1840
|
+
},
|
|
1841
|
+
"top": {
|
|
1842
|
+
"anyOf": [
|
|
1843
|
+
{
|
|
1844
|
+
"items": {
|
|
1845
|
+
"additionalProperties": true,
|
|
1846
|
+
"type": "object"
|
|
1847
|
+
},
|
|
1848
|
+
"type": "array"
|
|
1849
|
+
},
|
|
1850
|
+
{
|
|
1851
|
+
"type": "null"
|
|
1852
|
+
}
|
|
1853
|
+
],
|
|
1854
|
+
"default": null,
|
|
1855
|
+
"description": "只取前 N 条的排序定义 [{field, order}];null = 给命中条件的全部数据。非 null 时每次执行只取按该排序排在前 size 条的数据",
|
|
1856
|
+
"title": "Top"
|
|
1857
|
+
},
|
|
1258
1858
|
"frequency": {
|
|
1259
1859
|
"description": "自然语言频率",
|
|
1260
1860
|
"title": "Frequency",
|
|
@@ -1266,7 +1866,7 @@
|
|
|
1266
1866
|
"type": "string"
|
|
1267
1867
|
},
|
|
1268
1868
|
"target_type": {
|
|
1269
|
-
"description": "投递类型:octo(
|
|
1869
|
+
"description": "投递类型:octo、sftp、kafka(暂不支持)",
|
|
1270
1870
|
"title": "Target Type",
|
|
1271
1871
|
"type": "string"
|
|
1272
1872
|
},
|
|
@@ -1298,7 +1898,10 @@
|
|
|
1298
1898
|
"rule_ids",
|
|
1299
1899
|
"source",
|
|
1300
1900
|
"published",
|
|
1901
|
+
"idate",
|
|
1902
|
+
"udate",
|
|
1301
1903
|
"fields",
|
|
1904
|
+
"size",
|
|
1302
1905
|
"frequency",
|
|
1303
1906
|
"cron",
|
|
1304
1907
|
"target_type",
|
|
@@ -1323,36 +1926,57 @@
|
|
|
1323
1926
|
"field": "name",
|
|
1324
1927
|
"type": "string",
|
|
1325
1928
|
"required": false,
|
|
1326
|
-
"desc": "新名称(
|
|
1929
|
+
"desc": "新名称(同一凭证下唯一)"
|
|
1327
1930
|
},
|
|
1328
1931
|
{
|
|
1329
1932
|
"flag": "--rule-ids",
|
|
1330
1933
|
"field": "rule_ids",
|
|
1331
|
-
"type": "list[str]",
|
|
1934
|
+
"type": "list[str](json)",
|
|
1332
1935
|
"required": false,
|
|
1333
1936
|
"desc": "整组全量覆盖"
|
|
1334
1937
|
},
|
|
1335
1938
|
{
|
|
1336
1939
|
"flag": "--source",
|
|
1337
1940
|
"field": "source",
|
|
1338
|
-
"type": "list[str]",
|
|
1941
|
+
"type": "list[str](json)",
|
|
1339
1942
|
"required": false,
|
|
1340
1943
|
"desc": "整组全量覆盖"
|
|
1341
1944
|
},
|
|
1342
1945
|
{
|
|
1343
1946
|
"flag": "--published",
|
|
1344
1947
|
"field": "published",
|
|
1345
|
-
"type": "
|
|
1948
|
+
"type": "string",
|
|
1949
|
+
"required": false,
|
|
1950
|
+
"desc": "**发布时间**口径(必填字段,只能改不能清)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。"
|
|
1951
|
+
},
|
|
1952
|
+
{
|
|
1953
|
+
"flag": "--idate",
|
|
1954
|
+
"field": "idate",
|
|
1955
|
+
"type": "string",
|
|
1956
|
+
"required": false,
|
|
1957
|
+
"desc": "**入库时间**口径。不传=不改;传空串 \"\"=**清除**该维度(恢复成不过滤)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。"
|
|
1958
|
+
},
|
|
1959
|
+
{
|
|
1960
|
+
"flag": "--udate",
|
|
1961
|
+
"field": "udate",
|
|
1962
|
+
"type": "string",
|
|
1346
1963
|
"required": false,
|
|
1347
|
-
"desc": "
|
|
1964
|
+
"desc": "**更新时间**口径。不传=不改;传空串 \"\"=**清除**该维度(恢复成不过滤)。支持两种相对时间口径:**按天 T-M~T-N** 与**按分钟 T-M@HH:mm~T-N@HH:mm**。M/N 是相对基准日的天数偏移,HH:mm 使用 24 小时制(00:00–23:59);基准时间取本次触发的 cron 槽位时间(东八区),手动触发取触发时间。**两个端点都必须写全且精度必须一致**:不接受 T-1 单值简写,也不允许T-1@07:00~T-0 这类按天、按分钟混用。所有口径均为左闭右闭区间 [start,end],即起止端点都包含。按天格式包含首尾自然日,查询时起始日补 00:00:00、结束日补 23:59:59。例如:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-1=前天到昨天;T-7~T-1=近7天到昨天。按分钟格式包含首尾分钟,查询时起始分钟补 :00、结束分钟补 :59。例如:T-1@07:00~T-0@06:59=昨天07:00:00至今天06:59:59,完整覆盖昨天7点到今天6点时段;T-0@09:30~T-0@10:45=今天09:30:00至10:45:59。起点不得晚于终点;跨度最多 731 天(两年)、偏移最多 915 天(30个月),超限直接报错(不会静默回落)。"
|
|
1348
1965
|
},
|
|
1349
1966
|
{
|
|
1350
1967
|
"flag": "--fields",
|
|
1351
1968
|
"field": "fields",
|
|
1352
|
-
"type": "list[str]",
|
|
1969
|
+
"type": "list[str](json)",
|
|
1353
1970
|
"required": false,
|
|
1354
1971
|
"desc": "整组全量覆盖"
|
|
1355
1972
|
},
|
|
1973
|
+
{
|
|
1974
|
+
"flag": "--size",
|
|
1975
|
+
"field": "size",
|
|
1976
|
+
"type": "integer",
|
|
1977
|
+
"required": false,
|
|
1978
|
+
"desc": "每次执行最多导出的记录行数;不传则不修改,最大 500000"
|
|
1979
|
+
},
|
|
1356
1980
|
{
|
|
1357
1981
|
"flag": "--frequency",
|
|
1358
1982
|
"field": "frequency",
|
|
@@ -1367,6 +1991,13 @@
|
|
|
1367
1991
|
"required": false,
|
|
1368
1992
|
"desc": "整体替换投递目标"
|
|
1369
1993
|
},
|
|
1994
|
+
{
|
|
1995
|
+
"flag": "--top",
|
|
1996
|
+
"field": "top",
|
|
1997
|
+
"type": "list[object](json)",
|
|
1998
|
+
"required": false,
|
|
1999
|
+
"desc": "只取前 N 条的排序规格:传入则整组替换,不传则不修改。切到该模式后 size 最大 10,000;传空数组 [] 表示改回「给全部命中数据」"
|
|
2000
|
+
},
|
|
1370
2001
|
{
|
|
1371
2002
|
"flag": "--active",
|
|
1372
2003
|
"field": "active",
|
|
@@ -1388,6 +2019,197 @@
|
|
|
1388
2019
|
"internal"
|
|
1389
2020
|
]
|
|
1390
2021
|
},
|
|
2022
|
+
{
|
|
2023
|
+
"action": "list-fields",
|
|
2024
|
+
"op": "list_fields",
|
|
2025
|
+
"name": "subscription/list_fields",
|
|
2026
|
+
"summary": "列出所选站点下可导出的字段:name_en(填 fields 用)、中文名、类型、是否枚举 / code。",
|
|
2027
|
+
"description": "列出所选站点下可导出的字段:name_en(填 fields 用)、中文名、类型、是否枚举 / code。\n\n``is_enum`` / ``is_code`` 为真的字段,导出文件里存的是枚举码 / 编码值;\n**若**调用方要把它们换成中文,再调 ``get_field_values`` 取字典自行替换(按需,非必经步骤)。",
|
|
2028
|
+
"input_schema": {
|
|
2029
|
+
"additionalProperties": false,
|
|
2030
|
+
"properties": {
|
|
2031
|
+
"source": {
|
|
2032
|
+
"description": "站点数组(中文站点名,取自 list_sites),至少 1 个;返回这些站点下字段的并集",
|
|
2033
|
+
"items": {
|
|
2034
|
+
"minLength": 1,
|
|
2035
|
+
"type": "string"
|
|
2036
|
+
},
|
|
2037
|
+
"minItems": 1,
|
|
2038
|
+
"title": "Source",
|
|
2039
|
+
"type": "array"
|
|
2040
|
+
},
|
|
2041
|
+
"keyword": {
|
|
2042
|
+
"anyOf": [
|
|
2043
|
+
{
|
|
2044
|
+
"maxLength": 64,
|
|
2045
|
+
"type": "string"
|
|
2046
|
+
},
|
|
2047
|
+
{
|
|
2048
|
+
"type": "null"
|
|
2049
|
+
}
|
|
2050
|
+
],
|
|
2051
|
+
"default": null,
|
|
2052
|
+
"description": "按字段中文名 / name_en 模糊过滤(如「情感」「互动」);不传=该站点全部字段",
|
|
2053
|
+
"title": "Keyword"
|
|
2054
|
+
}
|
|
2055
|
+
},
|
|
2056
|
+
"required": [
|
|
2057
|
+
"source"
|
|
2058
|
+
],
|
|
2059
|
+
"title": "SubListFieldsInput",
|
|
2060
|
+
"type": "object"
|
|
2061
|
+
},
|
|
2062
|
+
"output_schema": {
|
|
2063
|
+
"$defs": {
|
|
2064
|
+
"SubField": {
|
|
2065
|
+
"additionalProperties": false,
|
|
2066
|
+
"description": "一个可导出字段(**订阅口径**:只给填 ``fields`` 与翻译列值要用的信息)。",
|
|
2067
|
+
"properties": {
|
|
2068
|
+
"name_en": {
|
|
2069
|
+
"description": "字段标识(ES 字段名),即 job_create / job_update 的 fields 该填的值",
|
|
2070
|
+
"title": "Name En",
|
|
2071
|
+
"type": "string"
|
|
2072
|
+
},
|
|
2073
|
+
"name": {
|
|
2074
|
+
"description": "字段中文名 —— 把用户说法对齐到 name_en 用",
|
|
2075
|
+
"title": "Name",
|
|
2076
|
+
"type": "string"
|
|
2077
|
+
},
|
|
2078
|
+
"data_type": {
|
|
2079
|
+
"description": "语义类型:keyword / text / long / double / date / boolean / object / nested",
|
|
2080
|
+
"title": "Data Type",
|
|
2081
|
+
"type": "string"
|
|
2082
|
+
},
|
|
2083
|
+
"description": {
|
|
2084
|
+
"default": "",
|
|
2085
|
+
"description": "字段描述;元数据未登记描述时为空串",
|
|
2086
|
+
"title": "Description",
|
|
2087
|
+
"type": "string"
|
|
2088
|
+
},
|
|
2089
|
+
"is_enum": {
|
|
2090
|
+
"description": "值来自内置枚举(如数据类型、情感):导出列存的是枚举码;如需换成中文,再按需调 get_field_values 取字典自行替换",
|
|
2091
|
+
"title": "Is Enum",
|
|
2092
|
+
"type": "boolean"
|
|
2093
|
+
},
|
|
2094
|
+
"is_code": {
|
|
2095
|
+
"description": "值是编码值(如品牌标签、品类标签):导出列存的是 code 而非中文;如需换成中文,再按需调 get_field_values 取字典自行替换",
|
|
2096
|
+
"title": "Is Code",
|
|
2097
|
+
"type": "boolean"
|
|
2098
|
+
}
|
|
2099
|
+
},
|
|
2100
|
+
"required": [
|
|
2101
|
+
"name_en",
|
|
2102
|
+
"name",
|
|
2103
|
+
"data_type",
|
|
2104
|
+
"is_enum",
|
|
2105
|
+
"is_code"
|
|
2106
|
+
],
|
|
2107
|
+
"title": "SubField",
|
|
2108
|
+
"type": "object"
|
|
2109
|
+
}
|
|
2110
|
+
},
|
|
2111
|
+
"additionalProperties": false,
|
|
2112
|
+
"properties": {
|
|
2113
|
+
"items": {
|
|
2114
|
+
"description": "字段列表(所选站点的并集,按 name_en 排序)",
|
|
2115
|
+
"items": {
|
|
2116
|
+
"$ref": "#/$defs/SubField"
|
|
2117
|
+
},
|
|
2118
|
+
"title": "Items",
|
|
2119
|
+
"type": "array"
|
|
2120
|
+
},
|
|
2121
|
+
"total": {
|
|
2122
|
+
"description": "字段总数",
|
|
2123
|
+
"title": "Total",
|
|
2124
|
+
"type": "integer"
|
|
2125
|
+
}
|
|
2126
|
+
},
|
|
2127
|
+
"required": [
|
|
2128
|
+
"items",
|
|
2129
|
+
"total"
|
|
2130
|
+
],
|
|
2131
|
+
"title": "SubFieldList",
|
|
2132
|
+
"type": "object"
|
|
2133
|
+
},
|
|
2134
|
+
"flags": [
|
|
2135
|
+
{
|
|
2136
|
+
"flag": "--source",
|
|
2137
|
+
"field": "source",
|
|
2138
|
+
"type": "list[str](json)",
|
|
2139
|
+
"required": true,
|
|
2140
|
+
"desc": "站点数组(中文站点名,取自 list_sites),至少 1 个;返回这些站点下字段的并集"
|
|
2141
|
+
},
|
|
2142
|
+
{
|
|
2143
|
+
"flag": "--keyword",
|
|
2144
|
+
"field": "keyword",
|
|
2145
|
+
"type": "string",
|
|
2146
|
+
"required": false,
|
|
2147
|
+
"desc": "按字段中文名 / name_en 模糊过滤(如「情感」「互动」);不传=该站点全部字段"
|
|
2148
|
+
}
|
|
2149
|
+
],
|
|
2150
|
+
"transport": {
|
|
2151
|
+
"method": "POST",
|
|
2152
|
+
"path": "/subscription/list_fields",
|
|
2153
|
+
"send": "args"
|
|
2154
|
+
},
|
|
2155
|
+
"errors": [
|
|
2156
|
+
"auth_error",
|
|
2157
|
+
"validation",
|
|
2158
|
+
"api_error",
|
|
2159
|
+
"network",
|
|
2160
|
+
"internal"
|
|
2161
|
+
]
|
|
2162
|
+
},
|
|
2163
|
+
{
|
|
2164
|
+
"action": "list-sites",
|
|
2165
|
+
"op": "list_sites",
|
|
2166
|
+
"name": "subscription/list_sites",
|
|
2167
|
+
"summary": "列出可订阅站点(中文站点名)—— job_create / job_update 的 source 只能取这里的值。",
|
|
2168
|
+
"description": "列出可订阅站点(中文站点名)—— job_create / job_update 的 source 只能取这里的值。",
|
|
2169
|
+
"input_schema": {
|
|
2170
|
+
"type": "object",
|
|
2171
|
+
"properties": {},
|
|
2172
|
+
"additionalProperties": false
|
|
2173
|
+
},
|
|
2174
|
+
"output_schema": {
|
|
2175
|
+
"additionalProperties": false,
|
|
2176
|
+
"description": "可订阅站点名单(全量,无需翻页:站点由运维在表里配,量级有界)。",
|
|
2177
|
+
"properties": {
|
|
2178
|
+
"items": {
|
|
2179
|
+
"description": "中文站点名列表,即 job_create / job_update 的 source 该填的值(按配置顺序)",
|
|
2180
|
+
"items": {
|
|
2181
|
+
"type": "string"
|
|
2182
|
+
},
|
|
2183
|
+
"title": "Items",
|
|
2184
|
+
"type": "array"
|
|
2185
|
+
},
|
|
2186
|
+
"total": {
|
|
2187
|
+
"description": "站点总数",
|
|
2188
|
+
"title": "Total",
|
|
2189
|
+
"type": "integer"
|
|
2190
|
+
}
|
|
2191
|
+
},
|
|
2192
|
+
"required": [
|
|
2193
|
+
"items",
|
|
2194
|
+
"total"
|
|
2195
|
+
],
|
|
2196
|
+
"title": "SubSiteList",
|
|
2197
|
+
"type": "object"
|
|
2198
|
+
},
|
|
2199
|
+
"flags": [],
|
|
2200
|
+
"transport": {
|
|
2201
|
+
"method": "POST",
|
|
2202
|
+
"path": "/subscription/list_sites",
|
|
2203
|
+
"send": "args"
|
|
2204
|
+
},
|
|
2205
|
+
"errors": [
|
|
2206
|
+
"auth_error",
|
|
2207
|
+
"validation",
|
|
2208
|
+
"api_error",
|
|
2209
|
+
"network",
|
|
2210
|
+
"internal"
|
|
2211
|
+
]
|
|
2212
|
+
},
|
|
1391
2213
|
{
|
|
1392
2214
|
"action": "task-list",
|
|
1393
2215
|
"op": "task_list",
|
|
@@ -1497,10 +2319,10 @@
|
|
|
1497
2319
|
"$defs": {
|
|
1498
2320
|
"SubTask": {
|
|
1499
2321
|
"additionalProperties": false,
|
|
1500
|
-
"description": "订阅 task 出参对象(
|
|
2322
|
+
"description": "订阅 task 出参对象(**对外精简**:只给调用方轮询/下载所需)。",
|
|
1501
2323
|
"properties": {
|
|
1502
2324
|
"task_id": {
|
|
1503
|
-
"description": "task ID
|
|
2325
|
+
"description": "task ID",
|
|
1504
2326
|
"title": "Task Id",
|
|
1505
2327
|
"type": "integer"
|
|
1506
2328
|
},
|
|
@@ -1509,6 +2331,28 @@
|
|
|
1509
2331
|
"title": "Job Id",
|
|
1510
2332
|
"type": "integer"
|
|
1511
2333
|
},
|
|
2334
|
+
"size": {
|
|
2335
|
+
"description": "本次执行最多导出的记录行数;取全部命中时上限 500000,只取前 N 条时上限 10000",
|
|
2336
|
+
"title": "Size",
|
|
2337
|
+
"type": "integer"
|
|
2338
|
+
},
|
|
2339
|
+
"top": {
|
|
2340
|
+
"anyOf": [
|
|
2341
|
+
{
|
|
2342
|
+
"items": {
|
|
2343
|
+
"additionalProperties": true,
|
|
2344
|
+
"type": "object"
|
|
2345
|
+
},
|
|
2346
|
+
"type": "array"
|
|
2347
|
+
},
|
|
2348
|
+
{
|
|
2349
|
+
"type": "null"
|
|
2350
|
+
}
|
|
2351
|
+
],
|
|
2352
|
+
"default": null,
|
|
2353
|
+
"description": "本次生效的排序快照 [{field, order}];null = 取了命中条件的全部数据。非 null 时本次只取按该排序排在前 size 条的数据",
|
|
2354
|
+
"title": "Top"
|
|
2355
|
+
},
|
|
1512
2356
|
"status": {
|
|
1513
2357
|
"description": "pending/running/success/failed/terminated",
|
|
1514
2358
|
"title": "Status",
|
|
@@ -1555,6 +2399,7 @@
|
|
|
1555
2399
|
"required": [
|
|
1556
2400
|
"task_id",
|
|
1557
2401
|
"job_id",
|
|
2402
|
+
"size",
|
|
1558
2403
|
"status",
|
|
1559
2404
|
"created_at",
|
|
1560
2405
|
"updated_at"
|
|
@@ -1660,13 +2505,16 @@
|
|
|
1660
2505
|
],
|
|
1661
2506
|
"skill": {
|
|
1662
2507
|
"slug": "social-neuron-subscription",
|
|
1663
|
-
"description": "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task。概念:job=订阅定义(数据范围+频率+投递方式,系统按频率生成 cron);task=job 的一次执行,产物与下载地址落在 file_info。边界:①每 token 生效 job 默认≤10
|
|
2508
|
+
"description": "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task;另有三个只读发现接口:list_sites / list_fields 用于建 job 前对齐站点与字段取值;get_field_values 给出枚举值 / 编码值的中文字典,仅在用户明确要求把导出的码值换成中文时按需取用(换值由调用方拿到数据后自行完成,系统不自动回显)。概念:job=订阅定义(数据范围+频率+投递方式,系统按频率生成 cron);task=job 的一次执行,产物与下载地址落在 file_info。边界:①每 token 生效 job 默认≤10;②两种取数模式二选一:**默认**给命中条件的全部数据、size 默认且最大 50 万、多规则各自拉(同时命中多条规则的数据会重复出现);传 **top** 则不改筛选条件、只在同一批命中里按指定字段跨全部日期/站点/规则排序后取前 N 条、size 默认 1000 最大 10000、多规则 OR 合并(同时命中多条的只出一份),排序字段只能是 keyword/long/double/date 类型;这与平台自身的热搜/热门榜单无关;③导出数据的 kw_ruleId 字段**恒为数组**(列出本行命中的 rule_id;此前是字符串,按老格式解析的下游需改);④投递仅 octo/sftp(kafka 规划中,暂不支持),无主动通知、须轮询 task 取结果。⑤如果拉取不到数据则不会产生文件上传,也就没有文件url信息",
|
|
1664
2509
|
"actions": [
|
|
2510
|
+
"get-field-values",
|
|
1665
2511
|
"job-create",
|
|
1666
2512
|
"job-delete",
|
|
1667
2513
|
"job-list",
|
|
1668
2514
|
"job-trigger",
|
|
1669
2515
|
"job-update",
|
|
2516
|
+
"list-fields",
|
|
2517
|
+
"list-sites",
|
|
1670
2518
|
"task-list"
|
|
1671
2519
|
]
|
|
1672
2520
|
}
|