Files
flvx/skills/flvx-api/references/groups.md
2026-02-28 14:07:54 +08:00

3.6 KiB

Group & Permission Management API

Groups organize users and tunnels, with permissions controlling access.

Tunnel Groups

POST /api/v1/group/tunnel/list

List all tunnel groups.

Request: {}

Response:

{
  "code": 0,
  "data": [
    {
      "id": 1,
      "name": "Premium-Tunnels",
      "status": 1,
      "tunnel_ids": [1, 2, 3],
      "created_at": 1706659200000
    }
  ]
}

POST /api/v1/group/tunnel/create

Create a tunnel group.

Request:

{
  "name": "Premium-Tunnels",
  "status": 1
}

POST /api/v1/group/tunnel/update

Update tunnel group.

Request:

{
  "id": 1,
  "name": "VIP-Tunnels",
  "status": 1
}

POST /api/v1/group/tunnel/delete

Delete tunnel group.

Request:

{"id": 1}

POST /api/v1/group/tunnel/assign

Assign tunnels to a group.

Request:

{
  "groupId": 1,
  "tunnelIds": [1, 2, 3]
}

User Groups

POST /api/v1/group/user/list

List all user groups.

Request: {}

Response:

{
  "code": 0,
  "data": [
    {
      "id": 1,
      "name": "VIP-Users",
      "status": 1,
      "user_ids": [2, 3, 4],
      "created_at": 1706659200000
    }
  ]
}

POST /api/v1/group/user/create

Create a user group.

Request:

{
  "name": "VIP-Users",
  "status": 1
}

POST /api/v1/group/user/update

Update user group.

Request:

{
  "id": 1,
  "name": "Premium-Users",
  "status": 1
}

POST /api/v1/group/user/delete

Delete user group.

Request:

{"id": 1}

POST /api/v1/group/user/assign

Assign users to a group.

Request:

{
  "groupId": 1,
  "userIds": [2, 3, 4]
}

Permissions

Permissions link user groups to tunnel groups, allowing users in a user group to access tunnels in a tunnel group.

POST /api/v1/group/permission/list

List all permissions.

Request: {}

Response:

{
  "code": 0,
  "data": [
    {
      "id": 1,
      "user_group_id": 1,
      "user_group_name": "VIP-Users",
      "tunnel_group_id": 1,
      "tunnel_group_name": "Premium-Tunnels",
      "created_at": 1706659200000
    }
  ]
}

POST /api/v1/group/permission/assign

Create a permission (grant user group access to tunnel group).

Request:

{
  "userGroupId": 1,
  "tunnelGroupId": 1
}

Response:

{"code": 0, "msg": "success", "data": {"id": 1}}

POST /api/v1/group/permission/remove

Remove a permission.

Request:

{"id": 1}

Workflow: Set Up Group-Based Access

# 1. Create user group
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/user/create" \
  -H "Authorization: ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"name":"Standard-Users"}'
# Response: {"data":{"id":1}}

# 2. Create tunnel group
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/tunnel/create" \
  -H "Authorization: ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"name":"Standard-Tunnels"}'
# Response: {"data":{"id":1}}

# 3. Add tunnels to tunnel group
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/tunnel/assign" \
  -H "Authorization: ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"groupId":1,"tunnelIds":[1,2,3]}'

# 4. Add users to user group
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/user/assign" \
  -H "Authorization: ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"groupId":1,"userIds":[2,3,4]}'

# 5. Grant permission (user group -> tunnel group)
curl -s -X POST "${FLVX_BASE_URL}/api/v1/group/permission/assign" \
  -H "Authorization: ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"userGroupId":1,"tunnelGroupId":1}'

Now users 2, 3, 4 can access tunnels 1, 2, 3.