{"openapi":"3.1.0","info":{"title":"zeroweb-service-admin","version":"v1"},"servers":[{"url":"http://localhost:10001","description":"Generated server url"}],"tags":[{"name":"setting-http-endpoint","description":"业务参数管理"},{"name":"dict-http-endpoint","description":"字典管理"},{"name":"authz-http-endpoint","description":"授权"},{"name":"authn-http-endpoint","description":"认证"},{"name":"app-http-endpoint","description":"应用管理"},{"name":"user-http-endpoint","description":"用户管理"},{"name":"role-http-endpoint","description":"角色管理"},{"name":"crypto-http-endpoint","description":"口令、密钥相关的 HTTP 接口"},{"name":"metadata-http-endpoint","description":"服务自省"}],"paths":{"/setting/value":{"put":{"tags":["setting-http-endpoint"],"summary":"更新业务参数（仅更新值）\n\n仅更新业务参数的值，不修改约束定义和参数标识。\n需要查看权限验证。","description":"更新业务参数（仅更新值）\n\n仅更新业务参数的值，不修改约束定义和参数标识。\n需要查看权限验证。","operationId":"updateSettingValue","requestBody":{"description":"更新请求，包含参数ID和新值","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateValueRequest"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/setting/schema":{"put":{"tags":["setting-http-endpoint"],"summary":"更新业务参数\n\n更新现有业务参数的约束定义和参数值。\n会同时更新schema和value字段，并更新时间戳。\n需要写入权限验证。","description":"更新业务参数\n\n更新现有业务参数的约束定义和参数值。\n会同时更新schema和value字段，并更新时间戳。\n需要写入权限验证。","operationId":"updateSettingSchema","requestBody":{"description":"更新请求，包含参数ID、约束定义和参数值","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSchemaRequest"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/dict":{"get":{"tags":["dict-http-endpoint"],"summary":"分页查询字典目列表","description":"分页查询字典目列表","operationId":"getDictTagList","parameters":[{"name":"odata","in":"query","description":"OData 查询参数","required":true,"schema":{"$ref":"#/components/schemas/ODataRequestParam"}}],"responses":{"200":{"description":"字典目列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelDict"}}}}}},"put":{"tags":["dict-http-endpoint"],"summary":"更新字典目/字典项","description":"更新字典目/字典项","operationId":"modifyDict","requestBody":{"description":"字典修改请求对象","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifyDictReq"}}},"required":true},"responses":{"200":{"description":"OK"}}},"post":{"tags":["dict-http-endpoint"],"summary":"新增字典目/字典项","description":"新增字典目/字典项","operationId":"addDict","requestBody":{"description":"对于字典项，字典目、上级ID不能为空","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddDictReq"}}},"required":true},"responses":{"200":{"description":"字典ID","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Id"}}}}}},"delete":{"tags":["dict-http-endpoint"],"summary":"批量删除字典目/字典项","description":"批量删除字典目/字典项","operationId":"removeDict","requestBody":{"description":"字典ID集合","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/dict/update-status":{"put":{"tags":["dict-http-endpoint"],"summary":"批量更新字典状态","description":"批量更新字典状态","operationId":"updateDictStatus","parameters":[{"name":"enabled","in":"query","description":"更新后的字典启用状态","required":true,"schema":{"type":"boolean"}}],"requestBody":{"description":"字典ID集合","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/auth/role/-/user":{"put":{"tags":["authz-http-endpoint"],"summary":"将一个或多个用户绑定到角色。","description":"将一个或多个用户绑定到角色。","operationId":"bindUserToRole","requestBody":{"description":"包含角色ID和用户ID的 [RoleUser] 集合。","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleUser"}}}},"required":true},"responses":{"200":{"description":"OK"}}},"delete":{"tags":["authz-http-endpoint"],"summary":"解除一个或多个用户与角色的关联。","description":"解除一个或多个用户与角色的关联。","operationId":"releaseRoleUser","requestBody":{"description":"包含角色ID和用户ID的 [RoleUser] 集合。","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleUser"}}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/auth/role/-/permission":{"put":{"tags":["authz-http-endpoint"],"summary":"角色授予一个或多个接口权限。","description":"角色授予一个或多个接口权限。","operationId":"bindPermissionToRole","requestBody":{"description":"包含角色ID和权限编码的 [RolePermission] 集合。","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RolePermission"}}}},"required":true},"responses":{"200":{"description":"OK"}}},"delete":{"tags":["authz-http-endpoint"],"summary":"解除一个或多个角色与接口权限的关联。","description":"解除一个或多个角色与接口权限的关联。","operationId":"releaseRolePermission","requestBody":{"description":"包含角色ID和权限编码的 [RolePermission] 集合。","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RolePermission"}}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/auth/logout":{"put":{"tags":["authn-http-endpoint"],"summary":"登出当前用户。","description":"登出当前用户。","operationId":"logout","responses":{"200":{"description":"OK"}}}},"/app":{"get":{"tags":["app-http-endpoint"],"summary":"查询所有服务列表。","description":"查询所有服务列表。","operationId":"listApp","responses":{"200":{"description":"包含所有服务实体的列表。","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/App"}}}}}}},"put":{"tags":["app-http-endpoint"],"summary":"更新一个现有服务的信息。","description":"更新一个现有服务的信息。","operationId":"updateApp","requestBody":{"description":"包含要更新的服务信息和其 ID 的请求体。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAppReq"}}},"required":true},"responses":{"200":{"description":"OK"}}},"post":{"tags":["app-http-endpoint"],"summary":"新增一个服务。","description":"新增一个服务。","operationId":"addApp","requestBody":{"description":"包含服务基础信息的新增服务请求体。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAppReq"}}},"required":true},"responses":{"200":{"description":"新增服务的 ID。","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Id"}}}}}}},"/user/register":{"post":{"tags":["user-http-endpoint"],"summary":"用户注册","description":"用户注册","operationId":"register","requestBody":{"description":"用户注册信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserReq"}}},"required":true},"responses":{"200":{"description":"用户 ID","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Id"}}}}}}},"/setting":{"get":{"tags":["setting-http-endpoint"],"summary":"查询业务参数列表（分页）\n\n支持OData协议的复杂查询功能，包括过滤、排序、分页等操作。\n需要查看权限验证。","description":"查询业务参数列表（分页）\n\n支持OData协议的复杂查询功能，包括过滤、排序、分页等操作。\n需要查看权限验证。","operationId":"querySettingPage","parameters":[{"name":"odata","in":"query","description":"查询参数，包含查询条件、排序、分页等","required":true,"schema":{"$ref":"#/components/schemas/ODataRequestParam"}}],"responses":{"200":{"description":"分页结果，包含参数列表和分页信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelSetting"}}}}}},"post":{"tags":["setting-http-endpoint"],"summary":"新增业务参数\n\n向系统中添加新的业务参数配置，包含参数标识、约束定义和初始值。\n需要写入权限验证。","description":"新增业务参数\n\n向系统中添加新的业务参数配置，包含参数标识、约束定义和初始值。\n需要写入权限验证。","operationId":"addSetting","requestBody":{"description":"新增请求，包含完整的参数信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSettingRequest"}}},"required":true},"responses":{"200":{"description":"新创建参数的ID","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Id"}}}}}}},"/role":{"get":{"tags":["role-http-endpoint"],"summary":"查询角色列表\n\n获取系统所有角色的树形结构列表。\n从系统根节点开始，返回完整的角色树。","description":"查询角色列表\n\n获取系统所有角色的树形结构列表。\n从系统根节点开始，返回完整的角色树。","operationId":"listAllRole","responses":{"200":{"description":"角色列表（树形结构）","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Role"}}}}}}},"post":{"tags":["role-http-endpoint"],"summary":"新增角色\n\n创建新的角色实例，需要提供角色基本信息。\n角色编码会根据父角色自动生成完整路径。","description":"新增角色\n\n创建新的角色实例，需要提供角色基本信息。\n角色编码会根据父角色自动生成完整路径。","operationId":"addRole","requestBody":{"description":"角色信息请求对象，包含简码、名称、是否可继承、上级角色ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRoleReq"}}},"required":true},"responses":{"200":{"description":"新创建角色的ID","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Id"}}}}}}},"/auth/login/basic":{"post":{"tags":["authn-http-endpoint"],"summary":"通过用户名和密码进行基本认证登录。","description":"通过用户名和密码进行基本认证登录。","operationId":"basicLogin","requestBody":{"description":"包含用户名和密码的 [BasicAuth] 请求体。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicAuth"}}},"required":true},"responses":{"200":{"description":"包含访问令牌、ID 令牌和过期时间的 [OidcToken] 对象。","content":{"*/*":{"schema":{"$ref":"#/components/schemas/OidcToken"}}}}}}},"/well-known/jwks.json":{"get":{"tags":["crypto-http-endpoint"],"summary":"以 JWKs 的形式对外暴露用于签名的公钥","description":"以 JWKs 的形式对外暴露用于签名的公钥","operationId":"wellKnownJwks","responses":{"200":{"description":"JWK 集合。如果有多条数据，从前往后，优先级递减。","content":{"*/*":{"schema":{"$ref":"#/components/schemas/JwkSet"}}}}}}},"/user":{"get":{"tags":["user-http-endpoint"],"summary":"获取用户列表","description":"获取用户列表","operationId":"getUserPaged","parameters":[{"name":"odata","in":"query","description":"查询参数","required":true,"schema":{"$ref":"#/components/schemas/ODataRequestParam"}}],"responses":{"200":{"description":"包含分页信息的用户列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelUserInfoResp"}}}}}}},"/user/{id}":{"get":{"tags":["user-http-endpoint"],"summary":"查询指定用户","description":"查询指定用户","operationId":"queryUserById","parameters":[{"name":"id","in":"path","description":"用户 ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"用户信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserInfoResp"}}}}}}},"/user/me":{"get":{"tags":["user-http-endpoint"],"summary":"查询当前用户信息","description":"查询当前用户信息","operationId":"getMyInfo","responses":{"200":{"description":"用户信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/setting/{code}":{"get":{"tags":["setting-http-endpoint"],"summary":"根据参数标识查询配置项\n\n通过业务参数的唯一标识符查询具体的参数配置。","description":"根据参数标识查询配置项\n\n通过业务参数的唯一标识符查询具体的参数配置。","operationId":"queryByCode","parameters":[{"name":"code","in":"path","description":"业务参数标识","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"查找到的配置项","content":{"*/*":{"schema":{"$ref":"#/components/schemas/Setting"}}}}}}},"/role/mine":{"get":{"tags":["role-http-endpoint"],"summary":"查询当前登录人的角色\n\n获取当前登录用户的角色及其下一级角色。\n返回当前用户直接拥有的角色，以及这些角色的直接子角色。","description":"查询当前登录人的角色\n\n获取当前登录用户的角色及其下一级角色。\n返回当前用户直接拥有的角色，以及这些角色的直接子角色。","operationId":"listMyRole","responses":{"200":{"description":"当前用户的角色列表","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Role"}}}}}}}},"/password-strength":{"get":{"tags":["crypto-http-endpoint"],"summary":"计算口令强度。","description":"计算口令强度。","operationId":"passwordStrength","parameters":[{"name":"password","in":"query","description":"口令。","required":true,"schema":{"type":"string","minLength":1}},{"name":"username","in":"query","description":"用户名。包含用户名的密码的强度评级将会降低。","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"口令强度。","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PasswordStrength"}}}}}}},"/metadata/menu.json":{"get":{"tags":["metadata-http-endpoint"],"summary":"获取当前服务提供的所有菜单或资源信息。","description":"获取当前服务提供的所有菜单或资源信息。","operationId":"loadResourceInfo","responses":{"200":{"description":"包含所有 [MenuInfo] 对象的列表，聚合了所有 [IMenuService] 的结果。","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MenuInfo"}}}}}}}},"/metadata/info.json":{"get":{"tags":["metadata-http-endpoint"],"summary":"获取当前服务的自省信息。","description":"获取当前服务的自省信息。","operationId":"loadServiceInfo","responses":{"200":{"description":"包含服务名称、版本、类型等信息的 [ServiceInfo] 对象。","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ServiceInfo"}}}}}}},"/dict/tag/{tag}":{"get":{"tags":["dict-http-endpoint"],"summary":"查询指定字典目下所有字典项的列表","description":"查询指定字典目下所有字典项的列表","operationId":"getDictTreeByTag","parameters":[{"name":"tag","in":"path","description":"字典目编码","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"字典项列表（树形结构）","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Dict"}}}}}}}},"/auth/user/{userId}/role":{"get":{"tags":["authz-http-endpoint"],"summary":"查询指定用户关联的所有角色。","description":"查询指定用户关联的所有角色。","operationId":"queryRoleByUser","parameters":[{"name":"userId","in":"path","description":"用户ID。","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"关联到该用户的角色信息集合。","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Role"}}}}}}}},"/auth/token":{"get":{"tags":["authn-http-endpoint"],"summary":"获取当前用户的 SSO 令牌。\n\n需要用户已登录。","description":"获取当前用户的 SSO 令牌。\n\n需要用户已登录。","operationId":"getSsoToken","responses":{"200":{"description":"包含访问令牌、ID 令牌和过期时间的 [OidcToken] 对象。","content":{"*/*":{"schema":{"$ref":"#/components/schemas/OidcToken"}}}}}}},"/auth/self":{"get":{"tags":["authn-http-endpoint"],"summary":"获取当前用户的认证信息。\n\n如果用户未登录，返回 204 No Content。","description":"获取当前用户的认证信息。\n\n如果用户未登录，返回 204 No Content。","operationId":"self","responses":{"200":{"description":"包含用户认证信息（JWT）的 [ResponseEntity]。","content":{"*/*":{"schema":{"type":"string","format":"byte"}}}}}}},"/auth/role/{roleId}/user":{"get":{"tags":["authz-http-endpoint"],"summary":"查询指定角色绑定的所有用户。","description":"查询指定角色绑定的所有用户。","operationId":"queryUserByRole","parameters":[{"name":"roleId","in":"path","description":"角色ID。","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"绑定到该角色的用户信息列表。","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}}}},"/auth/role/{roleId}/permission":{"get":{"tags":["authz-http-endpoint"],"summary":"查询指定角色的所有接口权限编码集合。","description":"查询指定角色的所有接口权限编码集合。","operationId":"queryPermissionByRole","parameters":[{"name":"roleId","in":"path","description":"角色ID。","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"包含该角色所有接口权限编码的 [Set]。","content":{"*/*":{"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}}}}}}},"/auth/permission/-/role":{"get":{"tags":["authz-http-endpoint"],"summary":"查询指定接口权限关联的所有角色。","description":"查询指定接口权限关联的所有角色。","operationId":"queryRoleByPermission","parameters":[{"name":"permission","in":"query","description":"接口权限编码。","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"关联到该接口权限的角色信息集合。","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Role"}}}}}}}},"/app/{id}":{"get":{"tags":["app-http-endpoint"],"summary":"查询指定服务","description":"查询指定服务","operationId":"queryAppById","parameters":[{"name":"id","in":"path","description":"服务 ID","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"服务信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/App"}}}}}},"delete":{"tags":["app-http-endpoint"],"summary":"根据服务ID删除一个服务。","description":"根据服务ID删除一个服务。","operationId":"deleteApp","parameters":[{"name":"id","in":"path","description":"要删除服务的 ID。","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"OK"}}}},"/setting/{id}":{"delete":{"tags":["setting-http-endpoint"],"summary":"删除业务参数\n\n根据ID删除指定的业务参数配置。\n删除操作不可逆，请谨慎使用。\n需要写入权限验证。","description":"删除业务参数\n\n根据ID删除指定的业务参数配置。\n删除操作不可逆，请谨慎使用。\n需要写入权限验证。","operationId":"deleteSetting","parameters":[{"name":"id","in":"path","description":"要删除的参数ID","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"OK"}}}},"/role/{id}":{"delete":{"tags":["role-http-endpoint"],"summary":"删除角色\n\n删除指定的角色及其所有下级角色。\n删除操作会级联删除该角色的所有子角色。","description":"删除角色\n\n删除指定的角色及其所有下级角色。\n删除操作会级联删除该角色的所有子角色。","operationId":"deleteRole","parameters":[{"name":"id","in":"path","description":"角色ID","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"OK"}}}}},"components":{"schemas":{"UpdateValueRequest":{"type":"object","description":"更新业务参数值请求\n\n用于更新现有业务参数的值，不修改参数标识和约束定义。\n通过ID标识要更新的参数，仅更新value字段。","properties":{"id":{"type":"string","description":"需要更新的业务参数ID"},"value":{"type":"object","additionalProperties":{},"description":"新的参数值，JSON格式"}},"required":["id"]},"UpdateSchemaRequest":{"type":"object","description":"更新业务参数约束请求\n\n用于更新现有业务参数的约束定义和参数值。\n通过ID标识要更新的参数，同时更新schema和value字段。","properties":{"id":{"type":"string","description":"需要更新的业务参数ID"},"schema":{"type":"string","description":"新的参数约束定义，JSON Schema 格式"},"value":{"type":"object","additionalProperties":{},"description":"新的参数值，JSON格式"}},"required":["id","schema"]},"ModifyDictReq":{"type":"object","description":"修改字典请求对象\n\n用于封装修改字典项的请求参数。","properties":{"id":{"type":"string","description":"字典 ID"},"code":{"type":"string","description":"字典键","maxLength":255,"minLength":0},"label":{"type":"string","description":"字典值","maxLength":255,"minLength":0},"ordinal":{"type":"integer","format":"int32","description":"排序号"},"parentId":{"type":"string","description":"上级字典 ID"},"enabled":{"type":"boolean","description":"启用状态"}},"required":["code","id","ordinal"]},"RoleUser":{"type":"object","description":"`RoleUser` 实体表示角色与用户之间的关联。\n\n它定义了哪些用户属于哪些角色。","properties":{"id":{"type":"string","description":"唯一标识符。"},"roleId":{"type":"string","description":"关联的角色ID。"},"userId":{"type":"string","description":"关联的用户ID。"}}},"RolePermission":{"type":"object","description":"`RolePermission` 实体表示角色与接口权限之间的关联。\n\n它定义了哪些角色拥有哪些特定的 API 权限。","properties":{"id":{"type":"string","description":"唯一标识符。"},"roleId":{"type":"string","description":"关联的角色ID。"},"permission":{"type":"string","description":"接口权限编码，例如 \"user:read\", \"app:write\"。"}}},"UpdateAppReq":{"type":"object","description":"`UpdateAppReq` 记录表示用于更新现有服务信息的请求体。","properties":{"id":{"type":"string","description":"服务ID，标识要更新的特定服务。"},"name":{"type":"string","description":"服务名称，非空。","maxLength":255,"minLength":0},"baseUrl":{"type":"string","description":"服务的基础访问路径，必须是一个有效的 URL。","maxLength":2083,"minLength":0},"ordinal":{"type":"integer","format":"int32","description":"服务的显示顺序，值越小优先级越高。"}},"required":["baseUrl","id","name","ordinal"]},"RegisterUserReq":{"type":"object","description":"用户注册请求\n\n包含用户注册所需的必要信息，包括用户名、昵称和密码。","properties":{"username":{"type":"string","description":"用户名。","maxLength":32,"minLength":3},"nickname":{"type":"string","description":"用户昵称。","maxLength":255,"minLength":0},"password":{"type":"string","description":"密码。为了防止身份被冒用，由用户设置的、只有用户自己知晓的口令。","maxLength":2147483647,"minLength":4}},"required":["password","username"]},"Id":{"type":"object","description":"封装 ID 的记录类。\n将 ID 封装成强类型对象，避免原始类型偏执。","properties":{"id":{"type":"string","description":"ID 字符串"}}},"AddSettingRequest":{"type":"object","description":"新增业务参数请求\n\n用于创建新的业务参数配置，包含参数标识、约束定义和初始值。","properties":{"code":{"type":"string","description":"业务参数标识，唯一标识参数类型","maxLength":255,"minLength":0},"schema":{"type":"string","description":"参数约束定义，JSON Schema 格式"},"value":{"type":"object","additionalProperties":{},"description":"参数初始值，JSON格式"}},"required":["code","schema"]},"AddRoleReq":{"type":"object","description":"新增角色请求对象\n\n用于封装新增角色时客户端提交的请求参数。","properties":{"code":{"type":"string","description":"角色简码，用于区分同级别角色","maxLength":255,"minLength":0},"name":{"type":"string","description":"角色名称，用于界面展示","maxLength":255,"minLength":0},"inheritable":{"type":"boolean","description":"是否允许创建下级角色"},"parentId":{"type":"string","description":"上级角色 ID"}},"required":["code","inheritable","name","parentId"]},"AddDictReq":{"type":"object","description":"新增字典请求对象\n\n用于封装新增字典目或字典项的请求参数。","properties":{"tag":{"type":"string","description":"字典目\n\n用于区分不同字典的命名空间，可为空。如果为空，系统将使用默认的字典目。","maxLength":255,"minLength":0},"code":{"type":"string","description":"字典键\n\n同一字典目下，键值唯一。约定：由用户定义的字典键，应该以小写字母开头；由系统生成的字典键，应该以大写字母开头。","maxLength":255,"minLength":0},"label":{"type":"string","description":"字典值\n\n字典项的显示名称。","maxLength":255,"minLength":0},"ordinal":{"type":"integer","format":"int32","description":"排序号\n\n数值越小，顺序越靠前。"},"parentId":{"type":"string","description":"上级字典ID\n\n用于将字典组织成树形结构，可为空。如果为空且 tag 不为空，则表示新增字典目。"}},"required":["code","ordinal"]},"BasicAuth":{"type":"object","description":"`BasicAuth` 记录表示基本的认证信息。","properties":{"username":{"type":"string","description":"用户名"},"password":{"type":"string","description":"口令"}}},"OidcToken":{"type":"object","description":"`OidcToken` 表示遵循 OpenID Connect (OIDC) 规范的 Token 响应体。\n\n包含访问令牌、刷新令牌、ID 令牌以及它们的有效期等信息。","properties":{"accessToken":{"type":"string","description":"访问令牌，用于访问受保护的资源。"},"refreshToken":{"type":"string","description":"刷新令牌，用于获取新的访问令牌。"},"expiresIn":{"type":"integer","format":"int64","description":"过期时间\n\n单位：秒"},"idToken":{"type":"string","description":"ID 令牌，包含用户的身份信息。"},"tokenType":{"type":"string","description":"获取令牌类型，默认为 \"Bearer\"。"}}},"AddAppReq":{"type":"object","description":"新增服务请求体。","properties":{"name":{"type":"string","description":"服务名称","maxLength":255,"minLength":0},"baseUrl":{"type":"string","description":"基础访问路径","maxLength":2083,"minLength":0},"ordinal":{"type":"integer","format":"int32","description":"排序值，顺序越小越靠前"}},"required":["baseUrl","name","ordinal"]},"JwkObject":{"type":"object","additionalProperties":{},"properties":{"type":{"type":"string"},"algorithm":{"type":"string"},"operations":{"type":"array","items":{"$ref":"#/components/schemas/KeyOperation"},"uniqueItems":true},"id":{"type":"string"},"empty":{"type":"boolean"}}},"JwkSet":{"type":"object","additionalProperties":{},"properties":{"keys":{"type":"array","items":{"$ref":"#/components/schemas/JwkObject"},"uniqueItems":true},"empty":{"type":"boolean"}}},"KeyOperation":{"type":"object","properties":{"description":{"type":"string"},"id":{"type":"string"}}},"ODataRequestParam":{"type":"object","description":"OData 请求参数","properties":{"top":{"type":"integer","format":"int32","description":"最大返回条数"},"skip":{"type":"integer","format":"int32","description":"偏移量"}}},"PageMetadata":{"type":"object","properties":{"size":{"type":"integer","format":"int64"},"number":{"type":"integer","format":"int64"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PagedModelUserInfoResp":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/UserInfoResp"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"UserInfoResp":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"nickname":{"type":"string"}}},"User":{"type":"object","description":"用户","properties":{"id":{"type":"string","description":"获取实体 ID。"},"username":{"type":"string","description":"用户名\n\n由用户定义的、区别于其他用户的一个标识。"},"nickname":{"type":"string","description":"用户昵称\n\n显示在页面上的用户的名称。"},"createTime":{"type":"string","format":"date-time","description":"记录创建时间"},"updateTime":{"type":"string","format":"date-time","description":"最后更新时间"}}},"PagedModelSetting":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Setting"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"Setting":{"type":"object","description":"业务参数实体类\n\n用于存储和管理系统中各种业务参数，包括系统配置、业务规则等。\n支持JSON格式的参数值和参数约束定义。","properties":{"id":{"type":"string","description":"主键ID，唯一标识"},"code":{"type":"string","description":"业务参数标识\n\n唯一标识参数类型的编码，如 `system.theme`、`business.timeout` 等\n不可更新，创建时确定"},"schema":{"type":"string","description":"参数约束定义\n\nJSON格式的约束配置，定义参数的格式、取值范围、验证规则等。"},"value":{"type":"object","additionalProperties":{},"description":"参数实际值\n\nJSON格式的参数值，支持复杂数据结构\n如 `{\"theme\": \"dark\", \"language\": \"zh-CN\"}`"},"updateTime":{"type":"string","format":"date-time","description":"参数更新时间"}}},"Role":{"type":"object","description":"角色实体类\n\n角色是权限管理系统的核心概念，用于定义用户的权限范围。\n角色采用树形结构管理，支持角色继承和权限聚合。\n每个角色都有唯一标识、简码、完整编码、名称等信息。","properties":{"id":{"type":"string","description":"角色标识\n\n角色的唯一标识符，使用分布式ID生成器生成。\n在整个系统中唯一，不可重复。"},"code":{"type":"string","description":"角色简码\n\n角色的简短标识符，用于区分同级别角色。\n在同一父角色下唯一，通常为英文标识。"},"value":{"type":"string","description":"角色编码\n\n角色的完整编码，采用路径形式表示（如：ADMIN/SYSTEM/USER）。\n用于唯一标识角色在整个角色树中的位置。"},"name":{"type":"string","description":"角色名称\n\n角色的显示名称，用于界面展示。\n支持中文，可以包含特殊字符。"},"inheritable":{"type":"boolean","description":"是否允许该角色创建其下级角色\n\n标识该角色是否允许创建子角色。\nfalse 表示该角色为叶子节点，不能再创建下级角色。"},"parentId":{"type":"string","description":"上级角色标识\n\n该角色的父角色ID，标识角色在树形结构中的位置。\n根节点的父角色ID为系统根节点ID。"},"children":{"type":"array","description":"子角色列表\n\n临时字段，用于存储该角色的直接子角色。\n不持久化到数据库，通过查询动态构建。","items":{"$ref":"#/components/schemas/Role"}}}},"PasswordStrength":{"type":"object","description":"口令强度实体类","properties":{"score":{"type":"integer","format":"int32","description":"口令强度分数"},"guessesLog10":{"type":"number","format":"double","description":"口令强度数量级"}}},"MenuInfo":{"type":"object","description":"菜单或资源的信息封装类。\n用于描述前端菜单、外部链接、嵌入页面以及后端接口权限和资源权限等。","properties":{"type":{"type":"string","description":"菜单或资源的具体类型，例如路由、外部链接、接口权限等。","enum":["ROUTE","EXTERNAL_LINK","EMBEDDED","PERMISSION","GROUP_PERMISSION"]},"path":{"type":"string","description":"菜单或资源的路径。\n不同类型的资源有不同的路径格式，详见 [MenuType]。"},"permissions":{"type":"array","description":"访问此菜单或资源所需要的权限集合。\n取并集，即访问者必须满足列表中所有权限才能访问。","items":{"type":"string"}}}},"ServiceInfo":{"type":"object","description":"服务元数据信息封装类。\n包含服务的名称、版本、类型以及是否隐藏等信息，用于服务自省。","properties":{"name":{"type":"string","description":"服务的名称，例如 \"user-service\" 或 \"product-service\"。"},"version":{"type":"string","description":"服务的版本，例如 \"1.0.0\"。"},"type":{"type":"string","description":"服务的类型，例如 [ServiceType#CLIENT] (前端) 或 [ServiceType#SERVER] (后端)。\n默认为 [ServiceType#SERVER]。","enum":["CLIENT","SERVER"]},"hidden":{"type":"boolean","description":"指示服务是否应该在站内链接中隐藏。\n如果为 `true`，则通常不应在公共菜单或服务列表中显示。\n默认为 `true`。"}}},"Dict":{"type":"object","description":"字典\n\n字典是一组提供给用户选择的值。","properties":{"id":{"type":"string","description":"获取实体 ID。"},"tag":{"type":"string","description":"字典目\n\n字典目用于区分不同字典的命名空间。\n\n字典目本身可以视为特殊的字典项，该值为`DICT`。"},"code":{"type":"string","description":"字典键\n\n同一字典目下，键值唯一。\n\n约定：由用户定义的字典键，应该以小写字母开头；由系统生成的字典键，应该以大写字母开头。"},"label":{"type":"string","description":"字典值"},"ordinal":{"type":"integer","format":"int32","description":"排序号\n\n数值越小，顺序越靠前。"},"parentId":{"type":"string","description":"上级字典ID\n\n用于将字典组织成树形结构。\n\n字典目可视为特殊的字典项，该值为`0`。"},"enabled":{"type":"boolean","description":"启用状态\n\n约定：前端的新增表单应该只显示启用状态为`是`的数据。"},"editable":{"type":"boolean","description":"是否可编辑\n\n是否可编辑为`否`的数据，不允许修改字典键，不允许删除，否则会造成反序列化问题。"},"children":{"type":"array","description":"子级字典","items":{"$ref":"#/components/schemas/Dict"}}}},"PagedModelDict":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Dict"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"App":{"type":"object","description":"服务实体类，对应数据库中的 `zeroweb_app` 表。","properties":{"id":{"type":"string","description":"服务ID，唯一标识一个服务。"},"name":{"type":"string","description":"应用名称，例如 \"管理服务\" 或 \"开放服务\"。"},"baseUrl":{"type":"string","description":"服务的基础访问路径，通常是一个 URL。"},"ordinal":{"type":"integer","format":"int32","description":"服务的显示顺序。\n\n值越小表示优先级越高，在界面上会越靠前显示。"}}}}}}