giip

Project & User Management API Reference

Learn about the APIs for querying project information and managing user permissions programmatically within the GIIP platform.

🔌 Go to Project List Feature → · 👥 Go to User List Feature →

📋 Overview

This API module provides features to control information for Projects, the logical management units of the GIIP system, and Users who have access to those projects.

🔐 Authentication & Headers

All requests must include common authentication headers.

  • Header: x-giip-ak: [Your Access Key]
  • Header: x-giip-sk: [Your Secret Key]

🚀 Key API Endpoints

1. Get Project List

  • URL: POST /api/project/list
  • Description: Returns a list of all projects accessible from the current account (CSN).
  • Request Body:
{
  "searchKeyword": ""
}

2. Get Project Detail

  • URL: POST /api/project/detail
  • Description: Queries detailed settings and the number of assigned assets for a specific project.
  • Request Body:
{
  "projectIsn": 123
}

3. Get Project Users

  • URL: POST /api/project/users
  • Description: Queries the list of users assigned to a specific project and their respective permission levels.
  • Request Body:
{
  "projectIsn": 123
}

🔍 Response Data Example

{
  "RstVal": 0,
  "RstMsg": "Success",
  "Data": [
    {
      "projectIsn": 123,
      "projectName": "Mobile App Backend",
      "userCount": 5,
      "serverCount": 12,
      "dbCount": 2
    }
  ]
}

💡 Use Cases

  • CI/CD Pipeline: Receive the server list of a target project via API before deployment to trigger parallel package updates.
  • Permission Auditing: Regularly extract the user permission list per project to create security reports.

4. Project User Management (giipapi commands)

These are the actual giipapi text/jsondata commands (see giipapi_rules.md) used to query, invite, re-permission, and remove members of a project (CSN). The web UI is documented in the User List Guide.

List project users (UserList)

  • Command: text=UserList csn
  • jsondata: {"csn": 44}
  • Description: Returns the member list of the caller's project (csn). If the caller is not a member of that project, an empty list (0 rows) is returned without an error.
  • Return columns: usn, uloginid, uname, uemail, uregdt, isPay, uPerCorp (permission: 1=Member, 49=Owner)

Invite / map a user (PrjUserMap)

  • Command: text=PrjUserMap csn uloginid
  • jsondata: {"csn": 44, "uloginid": "user@example.com"}
  • Description: Maps an existing GIIP account (uloginid = login ID, usually an email) to the project as a member. New members always start with permission 1 (Member).
  • ⚠️ Note: If no GIIP account exists for uloginid yet, the mapping fails (retcode 304). The "Invite" button on the userlist page calls this API and sends the invitation email together, but ignores a failure from this API in the UI — if the invitee hasn't signed up yet, only the email is sent, and the actual mapping only completes once this API is called again after they sign up.
  • Return: retcode200 (success), 201 (not authenticated), 301 (caller is not a member of csn), 304 (target account not found), 305 (already a member)

Change a user's permission (PrjUserPer)

  • Command: text=PrjUserPer csn uloginid uper
  • jsondata: {"csn": 44, "uloginid": "user@example.com", "uper": 49}
  • Description: Changes a member's permission between Member (1) and Owner (49). The caller must be an Owner (49) of the project, and cannot change their own permission via this API.
  • Allowed uper values: only 1 (Member) or 49 (Owner); any other value is rejected.
  • Return: RstVal/RstMsg200 (success), 401 (not authenticated), 403 (insufficient permission / not Owner / target is self / disallowed uper value), 404 (target not found or not a member)

Remove a user (PrjUserDel)

  • Command: text=PrjUserDel csn uloginid
  • jsondata: {"csn": 44, "uloginid": "user@example.com"}
  • Description: Deletes a user's project membership. The user immediately loses access to all assets of the project.
  • Return: RstVal/RstMsg200 (success), 201 (not authenticated), 301 (caller is not a member of csn), 304 (target is not a member of the project)

🛡️ Using Sk3 (High-fidelity Logging)

For administrative tasks that affect the overall infrastructure structure, such as registering new projects or modifying service groups, we recommend the giipApiSk3 endpoint to ensure task integrity and for detailed audit logs.

  • Endpoint: https://giipfaw.azurewebsites.net/api/giipApiSk3
  • Advantages: If a project creation fails, it immediately records the caller's detailed environment information (IP, UA) and StackTrace, allowing for rapid analysis of configuration errors or permission issues.
  • Usage Tip: By utilizing the text command and the jsondata parameter substitution feature, you can safely manage complex service group descriptions or non-English names without data loss.

🔧 Troubleshooting

SymptomCauseResolution
The request is rejected with an authentication errorThe common authentication headers (x-giip-ak/x-giip-sk) are missingConfirm that both authentication headers are included in every request
A PrjPut call fails or the project is not createdThe text command signature (PrjPut <cCode>, '<cName>') is incorrectRe-issue the call with a Unique cCode and a quote-wrapped cName in the exact format
The RstVal in the PrjDel response is not 0A wrong CSN was specified, or the delete permission is insufficientVerify the correct CSN and confirm you have the administrator permission required to delete a project
Korean/special-character names in PrjGrpPut are garbledSpecial characters in the text string are not escapedUse the jsondata parameter-substitution feature on giipApiSk3 to send names without loss
The user still doesn't appear in the list after calling PrjUserMapThe GIIP account for the target uloginid doesn't exist yet, so the mapping failed (only the invite email was sent)Have the target sign up for GIIP first, then call PrjUserMap again
A PrjUserPer call is rejected with 403The caller is not the project's Owner (49), or the target is the callerCall it with an Owner account, and target a member other than yourself

Version: 1.2 Last Updated: 2026-07-26 Source: giipv3/public/help/api-project-user.en.md


Related Documents: