mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-10-04 09:06:38 +08:00
docs: add AI Skill integration guide
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
# 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:**
|
||||
```json
|
||||
{
|
||||
"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:**
|
||||
```json
|
||||
{
|
||||
"name": "Premium-Tunnels",
|
||||
"status": 1
|
||||
}
|
||||
```
|
||||
|
||||
### POST /api/v1/group/tunnel/update
|
||||
|
||||
Update tunnel group.
|
||||
|
||||
**Request:**
|
||||
```json
|
||||
{
|
||||
"id": 1,
|
||||
"name": "VIP-Tunnels",
|
||||
"status": 1
|
||||
}
|
||||
```
|
||||
|
||||
### POST /api/v1/group/tunnel/delete
|
||||
|
||||
Delete tunnel group.
|
||||
|
||||
**Request:**
|
||||
```json
|
||||
{"id": 1}
|
||||
```
|
||||
|
||||
### POST /api/v1/group/tunnel/assign
|
||||
|
||||
Assign tunnels to a group.
|
||||
|
||||
**Request:**
|
||||
```json
|
||||
{
|
||||
"groupId": 1,
|
||||
"tunnelIds": [1, 2, 3]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## User Groups
|
||||
|
||||
### POST /api/v1/group/user/list
|
||||
|
||||
List all user groups.
|
||||
|
||||
**Request:** `{}`
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{
|
||||
"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:**
|
||||
```json
|
||||
{
|
||||
"name": "VIP-Users",
|
||||
"status": 1
|
||||
}
|
||||
```
|
||||
|
||||
### POST /api/v1/group/user/update
|
||||
|
||||
Update user group.
|
||||
|
||||
**Request:**
|
||||
```json
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Premium-Users",
|
||||
"status": 1
|
||||
}
|
||||
```
|
||||
|
||||
### POST /api/v1/group/user/delete
|
||||
|
||||
Delete user group.
|
||||
|
||||
**Request:**
|
||||
```json
|
||||
{"id": 1}
|
||||
```
|
||||
|
||||
### POST /api/v1/group/user/assign
|
||||
|
||||
Assign users to a group.
|
||||
|
||||
**Request:**
|
||||
```json
|
||||
{
|
||||
"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:**
|
||||
```json
|
||||
{
|
||||
"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:**
|
||||
```json
|
||||
{
|
||||
"userGroupId": 1,
|
||||
"tunnelGroupId": 1
|
||||
}
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{"code": 0, "msg": "success", "data": {"id": 1}}
|
||||
```
|
||||
|
||||
### POST /api/v1/group/permission/remove
|
||||
|
||||
Remove a permission.
|
||||
|
||||
**Request:**
|
||||
```json
|
||||
{"id": 1}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Workflow: Set Up Group-Based Access
|
||||
|
||||
```bash
|
||||
# 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.
|
||||
Reference in New Issue
Block a user