如何在 Blue 中存档和取消存档项目。
存档项目
存档项目在您想要暂时隐藏一个项目而不永久删除时非常有用。已存档的项目:
- 从活动项目列表中隐藏
- 不能被编辑或修改
- 项目成员仍然可以查看
- 可以随时取消存档
基本示例
mutation {
archiveProject(id: "project-123")
}
使用项目上下文头
# With header: x-bloo-project-id: project-123
mutation {
archiveProject
}
使用变量
mutation ArchiveProject($projectId: String!) {
archiveProject(id: $projectId)
}
变量:
{
"projectId": "abc123-project-id"
}
取消存档项目
要将已存档的项目恢复为活动状态:
mutation {
unarchiveProject(id: "project-123")
}
变更参数
archiveProject
参数 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
String | 否 | 要存档的项目 ID。如果未提供,则使用上下文头中的项目。 |
unarchiveProject
参数 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
String | 否 | 要取消存档的项目 ID。如果未提供,则使用上下文头中的项目。 |
响应
两个变更都返回一个布尔值,表示成功与否:
字段 | 类型 | 描述 |
---|---|---|
Boolean |
Boolean! | 当操作成功时返回 true |
所需权限
项目角色 | 可以存档/取消存档 |
---|---|
OWNER |
✅ 是 |
ADMIN |
✅ 是 |
MEMBER |
❌ 否 |
CLIENT |
❌ 否 |
COMMENT_ONLY |
❌ 否 |
VIEW_ONLY |
❌ 否 |
项目 ID 解析
项目 ID 可以通过两种方式指定:
-
作为参数(推荐):
archiveProject(id: "project-123")
-
通过 HTTP 头:
x-bloo-project-id: project-123
(首选)x-project-id: project-123
(已弃用)
如果两者都提供,则参数优先。
错误响应
找不到项目
{
"errors": [{
"message": "Project was not found.",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
权限不足
{
"errors": [{
"message": "You don't have permission to archive this project",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
存档时发生的事情
当您存档一个项目时:
- 项目状态:项目被标记为已存档
- 可见性:从活动项目列表中隐藏
- 模板:如果该项目是模板,则失去模板状态
- 位置:移动到用户项目列表的末尾
- 文件夹:从任何项目文件夹中移除
- 活动日志:存档操作被记录
- 实时更新:所有连接的用户都会收到通知
重要说明
- 幂等操作:存档一个已经存档的项目返回
true
而不进行更改 - 可逆:使用
unarchiveProject
恢复项目 - 查看访问:已存档的项目仍然可以被现有成员查看
- 无数据丢失:存档保留所有项目数据,与删除不同
- 删除的替代方案:考虑存档而不是删除以进行临时移除