@social-data/social-neuron-subscription 1.0.0-beta.8 → 1.0.0-beta.9
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 +7 -2
- package/manifest.json +88 -4
- package/package.json +1 -1
- package/skills/social-neuron-subscription/SKILL.md +15 -5
package/bin/cli.js
CHANGED
|
@@ -40,7 +40,11 @@ function resolveConfig() {
|
|
|
40
40
|
|
|
41
41
|
function emit(env) {
|
|
42
42
|
process.stdout.write(JSON.stringify(env) + "\n");
|
|
43
|
-
|
|
43
|
+
const dataExit = env.ok && env.data && env.data.meta && env.data.meta.exit_code;
|
|
44
|
+
const status = env.ok
|
|
45
|
+
? ([0, 1, 2].includes(dataExit) ? dataExit : 0)
|
|
46
|
+
: (EXIT[env.error && env.error.type] ?? 1);
|
|
47
|
+
process.exit(status);
|
|
44
48
|
}
|
|
45
49
|
function fail(type, code, message, extra) {
|
|
46
50
|
emit({ ok: false, error: { type, code, message, ...(extra || {}) } });
|
|
@@ -167,7 +171,8 @@ function parseArgs(cmd, argv) {
|
|
|
167
171
|
}
|
|
168
172
|
|
|
169
173
|
async function main() {
|
|
170
|
-
|
|
174
|
+
let argv = process.argv.slice(2);
|
|
175
|
+
if (argv.length === 0 && MANIFEST.default_action) argv = [MANIFEST.default_action];
|
|
171
176
|
if (argv.length === 0 || argv[0] === "--help" || argv[0] === "-h") return printHelp();
|
|
172
177
|
if (argv[0] === "--version" || argv[0] === "-V") { process.stdout.write(VERSION + "\n"); return; }
|
|
173
178
|
if (argv[0] === "bind") return doBind(argv.slice(1));
|
package/manifest.json
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"revision": 6,
|
|
3
3
|
"capability": "subscription",
|
|
4
4
|
"command": "social-neuron-subscription",
|
|
5
|
+
"default_action": null,
|
|
5
6
|
"mcp_path": "/subscription/mcp",
|
|
6
7
|
"tools": [
|
|
7
8
|
{
|
|
@@ -84,7 +85,7 @@
|
|
|
84
85
|
},
|
|
85
86
|
"SftpTarget": {
|
|
86
87
|
"additionalProperties": false,
|
|
87
|
-
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
88
|
+
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task\n重跑多少次,远端路径与文件名都不变。",
|
|
88
89
|
"properties": {
|
|
89
90
|
"type": {
|
|
90
91
|
"const": "sftp",
|
|
@@ -233,6 +234,14 @@
|
|
|
233
234
|
"title": "Fields",
|
|
234
235
|
"type": "array"
|
|
235
236
|
},
|
|
237
|
+
"size": {
|
|
238
|
+
"default": 500000,
|
|
239
|
+
"description": "每次执行最多导出的记录行数,默认且最大为 500000",
|
|
240
|
+
"maximum": 500000,
|
|
241
|
+
"minimum": 1,
|
|
242
|
+
"title": "Size",
|
|
243
|
+
"type": "integer"
|
|
244
|
+
},
|
|
236
245
|
"target": {
|
|
237
246
|
"anyOf": [
|
|
238
247
|
{
|
|
@@ -342,6 +351,11 @@
|
|
|
342
351
|
"title": "Fields",
|
|
343
352
|
"type": "array"
|
|
344
353
|
},
|
|
354
|
+
"size": {
|
|
355
|
+
"description": "每次执行最多导出的记录行数,范围 1–500000",
|
|
356
|
+
"title": "Size",
|
|
357
|
+
"type": "integer"
|
|
358
|
+
},
|
|
345
359
|
"frequency": {
|
|
346
360
|
"description": "自然语言频率",
|
|
347
361
|
"title": "Frequency",
|
|
@@ -388,6 +402,7 @@
|
|
|
388
402
|
"idate",
|
|
389
403
|
"udate",
|
|
390
404
|
"fields",
|
|
405
|
+
"size",
|
|
391
406
|
"frequency",
|
|
392
407
|
"cron",
|
|
393
408
|
"target_type",
|
|
@@ -456,6 +471,13 @@
|
|
|
456
471
|
"required": false,
|
|
457
472
|
"desc": "拉取/导出字段;不填拉全量"
|
|
458
473
|
},
|
|
474
|
+
{
|
|
475
|
+
"flag": "--size",
|
|
476
|
+
"field": "size",
|
|
477
|
+
"type": "integer",
|
|
478
|
+
"required": false,
|
|
479
|
+
"desc": "每次执行最多导出的记录行数,默认且最大为 500000"
|
|
480
|
+
},
|
|
459
481
|
{
|
|
460
482
|
"flag": "--target",
|
|
461
483
|
"field": "target",
|
|
@@ -640,6 +662,11 @@
|
|
|
640
662
|
"title": "Fields",
|
|
641
663
|
"type": "array"
|
|
642
664
|
},
|
|
665
|
+
"size": {
|
|
666
|
+
"description": "每次执行最多导出的记录行数,范围 1–500000",
|
|
667
|
+
"title": "Size",
|
|
668
|
+
"type": "integer"
|
|
669
|
+
},
|
|
643
670
|
"frequency": {
|
|
644
671
|
"description": "自然语言频率",
|
|
645
672
|
"title": "Frequency",
|
|
@@ -686,6 +713,7 @@
|
|
|
686
713
|
"idate",
|
|
687
714
|
"udate",
|
|
688
715
|
"fields",
|
|
716
|
+
"size",
|
|
689
717
|
"frequency",
|
|
690
718
|
"cron",
|
|
691
719
|
"target_type",
|
|
@@ -823,7 +851,7 @@
|
|
|
823
851
|
},
|
|
824
852
|
"SftpTarget": {
|
|
825
853
|
"additionalProperties": false,
|
|
826
|
-
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
854
|
+
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task\n重跑多少次,远端路径与文件名都不变。",
|
|
827
855
|
"properties": {
|
|
828
856
|
"type": {
|
|
829
857
|
"const": "sftp",
|
|
@@ -1014,6 +1042,21 @@
|
|
|
1014
1042
|
"default": null,
|
|
1015
1043
|
"description": "覆盖本次投递目标",
|
|
1016
1044
|
"title": "Target"
|
|
1045
|
+
},
|
|
1046
|
+
"size": {
|
|
1047
|
+
"anyOf": [
|
|
1048
|
+
{
|
|
1049
|
+
"maximum": 500000,
|
|
1050
|
+
"minimum": 1,
|
|
1051
|
+
"type": "integer"
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"type": "null"
|
|
1055
|
+
}
|
|
1056
|
+
],
|
|
1057
|
+
"default": null,
|
|
1058
|
+
"description": "覆盖本次导出行数;不传则继承 job 的 size,最大 500000",
|
|
1059
|
+
"title": "Size"
|
|
1017
1060
|
}
|
|
1018
1061
|
},
|
|
1019
1062
|
"required": [
|
|
@@ -1099,6 +1142,13 @@
|
|
|
1099
1142
|
"type": "object(json)",
|
|
1100
1143
|
"required": false,
|
|
1101
1144
|
"desc": "覆盖本次投递目标"
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
"flag": "--size",
|
|
1148
|
+
"field": "size",
|
|
1149
|
+
"type": "integer",
|
|
1150
|
+
"required": false,
|
|
1151
|
+
"desc": "覆盖本次导出行数;不传则继承 job 的 size,最大 500000"
|
|
1102
1152
|
}
|
|
1103
1153
|
],
|
|
1104
1154
|
"transport": {
|
|
@@ -1194,7 +1244,7 @@
|
|
|
1194
1244
|
},
|
|
1195
1245
|
"SftpTarget": {
|
|
1196
1246
|
"additionalProperties": false,
|
|
1197
|
-
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
1247
|
+
"description": "sftp(本期):把导出文件上传到 SFTP 远端目录。\n目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task\n重跑多少次,远端路径与文件名都不变。",
|
|
1198
1248
|
"properties": {
|
|
1199
1249
|
"type": {
|
|
1200
1250
|
"const": "sftp",
|
|
@@ -1381,6 +1431,21 @@
|
|
|
1381
1431
|
"description": "整组全量覆盖",
|
|
1382
1432
|
"title": "Fields"
|
|
1383
1433
|
},
|
|
1434
|
+
"size": {
|
|
1435
|
+
"anyOf": [
|
|
1436
|
+
{
|
|
1437
|
+
"maximum": 500000,
|
|
1438
|
+
"minimum": 1,
|
|
1439
|
+
"type": "integer"
|
|
1440
|
+
},
|
|
1441
|
+
{
|
|
1442
|
+
"type": "null"
|
|
1443
|
+
}
|
|
1444
|
+
],
|
|
1445
|
+
"default": null,
|
|
1446
|
+
"description": "每次执行最多导出的记录行数;不传则不修改,最大 500000",
|
|
1447
|
+
"title": "Size"
|
|
1448
|
+
},
|
|
1384
1449
|
"frequency": {
|
|
1385
1450
|
"anyOf": [
|
|
1386
1451
|
{
|
|
@@ -1518,6 +1583,11 @@
|
|
|
1518
1583
|
"title": "Fields",
|
|
1519
1584
|
"type": "array"
|
|
1520
1585
|
},
|
|
1586
|
+
"size": {
|
|
1587
|
+
"description": "每次执行最多导出的记录行数,范围 1–500000",
|
|
1588
|
+
"title": "Size",
|
|
1589
|
+
"type": "integer"
|
|
1590
|
+
},
|
|
1521
1591
|
"frequency": {
|
|
1522
1592
|
"description": "自然语言频率",
|
|
1523
1593
|
"title": "Frequency",
|
|
@@ -1564,6 +1634,7 @@
|
|
|
1564
1634
|
"idate",
|
|
1565
1635
|
"udate",
|
|
1566
1636
|
"fields",
|
|
1637
|
+
"size",
|
|
1567
1638
|
"frequency",
|
|
1568
1639
|
"cron",
|
|
1569
1640
|
"target_type",
|
|
@@ -1632,6 +1703,13 @@
|
|
|
1632
1703
|
"required": false,
|
|
1633
1704
|
"desc": "整组全量覆盖"
|
|
1634
1705
|
},
|
|
1706
|
+
{
|
|
1707
|
+
"flag": "--size",
|
|
1708
|
+
"field": "size",
|
|
1709
|
+
"type": "integer",
|
|
1710
|
+
"required": false,
|
|
1711
|
+
"desc": "每次执行最多导出的记录行数;不传则不修改,最大 500000"
|
|
1712
|
+
},
|
|
1635
1713
|
{
|
|
1636
1714
|
"flag": "--frequency",
|
|
1637
1715
|
"field": "frequency",
|
|
@@ -1788,6 +1866,11 @@
|
|
|
1788
1866
|
"title": "Job Id",
|
|
1789
1867
|
"type": "integer"
|
|
1790
1868
|
},
|
|
1869
|
+
"size": {
|
|
1870
|
+
"description": "本次执行最多导出的记录行数",
|
|
1871
|
+
"title": "Size",
|
|
1872
|
+
"type": "integer"
|
|
1873
|
+
},
|
|
1791
1874
|
"status": {
|
|
1792
1875
|
"description": "pending/running/success/failed/terminated",
|
|
1793
1876
|
"title": "Status",
|
|
@@ -1834,6 +1917,7 @@
|
|
|
1834
1917
|
"required": [
|
|
1835
1918
|
"task_id",
|
|
1836
1919
|
"job_id",
|
|
1920
|
+
"size",
|
|
1837
1921
|
"status",
|
|
1838
1922
|
"created_at",
|
|
1839
1923
|
"updated_at"
|
|
@@ -1939,7 +2023,7 @@
|
|
|
1939
2023
|
],
|
|
1940
2024
|
"skill": {
|
|
1941
2025
|
"slug": "social-neuron-subscription",
|
|
1942
|
-
"description": "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task。概念:job=订阅定义(数据范围+频率+投递方式,系统按频率生成 cron);task=job 的一次执行,产物与下载地址落在 file_info。边界:①每 token 生效 job 默认≤10
|
|
2026
|
+
"description": "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task。概念:job=订阅定义(数据范围+频率+投递方式,系统按频率生成 cron);task=job 的一次执行,产物与下载地址落在 file_info。边界:①每 token 生效 job 默认≤10;②单次拉数可指定 size,默认且最大 50 万行,超出截断;③投递仅 octo/sftp(kafka 规划中,暂不支持),无主动通知、须轮询 task 取结果。④如果拉取不到数据则不会产生文件上传,也就没有文件url信息",
|
|
1943
2027
|
"actions": [
|
|
1944
2028
|
"job-create",
|
|
1945
2029
|
"job-delete",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@social-data/social-neuron-subscription",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.9",
|
|
4
4
|
"description": "Social Neuron subscription 能力 CLI —— 一能力一命令(social-neuron-subscription),薄客户端直达 /subscription/{op}。",
|
|
5
5
|
"bin": {
|
|
6
6
|
"social-neuron-subscription": "bin/cli.js"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: social-neuron-subscription
|
|
3
|
-
description: "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task。概念:job=订阅定义(数据范围+频率+投递方式,系统按频率生成 cron);task=job 的一次执行,产物与下载地址落在 file_info。边界:①每 token 生效 job 默认≤10
|
|
3
|
+
description: "使用场景:定时导出/订阅推送/定期拉数/大批量出文件——需异步产出文件并下载时用能力:按魔方规则、定时 cron 或手动触发,把大库数据异步导出为文件,上传 octo/sftp,产出下载 url 供调用方轮询拉取;可创建/修改/列出/删除/触发订阅 job、翻页查询 task。概念:job=订阅定义(数据范围+频率+投递方式,系统按频率生成 cron);task=job 的一次执行,产物与下载地址落在 file_info。边界:①每 token 生效 job 默认≤10;②单次拉数可指定 size,默认且最大 50 万行,超出截断;③投递仅 octo/sftp(kafka 规划中,暂不支持),无主动通知、须轮询 task 取结果。④如果拉取不到数据则不会产生文件上传,也就没有文件url信息"
|
|
4
4
|
metadata:
|
|
5
5
|
openclaw:
|
|
6
6
|
requires: { bins: ['social-neuron-subscription'], skills: [] }
|
|
@@ -29,6 +29,7 @@ metadata:
|
|
|
29
29
|
| --udate | udate | string | 否 | - | **更新时间**口径(选填,不传=该维度不过滤)。在发布时间窗**之内**再 AND 一层:更新时间落在本区间的数据。记法 **T-M~T-N**:从 M 天前到 N 天前的闭区间(要求 M>=N),端点按天计,基准日是本次触发的 task_time(东八区;定时=cron 槽位日,手动=触发当日)。**两个端点都必须写全,不接受单值简写** —— 「昨天」写 T-1~T-1,写 T-1 会被拒绝。举例:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-2=前天;T-1~T-0=昨天到今天(2天);T-2~T-1=前天到昨天(2天,口语的「前两天」);T-3~T-1=前三天(3天);T-7~T-3=7天前到3天前(5天);T-7~T-1=近7天到昨天(7天)。跨度最多 120 天、偏移最多 720 天(近两年),M<N 或超限直接报错(不会静默回落)。 |
|
|
30
30
|
| --frequency | frequency | string | 是 | minLen=1, maxLen=64 | 自然语言同步频率,系统转 cron(东八区)。可指定具体时间、并**支持一天多次**:如「每天9点」「每天9点和15点」(一天跑两次)「每周一9点」「每小时」「每30分钟」。无法解析为 cron 会被拒绝。 |
|
|
31
31
|
| --fields | fields | list[string] | 否 | minLen=1 | 拉取/导出字段;不填拉全量 |
|
|
32
|
+
| --size | size | integer | 否 | min=1, max=500000 | 每次执行最多导出的记录行数,默认且最大为 500000 |
|
|
32
33
|
| --target | target | OctoTarget、SftpTarget、KafkaTarget | 否 | - | 投递目标;省略默认 octo(json)。本期支持 octo(上传存储→CDN url)与 sftp(账密上传远端,路径/文件名可用日期变量);kafka: 暂未实现。 |
|
|
33
34
|
|
|
34
35
|
**对象 `KafkaTarget`** —— kafka(规划):把记录流投送到 topic(无文件)。
|
|
@@ -48,7 +49,8 @@ metadata:
|
|
|
48
49
|
| format | enum(csv、excel、json) | 否 | - | 文件格式:csv/excel/json(默认 json) |
|
|
49
50
|
|
|
50
51
|
**对象 `SftpTarget`** —— sftp(本期):把导出文件上传到 SFTP 远端目录。
|
|
51
|
-
目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
52
|
+
目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
53
|
+
重跑多少次,远端路径与文件名都不变。
|
|
52
54
|
|
|
53
55
|
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
54
56
|
|---|---|---|---|---|
|
|
@@ -73,6 +75,7 @@ metadata:
|
|
|
73
75
|
| idate | string | 是 | - | 入库时间口径(相对,T-M~T-N);null=该维度不过滤 |
|
|
74
76
|
| udate | string | 是 | - | 更新时间口径(相对,T-M~T-N);null=该维度不过滤 |
|
|
75
77
|
| fields | list[string] | 是 | - | 拉取/导出字段(空=全量) |
|
|
78
|
+
| size | integer | 是 | - | 每次执行最多导出的记录行数,范围 1–500000 |
|
|
76
79
|
| frequency | string | 是 | - | 自然语言频率 |
|
|
77
80
|
| cron | string | 是 | - | 系统由 frequency 转换的 cron |
|
|
78
81
|
| target_type | string | 是 | - | 投递类型:octo、sftp、kafka(暂不支持) |
|
|
@@ -129,6 +132,7 @@ metadata:
|
|
|
129
132
|
| idate | string | 是 | - | 入库时间口径(相对,T-M~T-N);null=该维度不过滤 |
|
|
130
133
|
| udate | string | 是 | - | 更新时间口径(相对,T-M~T-N);null=该维度不过滤 |
|
|
131
134
|
| fields | list[string] | 是 | - | 拉取/导出字段(空=全量) |
|
|
135
|
+
| size | integer | 是 | - | 每次执行最多导出的记录行数,范围 1–500000 |
|
|
132
136
|
| frequency | string | 是 | - | 自然语言频率 |
|
|
133
137
|
| cron | string | 是 | - | 系统由 frequency 转换的 cron |
|
|
134
138
|
| target_type | string | 是 | - | 投递类型:octo、sftp、kafka(暂不支持) |
|
|
@@ -137,7 +141,7 @@ metadata:
|
|
|
137
141
|
| created_at | string | 是 | - | 创建时间(ISO8601,UTC+8) |
|
|
138
142
|
| updated_at | string | 是 | - | 更新时间(ISO8601,UTC+8) |
|
|
139
143
|
|
|
140
|
-
示例:social-neuron-subscription job-list
|
|
144
|
+
示例:social-neuron-subscription job-list
|
|
141
145
|
|
|
142
146
|
### social-neuron-subscription job-trigger
|
|
143
147
|
临时触发一次本人 job,落一条 ik_subscription_task(manual);默认用 job 存的 target,可覆盖。
|
|
@@ -158,6 +162,7 @@ metadata:
|
|
|
158
162
|
| --udate-start | udate_start | string | 否 | - | **更新时间**下界(绝对日期 yyyy-MM-dd,东八区);与 udate_end 同传同不传;不传则按 job 上的 udate 相对口径折算,job 也没配=该维度不过滤 |
|
|
159
163
|
| --udate-end | udate_end | string | 否 | - | **更新时间**上界(绝对日期 yyyy-MM-dd,东八区,该日整天含在窗内) |
|
|
160
164
|
| --target | target | OctoTarget、SftpTarget、KafkaTarget | 否 | - | 覆盖本次投递目标 |
|
|
165
|
+
| --size | size | integer | 否 | min=1, max=500000 | 覆盖本次导出行数;不传则继承 job 的 size,最大 500000 |
|
|
161
166
|
|
|
162
167
|
**对象 `KafkaTarget`** —— kafka(规划):把记录流投送到 topic(无文件)。
|
|
163
168
|
|
|
@@ -176,7 +181,8 @@ metadata:
|
|
|
176
181
|
| format | enum(csv、excel、json) | 否 | - | 文件格式:csv/excel/json(默认 json) |
|
|
177
182
|
|
|
178
183
|
**对象 `SftpTarget`** —— sftp(本期):把导出文件上传到 SFTP 远端目录。
|
|
179
|
-
目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
184
|
+
目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
185
|
+
重跑多少次,远端路径与文件名都不变。
|
|
180
186
|
|
|
181
187
|
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
182
188
|
|---|---|---|---|---|
|
|
@@ -213,6 +219,7 @@ metadata:
|
|
|
213
219
|
| --idate | idate | string | 否 | - | **入库时间**口径。不传=不改;传空串 ""=**清除**该维度(恢复成不过滤)。记法 **T-M~T-N**:从 M 天前到 N 天前的闭区间(要求 M>=N),端点按天计,基准日是本次触发的 task_time(东八区;定时=cron 槽位日,手动=触发当日)。**两个端点都必须写全,不接受单值简写** —— 「昨天」写 T-1~T-1,写 T-1 会被拒绝。举例:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-2=前天;T-1~T-0=昨天到今天(2天);T-2~T-1=前天到昨天(2天,口语的「前两天」);T-3~T-1=前三天(3天);T-7~T-3=7天前到3天前(5天);T-7~T-1=近7天到昨天(7天)。跨度最多 120 天、偏移最多 720 天(近两年),M<N 或超限直接报错(不会静默回落)。 |
|
|
214
220
|
| --udate | udate | string | 否 | - | **更新时间**口径。不传=不改;传空串 ""=**清除**该维度(恢复成不过滤)。记法 **T-M~T-N**:从 M 天前到 N 天前的闭区间(要求 M>=N),端点按天计,基准日是本次触发的 task_time(东八区;定时=cron 槽位日,手动=触发当日)。**两个端点都必须写全,不接受单值简写** —— 「昨天」写 T-1~T-1,写 T-1 会被拒绝。举例:T-0~T-0=今天;T-1~T-1=昨天;T-2~T-2=前天;T-1~T-0=昨天到今天(2天);T-2~T-1=前天到昨天(2天,口语的「前两天」);T-3~T-1=前三天(3天);T-7~T-3=7天前到3天前(5天);T-7~T-1=近7天到昨天(7天)。跨度最多 120 天、偏移最多 720 天(近两年),M<N 或超限直接报错(不会静默回落)。 |
|
|
215
221
|
| --fields | fields | list[string] | 否 | minLen=1 | 整组全量覆盖 |
|
|
222
|
+
| --size | size | integer | 否 | min=1, max=500000 | 每次执行最多导出的记录行数;不传则不修改,最大 500000 |
|
|
216
223
|
| --frequency | frequency | string | 否 | minLen=1, maxLen=64 | 传入则按新频率重算 cron(用法同创建;支持一天多次,如「每天9点和15点」);无法解析为 cron 会被拒绝 |
|
|
217
224
|
| --target | target | OctoTarget、SftpTarget、KafkaTarget | 否 | - | 整体替换投递目标 |
|
|
218
225
|
| --active | active | enum(0、1) | 否 | - | 启停:1 / 0 |
|
|
@@ -234,7 +241,8 @@ metadata:
|
|
|
234
241
|
| format | enum(csv、excel、json) | 否 | - | 文件格式:csv/excel/json(默认 json) |
|
|
235
242
|
|
|
236
243
|
**对象 `SftpTarget`** —— sftp(本期):把导出文件上传到 SFTP 远端目录。
|
|
237
|
-
目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
244
|
+
目录与文件名都支持日期变量 ``yyyyMMdd`` / ``yyyyMM`` / ``yyyy``,同一个 task
|
|
245
|
+
重跑多少次,远端路径与文件名都不变。
|
|
238
246
|
|
|
239
247
|
| 键 | 类型 | 必填 | 约束 | 说明 |
|
|
240
248
|
|---|---|---|---|---|
|
|
@@ -259,6 +267,7 @@ metadata:
|
|
|
259
267
|
| idate | string | 是 | - | 入库时间口径(相对,T-M~T-N);null=该维度不过滤 |
|
|
260
268
|
| udate | string | 是 | - | 更新时间口径(相对,T-M~T-N);null=该维度不过滤 |
|
|
261
269
|
| fields | list[string] | 是 | - | 拉取/导出字段(空=全量) |
|
|
270
|
+
| size | integer | 是 | - | 每次执行最多导出的记录行数,范围 1–500000 |
|
|
262
271
|
| frequency | string | 是 | - | 自然语言频率 |
|
|
263
272
|
| cron | string | 是 | - | 系统由 frequency 转换的 cron |
|
|
264
273
|
| target_type | string | 是 | - | 投递类型:octo、sftp、kafka(暂不支持) |
|
|
@@ -298,6 +307,7 @@ metadata:
|
|
|
298
307
|
|---|---|---|---|---|
|
|
299
308
|
| task_id | integer | 是 | - | task ID |
|
|
300
309
|
| job_id | integer | 是 | - | 所属 job |
|
|
310
|
+
| size | integer | 是 | - | 本次执行最多导出的记录行数 |
|
|
301
311
|
| status | string | 是 | - | pending/running/success/failed/terminated |
|
|
302
312
|
| file_info | object | 否 | - | 产物 + 下载入口,含 type 标识:octo→{type,name,format,rows,url};sftp→{...,url,path};kafka→{type,brokers,topic} |
|
|
303
313
|
| error_msg | string | 否 | - | 失败原因(status=failed 时给出;成功/进行中为空) |
|