{
  "name": "dev",
  "version": "1",
  "items": [
    {
      "type": "folder",
      "name": "其他测试",
      "items": [
        {
          "type": "http",
          "name": "AdminGuard测试",
          "seq": 6,
          "request": {
            "url": "http://localhost:3030/api/v1/user?id=100",
            "method": "GET",
            "headers": [
              {
                "name": "Authorization",
                "value": "",
                "enabled": true
              },
              {
                "name": "x-tenant-id",
                "value": "prisma1",
                "enabled": false
              }
            ],
            "body": {
              "mode": "none",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "bearer",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRvaW1jIiwiaWF0IjoxNzE2MTA1Mjc5LCJleHAiOjE3MTYxOTE2Nzl9.ViLB9dCE3bUuzdZGpOeShD6upGpNhhCeqspFFWjcKkA"
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": [
              {
                "name": "id",
                "value": "100",
                "enabled": true
              }
            ]
          }
        },
        {
          "type": "http",
          "name": "file-upload",
          "seq": 1,
          "request": {
            "url": "localhost:3000/upload",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "none",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "Completion",
          "seq": 3,
          "request": {
            "url": "{{baseUrl}}/v1/chat/completions",
            "method": "POST",
            "headers": [
              {
                "name": "Content-Type",
                "value": "application/json",
                "enabled": true
              },
              {
                "name": "Authorization",
                "value": "Bearer {{OPENAI_API_KEY}}",
                "enabled": true
              }
            ],
            "body": {
              "mode": "json",
              "json": "{\n  \"model\": \"gpt-3.5-turbo\",\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Say this is a test!\"\n    }\n  ],\n  \"temperature\": 0.7\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "posttest",
          "seq": 5,
          "request": {
            "url": "http://localhost:3030/api/v1/1000?page=1",
            "method": "POST",
            "headers": [
              {
                "name": "x-tenant-id",
                "value": "100001",
                "enabled": true
              }
            ],
            "body": {
              "mode": "json",
              "json": "{\n  \"username\": \"toimc\",\n  \"password\": \"123456\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": [
              {
                "name": "page",
                "value": "1",
                "enabled": true
              }
            ]
          }
        },
        {
          "type": "http",
          "name": "tenant-test",
          "seq": 2,
          "request": {
            "url": "http://localhost:3030/api/v1/",
            "method": "GET",
            "headers": [
              {
                "name": "x-tenant-id",
                "value": "default2",
                "enabled": true
              }
            ],
            "body": {
              "mode": "none",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "test",
          "seq": 4,
          "request": {
            "url": "http://localhost:3030/api/v1/user?id=100",
            "method": "GET",
            "headers": [
              {
                "name": "Authorization",
                "value": "",
                "enabled": true
              },
              {
                "name": "x-tenant-id",
                "value": "prisma1",
                "enabled": false
              }
            ],
            "body": {
              "mode": "none",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "bearer",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRvaW1jIiwiaWF0IjoxNzE2MTA1Mjc5LCJleHAiOjE3MTYxOTE2Nzl9.ViLB9dCE3bUuzdZGpOeShD6upGpNhhCeqspFFWjcKkA"
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": [
              {
                "name": "id",
                "value": "100",
                "enabled": true
              }
            ]
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "应用",
      "items": [
        {
          "type": "http",
          "name": "获取应用版本",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/version",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"日志模块\",\n  \"description\": \"访问日志模块的权限\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "权限",
      "items": [
        {
          "type": "http",
          "name": "Permission创建",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/permission",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"user:read\",\n  \"action\": \"read\",\n  \"policies\": [\n    {\n      \"type\": 0,\n      \"effect\": \"can\",\n      \"action\": \"read\",\n      \"subject\": \"User\"\n    }\n  ]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "Permission更新",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/permission/21",
            "method": "PATCH",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"policies\": [\n    {\n      \"type\": 0,\n      \"effect\": \"can\",\n      \"action\": \"update\",\n      \"subject\": \"User\"\n    }\n  ]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "策略",
      "items": [
        {
          "type": "http",
          "name": "创建策略",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/policy",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"type\": 1,\n  \"effect\": \"can\",\n  \"action\": \"read\",\n  \"subject\": \"User\",\n  \"fields\": [\"a\", \"b\", \"c\"],\n  \"conditions\": [\"a\", \"b\", \"c\"],\n  \"args\": [\"a\", \"b\", \"c\"],\n  \"fields_data\": \"\\'{\\\"data\\\": 123}\\'\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "更新策略",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/policy/8",
            "method": "PATCH",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"id\": 8,\n  \"type\": 0,\n  \"effect\": \"can\",\n  \"action\": \"read\",\n  \"subject\": \"User\",\n  \"fields\": {\n    \"type\": \"array\",\n    \"data\": [\"username\", \"password\"]\n  }\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "菜单权限 ",
      "items": [
        {
          "type": "http",
          "name": "更新菜单",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/menu/14",
            "method": "PATCH",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"/login\",\n  \"path\": \"/login\",\n  \"meta\": {\n    \"title\": \"pages.login.default\",\n    \"hideMenu\": true,\n    \"layout\": \"single-page\",\n    \"position\": \"center\",\n    \"backgroundImage\": \"./bg.jpg\"\n  },\n  \"children\": [\n    {\n      \"path\": \"\",\n      \"name\": \"/login/\",\n      \"meta\": {\n        \"title\": \"pages.login.index\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"登录首页\"\n    },\n    {\n      \"path\": \"forgot\",\n      \"name\": \"/login/forgot\",\n      \"meta\": {\n        \"title\": \"pages.login.forgot\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"忘记密码\"\n    },\n    {\n      \"path\": \"reg\",\n      \"name\": \"/login/reg\",\n      \"meta\": {\n        \"title\": \"pages.login.reg\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"注册\"\n    }\n  ],\n  \"alias\": \"\",\n  \"label\": \"注册登录\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "查询所有菜单",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/menu?limit=10&page=1&args={\"a\":1,\"b\":{\"c\":2,\"d\":3}}",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"/login\",\n  \"path\": \"/login\",\n  \"meta\": {\n    \"title\": \"pages.login.default\",\n    \"hideMenu\": true,\n    \"layout\": \"single-page\",\n    \"position\": \"center\",\n    \"backgroundImage\": \"./bg.jpg\"\n  },\n  \"children\": [\n    {\n      \"path\": \"\",\n      \"name\": \"/login/\",\n      \"meta\": {\n        \"title\": \"pages.login.index\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"登录首页\"\n    },\n    {\n      \"path\": \"forgot\",\n      \"name\": \"/login/forgot\",\n      \"meta\": {\n        \"title\": \"pages.login.forgot\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"忘记密码\"\n    },\n    {\n      \"path\": \"reg\",\n      \"name\": \"/login/reg\",\n      \"meta\": {\n        \"title\": \"pages.login.reg\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"注册\"\n    }\n  ],\n  \"alias\": \"\",\n  \"label\": \"注册登录\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": [
              {
                "name": "limit",
                "value": "10",
                "enabled": true
              },
              {
                "name": "page",
                "value": "1",
                "enabled": true
              },
              {
                "name": "args",
                "value": "{\"a\":1,\"b\":{\"c\":2,\"d\":3}}",
                "enabled": true
              }
            ]
          }
        },
        {
          "type": "http",
          "name": "删除指定ID菜单",
          "seq": 3,
          "request": {
            "url": "{{baseURL}}/menu/14",
            "method": "DELETE",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"/login\",\n  \"path\": \"/login\",\n  \"meta\": {\n    \"title\": \"pages.login.default\",\n    \"hideMenu\": true,\n    \"layout\": \"single-page\",\n    \"position\": \"center\",\n    \"backgroundImage\": \"./bg.jpg\"\n  },\n  \"children\": [\n    {\n      \"path\": \"\",\n      \"name\": \"/login/\",\n      \"meta\": {\n        \"title\": \"pages.login.index\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"登录首页\"\n    },\n    {\n      \"path\": \"forgot\",\n      \"name\": \"/login/forgot\",\n      \"meta\": {\n        \"title\": \"pages.login.forgot\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"忘记密码\"\n    },\n    {\n      \"path\": \"reg\",\n      \"name\": \"/login/reg\",\n      \"meta\": {\n        \"title\": \"pages.login.reg\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"注册\"\n    }\n  ],\n  \"alias\": \"\",\n  \"label\": \"注册登录\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "创建菜单",
          "seq": 4,
          "request": {
            "url": "{{baseURL}}/menu",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"/login\",\n  \"path\": \"/login\",\n  \"meta\": {\n    \"title\": \"pages.login.default\",\n    \"hideMenu\": true,\n    \"layout\": \"single-page\",\n    \"position\": \"center\",\n    \"backgroundImage\": \"./bg.jpg\"\n  },\n  \"children\": [\n    {\n      \"path\": \"\",\n      \"name\": \"/login/\",\n      \"meta\": {\n        \"title\": \"pages.login.index\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"登录首页\"\n    },\n    {\n      \"path\": \"forgot\",\n      \"name\": \"/login/forgot\",\n      \"meta\": {\n        \"title\": \"pages.login.forgot\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"忘记密码\"\n    },\n    {\n      \"path\": \"reg\",\n      \"name\": \"/login/reg\",\n      \"meta\": {\n        \"title\": \"pages.login.reg\",\n        \"hideMenu\": true\n      },\n      \"alias\": \"\",\n      \"label\": \"注册\"\n    }\n  ],\n  \"alias\": \"\",\n  \"label\": \"注册登录\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "附件",
      "items": [
        {
          "type": "http",
          "name": "创建资源",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/attachment",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"type\": \"video\",\n  \"location\": \"/uploads/video/1.mp4\",\n  \"name\": \"1.mp4\",\n  \"ossType\": \"aliyun\",\n  \"usersId\": 1,\n  \"status\": 0,\n  \"desc\": \"\",\n  \"attributes\": [\n    {\n      \"desc\": \"resolution\",\n      \"value\": \"1920x1080\",\n      \"dict\": {\n        \"type\": \"video\",\n        \"name\": \"分辨率\"\n      }\n    },\n    {\n      \"desc\": \"format\",\n      \"value\": \"mp4\",\n      \"dict\": {\n        \"type\": \"video\",\n        \"name\": \"格式\"\n      }\n    }\n  ]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "创建资源属性",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/dict/attachment-attribute",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"type\": \"video\",\n  \"name\": \"format\",\n  \"desc\": \"格式\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "获取资源属性",
          "seq": 3,
          "request": {
            "url": "{{baseURL}}/dict/attachment-attribute?limit=-1",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "[\n  {\n    \"type\": \"audio\",\n    \"name\": \"bitrate\",\n    \"desc\": \"The bitrate of the audio file in kbps.\"\n  },\n  {\n    \"type\": \"video\",\n    \"name\": \"duration\",\n    \"desc\": \"The total duration of the video file in seconds.\"\n  },\n  {\n    \"type\": \"text\",\n    \"name\": \"wordCount\",\n    \"desc\": \"The number of words in the text document.\"\n  },\n  {\n    \"type\": \"zip\",\n    \"name\": \"compressedSize\",\n    \"desc\": \"The compressed size of the file in megabytes.\"\n  }\n]",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": [
              {
                "name": "limit",
                "value": "-1",
                "enabled": true
              }
            ]
          }
        },
        {
          "type": "http",
          "name": "获取资源列表",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/attachment?limit=-1",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "[\n  {\n    \"type\": \"audio\",\n    \"name\": \"bitrate\",\n    \"desc\": \"The bitrate of the audio file in kbps.\"\n  },\n  {\n    \"type\": \"video\",\n    \"name\": \"duration\",\n    \"desc\": \"The total duration of the video file in seconds.\"\n  },\n  {\n    \"type\": \"text\",\n    \"name\": \"wordCount\",\n    \"desc\": \"The number of words in the text document.\"\n  },\n  {\n    \"type\": \"zip\",\n    \"name\": \"compressedSize\",\n    \"desc\": \"The compressed size of the file in megabytes.\"\n  }\n]",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": [
              {
                "name": "limit",
                "value": "-1",
                "enabled": true
              }
            ]
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "角色",
      "items": [
        {
          "type": "http",
          "name": "创建角色",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/role",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"普通用户306\",\n  \"menus\": [\n    {\n      \"id\": 14\n    },\n    {\n      \"id\": 1\n    },\n    {\n      \"id\": 2\n    }\n  ]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "删除角色",
          "seq": 3,
          "request": {
            "url": "{{baseURL}}/role/1",
            "method": "DELETE",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"日志模块\",\n  \"description\": \"访问日志模块的权限\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "创建角色&权限",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/role",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"普通用户7\",\n  \"permissions\": [\n    {\n      \"name\": \"user:read\",\n      \"action\": \"read\"\n    },\n    {\n      \"name\": \"log:read\",\n      \"action\": \"read\"\n    },\n    {\n      \"name\": \"log:update\",\n      \"action\": \"update\"\n    }\n  ]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "更新角色",
          "seq": 4,
          "request": {
            "url": "{{baseURL}}/role/14",
            "method": "PATCH",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"policies\": [\n    {\n      \"type\": 0,\n      \"effect\": \"can\",\n      \"action\": \"read\",\n      \"subject\": \"User\"\n    },\n    {\n      \"type\": 1,\n      \"effect\": \"can\",\n      \"action\": \"update\",\n      \"subject\": \"User\",\n      \"conditions\": {\n        \"type\": \"object\",\n        \"data\": {\n          \"username\": {\n            \"$in\": [\"toimc1\", \"toimc2\"]\n          }\n        }\n      }\n    },\n    {\n      \"type\": 2,\n      \"effect\": \"can\",\n      \"action\": \"update\",\n      \"subject\": \"Log\",\n      \"conditions\": {\n        \"type\": \"function\",\n        \"data\": \"({username})=>{console.log(user); return username === user.username}\"\n      },\n      \"args\": [\"user\"]\n    }\n  ]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "获取角色列表",
          "seq": 6,
          "request": {
            "url": "{{baseURL}}/role?page=1&limit=10",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"管理员\",\n  \"description\": \"拥有删除权限，平台的所有功能除了权限设置以外都可以阅\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": [
              {
                "name": "page",
                "value": "1",
                "enabled": true
              },
              {
                "name": "limit",
                "value": "10",
                "enabled": true
              }
            ]
          }
        },
        {
          "type": "http",
          "name": "获取对应id的角色",
          "seq": 5,
          "request": {
            "url": "{{baseURL}}/role/14",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"管理员\",\n  \"description\": \"拥有删除权限，平台的所有功能除了权限设置以外都可以阅\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "登录",
      "items": [
        {
          "type": "http",
          "name": "注册",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/auth/signup",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"username\": \"toimc2\",\n  \"password\": \"123456\",\n  \"roles\": [\"1\",2,\"3\"],\n  \"roles1\": [\"1\",2,\"3\"]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "登录",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/auth/signin",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"username\": \"toimc4\",\n  \"password\": \"123456\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "用户",
      "items": [
        {
          "type": "http",
          "name": "更新用户",
          "seq": 3,
          "request": {
            "url": "{{baseURL}}/user",
            "method": "PATCH",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"username\": \"toimc1\",\n  \"roles\": [\n    {\n      \"id\": 14,\n      \"name\": \"普通用户\",\n      \"permissions\": [\n        \"user:read\",\n        \"log:read\"\n      ]\n    },\n    {\n      \"id\": 2,\n      \"permissions\": [\n        \"user:delete\",\n        \"user:read\",\n        \"log:read\",\n        \"log:delete\"\n      ]\n    }\n  ]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "创建用户",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/user",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"username\": \"toimc5\",\n  \"password\":\"123456\",\n  \"roleIds\": [2,4]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "获取对应username用户",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/user/toimc1",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"管理员\",\n  \"description\": \"拥有删除权限，平台的所有功能除了权限设置以外都可以阅\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "获取用户列表",
          "seq": 4,
          "request": {
            "url": "{{baseURL}}/user",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"管理员\",\n  \"description\": \"拥有删除权限，平台的所有功能除了权限设置以外都可以阅\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "bearer",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRvaW1jMSIsImlhdCI6MTcxNzEzOTA2MywiZXhwIjoxNzE3MjI1NDYzfQ._Hx1Z-DW-YRXPobWtAFvrwlqDQDINDF4NcTlpWB4Sfs"
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "课程",
      "items": [
        {
          "type": "http",
          "name": "更新课程",
          "seq": 3,
          "request": {
            "url": "{{baseURL}}/course/2",
            "method": "PATCH",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"id\": 2,\n  \"title\": \"React实战\",\n  \"subTitle\": \"React18实战入门\",\n  \"desc\": \"从基础到实战，系统掌握React18最新特性。\",\n  \"coverId\": 2,\n  \"authorId\": 1,\n  \"originPrice\": 399,\n  \"price\": 299,\n  \"status\": 1,\n  \"counts\": 340,\n  \"order\": 10,\n  \"detail\": null,\n  \"type\": \"project\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "获取课程标签",
          "seq": 7,
          "request": {
            "url": "{{baseURL}}/course/tags",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"courseId\": 4,\n  \"tags\": [\n    {\n\n      \"name\": \"ReactJS1\",\n      \"typeId\": 1,\n      \"order\": 1000,\n      \"status\": 0\n    },\n    {\n\n      \"name\": \"HTML/CSS1\",\n      \"typeId\": 1,\n      \"order\": 1000,\n      \"status\": 0\n    }\n  ]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "获取课程",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/course",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"title\": \"React实战\",\n  \"subTitle\": \"React18实战入门\",\n  \"desc\": \"从基础到实战，系统掌握React18最新特性。\",\n  \"price\": 299,\n  \"originPrice\": 399,\n  \"coverId\": 1,\n  \"authorId\": 1,\n  \"status\": 1,\n  \"counts\": 340,\n  \"order\": 10,\n  \"type\": \"project\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "删除课程",
          "seq": 4,
          "request": {
            "url": "{{baseURL}}/course/6",
            "method": "DELETE",
            "headers": [],
            "body": {
              "mode": "none",
              "json": "{\n  \"id\": 2,\n  \"title\": \"React实战\",\n  \"subTitle\": \"React18实战入门\",\n  \"desc\": \"从基础到实战，系统掌握React18最新特性。\",\n  \"coverId\": 2,\n  \"authorId\": 1,\n  \"originPrice\": 399,\n  \"price\": 299,\n  \"status\": 1,\n  \"counts\": 340,\n  \"order\": 10,\n  \"detail\": null,\n  \"type\": \"project\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "创建课程标签-数组",
          "seq": 6,
          "request": {
            "url": "{{baseURL}}/course/tags",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"courseId\": 3,\n  \"tags\": [\n    {\n      \"id\": 3,\n      \"name\": \"ReactJS\",\n      \"typeId\": 1,\n      \"order\": 1000,\n      \"status\": 0\n    },\n    {\n      \"id\": 4,\n      \"name\": \"HTML/CSS\",\n      \"typeId\": 1,\n      \"order\": 1000,\n      \"status\": 0\n    }\n  ]\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "创建课程标签",
          "seq": 5,
          "request": {
            "url": "{{baseURL}}/course/tags",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"courseId\": 2,\n  \"tagId\": 2\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "创建课程",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/course",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"title\": \"Java微服务\",\n  \"subTitle\": \"SpringBoot与Docker\",\n  \"desc\": \"掌握SpringBoot结合Docker的微服务架构。\",\n  \"price\": 459,\n  \"originPrice\": 599,\n  \"coverId\": 3,\n  \"authorId\": 1,\n  \"status\": 1,\n  \"counts\": 425,\n  \"order\": 40,\n  \"type\": \"project\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "字典-标签",
      "items": [
        {
          "type": "http",
          "name": "更新内容标签",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/dict/course-tags/2",
            "method": "PATCH",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"Typescript\",\n  \"typeId\": 1\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "创建内容标签",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/dict/course-tags",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"CSS4\",\n  \"typeId\": 1\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "查询内容标签",
          "seq": 3,
          "request": {
            "url": "{{baseURL}}/dict/course-tags?limit=-1",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "none",
              "json": "}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": [
              {
                "name": "limit",
                "value": "-1",
                "enabled": true
              }
            ]
          }
        },
        {
          "type": "http",
          "name": "删除内容标签",
          "seq": 4,
          "request": {
            "url": "{{baseURL}}/dict/course-tags/15",
            "method": "DELETE",
            "headers": [],
            "body": {
              "mode": "none",
              "json": "{\n  \"name\": \"Typescript\",\n  \"typeId\": 1\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "字典-分类",
      "items": [
        {
          "type": "http",
          "name": "查询课程分类",
          "seq": 4,
          "request": {
            "url": "{{baseURL}}/dict/course-types?limit=-1",
            "method": "GET",
            "headers": [],
            "body": {
              "mode": "none",
              "json": "}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": [
              {
                "name": "limit",
                "value": "-1",
                "enabled": true
              }
            ]
          }
        },
        {
          "type": "http",
          "name": "删除课程分类",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/dict/course-types/15",
            "method": "DELETE",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"软考/认证1\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "更新课程分类",
          "seq": 2,
          "request": {
            "url": "{{baseURL}}/dict/course-types/14",
            "method": "PATCH",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"软考/认证\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        },
        {
          "type": "http",
          "name": "创建课程分类",
          "seq": 3,
          "request": {
            "url": "{{baseURL}}/dict/course-types",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"name\": \"通识课程\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    },
    {
      "type": "folder",
      "name": "课程内容",
      "items": [
        {
          "type": "http",
          "name": "创建课程内容",
          "seq": 1,
          "request": {
            "url": "{{baseURL}}/course/2/content",
            "method": "POST",
            "headers": [],
            "body": {
              "mode": "json",
              "json": "{\n  \"title\": \"Java微服务\",\n  \"subTitle\": \"SpringBoot与Docker\",\n  \"desc\": \"掌握SpringBoot结合Docker的微服务架构。\",\n  \"price\": 459,\n  \"originPrice\": 599,\n  \"coverId\": 3,\n  \"authorId\": 1,\n  \"status\": 1,\n  \"counts\": 425,\n  \"order\": 40,\n  \"type\": \"project\"\n}",
              "formUrlEncoded": [],
              "multipartForm": []
            },
            "auth": {
              "mode": "none",
              "basic": {
                "username": "",
                "password": ""
              },
              "bearer": {
                "token": ""
              }
            },
            "script": {},
            "vars": {},
            "assertions": [],
            "tests": "",
            "query": []
          }
        }
      ]
    }
  ],
  "activeEnvironmentUid": "dRo2yBmghLZP2daF3001k",
  "environments": [
    {
      "variables": [
        {
          "name": "OPENAI_API_KEY",
          "value": "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",
          "enabled": true,
          "secret": false,
          "type": "text"
        },
        {
          "name": "baseUrl",
          "value": "https://gpt-proxy.wayearn.com",
          "enabled": true,
          "secret": false,
          "type": "text"
        }
      ],
      "name": "dev-envs"
    },
    {
      "variables": [
        {
          "name": "baseURL",
          "value": "http://localhost:3030/api/v1",
          "enabled": true,
          "secret": false,
          "type": "text"
        }
      ],
      "name": "nestjs-dev"
    }
  ]
}