👨‍💻 niltor    📆 2026-09-29 15:54

ResourceMod

Perigon.ResourceMod 管理租户内可分类、可扩展属性的通用资源。它适合维护资产、服务目录、环境信息及其他需要结构化字段、角色授权或用户提交审核的资源。

资源配置

资源由配置项和资源实例组成:

  • 环境:例如 Development、Test 和 Production。
  • 分类:资源的必选归类。
  • 分组与标签:分组属于分类;资源可选分组,并使用标签进行标记。
  • 资源定义:描述一类资源拥有的动态属性。
  • 动态属性:支持字符串、数字、布尔值、日期、URI 和 IP 地址,可设置必填和长度约束。
  • 资源实例:关联环境、分类、资源定义及属性值;属性值会保存名称和类型快照,便于定义调整后读取历史资源。

初始化服务会为租户创建 Development、Test、Production 环境、常用操作系统标签和 Default 分类;尚无资源定义时,还会创建网站、服务器和数据库等示例定义及共享属性。

管理资源与授权

管理员可新增、编辑、删除资源,按环境、分类、分组、定义和标签筛选,并维护上述配置。保存资源时,服务端会验证配置归属当前租户、分组属于所选分类、动态属性符合定义且满足必填约束。存在引用的配置不会直接删除。

资源读取权限按“角色 + 环境 + 分类”配置。管理员可读取当前租户资源;其他用户只能读取其角色在相应环境和分类获准访问的资源。ResourceMod 使用自己的资源授权关系,不会自动采用 SystemMod 的数据范围配置。

主要接口位于以下资源路径:

  • /api/Resource:资源列表、详情和增删改。
  • /api/ResourceConfiguration:环境、分类、分组、标签、属性定义、资源定义和资源授权配置。

个人资源审核与收藏

用户可以提交个人资源并选择私有或申请公开:

  1. 私有资源仅本人可见,不需审核。
  2. 申请公开的资源进入管理员审核队列。
  3. 管理员通过申请时补充环境、分类、分组和标签;系统创建正式资源并关联原申请。管理员也可以驳回并填写审核意见。

个人资源接口位于 /api/UserResource,包括 mine、review、详情、增改删以及 approve、reject。已审核通过的申请不能再次编辑或删除。

用户还可收藏当前有权访问的正式资源。收藏接口位于 /api/UserFavoriteResource;私有个人资源和待审核申请不可收藏,同一资源不能重复收藏。

页面与依赖

管理端页面包括资源列表、资源配置、资源定义、我的资源和公开申请审核。模块安装在 AdminService,角色候选项由 SystemMod 的角色接口提供;ResourceMod 本身不管理角色,也不提供独立的 ApiService。

安装与接入

perigon module install Perigon.ResourceMod AdminService

在目标服务中通过 AddModules() 注册模块并执行数据库迁移。使用模块 Angular 页面时,还需将前端模块和菜单加入目标应用。前端打包与恢复选项见模块命令行文档。