项目备忘录列表指南
介绍如何按项目(CSN)和服务器(lssn)查看、添加、编辑和删除自由格式备忘录(键 / 值 / 备注)。此页面需要登录。
📋 概述
项目备忘录在单一界面管理绑定到特定项目(CSN)和逻辑服务器(lssn)的备忘录。可用自由格式(键 / 值 / 详细备注)保存连接信息、检查清单、参考 URL 等运维所需备忘。
每条备忘录包含以下字段:
| 字段 | 含义 |
|---|---|
lcSn | 备忘录序号(主键)。用于编辑/删除 |
csn | 项目代码 |
lssn | 关联的逻辑服务器编号(可选) |
lcKey | 备忘录键(如 ssh-port, admin-url) |
lcVal | 备忘录值(如 2222, https://...) |
lcMemo | 自由文本备注 |
🔍 主要功能
1. 指定服务器(lssn)· LSVR 选择
在顶部 lssn 框中直接输入服务器编号,或用 [选择 LSVR] 从当前项目的服务器列表中选取。所选服务器编号会在添加备忘录时一并传递。
2. 项目(CSN)绑定
CSN 会从 URL 的 ?csn= 参数或当前会话的项目自动填充。在顶部切换项目后,列表会按新项目重新查询。
3. 查询(Fetch)
按 [Fetch] 查询所选项目的备忘录。结果在桌面端以表格、在移动端以卡片显示。
- URL 自动链接: 若值(lcVal)以
http(s)://开头,将显示为在新标签页打开的链接。 - 服务器链接: 服务器(lssn)列链接到该服务器详情页(
lsvrdetail)。
4. 添加 / 编辑 / 删除
- 添加: [添加备忘录] 携带当前 CSN·lssn 跳转到添加页(
prjMemoPut)。也可从表内编辑弹窗直接添加。 - 编辑: 行内 [Edit] 打开预加载该备忘录(lcKey / lcVal / lcMemo)的弹窗。保存时会发送
lcSn以更新现有备忘录。 - 删除: 行内 [Delete] 弹出确认框,确认后删除备忘录并重新查询列表。删除不可撤销。
5. 前往机器详情
[机器详情] 跳转到所输入 lssn 的服务器详情页(lsvrdetail)。
🛠️ 使用步骤(概要)
- 在顶部输入 lssn 或用 [选择 LSVR] 选取服务器。
- 用 [Fetch] 查询当前项目的备忘录。
- 通过 [添加备忘录] 或行内 [Edit] 编写/更新并保存。
- 用行内 [Delete] 删除多余备忘录(确认后立即生效)。
🔌 API 使用指南
此界面通过 GIIP 公共 API 端点(/api/giipApi)调用三个命令工作。浏览器会自动发送登录会话令牌;从外部直接调用时使用 AK(访问令牌)。
以下示例与在真实生产环境(CSN 47)以查询→添加→删除往返验证过的调用相同。
通用规范
- 端点:
POST https://giipfaw.azurewebsites.net/api/giipApi - Content-Type:
application/x-www-form-urlencoded - 认证: 在表单字段
token/usertoken中放入 AK(登录用户访问令牌)。 - 调用形式:
text字段放命令 参数名…(是参数名而非值),jsondata字段以 JSON 放实际值。- 这与 corpMemo 等其他备忘录界面的约定一致。
| 命令 | 作用 | text | jsondata 字段 |
|---|---|---|---|
prjMemoList | 查询项目备忘录列表 | prjMemoList csn | csn |
prjMemoPut | 添加/更新(upsert) | prjMemoPut csn lssn lcKey lcVal lcMemo(更新时末尾加 lcSn) | csn, lssn, lcKey, lcVal, lcMemo, lcSn? |
prjMemoDel | 删除备忘录 | prjMemoDel csn lcSn | csn, lcSn |
权限: AK 用户必须是该
csn的成员(tCorpUserRel),否则返回403 Forbidden。AK 无效返回401 Unauthorized。
1) 列表查询 — prjMemoList
curl -X POST "https://giipfaw.azurewebsites.net/api/giipApi" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "token=YOUR_AK" \
--data-urlencode "usertoken=YOUR_AK" \
--data-urlencode "text=prjMemoList csn" \
--data-urlencode 'jsondata={"csn":47}'
响应(示例) — 每行包含备忘录字段与 tags(标签 JSON 数组,无则为 null)。
[
{ "lcSn": 12, "csn": 47, "lssn": 71198, "lcKey": "ssh-port", "lcVal": "2222", "lcMemo": "检修端口", "tags": null }
]
若无备忘录,返回空响应。
2) 添加 / 更新 — prjMemoPut
省略 lcSn 为新增,带上 lcSn 为更新(upsert)。更新时在 text 末尾追加 lcSn。
# 新增(insert)
curl -X POST "https://giipfaw.azurewebsites.net/api/giipApi" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "token=YOUR_AK" \
--data-urlencode "usertoken=YOUR_AK" \
--data-urlencode "text=prjMemoPut csn lssn lcKey lcVal lcMemo" \
--data-urlencode 'jsondata={"csn":47,"lssn":71198,"lcKey":"admin-url","lcVal":"https://portal.example.com","lcMemo":"管理控制台"}'
# 更新(update) — 包含 lcSn
$body = @{
token = "YOUR_AK"
usertoken = "YOUR_AK"
text = "prjMemoPut csn lssn lcKey lcVal lcMemo lcSn"
jsondata = '{"csn":47,"lssn":71198,"lcKey":"admin-url","lcVal":"https://portal2.example.com","lcMemo":"URL 变更","lcSn":12}'
}
Invoke-RestMethod -Method Post -Uri "https://giipfaw.azurewebsites.net/api/giipApi" `
-ContentType "application/x-www-form-urlencoded" -Body $body
响应(示例) — 返回保存后的更新列表以及新建/更新的 lcSn。
[ [ { "lcSn": 12, "csn": 47, "lcKey": "admin-url", "lcVal": "https://portal.example.com", "tags": null } ], [ { "lcSn": 12 } ] ]
3) 删除 — prjMemoDel
curl -X POST "https://giipfaw.azurewebsites.net/api/giipApi" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "token=YOUR_AK" \
--data-urlencode "usertoken=YOUR_AK" \
--data-urlencode "text=prjMemoDel csn lcSn" \
--data-urlencode 'jsondata={"csn":47,"lcSn":12}'
响应(示例)
{ "status": "Success", "lcSn": 12 }
结果代码(RstVal)
| RstVal | 含义 | 处理 |
|---|---|---|
| (成功) | 成功。返回数据行或 status:"Success" | — |
| 401 | Unauthorized — AK 缺失/无效 | 在 token/usertoken 放入正确 AK |
| 403 | Forbidden — 无该 CSN 权限 | 确认 AK 用户是该项目成员 |
完整结果代码定义参见 API 结果代码指南(RstVal)。
💡 注意事项
- 若 CSN 为空可能不显示结果,请先指定项目。
- 删除在确认后立即生效且无法恢复。
- 在
lcVal放入 URL 后可在列表中直接点击,可当作链接库使用。
🔧 故障排查
| 现象 | 原因 | 解决 |
|---|---|---|
| 不显示备忘录 | CSN 为空或错误 | 在顶部指定正确项目并按 [Fetch] |
| API 返回 401 | AK 缺失/无效 | 在 token/usertoken 发送有效 AK |
| API 返回 403 | AK 用户不是该 CSN 成员 | 检查项目成员关系(tCorpUserRel) |
| 更新被存为新备忘录 | 请求缺少 lcSn | 在 text 末尾加 lcSn 并在 jsondata 包含 lcSn |
| 删除失败 | 结果缺少 lcSn 或会话过期 | 重新查询列表或重新登录后重试 |
版本: 1.0
最后更新: 2026-07-24
源文件: giipv3/public/help/prjmemolist.zh-CN.md