SuperAPI AI 工具集

library-management

办公与效率

查看项目

更新于 10-16 08:33

技能介绍

用途:在新增字段、修改访问校验或调整删除行为前使用本技能,管理资产库(image_libraries)、集合(image_collections)与资产(image_assets)的模式、CRUD、共享与级联删除。

用户界面:人工 Library 工作区位于 /library,根路径选择“All assets”并跨所有可访问品牌套件浏览资产;/library/:id 打开单个套件的管理详情;旧版 /brand-kits URL 重定向至此。嵌入式选择器宿主仍以 iframe 加载 /library 并保持既有桥接契约。

模式结构:image_libraries 为顶层库,含 ownableColumns 与 shares,下设 custom_instructions(持久自由文本提示指导)、image_collections(可选子分组,继承访问权)、image_assets(所有图片,含引用与生成,继承访问权)、image_generation_runs(每次 generate 调用一条,继承访问权)。后三者自身不带 ownableColumns,通过父 library_id 的 assertAccess("asset-library", libraryId, ...) 继承访问权。

访问控制:列表查询使用 accessFilter(schema.assetLibraries, schema.assetLibraryShares);跨套件资产列表先解析可访问库 ID,再按这些 ID 查询并带上父套件标题。按 id 读取用 resolveAccess("asset-library", libraryId)(_helpers.ts 的 requireLibrary(id) 封装)。写入更新/插入用 assertAccess("asset-library", libraryId, "editor"),删除用 "admin"。所有资产与运行记录先取得 libraryId 再对父库断言,绝不能在不限定 library_id 的情况下查询 image_assets。

新增字段:schema 严格加性。托管模板在所有部署环境共享同一生产 DB,破坏性变更会抹掉真实用户数据。须在 server/plugins/db.ts 以新迁移版本执行 ALTER TABLE ... ADD COLUMN IF NOT EXISTS ...;不得重命名或删除,出错时并列添加替代列;不得对生产使用 drizzle-kit push。示例:向 migration 版本数组添加 {"version": 6, "sql": "ALTER TABLE image_libraries ADD COLUMN IF NOT EXISTS icon TEXT"},并在 schema.ts 中加入 icon: text("icon")。

共享:遵循框架标准模型,visibility 为 "private" | "org" | "public";image_library_shares 中按用户/组织授予 viewer | editor | admin 角色。使用框架动作 share-resource、unshare-resource、set-resource-visibility(--resourceType=asset-library),旧版 image-library 别名仍保留。生成资产与引用继承父库可见性,v1 不支持按资产覆盖,schema 前向兼容但未在 UI 暴露。

级联删除:delete-library 按序删除 image_assets、image_generation_runs、image_collections、image_library_shares、image_libraries(均按 library_id 或对应 id)。SQL 中资产行被删除,但 S3/本地回退底层对象不会自动清理,属 v2 后台任务,当前孤立 blob 可容忍,因为框架资产 URL 都通过资产行校验访问。

引用与生成:引用图与生成图同存 image_assets,以 role(style_reference / logo_reference / product_reference / diagram_reference / generated)与 status(reference / candidate / saved / archived / failed)区分。统一表简化了访问控制,并使“把已保存生成图用作未来生成的引用”成为一等操作(v2 计划;v1 仅从任意非归档资产中选择)。

导入外部引用:当发现属于品牌套件的公共 HTTPS 图片时使用 import-asset-from-url,选择最窄的引用 role,保留标题或描述;deliverable category 默认匹配 role,必要时显式传入如 hero 或 campaign。博客到品牌套件流程:检查页面、挑出最佳图片 URL、逐个导入目标 libraryId,将返回的 assetIds 接入生成预设引用填充,或对精确 logo 调用 set-canonical-logo。导入资产以 status: "reference" 存储并带 sourceUrl 来源。

何时添加集合:集合可选,多数用户不会创建。仅当库内有多个不同视觉体系,或用户想要按集合设置默认(宽高比、图片尺寸、在库级之上叠加的风格简述)时使用;否则跳过,扁平库加类别标签资产已覆盖多数场景。

限制:schema 严格加性,禁止重命名/删除列或对生产使用 drizzle-kit push;v1 无按资产覆盖可见性;删除不自动清理底层对象;role 到 prior-candidate 的升级为 v2 计划。