Fago 文档 Fago 文档
首页
快速开始
后端手册
前端手册
规划备查
文档维护
首页
快速开始
后端手册
前端手册
规划备查
文档维护
  • 快速开始

    • 简介
    • 功能列表
    • 快速启动(后端)
    • 快速启动(前端)
    • 技术选型
    • 项目结构
    • 接口与错误码
  • 后端手册

    • 配置与环境
    • 登录与会话
    • 功能权限与菜单
    • 数据权限
    • 用户、部门、岗位与角色
    • 租户与安全策略
    • 异常处理与错误码
    • 参数、分页与响应
    • 数据库迁移
    • 日志、脱敏与请求加密
    • 平台租户与套餐
    • fago-cli 常用命令
    • 发布验证与恢复演练
    • 字典与参数配置
    • 文件与对象存储
    • 站内通知与执行恢复
    • 定时任务与运行恢复
    • 可靠消息后端与积压观测
    • 身份客户端与设备会话
    • 会员认证与账号管理
    • 服务账号与 scope
    • OIDC 提供方与外部绑定
    • 原生 SSO 验收客户端
    • 账号认证模式
    • 工作流 API 与运行目录
  • 前端手册

    • 本地启动
    • 菜单与路由
    • 请求合同
    • 页面与按钮权限
    • 浏览器单点登录
    • 审批中心与表单发起
    • 工作流定义与运行管理
  • 规划备查

    • Fago:架构与实施方案
    • 总体架构
    • 身份、权限与租户设计
    • Vben 5 前端与 API 合同
    • 数据库与消息后端适配
    • 纯 Go 通用工作流:文件、文档与业务流程
    • 核心数据模型
    • 分期、工作包与验收
    • 架构决策与风险
    • 参考来源与基线
    • 网络安全等级保护二级合规要求
    • M0 实施与验收
    • M1 身份与导航实施及验收
    • 项目配置、API 内容加密与敏感数据脱敏
    • M2 系统管理实施记录
    • M3 平台与 SaaS 实施记录
    • fago-cli 功能规划
    • 生产传输层 WARN 变更范围(2026-10-23)
    • M4 发布实施与验收
    • M4 加固检查归档(本地工程环境)
    • M5 通用平台与身份实施
    • M6 R3.1 正式工作流核心与基础审批
目录

接口与错误码

# 接口与错误码

# 目的

在仓库中找到真实接口合同、生成客户端类型,并按统一响应和错误码接入。租户前缀为/api/admin/v1,平台前缀为/api/platform/v1,字段使用camelCase。 根合同是api/openapi.yaml;正式工作流的43个操作及来源见工作流API。各功能的开放开关、权限及认证范围以对应操作和手册为准。

# 前置条件

维护合同需要已初始化的fago子模块、锁定前端依赖及本项目Node/pnpm工具链。运行Go验证前从仓库根目录加载scripts/go-env.sh,现有shell脚本已代为加载。 调用业务API前须取得当前realm访问凭据,具备当前权限和套餐能力,并使用配置中的精确Origin。

开发/测试业务JSON默认明文,生产查询与正文使用fago-jwe-v1。健康探测及安全策略发现仍明文;加密规则见日志、脱敏与请求加密。 平台身份不能读取租户工作流,客户端不能通过tenant/Actor字段或租户头选择身份。

# 步骤与规则

# 更新并检查合同

工作流唯一编辑源是fago/fago-server/apps/fago-server/scripts/workflow-openapi.mjs,生成应用模块内的internal/auth/testdata/workflow.openapi.json。 片段本身是完整OpenAPI 3.0.3文档;根聚合合同同时保留其他模块。不要直接改已生成的工作流片段或根合同中的对应操作。

# 外层仓库根目录;只生成正式工作流片段和其根聚合部分,保留其他模块合同。
node scripts/sync-workflow-openapi.mjs
# 校验根合同并生成fago内的schema.d.ts,再检查样例、权限映射和生成物是否漂移。
bash scripts/web.sh contract
# 成功输出包含:工作流合同:43 operations / 62 schemas;样例校验通过。

只验证而不写文件时使用node scripts/sync-workflow-openapi.mjs --check。修改后须提交片段、根合同及生成类型。 普通pnpm contract会先执行漂移检查,旧根合同不能掩盖尚未同步的模块片段。

CLI也能运行既有工具链。从fago/fago-vben5定位根合同须向上两级,不能沿用历史一层路径。

bash scripts/fago.sh openapi lint
bash scripts/fago.sh openapi gen types
# 0表示工具成功;diff只检查根合同相对HEAD的未提交变化,不是API兼容性分析器。
bash scripts/fago.sh openapi diff

# 处理响应与错误

成功业务码为0;普通同步操作常用HTTP 200/201。工作流受理首次发起返回202,不表示审批或外部动作已完成;读取原命令为done时仍可能有运行中的人工审批。

HTTP/1.1 202 Accepted
Content-Type: application/json

{"code":0,"data":{"commandId":"example-start","state":"accepted","result":{"id":"wf-example","definitionKey":"simple-approval","definitionVersion":1,"engineVersion":"fago-form-approval-v2","state":"running","version":1,"needsRun":true,"waiting":[]}},"message":"ok","requestId":"example-request"}

以上是响应结构示意,实例状态以服务器真实检查点为准。生产中相同业务envelope经JWE输出;客户端必须按当前套件及原请求密钥解密,不能回退裸JSON。

失败同时返回HTTP状态和稳定业务码,固定中文提示不携带内部错误链、堆栈、口令、Cookie、访问凭据或数据库连接信息。

HTTP/1.1 409 Conflict
Content-Type: application/json

{"code":409001,"data":null,"message":"记录已变更,请重试","requestId":"example-request"}

401001由统一客户端刷新一次access并重试原请求;403不能通过刷新绕过。工作流网络结果未知时保留原commandId与完整载荷;版本冲突先刷新再决定业务动作。

# 参数

内容 约束
Authorization 当前realm的Bearer访问凭据,不是共享管理员身份
Origin、X-App-Request 写请求使用精确配置Origin和admin/platform来源,不接受通配符或Referer回退
X-Fago-Payload 生产GET的JWE上下文;真实方法、路径、加密query、时间和一次响应密钥绑定
JSON版本 integer/int64;浏览器须先检查安全整数,不能舍入CAS
账号/事件ID、路径版本 规范十进制字符串,保留完整int64;路径/查询正版本不接受01、零或符号
工作流分页 定义/表单/本人列表用nextCursor,管理任务用next;游标不是授权或固定快照

# 失败

lint、样例、源片段或类型生成失败会非零退出。先修复编辑源再同步,不应手工修生成物来消除漂移。 当前Redocly有六条既有OIDC回调2XX警告,来源为实际只返回302/303的回调合同;工作流新增操作通过校验。 业务错误码及处理方式见异常处理与错误码,分页和版本见参数、分页与响应。

# 边界

JSON Schema约束字段、类型、可空和公开样例;重复JSON键、精确原文、拓扑、当前权限、资源绑定、运行池和幂等仍由实际服务端裁决。 合同或类型生成成功不代表功能已开启、生产认证、七数据库认证或完整R3.1验收完成。真实工作流HTTP专项与浏览器布局验收分别记录。

# 关联

  • 工作流API与运行目录
  • 审批中心
  • 工作流定义与运行管理
  • M6合同实现与验证
最后更新: 2026/11/3 05:35:16
项目结构
配置与环境

← 项目结构 配置与环境→

Theme by Vdoing | Copyright © 2026-2026 Fago 项目文档
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式