暂存
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m32s

This commit is contained in:
2026-08-06 09:35:00 +08:00
parent 8659dfc658
commit 88cc5e96ec
75 changed files with 6520 additions and 513 deletions

View File

@@ -130,6 +130,82 @@ components:
user_agent:
type: string
type: object
AuditFinanceAmountAuthority:
properties:
authoritative:
type: boolean
conflict_rule:
type: string
field:
type: string
table:
type: string
type: object
AuditFinanceTimelineNode:
properties:
amount:
nullable: true
type: integer
amount_authority:
$ref: '#/components/schemas/AuditFinanceAmountAuthority'
balance_after:
nullable: true
type: integer
balance_before:
nullable: true
type: integer
code:
type: string
currency:
type: string
facts:
additionalProperties: {}
nullable: true
type: object
investigation_refs:
$ref: '#/components/schemas/AuditInvestigationRefs'
node_id:
type: string
occurred_at:
format: date-time
type: string
record_source:
type: string
result:
type: string
result_name:
type: string
shop_id:
minimum: 0
nullable: true
type: integer
title:
type: string
wallet:
$ref: '#/components/schemas/AuditFinanceWalletRef'
type: object
AuditFinanceTimelinePage:
properties:
items:
items:
$ref: '#/components/schemas/AuditFinanceTimelineNode'
nullable: true
type: array
page:
type: integer
page_size:
type: integer
total:
type: integer
type: object
AuditFinanceWalletRef:
properties:
resource_type:
type: string
wallet_id:
minimum: 0
type: integer
type: object
AuditIntegrationRef:
properties:
integration_id:
@@ -171,6 +247,76 @@ components:
resource_type:
type: string
type: object
AuditLinkTimeline:
properties:
access_log_lookup_request_id:
nullable: true
type: string
correlation_id:
nullable: true
type: string
nodes:
items:
$ref: '#/components/schemas/AuditLinkTimelineNode'
nullable: true
type: array
request_id:
nullable: true
type: string
type: object
AuditLinkTimelineNode:
properties:
code:
type: string
correlation_id:
nullable: true
type: string
fidelity:
$ref: '#/components/schemas/AuditLinkageFidelity'
investigation_refs:
$ref: '#/components/schemas/AuditInvestigationRefs'
node_id:
type: string
occurred_at:
format: date-time
type: string
parent_event_id:
nullable: true
type: string
record_source:
type: string
reference_only:
type: boolean
request_id:
nullable: true
type: string
resources:
items:
$ref: '#/components/schemas/AuditInvestigationResourceRef'
nullable: true
type: array
result:
type: string
result_name:
type: string
summary:
type: string
title:
type: string
type: object
AuditLinkageFidelity:
properties:
correlation_available:
type: boolean
direct_audit_link_available:
type: boolean
parent_event_available:
type: boolean
request_available:
type: boolean
stable_resource_available:
type: boolean
type: object
AuditResourceCandidate:
properties:
display_name:
@@ -243,6 +389,88 @@ components:
subject_visibility:
type: string
type: object
AuditRiskEventPage:
properties:
items:
items:
$ref: '#/components/schemas/AuditEventView'
nullable: true
type: array
page:
type: integer
page_size:
type: integer
total:
type: integer
type: object
AuditRiskNamedCount:
properties:
code:
type: string
count:
type: integer
name:
type: string
type: object
AuditRiskOverview:
properties:
actions:
items:
$ref: '#/components/schemas/AuditRiskNamedCount'
nullable: true
type: array
bucket:
type: string
results:
items:
$ref: '#/components/schemas/AuditRiskNamedCount'
nullable: true
type: array
risks:
items:
$ref: '#/components/schemas/AuditRiskNamedCount'
nullable: true
type: array
signals:
items:
$ref: '#/components/schemas/AuditRiskNamedCount'
nullable: true
type: array
sources:
items:
$ref: '#/components/schemas/AuditRiskNamedCount'
nullable: true
type: array
total:
type: integer
trend:
items:
$ref: '#/components/schemas/AuditRiskTrendPoint'
nullable: true
type: array
type: object
AuditRiskTrendPoint:
properties:
bucket_at:
format: date-time
type: string
denied:
type: integer
failed:
type: integer
finance:
type: integer
high_risk:
type: integer
partial:
type: integer
security:
type: integer
total:
type: integer
unknown:
type: integer
type: object
AuditSubjectActivity:
properties:
action_code:
@@ -1594,6 +1822,10 @@ components:
reduction_pct:
description: 展示增幅比例,公式为(real_total_mb / virtual_total_mb) - 1
type: number
renewal_price:
description: 当前主套餐续费价格(分,按当前销售渠道的生效零售价计算;无主套餐或当前渠道不可续费时为 null
nullable: true
type: integer
sn:
description: 设备序列号
type: string
@@ -15253,6 +15485,73 @@ paths:
summary: 查询操作者行为时间线
tags:
- 审计调查
/api/admin/audit/correlations/{correlation_id}/timeline:
get:
description: correlation_id 来自审计、外部集成、可靠事件或业务详情的稳定引用。相同 correlation 只说明属于同一业务链路,不用于猜测技术重试。
parameters:
- description: 跨请求、异步任务和外部交互的稳定业务链路ID
in: path
name: correlation_id
required: true
schema:
description: 跨请求、异步任务和外部交互的稳定业务链路ID
type: string
responses:
"200":
content:
application/json:
schema:
properties:
code:
description: 响应码
example: 0
type: integer
data:
$ref: '#/components/schemas/AuditLinkTimeline'
msg:
description: 响应消息
example: success
type: string
timestamp:
description: 时间戳
format: date-time
type: string
required:
- code
- msg
- data
- timestamp
type: object
description: 成功
"400":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 请求参数错误
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 未认证或认证已过期
"403":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 无权访问
"500":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 服务器内部错误
security:
- BearerAuth: []
summary: 查询业务关联时间线
tags:
- 审计调查
/api/admin/audit/events:
get:
description: 筛选值来自调查人员输入或其他调查节点的稳定引用身份范围只读取认证上下文。固定按发生时间和事件ID倒序不提供导出、修改或删除。
@@ -15491,6 +15790,190 @@ paths:
summary: 查询审计事件详情
tags:
- 审计调查
/api/admin/audit/finance/timeline:
get:
description: 可使用店铺、钱包、订单、支付、退款、充值、审批、交易号、操作者、时间或 correlation 中任一稳定条件进入;关联事实由服务端解析,金额以钱包流水及对应业务表为权威。
parameters:
- description: 店铺ID
in: query
name: shop_id
schema:
description: 店铺ID
minimum: 0
type: integer
- description: 代理或资产钱包ID
in: query
name: wallet_id
schema:
description: 代理或资产钱包ID
minimum: 0
type: integer
- description: 订单ID
in: query
name: order_id
schema:
description: 订单ID
minimum: 0
type: integer
- description: 订单编号
in: query
name: order_no
schema:
description: 订单编号
type: string
- description: 支付记录ID
in: query
name: payment_id
schema:
description: 支付记录ID
minimum: 0
type: integer
- description: 支付单号
in: query
name: payment_no
schema:
description: 支付单号
type: string
- description: 退款单ID
in: query
name: refund_id
schema:
description: 退款单ID
minimum: 0
type: integer
- description: 退款单号
in: query
name: refund_no
schema:
description: 退款单号
type: string
- description: 代理充值或个人资产充值ID
in: query
name: recharge_id
schema:
description: 代理充值或个人资产充值ID
minimum: 0
type: integer
- description: 充值单号
in: query
name: recharge_no
schema:
description: 充值单号
type: string
- description: 审批实例ID
in: query
name: approval_instance_id
schema:
description: 审批实例ID
minimum: 0
type: integer
- description: 第三方交易号
in: query
name: third_party_trade_no
schema:
description: 第三方交易号
type: string
- description: 操作者类型与actor_id同时提供
in: query
name: actor_kind
schema:
description: 操作者类型与actor_id同时提供
type: string
- description: 操作者稳定ID与actor_kind同时提供
in: query
name: actor_id
schema:
description: 操作者稳定ID与actor_kind同时提供
type: string
- description: 跨步骤业务链路ID
in: query
name: correlation_id
schema:
description: 跨步骤业务链路ID
type: string
- description: 开始时间RFC3339含时区
in: query
name: created_from
schema:
description: 开始时间RFC3339含时区
type: string
- description: 结束时间RFC3339含时区不包含该时刻
in: query
name: created_to
schema:
description: 结束时间RFC3339含时区不包含该时刻
type: string
- description: 页码默认1
in: query
name: page
schema:
description: 页码默认1
minimum: 1
type: integer
- description: 每页数量默认20最大100
in: query
name: page_size
schema:
description: 每页数量默认20最大100
maximum: 100
minimum: 1
type: integer
responses:
"200":
content:
application/json:
schema:
properties:
code:
description: 响应码
example: 0
type: integer
data:
$ref: '#/components/schemas/AuditFinanceTimelinePage'
msg:
description: 响应消息
example: success
type: string
timestamp:
description: 时间戳
format: date-time
type: string
required:
- code
- msg
- data
- timestamp
type: object
description: 成功
"400":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 请求参数错误
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 未认证或认证已过期
"403":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 无权访问
"500":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 服务器内部错误
security:
- BearerAuth: []
summary: 查询资金调查时间线
tags:
- 审计调查
/api/admin/audit/integrations:
get:
description: 组合筛选来自调查输入或关联视角稳定引用固定按创建时间和记录ID倒序分页不提供任意摘要搜索。
@@ -15951,6 +16434,73 @@ paths:
summary: 查询外部集成交互总览
tags:
- 审计调查
/api/admin/audit/requests/{request_id}/timeline:
get:
description: request_id 来自审计或外部集成节点,也可由开发人员从 Access Log 粘贴。响应组合审计事件、外部交互、可靠事件和业务账本引用,但不扫描 Access Log 文件。
parameters:
- description: HTTP请求关联ID来自审计或外部集成节点也可从Access Log粘贴
in: path
name: request_id
required: true
schema:
description: HTTP请求关联ID来自审计或外部集成节点也可从Access Log粘贴
type: string
responses:
"200":
content:
application/json:
schema:
properties:
code:
description: 响应码
example: 0
type: integer
data:
$ref: '#/components/schemas/AuditLinkTimeline'
msg:
description: 响应消息
example: success
type: string
timestamp:
description: 时间戳
format: date-time
type: string
required:
- code
- msg
- data
- timestamp
type: object
description: 成功
"400":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 请求参数错误
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 未认证或认证已过期
"403":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 无权访问
"500":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 服务器内部错误
security:
- BearerAuth: []
summary: 查询请求关联时间线
tags:
- 审计调查
/api/admin/audit/resources/{resource_type}/{resource_id}/timeline:
get:
description: resource_type/resource_id 必须来自业务页面稳定字段、资源搜索结果或 investigation_refs。事件在资源作为 primary、affected 或 reference 时均会返回。
@@ -16153,6 +16703,217 @@ paths:
summary: 精确搜索注册资源
tags:
- 审计调查
/api/admin/audit/risks/events:
get:
description: 筛选条件来自风险总览分桶或调查人员输入,明细返回统一 investigation_refs可继续进入事件、资源、操作者和 correlation 视角;不提供处置或封禁能力。
parameters:
- description: 开始时间RFC3339含时区必填
in: query
name: created_from
required: true
schema:
description: 开始时间RFC3339含时区必填
type: string
- description: 结束时间RFC3339含时区不包含该时刻最长31天必填
in: query
name: created_to
required: true
schema:
description: 结束时间RFC3339含时区不包含该时刻最长31天必填
type: string
- description: 风险等级 (low:低, normal:普通, high:高, critical:严重)
in: query
name: risk
schema:
description: 风险等级 (low:低, normal:普通, high:高, critical:严重)
type: string
- description: 结果 (success:成功, failed:失败, denied:拒绝, partial:部分成功, unknown:未知)
in: query
name: result
schema:
description: 结果 (success:成功, failed:失败, denied:拒绝, partial:部分成功, unknown:未知)
type: string
- description: 稳定动作编码
in: query
name: action
schema:
description: 稳定动作编码
type: string
- description: 来源 (admin_api:后台管理API, personal_api:个人客户API, openapi:代理OpenAPI, worker:异步Worker, scheduler:计划任务, callback:外部系统回调)
in: query
name: source
schema:
description: 来源 (admin_api:后台管理API, personal_api:个人客户API, openapi:代理OpenAPI, worker:异步Worker, scheduler:计划任务, callback:外部系统回调)
type: string
- description: 页码默认1
in: query
name: page
schema:
description: 页码默认1
minimum: 1
type: integer
- description: 每页数量默认20最大100
in: query
name: page_size
schema:
description: 每页数量默认20最大100
maximum: 100
minimum: 1
type: integer
responses:
"200":
content:
application/json:
schema:
properties:
code:
description: 响应码
example: 0
type: integer
data:
$ref: '#/components/schemas/AuditRiskEventPage'
msg:
description: 响应消息
example: success
type: string
timestamp:
description: 时间戳
format: date-time
type: string
required:
- code
- msg
- data
- timestamp
type: object
description: 成功
"400":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 请求参数错误
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 未认证或认证已过期
"403":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 无权访问
"500":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 服务器内部错误
security:
- BearerAuth: []
summary: 查询风险事件明细
tags:
- 审计调查
/api/admin/audit/risks/overview:
get:
description: 必须提供最长31天的时间范围只聚合高风险、资金、安全、失败、拒绝、部分成功和结果未知事件普通低风险成功事件不计入。
parameters:
- description: 开始时间RFC3339含时区必填
in: query
name: created_from
required: true
schema:
description: 开始时间RFC3339含时区必填
type: string
- description: 结束时间RFC3339含时区不包含该时刻最长31天必填
in: query
name: created_to
required: true
schema:
description: 结束时间RFC3339含时区不包含该时刻最长31天必填
type: string
- description: 风险等级 (low:低, normal:普通, high:高, critical:严重)
in: query
name: risk
schema:
description: 风险等级 (low:低, normal:普通, high:高, critical:严重)
type: string
- description: 结果 (success:成功, failed:失败, denied:拒绝, partial:部分成功, unknown:未知)
in: query
name: result
schema:
description: 结果 (success:成功, failed:失败, denied:拒绝, partial:部分成功, unknown:未知)
type: string
- description: 稳定动作编码
in: query
name: action
schema:
description: 稳定动作编码
type: string
- description: 来源 (admin_api:后台管理API, personal_api:个人客户API, openapi:代理OpenAPI, worker:异步Worker, scheduler:计划任务, callback:外部系统回调)
in: query
name: source
schema:
description: 来源 (admin_api:后台管理API, personal_api:个人客户API, openapi:代理OpenAPI, worker:异步Worker, scheduler:计划任务, callback:外部系统回调)
type: string
responses:
"200":
content:
application/json:
schema:
properties:
code:
description: 响应码
example: 0
type: integer
data:
$ref: '#/components/schemas/AuditRiskOverview'
msg:
description: 响应消息
example: success
type: string
timestamp:
description: 时间戳
format: date-time
type: string
required:
- code
- msg
- data
- timestamp
type: object
description: 成功
"400":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 请求参数错误
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 未认证或认证已过期
"403":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 无权访问
"500":
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: 服务器内部错误
security:
- BearerAuth: []
summary: 查询风险调查总览
tags:
- 审计调查
/api/admin/authorizations:
get:
parameters: