跳转至

服务登记与 Relay

这两个模块处理的是机构主数据(而非按公民划分的数据),因此不启用 RLS——保护在 HTTP 层按权限施加。

Ring System · R1 — 服务登记

服务登记回答的是一个管理问题:公共服务清单有多完整、数字化到什么程度、离 once-only 还有多远? 每一份服务护照都符合 CPSV-AP 词汇表。

护照状态

状态 含义
draft 草稿——不出现在公开目录
published 已发布——通过 /api/v1/catalog/* 对外提供
archived 已归档

主动性等级

沿用爱沙尼亚模型——从仅有信息到全自动服务:

等级 含义
information 仅发布信息
online 在线受理申请
once_only 不再重复索取已有数据
proactive 无需公民申请即主动提供

概览面板会统计各等级的服务数量,并计算平均法定办理时限。

证明材料与 once-only

registry_evidences 是证明材料目录。每条记录带有 in_khur 标志:该信息是否已存在于国家数据交换之中。

护照 ↔ 证明材料的关联上带有 from_citizen 标志:该材料是向公民索取的,还是由机构自行从系统调取的。

once-only 违规

凡是 in_khur = true from_citizen = true 的情形,都是一次 once-only 违规——向公民索取国家已经掌握的信息。 GET /api/v1/registry/once-only 会列出这些情形,并按年度发生频次估算它给公民带来的负担。

版本与 delta

每次发布都会生成一个护照版本(registry_service_versions)。Delta* 字段保存的是与再造前基线的差值——负值代表改进(步骤更少、耗时更短)。

端点

registry.view 负责读取,registry.manage 负责写入。admin 同时满足两者。

方法 路径 权限
GET /api/v1/registry/overview view
GET /api/v1/registry/catalog view
GET /api/v1/registry/once-only view
GET /api/v1/registry/services · /{id} view
GET /api/v1/registry/services/{id}/versions view
GET /api/v1/registry/services/{id}/once-only view
GET /api/v1/registry/evidences · /life-events view
POST PUT DELETE /api/v1/registry/services… manage
POST /api/v1/registry/services/{id}/publish · /archive manage
PUT /api/v1/registry/services/{id}/evidences manage
POST PUT DELETE /api/v1/registry/evidences… manage
POST DELETE /api/v1/registry/life-events… manage

UI:Admin → Registry/admin/registry/admin/registry/services/admin/registry/evidences)。

Relay — 平台之间的请求转发

Relay 接收上游平台发来的带时限请求,分派给下游平台,跟踪 SLA,并汇总回复。

flowchart LR
    U[Upstream platform] -->|POST /relay/requests| R[(Relay)]
    R -->|assignment| D1[Downstream A]
    R -->|assignment| D2[Downstream B]
    D1 -->|respond| R
    D2 -->|respond| R
    R -->|forward-up webhook| U

状态

请求: receiveddispatchedin_progressfulfilled (或 overduerejected)。

分派任务: pendingacknowledgedin_progressdone (或 overduerejected)。

SLA 跟踪

机制 行为
提醒 在 SLA 窗口的 75%90% 处向下游发送催办
升级 任务逾期后再经过一段宽限期,自动升级至上级
时间线 received · dispatched · reminded · escalated · responded · fulfilled · overdue · breach_notified · forwarded_up

升级宽限期

核心模块中 RelayEscalateGrace2 分钟——这是模板默认值。生产部署会按真实 SLA 调长。

端点

方法 路径 权限
POST /api/v1/relay/webhook —(对端平台调用)
POST /api/v1/relay/requests manage
POST /api/v1/relay/assignments/{id}/respond manage
POST /api/v1/relay/requests/{id}/forward manage
GET /api/v1/relay/overview · /requests · /requests/{id} view
GET POST DELETE /api/v1/relay/platforms… view / manage
GET POST DELETE /api/v1/relay/routes… view / manage

RelayRouteservice_code → platform 的路由规则,每个目标各有自己的 SLA。

UI:Admin → Relay/admin/relay/admin/relay/config/admin/relay/{id})。

ingest/respond 的保护方式

在本参考实现中,requestsassignments 的写操作由 JWT + relay.manage 保护。在生产环境中,正确的形态是上下游平台通过网关(m2m OAuth)调用它们。