@djvlc/openapi-admin-client 1.6.1 → 1.6.3

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.
@@ -1,16 +1,33 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: DJVLC Admin API
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  description: |
6
- DJVLC 低代码平台管理端 API
6
+ DJVLC 低代码平台管理端 API(控制面)
7
7
 
8
8
  提供以下功能:
9
9
  - 页面管理(创建、更新、删除)
10
10
  - 草稿管理(保存、获取)
11
11
  - 版本管理(发布、回滚)
12
+ - 预览管理(生成预览 Token)
12
13
  - 组件管理(状态控制)
14
+ - 灰度发布(Rollout)
15
+ - Definition 管理(Action/DataQuery)
16
+ - 活动管理
17
+ - 审计日志
13
18
  - 运维操作(Kill Switch)
19
+ - 健康检查
20
+
21
+ ## API 设计规范
22
+ - 只使用 GET 和 POST 方法
23
+ - GET:查询操作
24
+ - POST:创建、更新、删除等变更操作
25
+ - 使用语义化路由(如 /update, /delete, /publish)
26
+
27
+ 核心原则:
28
+ - 控制面复杂,但可审计
29
+ - 所有写操作可追溯、可回滚、可审计
30
+ - Definition 版本化,确保回滚不失真
14
31
  contact:
15
32
  name: DJVLC Team
16
33
  email: dev@djvlc.com
@@ -29,6 +46,8 @@ tags:
29
46
  description: 草稿管理
30
47
  - name: Versions
31
48
  description: 版本管理
49
+ - name: Preview
50
+ description: 预览管理
32
51
  - name: Rollout
33
52
  description: 灰度发布
34
53
  - name: Components
@@ -41,6 +60,8 @@ tags:
41
60
  description: 审计日志
42
61
  - name: Operations
43
62
  description: 运维操作
63
+ - name: Health
64
+ description: 健康检查
44
65
  paths:
45
66
  /pages:
46
67
  get:
@@ -86,10 +107,10 @@ paths:
86
107
  application/json:
87
108
  schema:
88
109
  type: object
89
- required: &ref_45
110
+ required: &ref_49
90
111
  - data
91
112
  - meta
92
- properties: &ref_46
113
+ properties: &ref_50
93
114
  data:
94
115
  type: array
95
116
  items:
@@ -184,7 +205,7 @@ paths:
184
205
  type: array
185
206
  items:
186
207
  type: object
187
- properties: &ref_47
208
+ properties: &ref_51
188
209
  field:
189
210
  type: string
190
211
  description: 字段名
@@ -209,6 +230,7 @@ paths:
209
230
  example:
210
231
  code: INTERNAL_ERROR
211
232
  message: 服务器内部错误,请稍后重试
233
+ /pages/create:
212
234
  post:
213
235
  tags:
214
236
  - Pages
@@ -221,9 +243,9 @@ paths:
221
243
  application/json:
222
244
  schema:
223
245
  type: object
224
- required: &ref_48
246
+ required: &ref_52
225
247
  - title
226
- properties: &ref_49
248
+ properties: &ref_53
227
249
  title:
228
250
  type: string
229
251
  minLength: 1
@@ -242,7 +264,7 @@ paths:
242
264
  type: string
243
265
  description: 模板 ID(可选,从模板创建)
244
266
  responses:
245
- '201':
267
+ '200':
246
268
  description: 创建成功
247
269
  content:
248
270
  application/json:
@@ -318,7 +340,8 @@ paths:
318
340
  '500':
319
341
  description: 服务器内部错误
320
342
  content: *ref_5
321
- put:
343
+ /pages/{pageId}/update:
344
+ post:
322
345
  tags:
323
346
  - Pages
324
347
  operationId: updatePage
@@ -336,7 +359,7 @@ paths:
336
359
  application/json:
337
360
  schema:
338
361
  type: object
339
- properties: &ref_50
362
+ properties: &ref_54
340
363
  title:
341
364
  type: string
342
365
  minLength: 1
@@ -372,7 +395,8 @@ paths:
372
395
  '500':
373
396
  description: 服务器内部错误
374
397
  content: *ref_5
375
- delete:
398
+ /pages/{pageId}/delete:
399
+ post:
376
400
  tags:
377
401
  - Pages
378
402
  operationId: deletePage
@@ -384,9 +408,27 @@ paths:
384
408
  required: true
385
409
  schema: *ref_8
386
410
  description: 页面 ID
411
+ requestBody:
412
+ content:
413
+ application/json:
414
+ schema:
415
+ type: object
416
+ properties:
417
+ reason:
418
+ type: string
419
+ description: 删除原因
387
420
  responses:
388
- '204':
421
+ '200':
389
422
  description: 删除成功
423
+ content:
424
+ application/json:
425
+ schema:
426
+ type: object
427
+ properties:
428
+ success:
429
+ type: boolean
430
+ message:
431
+ type: string
390
432
  '401':
391
433
  description: 未授权
392
434
  content: *ref_4
@@ -421,11 +463,11 @@ paths:
421
463
  properties: &ref_12
422
464
  data:
423
465
  type: object
424
- required: &ref_52
466
+ required: &ref_56
425
467
  - pageId
426
468
  - content
427
469
  - updatedAt
428
- properties: &ref_53
470
+ properties: &ref_57
429
471
  pageId:
430
472
  type: string
431
473
  description: 页面 ID
@@ -444,7 +486,7 @@ paths:
444
486
  description: 最后更新者 ID
445
487
  lockInfo:
446
488
  type: object
447
- properties: &ref_51
489
+ properties: &ref_55
448
490
  lockedBy:
449
491
  type: string
450
492
  description: 锁定者 ID
@@ -465,7 +507,8 @@ paths:
465
507
  '500':
466
508
  description: 服务器内部错误
467
509
  content: *ref_5
468
- put:
510
+ /pages/{pageId}/draft/save:
511
+ post:
469
512
  tags:
470
513
  - Drafts
471
514
  operationId: saveDraft
@@ -483,9 +526,9 @@ paths:
483
526
  application/json:
484
527
  schema:
485
528
  type: object
486
- required: &ref_54
529
+ required: &ref_58
487
530
  - content
488
- properties: &ref_55
531
+ properties: &ref_59
489
532
  content:
490
533
  type: object
491
534
  description: 页面 Schema 内容
@@ -528,7 +571,8 @@ paths:
528
571
  '500':
529
572
  description: 服务器内部错误
530
573
  content: *ref_5
531
- delete:
574
+ /pages/{pageId}/draft/discard:
575
+ post:
532
576
  tags:
533
577
  - Drafts
534
578
  operationId: discardDraft
@@ -540,9 +584,27 @@ paths:
540
584
  required: true
541
585
  schema: *ref_8
542
586
  description: 页面 ID
587
+ requestBody:
588
+ content:
589
+ application/json:
590
+ schema:
591
+ type: object
592
+ properties:
593
+ reason:
594
+ type: string
595
+ description: 丢弃原因
543
596
  responses:
544
- '204':
597
+ '200':
545
598
  description: 丢弃成功
599
+ content:
600
+ application/json:
601
+ schema:
602
+ type: object
603
+ properties:
604
+ success:
605
+ type: boolean
606
+ message:
607
+ type: string
546
608
  '401':
547
609
  description: 未授权
548
610
  content: *ref_4
@@ -580,10 +642,10 @@ paths:
580
642
  application/json:
581
643
  schema:
582
644
  type: object
583
- required: &ref_56
645
+ required: &ref_60
584
646
  - data
585
647
  - meta
586
- properties: &ref_57
648
+ properties: &ref_61
587
649
  data:
588
650
  type: array
589
651
  items:
@@ -655,7 +717,7 @@ paths:
655
717
  - name: versionId
656
718
  in: path
657
719
  required: true
658
- schema: &ref_23
720
+ schema: &ref_25
659
721
  type: string
660
722
  description: 版本 ID
661
723
  responses:
@@ -665,9 +727,9 @@ paths:
665
727
  application/json:
666
728
  schema:
667
729
  type: object
668
- required: &ref_58
730
+ required: &ref_62
669
731
  - data
670
- properties: &ref_59
732
+ properties: &ref_63
671
733
  data:
672
734
  allOf:
673
735
  - type: object
@@ -706,7 +768,7 @@ paths:
706
768
  application/json:
707
769
  schema:
708
770
  type: object
709
- properties: &ref_60
771
+ properties: &ref_64
710
772
  changelog:
711
773
  type: string
712
774
  maxLength: 2048
@@ -721,7 +783,7 @@ paths:
721
783
  description: 版本号升级类型
722
784
  rollout:
723
785
  type: object
724
- properties: &ref_26
786
+ properties: &ref_28
725
787
  percentage:
726
788
  type: integer
727
789
  minimum: 0
@@ -781,9 +843,9 @@ paths:
781
843
  application/json:
782
844
  schema:
783
845
  type: object
784
- required: &ref_61
846
+ required: &ref_65
785
847
  - targetVersion
786
- properties: &ref_62
848
+ properties: &ref_66
787
849
  targetVersion:
788
850
  type: string
789
851
  description: 目标版本 ID 或版本号
@@ -812,6 +874,207 @@ paths:
812
874
  '500':
813
875
  description: 服务器内部错误
814
876
  content: *ref_5
877
+ /pages/{pageId}/preview:
878
+ post:
879
+ tags:
880
+ - Preview
881
+ summary: 生成预览 Token
882
+ operationId: createPreviewToken
883
+ description: |
884
+ 为当前草稿生成预览 Token。
885
+
886
+ 特点:
887
+ - Token 有效期短(默认 30 分钟)
888
+ - 预览使用 Runtime 渲染(确保"预览即线上")
889
+ - 可配置预览设备类型
890
+ parameters:
891
+ - name: pageId
892
+ in: path
893
+ required: true
894
+ schema: *ref_8
895
+ description: 页面 ID
896
+ requestBody:
897
+ content:
898
+ application/json:
899
+ schema:
900
+ type: object
901
+ properties:
902
+ expiresIn:
903
+ type: integer
904
+ minimum: 60
905
+ maximum: 86400
906
+ default: 1800
907
+ description: 过期时间(秒),默认 30 分钟
908
+ deviceType:
909
+ type: string
910
+ enum:
911
+ - mobile
912
+ - tablet
913
+ - desktop
914
+ description: 预览设备类型
915
+ context:
916
+ type: object
917
+ additionalProperties: true
918
+ description: 预览上下文数据
919
+ responses:
920
+ '201':
921
+ description: 创建成功
922
+ content:
923
+ application/json:
924
+ schema:
925
+ type: object
926
+ properties:
927
+ success:
928
+ type: boolean
929
+ data:
930
+ type: object
931
+ required: &ref_22
932
+ - token
933
+ - pageId
934
+ - expiresAt
935
+ properties: &ref_23
936
+ token:
937
+ type: string
938
+ description: 预览 Token
939
+ pageId:
940
+ type: string
941
+ description: 页面 ID
942
+ draftVersion:
943
+ type: string
944
+ description: 草稿版本标识
945
+ previewUrl:
946
+ type: string
947
+ format: uri
948
+ description: 预览 URL
949
+ deviceType:
950
+ type: string
951
+ enum:
952
+ - mobile
953
+ - tablet
954
+ - desktop
955
+ description: 预览设备类型
956
+ context:
957
+ type: object
958
+ additionalProperties: true
959
+ description: 预览上下文
960
+ createdAt:
961
+ type: string
962
+ format: date-time
963
+ description: 创建时间
964
+ expiresAt:
965
+ type: string
966
+ format: date-time
967
+ description: 过期时间
968
+ createdBy:
969
+ type: string
970
+ description: 创建者 ID
971
+ '400':
972
+ description: 请求参数错误
973
+ content: *ref_9
974
+ '401':
975
+ description: 未授权
976
+ content: *ref_4
977
+ '404':
978
+ description: 资源不存在
979
+ content: *ref_10
980
+ /pages/{pageId}/preview/tokens:
981
+ get:
982
+ tags:
983
+ - Preview
984
+ summary: 获取预览 Token 列表
985
+ operationId: listPreviewTokens
986
+ description: 获取指定页面的所有有效预览 Token
987
+ parameters:
988
+ - name: pageId
989
+ in: path
990
+ required: true
991
+ schema: *ref_8
992
+ description: 页面 ID
993
+ responses:
994
+ '200':
995
+ description: 成功
996
+ content:
997
+ application/json:
998
+ schema:
999
+ type: object
1000
+ properties:
1001
+ success:
1002
+ type: boolean
1003
+ data:
1004
+ type: array
1005
+ items:
1006
+ type: object
1007
+ required: *ref_22
1008
+ properties: *ref_23
1009
+ /preview/tokens/{token}:
1010
+ get:
1011
+ tags:
1012
+ - Preview
1013
+ summary: 获取预览 Token 信息
1014
+ operationId: getPreviewToken
1015
+ description: 获取指定预览 Token 的详细信息
1016
+ parameters:
1017
+ - name: token
1018
+ in: path
1019
+ required: true
1020
+ schema:
1021
+ type: string
1022
+ description: 预览 Token
1023
+ responses:
1024
+ '200':
1025
+ description: 成功
1026
+ content:
1027
+ application/json:
1028
+ schema:
1029
+ type: object
1030
+ properties:
1031
+ success:
1032
+ type: boolean
1033
+ data:
1034
+ type: object
1035
+ required: *ref_22
1036
+ properties: *ref_23
1037
+ '404':
1038
+ description: 资源不存在
1039
+ content: *ref_10
1040
+ /preview/tokens/{token}/revoke:
1041
+ post:
1042
+ tags:
1043
+ - Preview
1044
+ summary: 撤销预览 Token
1045
+ operationId: revokePreviewToken
1046
+ description: 撤销指定的预览 Token
1047
+ parameters:
1048
+ - name: token
1049
+ in: path
1050
+ required: true
1051
+ schema:
1052
+ type: string
1053
+ description: 预览 Token
1054
+ requestBody:
1055
+ content:
1056
+ application/json:
1057
+ schema:
1058
+ type: object
1059
+ properties:
1060
+ reason:
1061
+ type: string
1062
+ description: 撤销原因
1063
+ responses:
1064
+ '200':
1065
+ description: 撤销成功
1066
+ content:
1067
+ application/json:
1068
+ schema:
1069
+ type: object
1070
+ properties:
1071
+ success:
1072
+ type: boolean
1073
+ message:
1074
+ type: string
1075
+ '404':
1076
+ description: 资源不存在
1077
+ content: *ref_10
815
1078
  /components:
816
1079
  get:
817
1080
  tags:
@@ -849,20 +1112,20 @@ paths:
849
1112
  application/json:
850
1113
  schema:
851
1114
  type: object
852
- required: &ref_65
1115
+ required: &ref_69
853
1116
  - data
854
1117
  - meta
855
- properties: &ref_66
1118
+ properties: &ref_70
856
1119
  data:
857
1120
  type: array
858
1121
  items:
859
1122
  type: object
860
- required: &ref_63
1123
+ required: &ref_67
861
1124
  - id
862
1125
  - name
863
1126
  - category
864
1127
  - status
865
- properties: &ref_64
1128
+ properties: &ref_68
866
1129
  id:
867
1130
  type: string
868
1131
  description: 组件 ID
@@ -912,7 +1175,7 @@ paths:
912
1175
  - name: componentId
913
1176
  in: path
914
1177
  required: true
915
- schema: &ref_22
1178
+ schema: &ref_24
916
1179
  type: string
917
1180
  description: 组件 ID
918
1181
  - name: page
@@ -930,20 +1193,20 @@ paths:
930
1193
  application/json:
931
1194
  schema:
932
1195
  type: object
933
- required: &ref_67
1196
+ required: &ref_71
934
1197
  - data
935
1198
  - meta
936
- properties: &ref_68
1199
+ properties: &ref_72
937
1200
  data:
938
1201
  type: array
939
1202
  items:
940
1203
  type: object
941
- required: &ref_24
1204
+ required: &ref_26
942
1205
  - id
943
1206
  - version
944
1207
  - status
945
1208
  - createdAt
946
- properties: &ref_25
1209
+ properties: &ref_27
947
1210
  id:
948
1211
  type: string
949
1212
  description: 版本 ID
@@ -981,8 +1244,8 @@ paths:
981
1244
  '500':
982
1245
  description: 服务器内部错误
983
1246
  content: *ref_5
984
- /components/{componentId}/versions/{versionId}/status:
985
- put:
1247
+ /components/{componentId}/versions/{versionId}/status/update:
1248
+ post:
986
1249
  tags:
987
1250
  - Components
988
1251
  operationId: updateComponentVersionStatus
@@ -992,12 +1255,12 @@ paths:
992
1255
  - name: componentId
993
1256
  in: path
994
1257
  required: true
995
- schema: *ref_22
1258
+ schema: *ref_24
996
1259
  description: 组件 ID
997
1260
  - name: versionId
998
1261
  in: path
999
1262
  required: true
1000
- schema: *ref_23
1263
+ schema: *ref_25
1001
1264
  description: 版本 ID
1002
1265
  requestBody:
1003
1266
  required: true
@@ -1005,9 +1268,9 @@ paths:
1005
1268
  application/json:
1006
1269
  schema:
1007
1270
  type: object
1008
- required: &ref_69
1271
+ required: &ref_73
1009
1272
  - status
1010
- properties: &ref_70
1273
+ properties: &ref_74
1011
1274
  status:
1012
1275
  type: string
1013
1276
  enum:
@@ -1026,13 +1289,13 @@ paths:
1026
1289
  application/json:
1027
1290
  schema:
1028
1291
  type: object
1029
- required: &ref_71
1292
+ required: &ref_75
1030
1293
  - data
1031
- properties: &ref_72
1294
+ properties: &ref_76
1032
1295
  data:
1033
1296
  type: object
1034
- required: *ref_24
1035
- properties: *ref_25
1297
+ required: *ref_26
1298
+ properties: *ref_27
1036
1299
  '400':
1037
1300
  description: 请求参数错误
1038
1301
  content: *ref_9
@@ -1069,11 +1332,12 @@ paths:
1069
1332
  type: boolean
1070
1333
  data:
1071
1334
  type: object
1072
- properties: *ref_26
1335
+ properties: *ref_28
1073
1336
  '404':
1074
1337
  description: 资源不存在
1075
1338
  content: *ref_10
1076
- put:
1339
+ /pages/{pageId}/rollout/update:
1340
+ post:
1077
1341
  tags:
1078
1342
  - Rollout
1079
1343
  summary: 更新页面灰度配置
@@ -1090,7 +1354,7 @@ paths:
1090
1354
  application/json:
1091
1355
  schema:
1092
1356
  type: object
1093
- properties: &ref_73
1357
+ properties: &ref_77
1094
1358
  percentage:
1095
1359
  type: integer
1096
1360
  minimum: 0
@@ -1116,31 +1380,51 @@ paths:
1116
1380
  type: boolean
1117
1381
  data:
1118
1382
  type: object
1119
- properties: *ref_26
1383
+ properties: *ref_28
1120
1384
  '400':
1121
1385
  description: 请求参数错误
1122
1386
  content: *ref_9
1123
1387
  '404':
1124
1388
  description: 资源不存在
1125
1389
  content: *ref_10
1126
- delete:
1390
+ /pages/{pageId}/rollout/remove:
1391
+ post:
1127
1392
  tags:
1128
1393
  - Rollout
1129
- summary: 删除页面灰度配置(使用默认版本)
1130
- operationId: deleteRolloutConfig
1394
+ summary: 删除页面灰度配置
1395
+ operationId: removeRolloutConfig
1396
+ description: 删除页面灰度配置(使用默认版本)
1131
1397
  parameters:
1132
1398
  - name: pageId
1133
1399
  in: path
1134
1400
  required: true
1135
1401
  schema:
1136
1402
  type: string
1403
+ requestBody:
1404
+ content:
1405
+ application/json:
1406
+ schema:
1407
+ type: object
1408
+ properties:
1409
+ reason:
1410
+ type: string
1411
+ description: 删除原因
1137
1412
  responses:
1138
- '204':
1413
+ '200':
1139
1414
  description: 删除成功
1415
+ content:
1416
+ application/json:
1417
+ schema:
1418
+ type: object
1419
+ properties:
1420
+ success:
1421
+ type: boolean
1422
+ message:
1423
+ type: string
1140
1424
  '404':
1141
1425
  description: 资源不存在
1142
1426
  content: *ref_10
1143
- /pages/{pageId}/rollout/strategies:
1427
+ /pages/{pageId}/rollout/strategies/add:
1144
1428
  post:
1145
1429
  tags:
1146
1430
  - Rollout
@@ -1158,11 +1442,11 @@ paths:
1158
1442
  application/json:
1159
1443
  schema:
1160
1444
  type: object
1161
- required: &ref_74
1445
+ required: &ref_78
1162
1446
  - name
1163
1447
  - type
1164
1448
  - config
1165
- properties: &ref_75
1449
+ properties: &ref_79
1166
1450
  name:
1167
1451
  type: string
1168
1452
  minLength: 1
@@ -1189,7 +1473,7 @@ paths:
1189
1473
  default: true
1190
1474
  description: 是否启用
1191
1475
  responses:
1192
- '201':
1476
+ '200':
1193
1477
  description: 添加成功
1194
1478
  content:
1195
1479
  application/json:
@@ -1200,12 +1484,12 @@ paths:
1200
1484
  type: boolean
1201
1485
  data:
1202
1486
  type: object
1203
- required: &ref_27
1487
+ required: &ref_29
1204
1488
  - id
1205
1489
  - name
1206
1490
  - type
1207
1491
  - config
1208
- properties: &ref_28
1492
+ properties: &ref_30
1209
1493
  id:
1210
1494
  type: string
1211
1495
  description: 策略 ID
@@ -1239,8 +1523,8 @@ paths:
1239
1523
  type: string
1240
1524
  format: date-time
1241
1525
  description: 更新时间
1242
- /pages/{pageId}/rollout/strategies/{strategyId}:
1243
- put:
1526
+ /pages/{pageId}/rollout/strategies/{strategyId}/update:
1527
+ post:
1244
1528
  tags:
1245
1529
  - Rollout
1246
1530
  summary: 更新灰度策略
@@ -1262,7 +1546,7 @@ paths:
1262
1546
  application/json:
1263
1547
  schema:
1264
1548
  type: object
1265
- properties: &ref_76
1549
+ properties: &ref_80
1266
1550
  name:
1267
1551
  type: string
1268
1552
  minLength: 1
@@ -1291,13 +1575,14 @@ paths:
1291
1575
  type: boolean
1292
1576
  data:
1293
1577
  type: object
1294
- required: *ref_27
1295
- properties: *ref_28
1296
- delete:
1578
+ required: *ref_29
1579
+ properties: *ref_30
1580
+ /pages/{pageId}/rollout/strategies/{strategyId}/remove:
1581
+ post:
1297
1582
  tags:
1298
1583
  - Rollout
1299
1584
  summary: 删除灰度策略
1300
- operationId: deleteRolloutStrategy
1585
+ operationId: removeRolloutStrategy
1301
1586
  parameters:
1302
1587
  - name: pageId
1303
1588
  in: path
@@ -1309,9 +1594,27 @@ paths:
1309
1594
  required: true
1310
1595
  schema:
1311
1596
  type: string
1597
+ requestBody:
1598
+ content:
1599
+ application/json:
1600
+ schema:
1601
+ type: object
1602
+ properties:
1603
+ reason:
1604
+ type: string
1605
+ description: 删除原因
1312
1606
  responses:
1313
- '204':
1607
+ '200':
1314
1608
  description: 删除成功
1609
+ content:
1610
+ application/json:
1611
+ schema:
1612
+ type: object
1613
+ properties:
1614
+ success:
1615
+ type: boolean
1616
+ message:
1617
+ type: string
1315
1618
  /definitions/actions:
1316
1619
  get:
1317
1620
  tags:
@@ -1366,13 +1669,13 @@ paths:
1366
1669
  type: array
1367
1670
  items:
1368
1671
  type: object
1369
- required: &ref_29
1672
+ required: &ref_31
1370
1673
  - id
1371
1674
  - name
1372
- - type
1675
+ - actionType
1373
1676
  - status
1374
1677
  - createdAt
1375
- properties: &ref_30
1678
+ properties: &ref_32
1376
1679
  id:
1377
1680
  type: string
1378
1681
  description: 定义 ID
@@ -1382,13 +1685,19 @@ paths:
1382
1685
  displayName:
1383
1686
  type: string
1384
1687
  description: 显示名称
1385
- type:
1688
+ actionType:
1386
1689
  type: string
1387
1690
  enum:
1388
- - builtin
1691
+ - claim
1692
+ - signin
1693
+ - lottery
1694
+ - reserve
1695
+ - bind
1696
+ - task_complete
1697
+ - vote
1698
+ - share
1699
+ - form_submit
1389
1700
  - custom
1390
- - http
1391
- - script
1392
1701
  description: 动作类型
1393
1702
  description:
1394
1703
  type: string
@@ -1396,10 +1705,11 @@ paths:
1396
1705
  status:
1397
1706
  type: string
1398
1707
  enum:
1399
- - active
1708
+ - draft
1709
+ - stable
1400
1710
  - deprecated
1401
- - disabled
1402
- description: 状态
1711
+ - blocked
1712
+ description: 状态(状态机:draft → stable → deprecated → blocked)
1403
1713
  latestVersion:
1404
1714
  type: string
1405
1715
  description: 最新版本
@@ -1429,10 +1739,10 @@ paths:
1429
1739
  application/json:
1430
1740
  schema:
1431
1741
  type: object
1432
- required: &ref_77
1742
+ required: &ref_81
1433
1743
  - name
1434
- - type
1435
- properties: &ref_78
1744
+ - actionType
1745
+ properties: &ref_82
1436
1746
  name:
1437
1747
  type: string
1438
1748
  minLength: 1
@@ -1442,13 +1752,19 @@ paths:
1442
1752
  type: string
1443
1753
  maxLength: 255
1444
1754
  description: 显示名称
1445
- type:
1755
+ actionType:
1446
1756
  type: string
1447
1757
  enum:
1448
- - builtin
1758
+ - claim
1759
+ - signin
1760
+ - lottery
1761
+ - reserve
1762
+ - bind
1763
+ - task_complete
1764
+ - vote
1765
+ - share
1766
+ - form_submit
1449
1767
  - custom
1450
- - http
1451
- - script
1452
1768
  description: 动作类型
1453
1769
  description:
1454
1770
  type: string
@@ -1469,8 +1785,8 @@ paths:
1469
1785
  type: boolean
1470
1786
  data:
1471
1787
  type: object
1472
- required: *ref_29
1473
- properties: *ref_30
1788
+ required: *ref_31
1789
+ properties: *ref_32
1474
1790
  '400':
1475
1791
  description: 请求参数错误
1476
1792
  content: *ref_9
@@ -1501,14 +1817,14 @@ paths:
1501
1817
  type: boolean
1502
1818
  data:
1503
1819
  type: object
1504
- required: &ref_79
1820
+ required: &ref_83
1505
1821
  - id
1506
1822
  - name
1507
- - type
1823
+ - actionType
1508
1824
  - status
1509
1825
  - spec
1510
1826
  - createdAt
1511
- properties: &ref_80
1827
+ properties: &ref_84
1512
1828
  id:
1513
1829
  type: string
1514
1830
  description: 定义 ID
@@ -1518,13 +1834,19 @@ paths:
1518
1834
  displayName:
1519
1835
  type: string
1520
1836
  description: 显示名称
1521
- type:
1837
+ actionType:
1522
1838
  type: string
1523
1839
  enum:
1524
- - builtin
1840
+ - claim
1841
+ - signin
1842
+ - lottery
1843
+ - reserve
1844
+ - bind
1845
+ - task_complete
1846
+ - vote
1847
+ - share
1848
+ - form_submit
1525
1849
  - custom
1526
- - http
1527
- - script
1528
1850
  description: 动作类型
1529
1851
  description:
1530
1852
  type: string
@@ -1532,10 +1854,11 @@ paths:
1532
1854
  status:
1533
1855
  type: string
1534
1856
  enum:
1535
- - active
1857
+ - draft
1858
+ - stable
1536
1859
  - deprecated
1537
- - disabled
1538
- description: 状态
1860
+ - blocked
1861
+ description: 状态(状态机:draft → stable → deprecated → blocked)
1539
1862
  spec:
1540
1863
  type: object
1541
1864
  description: 动作规范定义
@@ -1543,12 +1866,12 @@ paths:
1543
1866
  type: array
1544
1867
  items:
1545
1868
  type: object
1546
- required: &ref_31
1869
+ required: &ref_33
1547
1870
  - id
1548
1871
  - version
1549
1872
  - status
1550
1873
  - createdAt
1551
- properties: &ref_32
1874
+ properties: &ref_34
1552
1875
  id:
1553
1876
  type: string
1554
1877
  description: 版本 ID
@@ -1559,10 +1882,11 @@ paths:
1559
1882
  status:
1560
1883
  type: string
1561
1884
  enum:
1562
- - active
1885
+ - draft
1886
+ - stable
1563
1887
  - deprecated
1564
- - disabled
1565
- description: 版本状态
1888
+ - blocked
1889
+ description: 版本状态(状态机:draft → stable → deprecated → blocked)
1566
1890
  changelog:
1567
1891
  type: string
1568
1892
  description: 变更日志
@@ -1588,7 +1912,8 @@ paths:
1588
1912
  '404':
1589
1913
  description: 资源不存在
1590
1914
  content: *ref_10
1591
- put:
1915
+ /definitions/actions/{definitionId}/update:
1916
+ post:
1592
1917
  tags:
1593
1918
  - Definitions
1594
1919
  summary: 更新 ActionDefinition
@@ -1605,7 +1930,7 @@ paths:
1605
1930
  application/json:
1606
1931
  schema:
1607
1932
  type: object
1608
- properties: &ref_81
1933
+ properties: &ref_85
1609
1934
  displayName:
1610
1935
  type: string
1611
1936
  maxLength: 255
@@ -1620,9 +1945,10 @@ paths:
1620
1945
  status:
1621
1946
  type: string
1622
1947
  enum:
1623
- - active
1948
+ - draft
1949
+ - stable
1624
1950
  - deprecated
1625
- - disabled
1951
+ - blocked
1626
1952
  description: 状态
1627
1953
  responses:
1628
1954
  '200':
@@ -1636,14 +1962,36 @@ paths:
1636
1962
  type: boolean
1637
1963
  data:
1638
1964
  type: object
1639
- required: *ref_29
1640
- properties: *ref_30
1965
+ required: *ref_31
1966
+ properties: *ref_32
1641
1967
  '400':
1642
1968
  description: 请求参数错误
1643
1969
  content: *ref_9
1644
1970
  '404':
1645
1971
  description: 资源不存在
1646
1972
  content: *ref_10
1973
+ /definitions/actions/{definitionId}/delete:
1974
+ post:
1975
+ tags:
1976
+ - Definitions
1977
+ summary: 删除 ActionDefinition
1978
+ operationId: deleteActionDefinition
1979
+ description: 删除 ActionDefinition(仅 draft 状态可删除)
1980
+ parameters:
1981
+ - name: definitionId
1982
+ in: path
1983
+ required: true
1984
+ schema:
1985
+ type: string
1986
+ responses:
1987
+ '204':
1988
+ description: 删除成功
1989
+ '404':
1990
+ description: 资源不存在
1991
+ content: *ref_10
1992
+ '409':
1993
+ description: 资源冲突
1994
+ content: *ref_19
1647
1995
  /definitions/actions/{definitionId}/versions:
1648
1996
  get:
1649
1997
  tags:
@@ -1665,6 +2013,15 @@ paths:
1665
2013
  in: query
1666
2014
  schema:
1667
2015
  type: string
2016
+ - name: status
2017
+ in: query
2018
+ schema:
2019
+ type: string
2020
+ enum:
2021
+ - draft
2022
+ - stable
2023
+ - deprecated
2024
+ - blocked
1668
2025
  responses:
1669
2026
  '200':
1670
2027
  description: 成功
@@ -1679,8 +2036,8 @@ paths:
1679
2036
  type: array
1680
2037
  items:
1681
2038
  type: object
1682
- required: *ref_31
1683
- properties: *ref_32
2039
+ required: *ref_33
2040
+ properties: *ref_34
1684
2041
  meta:
1685
2042
  type: object
1686
2043
  required: *ref_15
@@ -1690,6 +2047,9 @@ paths:
1690
2047
  - Definitions
1691
2048
  summary: 发布 ActionDefinition 新版本
1692
2049
  operationId: publishActionDefinitionVersion
2050
+ description: |
2051
+ 发布新版本,版本一旦发布即不可变。
2052
+ 状态机:draft → stable → deprecated → blocked
1693
2053
  parameters:
1694
2054
  - name: definitionId
1695
2055
  in: path
@@ -1702,7 +2062,7 @@ paths:
1702
2062
  application/json:
1703
2063
  schema:
1704
2064
  type: object
1705
- properties: &ref_35
2065
+ properties: &ref_37
1706
2066
  changelog:
1707
2067
  type: string
1708
2068
  maxLength: 2048
@@ -1727,8 +2087,14 @@ paths:
1727
2087
  type: boolean
1728
2088
  data:
1729
2089
  type: object
1730
- required: *ref_31
1731
- properties: *ref_32
2090
+ required: *ref_33
2091
+ properties: *ref_34
2092
+ '400':
2093
+ description: 请求参数错误
2094
+ content: *ref_9
2095
+ '404':
2096
+ description: 资源不存在
2097
+ content: *ref_10
1732
2098
  /definitions/queries:
1733
2099
  get:
1734
2100
  tags:
@@ -1778,13 +2144,13 @@ paths:
1778
2144
  type: array
1779
2145
  items:
1780
2146
  type: object
1781
- required: &ref_33
2147
+ required: &ref_35
1782
2148
  - id
1783
2149
  - name
1784
- - type
2150
+ - sourceType
1785
2151
  - status
1786
2152
  - createdAt
1787
- properties: &ref_34
2153
+ properties: &ref_36
1788
2154
  id:
1789
2155
  type: string
1790
2156
  description: 定义 ID
@@ -1794,24 +2160,26 @@ paths:
1794
2160
  displayName:
1795
2161
  type: string
1796
2162
  description: 显示名称
1797
- type:
2163
+ sourceType:
1798
2164
  type: string
1799
2165
  enum:
1800
2166
  - http
1801
2167
  - graphql
1802
- - sql
1803
- - custom
1804
- description: 查询类型
2168
+ - database
2169
+ - internal
2170
+ - aggregation
2171
+ description: 数据源类型
1805
2172
  description:
1806
2173
  type: string
1807
2174
  description: 描述
1808
2175
  status:
1809
2176
  type: string
1810
2177
  enum:
1811
- - active
2178
+ - draft
2179
+ - stable
1812
2180
  - deprecated
1813
- - disabled
1814
- description: 状态
2181
+ - blocked
2182
+ description: 状态(状态机:draft → stable → deprecated → blocked)
1815
2183
  latestVersion:
1816
2184
  type: string
1817
2185
  description: 最新版本
@@ -1838,10 +2206,10 @@ paths:
1838
2206
  application/json:
1839
2207
  schema:
1840
2208
  type: object
1841
- required: &ref_82
2209
+ required: &ref_86
1842
2210
  - name
1843
- - type
1844
- properties: &ref_83
2211
+ - sourceType
2212
+ properties: &ref_87
1845
2213
  name:
1846
2214
  type: string
1847
2215
  minLength: 1
@@ -1851,14 +2219,15 @@ paths:
1851
2219
  type: string
1852
2220
  maxLength: 255
1853
2221
  description: 显示名称
1854
- type:
2222
+ sourceType:
1855
2223
  type: string
1856
2224
  enum:
1857
2225
  - http
1858
2226
  - graphql
1859
- - sql
1860
- - custom
1861
- description: 查询类型
2227
+ - database
2228
+ - internal
2229
+ - aggregation
2230
+ description: 数据源类型
1862
2231
  description:
1863
2232
  type: string
1864
2233
  maxLength: 1024
@@ -1878,8 +2247,14 @@ paths:
1878
2247
  type: boolean
1879
2248
  data:
1880
2249
  type: object
1881
- required: *ref_33
1882
- properties: *ref_34
2250
+ required: *ref_35
2251
+ properties: *ref_36
2252
+ '400':
2253
+ description: 请求参数错误
2254
+ content: *ref_9
2255
+ '401':
2256
+ description: 未授权
2257
+ content: *ref_4
1883
2258
  /definitions/queries/{definitionId}:
1884
2259
  get:
1885
2260
  tags:
@@ -1904,14 +2279,14 @@ paths:
1904
2279
  type: boolean
1905
2280
  data:
1906
2281
  type: object
1907
- required: &ref_84
2282
+ required: &ref_88
1908
2283
  - id
1909
2284
  - name
1910
- - type
2285
+ - sourceType
1911
2286
  - status
1912
2287
  - spec
1913
2288
  - createdAt
1914
- properties: &ref_85
2289
+ properties: &ref_89
1915
2290
  id:
1916
2291
  type: string
1917
2292
  description: 定义 ID
@@ -1921,24 +2296,26 @@ paths:
1921
2296
  displayName:
1922
2297
  type: string
1923
2298
  description: 显示名称
1924
- type:
2299
+ sourceType:
1925
2300
  type: string
1926
2301
  enum:
1927
2302
  - http
1928
2303
  - graphql
1929
- - sql
1930
- - custom
1931
- description: 查询类型
2304
+ - database
2305
+ - internal
2306
+ - aggregation
2307
+ description: 数据源类型
1932
2308
  description:
1933
2309
  type: string
1934
2310
  description: 描述
1935
2311
  status:
1936
2312
  type: string
1937
2313
  enum:
1938
- - active
2314
+ - draft
2315
+ - stable
1939
2316
  - deprecated
1940
- - disabled
1941
- description: 状态
2317
+ - blocked
2318
+ description: 状态(状态机:draft → stable → deprecated → blocked)
1942
2319
  spec:
1943
2320
  type: object
1944
2321
  description: 查询规范定义
@@ -1946,8 +2323,8 @@ paths:
1946
2323
  type: array
1947
2324
  items:
1948
2325
  type: object
1949
- required: *ref_31
1950
- properties: *ref_32
2326
+ required: *ref_33
2327
+ properties: *ref_34
1951
2328
  description: 版本列表
1952
2329
  createdAt:
1953
2330
  type: string
@@ -1960,6 +2337,86 @@ paths:
1960
2337
  '404':
1961
2338
  description: 资源不存在
1962
2339
  content: *ref_10
2340
+ /definitions/queries/{definitionId}/update:
2341
+ post:
2342
+ tags:
2343
+ - Definitions
2344
+ summary: 更新 DataQueryDefinition
2345
+ operationId: updateDataQueryDefinition
2346
+ parameters:
2347
+ - name: definitionId
2348
+ in: path
2349
+ required: true
2350
+ schema:
2351
+ type: string
2352
+ requestBody:
2353
+ required: true
2354
+ content:
2355
+ application/json:
2356
+ schema:
2357
+ type: object
2358
+ properties: &ref_90
2359
+ displayName:
2360
+ type: string
2361
+ maxLength: 255
2362
+ description: 显示名称
2363
+ description:
2364
+ type: string
2365
+ maxLength: 1024
2366
+ description: 描述
2367
+ spec:
2368
+ type: object
2369
+ description: 查询规范定义
2370
+ status:
2371
+ type: string
2372
+ enum:
2373
+ - draft
2374
+ - stable
2375
+ - deprecated
2376
+ - blocked
2377
+ description: 状态
2378
+ responses:
2379
+ '200':
2380
+ description: 更新成功
2381
+ content:
2382
+ application/json:
2383
+ schema:
2384
+ type: object
2385
+ properties:
2386
+ success:
2387
+ type: boolean
2388
+ data:
2389
+ type: object
2390
+ required: *ref_35
2391
+ properties: *ref_36
2392
+ '400':
2393
+ description: 请求参数错误
2394
+ content: *ref_9
2395
+ '404':
2396
+ description: 资源不存在
2397
+ content: *ref_10
2398
+ /definitions/queries/{definitionId}/delete:
2399
+ post:
2400
+ tags:
2401
+ - Definitions
2402
+ summary: 删除 DataQueryDefinition
2403
+ operationId: deleteDataQueryDefinition
2404
+ description: 删除 DataQueryDefinition(仅 draft 状态可删除)
2405
+ parameters:
2406
+ - name: definitionId
2407
+ in: path
2408
+ required: true
2409
+ schema:
2410
+ type: string
2411
+ responses:
2412
+ '204':
2413
+ description: 删除成功
2414
+ '404':
2415
+ description: 资源不存在
2416
+ content: *ref_10
2417
+ '409':
2418
+ description: 资源冲突
2419
+ content: *ref_19
1963
2420
  /definitions/queries/{definitionId}/versions:
1964
2421
  get:
1965
2422
  tags:
@@ -1972,6 +2429,15 @@ paths:
1972
2429
  required: true
1973
2430
  schema:
1974
2431
  type: string
2432
+ - name: status
2433
+ in: query
2434
+ schema:
2435
+ type: string
2436
+ enum:
2437
+ - draft
2438
+ - stable
2439
+ - deprecated
2440
+ - blocked
1975
2441
  responses:
1976
2442
  '200':
1977
2443
  description: 成功
@@ -1986,13 +2452,16 @@ paths:
1986
2452
  type: array
1987
2453
  items:
1988
2454
  type: object
1989
- required: *ref_31
1990
- properties: *ref_32
2455
+ required: *ref_33
2456
+ properties: *ref_34
1991
2457
  post:
1992
2458
  tags:
1993
2459
  - Definitions
1994
2460
  summary: 发布 DataQueryDefinition 新版本
1995
2461
  operationId: publishDataQueryDefinitionVersion
2462
+ description: |
2463
+ 发布新版本,版本一旦发布即不可变。
2464
+ 状态机:draft → stable → deprecated → blocked
1996
2465
  parameters:
1997
2466
  - name: definitionId
1998
2467
  in: path
@@ -2005,7 +2474,7 @@ paths:
2005
2474
  application/json:
2006
2475
  schema:
2007
2476
  type: object
2008
- properties: *ref_35
2477
+ properties: *ref_37
2009
2478
  responses:
2010
2479
  '201':
2011
2480
  description: 发布成功
@@ -2018,8 +2487,14 @@ paths:
2018
2487
  type: boolean
2019
2488
  data:
2020
2489
  type: object
2021
- required: *ref_31
2022
- properties: *ref_32
2490
+ required: *ref_33
2491
+ properties: *ref_34
2492
+ '400':
2493
+ description: 请求参数错误
2494
+ content: *ref_9
2495
+ '404':
2496
+ description: 资源不存在
2497
+ content: *ref_10
2023
2498
  /activities:
2024
2499
  get:
2025
2500
  tags:
@@ -2075,13 +2550,13 @@ paths:
2075
2550
  type: array
2076
2551
  items:
2077
2552
  type: object
2078
- required: &ref_36
2553
+ required: &ref_38
2079
2554
  - id
2080
2555
  - name
2081
2556
  - type
2082
2557
  - status
2083
2558
  - createdAt
2084
- properties: &ref_37
2559
+ properties: &ref_39
2085
2560
  id:
2086
2561
  type: string
2087
2562
  description: 活动 ID
@@ -2137,10 +2612,10 @@ paths:
2137
2612
  application/json:
2138
2613
  schema:
2139
2614
  type: object
2140
- required: &ref_86
2615
+ required: &ref_91
2141
2616
  - name
2142
2617
  - type
2143
- properties: &ref_87
2618
+ properties: &ref_92
2144
2619
  name:
2145
2620
  type: string
2146
2621
  minLength: 1
@@ -2187,8 +2662,8 @@ paths:
2187
2662
  type: boolean
2188
2663
  data:
2189
2664
  type: object
2190
- required: *ref_36
2191
- properties: *ref_37
2665
+ required: *ref_38
2666
+ properties: *ref_39
2192
2667
  /activities/{activityId}:
2193
2668
  get:
2194
2669
  tags:
@@ -2213,14 +2688,14 @@ paths:
2213
2688
  type: boolean
2214
2689
  data:
2215
2690
  type: object
2216
- required: &ref_88
2691
+ required: &ref_93
2217
2692
  - id
2218
2693
  - name
2219
2694
  - type
2220
2695
  - status
2221
2696
  - config
2222
2697
  - createdAt
2223
- properties: &ref_89
2698
+ properties: &ref_94
2224
2699
  id:
2225
2700
  type: string
2226
2701
  description: 活动 ID
@@ -2278,7 +2753,8 @@ paths:
2278
2753
  '404':
2279
2754
  description: 资源不存在
2280
2755
  content: *ref_10
2281
- put:
2756
+ /activities/{activityId}/update:
2757
+ post:
2282
2758
  tags:
2283
2759
  - Activities
2284
2760
  summary: 更新活动
@@ -2295,7 +2771,7 @@ paths:
2295
2771
  application/json:
2296
2772
  schema:
2297
2773
  type: object
2298
- properties: &ref_90
2774
+ properties: &ref_95
2299
2775
  name:
2300
2776
  type: string
2301
2777
  minLength: 1
@@ -2333,9 +2809,10 @@ paths:
2333
2809
  type: boolean
2334
2810
  data:
2335
2811
  type: object
2336
- required: *ref_36
2337
- properties: *ref_37
2338
- delete:
2812
+ required: *ref_38
2813
+ properties: *ref_39
2814
+ /activities/{activityId}/delete:
2815
+ post:
2339
2816
  tags:
2340
2817
  - Activities
2341
2818
  summary: 删除活动
@@ -2346,11 +2823,29 @@ paths:
2346
2823
  required: true
2347
2824
  schema:
2348
2825
  type: string
2826
+ requestBody:
2827
+ content:
2828
+ application/json:
2829
+ schema:
2830
+ type: object
2831
+ properties:
2832
+ reason:
2833
+ type: string
2834
+ description: 删除原因
2349
2835
  responses:
2350
- '204':
2836
+ '200':
2351
2837
  description: 删除成功
2352
- /activities/{activityId}/status:
2353
- put:
2838
+ content:
2839
+ application/json:
2840
+ schema:
2841
+ type: object
2842
+ properties:
2843
+ success:
2844
+ type: boolean
2845
+ message:
2846
+ type: string
2847
+ /activities/{activityId}/status/update:
2848
+ post:
2354
2849
  tags:
2355
2850
  - Activities
2356
2851
  summary: 更新活动状态
@@ -2392,8 +2887,8 @@ paths:
2392
2887
  type: boolean
2393
2888
  data:
2394
2889
  type: object
2395
- required: *ref_36
2396
- properties: *ref_37
2890
+ required: *ref_38
2891
+ properties: *ref_39
2397
2892
  /activities/{activityId}/stats:
2398
2893
  get:
2399
2894
  tags:
@@ -2428,7 +2923,7 @@ paths:
2428
2923
  type: boolean
2429
2924
  data:
2430
2925
  type: object
2431
- properties: &ref_91
2926
+ properties: &ref_96
2432
2927
  totalParticipants:
2433
2928
  type: integer
2434
2929
  description: 总参与人数
@@ -2541,12 +3036,12 @@ paths:
2541
3036
  type: array
2542
3037
  items:
2543
3038
  type: object
2544
- required: &ref_92
3039
+ required: &ref_97
2545
3040
  - id
2546
3041
  - action
2547
3042
  - resource
2548
3043
  - timestamp
2549
- properties: &ref_93
3044
+ properties: &ref_98
2550
3045
  id:
2551
3046
  type: string
2552
3047
  description: 日志 ID
@@ -2584,7 +3079,7 @@ paths:
2584
3079
  content: *ref_4
2585
3080
  '403':
2586
3081
  description: 权限不足
2587
- content: &ref_40
3082
+ content: &ref_42
2588
3083
  application/json:
2589
3084
  schema:
2590
3085
  type: object
@@ -2617,12 +3112,12 @@ paths:
2617
3112
  type: boolean
2618
3113
  data:
2619
3114
  type: object
2620
- required: &ref_94
3115
+ required: &ref_99
2621
3116
  - id
2622
3117
  - action
2623
3118
  - resource
2624
3119
  - timestamp
2625
- properties: &ref_95
3120
+ properties: &ref_100
2626
3121
  id:
2627
3122
  type: string
2628
3123
  description: 日志 ID
@@ -2716,7 +3211,7 @@ paths:
2716
3211
  type: boolean
2717
3212
  data:
2718
3213
  type: object
2719
- properties: &ref_96
3214
+ properties: &ref_101
2720
3215
  totalLogs:
2721
3216
  type: integer
2722
3217
  description: 总日志数
@@ -2747,9 +3242,9 @@ paths:
2747
3242
  application/json:
2748
3243
  schema:
2749
3244
  type: object
2750
- required: &ref_38
3245
+ required: &ref_40
2751
3246
  - data
2752
- properties: &ref_39
3247
+ properties: &ref_41
2753
3248
  data:
2754
3249
  type: object
2755
3250
  required:
@@ -2777,7 +3272,8 @@ paths:
2777
3272
  '500':
2778
3273
  description: 服务器内部错误
2779
3274
  content: *ref_5
2780
- put:
3275
+ /operations/kill-switch/set:
3276
+ post:
2781
3277
  tags:
2782
3278
  - Operations
2783
3279
  operationId: setGlobalKillSwitch
@@ -2789,9 +3285,9 @@ paths:
2789
3285
  application/json:
2790
3286
  schema:
2791
3287
  type: object
2792
- required: &ref_41
3288
+ required: &ref_43
2793
3289
  - enabled
2794
- properties: &ref_42
3290
+ properties: &ref_44
2795
3291
  enabled:
2796
3292
  type: boolean
2797
3293
  description: 是否启用 Kill Switch
@@ -2810,8 +3306,8 @@ paths:
2810
3306
  application/json:
2811
3307
  schema:
2812
3308
  type: object
2813
- required: *ref_38
2814
- properties: *ref_39
3309
+ required: *ref_40
3310
+ properties: *ref_41
2815
3311
  '400':
2816
3312
  description: 请求参数错误
2817
3313
  content: *ref_9
@@ -2820,7 +3316,7 @@ paths:
2820
3316
  content: *ref_4
2821
3317
  '403':
2822
3318
  description: 权限不足
2823
- content: *ref_40
3319
+ content: *ref_42
2824
3320
  '500':
2825
3321
  description: 服务器内部错误
2826
3322
  content: *ref_5
@@ -2844,9 +3340,9 @@ paths:
2844
3340
  application/json:
2845
3341
  schema:
2846
3342
  type: object
2847
- required: &ref_43
3343
+ required: &ref_45
2848
3344
  - data
2849
- properties: &ref_44
3345
+ properties: &ref_46
2850
3346
  data:
2851
3347
  type: object
2852
3348
  required:
@@ -2882,7 +3378,8 @@ paths:
2882
3378
  '500':
2883
3379
  description: 服务器内部错误
2884
3380
  content: *ref_5
2885
- put:
3381
+ /operations/kill-switch/{pageId}/set:
3382
+ post:
2886
3383
  tags:
2887
3384
  - Operations
2888
3385
  operationId: setPageKillSwitch
@@ -2900,8 +3397,8 @@ paths:
2900
3397
  application/json:
2901
3398
  schema:
2902
3399
  type: object
2903
- required: *ref_41
2904
- properties: *ref_42
3400
+ required: *ref_43
3401
+ properties: *ref_44
2905
3402
  responses:
2906
3403
  '200':
2907
3404
  description: 设置成功
@@ -2909,8 +3406,8 @@ paths:
2909
3406
  application/json:
2910
3407
  schema:
2911
3408
  type: object
2912
- required: *ref_43
2913
- properties: *ref_44
3409
+ required: *ref_45
3410
+ properties: *ref_46
2914
3411
  '400':
2915
3412
  description: 请求参数错误
2916
3413
  content: *ref_9
@@ -2919,13 +3416,137 @@ paths:
2919
3416
  content: *ref_4
2920
3417
  '403':
2921
3418
  description: 权限不足
2922
- content: *ref_40
3419
+ content: *ref_42
2923
3420
  '404':
2924
3421
  description: 资源不存在
2925
3422
  content: *ref_10
2926
3423
  '500':
2927
3424
  description: 服务器内部错误
2928
3425
  content: *ref_5
3426
+ /health:
3427
+ get:
3428
+ tags:
3429
+ - Health
3430
+ summary: 健康检查
3431
+ operationId: healthCheck
3432
+ description: |
3433
+ 综合健康检查,包含所有依赖服务状态。
3434
+
3435
+ 返回:
3436
+ - 服务状态(healthy/degraded/unhealthy)
3437
+ - 版本信息
3438
+ - 运行时间
3439
+ - 依赖服务状态
3440
+ responses:
3441
+ '200':
3442
+ description: 服务健康
3443
+ content:
3444
+ application/json:
3445
+ schema:
3446
+ type: object
3447
+ required: &ref_47
3448
+ - status
3449
+ - version
3450
+ properties: &ref_48
3451
+ status:
3452
+ type: string
3453
+ enum:
3454
+ - healthy
3455
+ - degraded
3456
+ - unhealthy
3457
+ description: 服务状态
3458
+ version:
3459
+ type: string
3460
+ description: 服务版本
3461
+ uptime:
3462
+ type: integer
3463
+ description: 运行时间(秒)
3464
+ timestamp:
3465
+ type: string
3466
+ format: date-time
3467
+ description: 检查时间
3468
+ dependencies:
3469
+ type: object
3470
+ additionalProperties:
3471
+ type: object
3472
+ properties:
3473
+ status:
3474
+ type: string
3475
+ enum:
3476
+ - healthy
3477
+ - degraded
3478
+ - unhealthy
3479
+ latency:
3480
+ type: integer
3481
+ description: 延迟(毫秒)
3482
+ message:
3483
+ type: string
3484
+ description: 依赖服务状态
3485
+ '503':
3486
+ description: 服务不健康
3487
+ content:
3488
+ application/json:
3489
+ schema:
3490
+ type: object
3491
+ required: *ref_47
3492
+ properties: *ref_48
3493
+ security: []
3494
+ /health/ready:
3495
+ get:
3496
+ tags:
3497
+ - Health
3498
+ summary: 就绪检查
3499
+ operationId: readinessCheck
3500
+ description: |
3501
+ Kubernetes readiness probe。
3502
+ 检查服务是否准备好接收流量。
3503
+ responses:
3504
+ '200':
3505
+ description: 服务就绪
3506
+ content:
3507
+ application/json:
3508
+ schema:
3509
+ type: object
3510
+ properties:
3511
+ ready:
3512
+ type: boolean
3513
+ example: true
3514
+ '503':
3515
+ description: 服务未就绪
3516
+ content:
3517
+ application/json:
3518
+ schema:
3519
+ type: object
3520
+ properties:
3521
+ ready:
3522
+ type: boolean
3523
+ example: false
3524
+ reason:
3525
+ type: string
3526
+ security: []
3527
+ /health/live:
3528
+ get:
3529
+ tags:
3530
+ - Health
3531
+ summary: 存活检查
3532
+ operationId: livenessCheck
3533
+ description: |
3534
+ Kubernetes liveness probe。
3535
+ 检查服务是否存活。
3536
+ responses:
3537
+ '200':
3538
+ description: 服务存活
3539
+ content:
3540
+ application/json:
3541
+ schema:
3542
+ type: object
3543
+ properties:
3544
+ alive:
3545
+ type: boolean
3546
+ example: true
3547
+ '503':
3548
+ description: 服务不存活
3549
+ security: []
2929
3550
  components:
2930
3551
  schemas:
2931
3552
  PageInfo:
@@ -2938,180 +3559,191 @@ components:
2938
3559
  properties: *ref_16
2939
3560
  PageListResponse:
2940
3561
  type: object
2941
- required: *ref_45
2942
- properties: *ref_46
3562
+ required: *ref_49
3563
+ properties: *ref_50
2943
3564
  ErrorDetail:
2944
3565
  type: object
2945
- properties: *ref_47
3566
+ properties: *ref_51
2946
3567
  ErrorResponse:
2947
3568
  type: object
2948
3569
  required: *ref_0
2949
3570
  properties: *ref_1
2950
3571
  CreatePageRequest:
2951
3572
  type: object
2952
- required: *ref_48
2953
- properties: *ref_49
3573
+ required: *ref_52
3574
+ properties: *ref_53
2954
3575
  PageResponse:
2955
3576
  type: object
2956
3577
  required: *ref_6
2957
3578
  properties: *ref_7
2958
3579
  UpdatePageRequest:
2959
3580
  type: object
2960
- properties: *ref_50
3581
+ properties: *ref_54
2961
3582
  LockInfo:
2962
3583
  type: object
2963
- properties: *ref_51
3584
+ properties: *ref_55
2964
3585
  DraftData:
2965
3586
  type: object
2966
- required: *ref_52
2967
- properties: *ref_53
3587
+ required: *ref_56
3588
+ properties: *ref_57
2968
3589
  DraftResponse:
2969
3590
  type: object
2970
3591
  required: *ref_11
2971
3592
  properties: *ref_12
2972
3593
  SaveDraftRequest:
2973
3594
  type: object
2974
- required: *ref_54
2975
- properties: *ref_55
3595
+ required: *ref_58
3596
+ properties: *ref_59
2976
3597
  VersionInfo:
2977
3598
  type: object
2978
3599
  required: *ref_17
2979
3600
  properties: *ref_18
2980
3601
  VersionListResponse:
2981
3602
  type: object
2982
- required: *ref_56
2983
- properties: *ref_57
3603
+ required: *ref_60
3604
+ properties: *ref_61
2984
3605
  VersionResponse:
2985
3606
  type: object
2986
- required: *ref_58
2987
- properties: *ref_59
3607
+ required: *ref_62
3608
+ properties: *ref_63
2988
3609
  RolloutConfig:
2989
3610
  type: object
2990
- properties: *ref_26
3611
+ properties: *ref_28
2991
3612
  PublishRequest:
2992
3613
  type: object
2993
- properties: *ref_60
3614
+ properties: *ref_64
2994
3615
  PublishResponse:
2995
3616
  type: object
2996
3617
  required: *ref_20
2997
3618
  properties: *ref_21
2998
3619
  RollbackRequest:
2999
- type: object
3000
- required: *ref_61
3001
- properties: *ref_62
3002
- ComponentInfo:
3003
- type: object
3004
- required: *ref_63
3005
- properties: *ref_64
3006
- ComponentListResponse:
3007
3620
  type: object
3008
3621
  required: *ref_65
3009
3622
  properties: *ref_66
3010
- ComponentVersionInfo:
3623
+ PreviewTokenInfo:
3011
3624
  type: object
3012
- required: *ref_24
3013
- properties: *ref_25
3014
- ComponentVersionListResponse:
3625
+ required: *ref_22
3626
+ properties: *ref_23
3627
+ ComponentInfo:
3015
3628
  type: object
3016
3629
  required: *ref_67
3017
3630
  properties: *ref_68
3018
- UpdateComponentStatusRequest:
3631
+ ComponentListResponse:
3019
3632
  type: object
3020
3633
  required: *ref_69
3021
3634
  properties: *ref_70
3022
- ComponentVersionResponse:
3635
+ ComponentVersionInfo:
3636
+ type: object
3637
+ required: *ref_26
3638
+ properties: *ref_27
3639
+ ComponentVersionListResponse:
3023
3640
  type: object
3024
3641
  required: *ref_71
3025
3642
  properties: *ref_72
3643
+ UpdateComponentStatusRequest:
3644
+ type: object
3645
+ required: *ref_73
3646
+ properties: *ref_74
3647
+ ComponentVersionResponse:
3648
+ type: object
3649
+ required: *ref_75
3650
+ properties: *ref_76
3026
3651
  UpdateRolloutRequest:
3027
3652
  type: object
3028
- properties: *ref_73
3653
+ properties: *ref_77
3029
3654
  AddRolloutStrategyRequest:
3030
3655
  type: object
3031
- required: *ref_74
3032
- properties: *ref_75
3656
+ required: *ref_78
3657
+ properties: *ref_79
3033
3658
  RolloutStrategy:
3034
3659
  type: object
3035
- required: *ref_27
3036
- properties: *ref_28
3660
+ required: *ref_29
3661
+ properties: *ref_30
3037
3662
  UpdateRolloutStrategyRequest:
3038
3663
  type: object
3039
- properties: *ref_76
3664
+ properties: *ref_80
3040
3665
  ActionDefinitionInfo:
3041
3666
  type: object
3042
- required: *ref_29
3043
- properties: *ref_30
3667
+ required: *ref_31
3668
+ properties: *ref_32
3044
3669
  CreateActionDefinitionRequest:
3045
3670
  type: object
3046
- required: *ref_77
3047
- properties: *ref_78
3671
+ required: *ref_81
3672
+ properties: *ref_82
3048
3673
  DefinitionVersionInfo:
3049
3674
  type: object
3050
- required: *ref_31
3051
- properties: *ref_32
3675
+ required: *ref_33
3676
+ properties: *ref_34
3052
3677
  ActionDefinitionDetail:
3053
3678
  type: object
3054
- required: *ref_79
3055
- properties: *ref_80
3679
+ required: *ref_83
3680
+ properties: *ref_84
3056
3681
  UpdateActionDefinitionRequest:
3057
3682
  type: object
3058
- properties: *ref_81
3683
+ properties: *ref_85
3059
3684
  PublishDefinitionVersionRequest:
3060
3685
  type: object
3061
- properties: *ref_35
3686
+ properties: *ref_37
3062
3687
  DataQueryDefinitionInfo:
3063
3688
  type: object
3064
- required: *ref_33
3065
- properties: *ref_34
3689
+ required: *ref_35
3690
+ properties: *ref_36
3066
3691
  CreateDataQueryDefinitionRequest:
3067
3692
  type: object
3068
- required: *ref_82
3069
- properties: *ref_83
3693
+ required: *ref_86
3694
+ properties: *ref_87
3070
3695
  DataQueryDefinitionDetail:
3071
3696
  type: object
3072
- required: *ref_84
3073
- properties: *ref_85
3697
+ required: *ref_88
3698
+ properties: *ref_89
3699
+ UpdateDataQueryDefinitionRequest:
3700
+ type: object
3701
+ properties: *ref_90
3074
3702
  ActivityInfo:
3075
3703
  type: object
3076
- required: *ref_36
3077
- properties: *ref_37
3704
+ required: *ref_38
3705
+ properties: *ref_39
3078
3706
  CreateActivityRequest:
3079
3707
  type: object
3080
- required: *ref_86
3081
- properties: *ref_87
3708
+ required: *ref_91
3709
+ properties: *ref_92
3082
3710
  ActivityDetail:
3083
3711
  type: object
3084
- required: *ref_88
3085
- properties: *ref_89
3712
+ required: *ref_93
3713
+ properties: *ref_94
3086
3714
  UpdateActivityRequest:
3087
3715
  type: object
3088
- properties: *ref_90
3716
+ properties: *ref_95
3089
3717
  ActivityStats:
3090
3718
  type: object
3091
- properties: *ref_91
3719
+ properties: *ref_96
3092
3720
  AuditLogEntry:
3093
3721
  type: object
3094
- required: *ref_92
3095
- properties: *ref_93
3722
+ required: *ref_97
3723
+ properties: *ref_98
3096
3724
  AuditLogDetail:
3097
3725
  type: object
3098
- required: *ref_94
3099
- properties: *ref_95
3726
+ required: *ref_99
3727
+ properties: *ref_100
3100
3728
  AuditStats:
3101
3729
  type: object
3102
- properties: *ref_96
3730
+ properties: *ref_101
3103
3731
  KillSwitchStatusResponse:
3104
3732
  type: object
3105
- required: *ref_38
3106
- properties: *ref_39
3733
+ required: *ref_40
3734
+ properties: *ref_41
3107
3735
  SetKillSwitchRequest:
3108
- type: object
3109
- required: *ref_41
3110
- properties: *ref_42
3111
- PageKillSwitchStatusResponse:
3112
3736
  type: object
3113
3737
  required: *ref_43
3114
3738
  properties: *ref_44
3739
+ PageKillSwitchStatusResponse:
3740
+ type: object
3741
+ required: *ref_45
3742
+ properties: *ref_46
3743
+ HealthResponse:
3744
+ type: object
3745
+ required: *ref_47
3746
+ properties: *ref_48
3115
3747
  responses:
3116
3748
  Unauthorized:
3117
3749
  description: 未授权
@@ -3130,7 +3762,7 @@ components:
3130
3762
  content: *ref_19
3131
3763
  Forbidden:
3132
3764
  description: 权限不足
3133
- content: *ref_40
3765
+ content: *ref_42
3134
3766
  parameters:
3135
3767
  PageParam:
3136
3768
  name: page
@@ -3152,13 +3784,13 @@ components:
3152
3784
  name: versionId
3153
3785
  in: path
3154
3786
  required: true
3155
- schema: *ref_23
3787
+ schema: *ref_25
3156
3788
  description: 版本 ID
3157
3789
  ComponentIdPath:
3158
3790
  name: componentId
3159
3791
  in: path
3160
3792
  required: true
3161
- schema: *ref_22
3793
+ schema: *ref_24
3162
3794
  description: 组件 ID
3163
3795
  securitySchemes:
3164
3796
  BearerAuth: