giip

Project Memo List Guide

How to view, add, edit and delete free-form memos (key / value / note) scoped by project (CSN) and server (lssn). This page requires login.

🚀 Open the Project Memo page →


📋 Overview

Project Memo manages memos tied to a specific project (CSN) and logical server (lssn) on a single screen. Store operational notes such as connection info, checklists, or reference URLs in a free-form structure (key / value / detailed note).

Each memo has the following fields:

FieldMeaning
lcSnMemo serial number (PK). Used for edit/delete
csnProject code
lssnAssociated logical server number (optional)
lcKeyMemo key (e.g. ssh-port, admin-url)
lcValMemo value (e.g. 2222, https://...)
lcMemoFree-text note

🔍 Key Features

1. Specify a server (lssn) · LSVR picker

Type a server number directly into the lssn field, or use [Select LSVR] to pick from the current project's server list. The chosen server number is carried along when you add a memo.

2. Project (CSN) binding

CSN is auto-filled from the URL ?csn= parameter or your current session's project. Switching the project in the top bar re-queries the list for the new project.

3. Fetch

Press [Fetch] to query memos for the selected project. Results render as a table on desktop and cards on mobile.

  • Auto URL link: if a value (lcVal) starts with http(s)://, it renders as a link that opens in a new tab.
  • Server link: the server (lssn) column links to that server's detail page (lsvrdetail).

4. Add / Edit / Delete

  • Add: [Add Memo] opens the memo add page (prjMemoPut) carrying the current CSN and lssn. You can also add directly from the in-table edit modal.
  • Edit: [Edit] on a row opens a modal preloaded with that memo (lcKey / lcVal / lcMemo). On save, lcSn is sent so the existing memo is updated.
  • Delete: [Delete] on a row shows a confirmation; on confirm the memo is deleted and the list re-queried. Deletion cannot be undone.

5. Jump to machine detail

[Machine Detail] opens the server detail page (lsvrdetail) for the entered lssn.


🛠️ Usage (summary)

  1. Enter an lssn or pick a server with [Select LSVR].
  2. [Fetch] the current project's memos.
  3. Write/update via [Add Memo] or a row's [Edit] and save.
  4. Remove unneeded memos with a row's [Delete] (applied immediately after confirm).

🔌 API Usage Guide

This screen calls three commands on the shared GIIP API endpoint (/api/giipApi). In the browser the login session token is sent automatically; when calling externally, use your AK (access token).

The examples below are the same calls that were verified live (CSN 47) as a list → add → delete round trip.

Common format

  • Endpoint: POST https://giipfaw.azurewebsites.net/api/giipApi
  • Content-Type: application/x-www-form-urlencoded
  • Auth: put the AK (login access token) in the token / usertoken form fields.
  • Call shape: the text field holds command paramName… (parameter names, not values); the jsondata field holds the actual values as JSON.
    • This is the same convention as other memo screens (e.g. corpMemo).
CommandRoletextjsondata fields
prjMemoListList project memosprjMemoList csncsn
prjMemoPutAdd/update (upsert)prjMemoPut csn lssn lcKey lcVal lcMemo (append lcSn to update)csn, lssn, lcKey, lcVal, lcMemo, lcSn?
prjMemoDelDelete a memoprjMemoDel csn lcSncsn, lcSn

Permission: the AK user must be a member (tCorpUserRel) of the given csn; otherwise 403 Forbidden is returned. An invalid AK returns 401 Unauthorized.

1) List — 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}'

Response (example) — each row includes memo fields plus tags (a JSON array of tags, or null).

[
  { "lcSn": 12, "csn": 47, "lssn": 71198, "lcKey": "ssh-port", "lcVal": "2222", "lcMemo": "maintenance port", "tags": null }
]

If there are no memos, an empty response is returned.

2) Add / Update — prjMemoPut

Omit lcSn to insert a new memo; include lcSn to update it (upsert). To update, append lcSn to text.

# 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":"admin console"}'
# update — include 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 changed","lcSn":12}'
}
Invoke-RestMethod -Method Post -Uri "https://giipfaw.azurewebsites.net/api/giipApi" `
  -ContentType "application/x-www-form-urlencoded" -Body $body

Response (example) — returns the refreshed list plus the created/updated lcSn.

[ [ { "lcSn": 12, "csn": 47, "lcKey": "admin-url", "lcVal": "https://portal.example.com", "tags": null } ], [ { "lcSn": 12 } ] ]

3) Delete — 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}'

Response (example)

{ "status": "Success", "lcSn": 12 }

Result codes (RstVal)

RstValMeaningAction
(success)OK. Returns data rows or status:"Success"
401Unauthorized — missing/invalid AKPut a valid AK in token/usertoken
403Forbidden — no permission for this CSNVerify the AK user is a member of the project

For the full result-code definitions see the API Result Codes guide (RstVal).


💡 Notes

  • If CSN is empty the list may show nothing. Select a project first.
  • Deletion is applied immediately after confirmation and cannot be recovered.
  • Putting a URL in lcVal makes it clickable in the list — handy as a link store.

🔧 Troubleshooting

SymptomCauseFix
No memos shownCSN empty or wrongSelect the right project and press [Fetch]
API returns 401Missing/invalid AKSend a valid AK in token/usertoken
API returns 403AK user is not a member of the CSNCheck project membership (tCorpUserRel)
Update saved as a new memolcSn missing from the requestAppend lcSn to text and include lcSn in jsondata
Delete failsResult lacks lcSn or session expiredRe-query the list or re-login and retry

Version: 1.0 Last updated: 2026-07-24 Source file: giipv3/public/help/prjmemolist.en.md