mirror of
https://github.com/APIParkLab/APIPark.git
synced 2026-06-14 20:41:15 +08:00
Compare commits
44 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 76872b3a97 | |||
| d253d68a12 | |||
| 4de0d29f30 | |||
| 0f0480db63 | |||
| 68309ac582 | |||
| 522183eb4d | |||
| 4f6fee4d73 | |||
| c5fecf73c8 | |||
| ee8e93d1e8 | |||
| 9d0fa5ea4a | |||
| 1d1c7c78e8 | |||
| d7f5b87e70 | |||
| 1048666972 | |||
| 217f5d61c7 | |||
| 2f1677f581 | |||
| afd7ea6a1c | |||
| 7155e14e64 | |||
| 68e5b49f46 | |||
| c01e95c716 | |||
| ffa7e5130e | |||
| 7ce33bfd4c | |||
| 0c64fa9986 | |||
| 07e8b347e1 | |||
| 38a402adef | |||
| 7ab2e29101 | |||
| b96796793b | |||
| 5567a65e4b | |||
| c0c43be6b9 | |||
| 9b6074318a | |||
| ada121015d | |||
| 335317bd86 | |||
| 396464c573 | |||
| 60ad6007e5 | |||
| ceee520102 | |||
| e7c14b0817 | |||
| 885cec57db | |||
| b3672b8c66 | |||
| 450e565718 | |||
| 00bd72c1e4 | |||
| 24c24c1307 | |||
| 08bd8a9942 | |||
| 6944260767 | |||
| 3ada2d1d9d | |||
| f83b8c74ca |
@@ -45,19 +45,18 @@ body:
|
|||||||
label: Steps to Reproduce
|
label: Steps to Reproduce
|
||||||
description: Share the steps you took so that we can reproduce the issue. Reports without proper steps details will likely be closed.
|
description: Share the steps you took so that we can reproduce the issue. Reports without proper steps details will likely be closed.
|
||||||
placeholder: |
|
placeholder: |
|
||||||
1. Run apinto via the Docker image.
|
1. Run APIPark via the Docker image.
|
||||||
2. Create a Route with the Admin API.
|
2. Try configuring ...
|
||||||
3. Try configuring ...
|
3. ...
|
||||||
4. ...
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: false
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: environment
|
id: environment
|
||||||
attributes:
|
attributes:
|
||||||
label: Environment
|
label: Environment
|
||||||
description: Share your environment details. Reports without proper environment details will likely be closed.
|
description: Share your environment details. Reports without proper environment details will likely be closed.
|
||||||
value: |
|
value: |
|
||||||
- APINTO Dashboard version (run `apinto dashboard version`):
|
- APINTO Dashboard version:
|
||||||
- Operating system (run `uname -a`):
|
- Operating system (run `uname -a`):
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
@@ -25,7 +25,7 @@ body:
|
|||||||
label: Environment
|
label: Environment
|
||||||
description: Share your environment details. Reports without proper environment details will likely be closed.
|
description: Share your environment details. Reports without proper environment details will likely be closed.
|
||||||
value: |
|
value: |
|
||||||
- APIPark version (run `apinto dashboard version`):
|
- APIPark version:
|
||||||
- Operating system (run `uname -a`):
|
- Operating system (run `uname -a`):
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
@@ -25,7 +25,7 @@ jobs:
|
|||||||
echo "Build frontend..."
|
echo "Build frontend..."
|
||||||
cd ./frontend && pnpm run build
|
cd ./frontend && pnpm run build
|
||||||
- name: upload frontend release
|
- name: upload frontend release
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: frontend-package
|
name: frontend-package
|
||||||
path: frontend/dist
|
path: frontend/dist
|
||||||
@@ -41,7 +41,7 @@ jobs:
|
|||||||
- name: Checkout #Checkout代码
|
- name: Checkout #Checkout代码
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: download frontend release
|
- name: download frontend release
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: frontend-package
|
name: frontend-package
|
||||||
path: frontend/dist
|
path: frontend/dist
|
||||||
@@ -71,7 +71,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: download frontend release
|
- name: download frontend release
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: frontend-package
|
name: frontend-package
|
||||||
path: frontend/dist
|
path: frontend/dist
|
||||||
|
|||||||
@@ -69,15 +69,6 @@ provider_credential_schema:
|
|||||||
placeholder:
|
placeholder:
|
||||||
zh_Hans: 在此输入您的 API Key
|
zh_Hans: 在此输入您的 API Key
|
||||||
en_US: Enter your API Key
|
en_US: Enter your API Key
|
||||||
- variable: openai_organization
|
|
||||||
label:
|
|
||||||
zh_Hans: 组织 ID
|
|
||||||
en_US: Organization
|
|
||||||
type: text-input
|
|
||||||
required: false
|
|
||||||
placeholder:
|
|
||||||
zh_Hans: 在此输入您的组织 ID
|
|
||||||
en_US: Enter your Organization ID
|
|
||||||
- variable: openai_api_base
|
- variable: openai_api_base
|
||||||
label:
|
label:
|
||||||
zh_Hans: API Base
|
zh_Hans: API Base
|
||||||
|
|||||||
@@ -30,4 +30,4 @@ provider_credential_schema:
|
|||||||
placeholder:
|
placeholder:
|
||||||
zh_Hans: 在此输入您的 API Key
|
zh_Hans: 在此输入您的 API Key
|
||||||
en_US: Enter your API Key
|
en_US: Enter your API Key
|
||||||
address: https://api.openai.com
|
address: https://api.360.cn
|
||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
// These should be set via go build -ldflags -X 'xxxx'.
|
// These should be set via go build -ldflags -X 'xxxx'.
|
||||||
@@ -20,7 +20,7 @@ var profileInfo []byte
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
buffer := &bytes.Buffer{}
|
buffer := &bytes.Buffer{}
|
||||||
fmt.Fprintf(buffer, "Apinto version: %s\n", Version)
|
fmt.Fprintf(buffer, "APIPark version: %s\n", Version)
|
||||||
fmt.Fprintf(buffer, "Golang version: %s\n", goVersion)
|
fmt.Fprintf(buffer, "Golang version: %s\n", goVersion)
|
||||||
fmt.Fprintf(buffer, "Git commit hash: %s\n", gitCommit)
|
fmt.Fprintf(buffer, "Git commit hash: %s\n", gitCommit)
|
||||||
fmt.Fprintf(buffer, "Built on: %s\n", BuildTime)
|
fmt.Fprintf(buffer, "Built on: %s\n", BuildTime)
|
||||||
|
|||||||
@@ -151,8 +151,9 @@ func (i *imlServiceController) createAIService(ctx *gin.Context, teamID string,
|
|||||||
Prompt: "You need to translate {{source_lang}} into {{target_lang}}, and the following is the content that needs to be translated.\n---\n{{text}}",
|
Prompt: "You need to translate {{source_lang}} into {{target_lang}}, and the following is the content that needs to be translated.\n---\n{{text}}",
|
||||||
}
|
}
|
||||||
aiModel := &ai_api_dto.AiModel{
|
aiModel := &ai_api_dto.AiModel{
|
||||||
Id: m.ID(),
|
Id: m.ID(),
|
||||||
Config: m.DefaultConfig(),
|
Config: m.DefaultConfig(),
|
||||||
|
Provider: *input.Provider,
|
||||||
}
|
}
|
||||||
name := "Demo Translation API"
|
name := "Demo Translation API"
|
||||||
description := "A demo that shows you how to use a prompt to create a Translation API."
|
description := "A demo that shows you how to use a prompt to create a Translation API."
|
||||||
|
|||||||
@@ -381,8 +381,9 @@ func (i *imlInitController) createAIService(ctx context.Context, teamID string,
|
|||||||
Prompt: "You need to translate {{source_lang}} into {{target_lang}}, and the following is the content that needs to be translated.\n---\n{{text}}",
|
Prompt: "You need to translate {{source_lang}} into {{target_lang}}, and the following is the content that needs to be translated.\n---\n{{text}}",
|
||||||
}
|
}
|
||||||
aiModel := &ai_api_dto.AiModel{
|
aiModel := &ai_api_dto.AiModel{
|
||||||
Id: m.ID(),
|
Id: m.ID(),
|
||||||
Config: m.DefaultConfig(),
|
Config: m.DefaultConfig(),
|
||||||
|
Provider: providerId,
|
||||||
}
|
}
|
||||||
name := "Demo Translation API"
|
name := "Demo Translation API"
|
||||||
description := "A demo that shows you how to use a prompt to create a Translation API."
|
description := "A demo that shows you how to use a prompt to create a Translation API."
|
||||||
|
|||||||
@@ -27,4 +27,5 @@ packages/core/public/tinymce/
|
|||||||
*.sln
|
*.sln
|
||||||
*.sw?
|
*.sw?
|
||||||
|
|
||||||
|
|
||||||
/pnpm-lock.yaml
|
/pnpm-lock.yaml
|
||||||
|
|||||||
@@ -1,10 +1,3 @@
|
|||||||
/*
|
|
||||||
* @Date: 2024-05-10 14:19:56
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-05-10 15:55:29
|
|
||||||
* @FilePath: \frontend\jest.config.js
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
roots: ['<rootDir>/packages'],
|
roots: ['<rootDir>/packages'],
|
||||||
testMatch: ['**/__tests__/**/*.+(ts|tsx|js)', '**/?(*.)+(spec|test).+(ts|tsx|js)'],
|
testMatch: ['**/__tests__/**/*.+(ts|tsx|js)', '**/?(*.)+(spec|test).+(ts|tsx|js)'],
|
||||||
@@ -15,4 +8,4 @@ module.exports = {
|
|||||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
|
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
|
||||||
testPathIgnorePatterns: ['/node_modules/', '/dist/'],
|
testPathIgnorePatterns: ['/node_modules/', '/dist/'],
|
||||||
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
|
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1 @@
|
|||||||
/*
|
// import '@testing-library/jest-dom/extend-expect';
|
||||||
* @Date: 2024-05-10 14:22:41
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-05-10 15:49:31
|
|
||||||
* @FilePath: \frontend\jest.setup.js
|
|
||||||
*/
|
|
||||||
// import '@testing-library/jest-dom/extend-expect';
|
|
||||||
|
|||||||
@@ -3,4 +3,5 @@
|
|||||||
"packages/*"
|
"packages/*"
|
||||||
],
|
],
|
||||||
"version": "independent"
|
"version": "independent"
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,6 @@ yarn-debug.log*
|
|||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
pnpm-debug.log*
|
pnpm-debug.log*
|
||||||
lerna-debug.log*
|
lerna-debug.log*
|
||||||
|
|
||||||
node_modules
|
node_modules
|
||||||
dist
|
dist
|
||||||
dist-ssr
|
dist-ssr
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/frontend/favicon.ico" />
|
<link rel="icon" type="image/svg+xml" href="/frontend/favicon.ico" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>APIPark - 企业API数据开放平台</title>
|
<title>APIPark</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": " vite --port 5000 --strictPort",
|
"dev": " vite --port 5000 --strictPort",
|
||||||
"build": "vite build ",
|
"build": "vite build ",
|
||||||
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
||||||
"preview": "vite preview --port 5000 --strictPort",
|
"preview": "vite preview --port 5000 --strictPort",
|
||||||
|
|||||||
@@ -1,9 +1,3 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:54
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-05 10:42:18
|
|
||||||
* @FilePath: \frontend\packages\core\postcss.config.js
|
|
||||||
*/
|
|
||||||
export default {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
'postcss-import': {},
|
'postcss-import': {},
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2024-06-05 09:35:25
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-05 10:50:12
|
|
||||||
* @FilePath: \frontend\packages\core\start-vite.js
|
|
||||||
*/
|
|
||||||
// start-vite.js// start-vite.js
|
// start-vite.js// start-vite.js
|
||||||
import { exec } from 'child_process';
|
import { exec } from 'child_process';
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:54
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2023-11-29 15:49:05
|
|
||||||
* @FilePath: \applatform\frontend\packages\core\postcss.config.js
|
|
||||||
*/
|
|
||||||
export default {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
'postcss-import': {},
|
'postcss-import': {},
|
||||||
|
|||||||
@@ -48,27 +48,27 @@ const themeToken = {
|
|||||||
getNavItem(<a>{$t('消费者')}</a>, 'consumer','/consumer',<Icon icon="ic:baseline-apps" width="18" height="18"/>,undefined,undefined,'all'),
|
getNavItem(<a>{$t('消费者')}</a>, 'consumer','/consumer',<Icon icon="ic:baseline-apps" width="18" height="18"/>,undefined,undefined,'all'),
|
||||||
getNavItem(<a>{$t('团队')}</a>, 'team','/team',<Icon icon="ic:baseline-people-alt" width="18" height="18"/>,undefined,undefined,'all'),
|
getNavItem(<a>{$t('团队')}</a>, 'team','/team',<Icon icon="ic:baseline-people-alt" width="18" height="18"/>,undefined,undefined,'all'),
|
||||||
]),
|
]),
|
||||||
getNavItem($t('API 市场'), 'serviceHub','/serviceHub',<Icon icon="ic:baseline-hub" width="18" height="18"/>,undefined,undefined,'system.workspace.api_market.view'),
|
getNavItem($t('API 市场'), 'serviceHub','/serviceHub',<Icon icon="ic:baseline-hub" width="18" height="18"/>,undefined,undefined,'system.api_portal.api_portal.view'),
|
||||||
|
|
||||||
getNavItem($t('仪表盘'), 'mainPage', APP_MODE === 'pro' ? '/analytics' : '/analytics/total',<Icon icon="ic:baseline-bar-chart" width="18" height="18"/>,[
|
getNavItem($t('仪表盘'), 'mainPage', APP_MODE === 'pro' ? '/analytics' : '/analytics/total',<Icon icon="ic:baseline-bar-chart" width="18" height="18"/>,[
|
||||||
getNavItem(<a >{$t('运行视图')}</a>, 'analytics',APP_MODE === 'pro' ? '/analytics' : '/analytics/total' ,<ProjectFilled />,undefined,undefined,'system.dashboard.run_view.view'),
|
getNavItem(<a >{$t('运行视图')}</a>, 'analytics',APP_MODE === 'pro' ? '/analytics' : '/analytics/total' ,<ProjectFilled />,undefined,undefined,'system.analysis.run_view.view'),
|
||||||
APP_MODE === 'pro' ? getNavItem(<a >{$t('系统拓扑图')}</a>, 'systemrunning','/systemrunning',<ProjectFilled />,undefined,undefined,'system.dashboard.systemrunning.view') : null,
|
APP_MODE === 'pro' ? getNavItem(<a >{$t('系统拓扑图')}</a>, 'systemrunning','/systemrunning',<ProjectFilled />,undefined,undefined,'system.dashboard.systemrunning.view') : null,
|
||||||
],undefined,'system.dashboard.run_view.view'),
|
],undefined,'system.analysis.run_view.view'),
|
||||||
|
|
||||||
getNavItem($t('系统设置'), 'operationCenter','/commonsetting',<Icon icon="ic:baseline-settings" width="18" height="18"/>, [
|
getNavItem($t('系统设置'), 'operationCenter','/commonsetting',<Icon icon="ic:baseline-settings" width="18" height="18"/>, [
|
||||||
getNavItem($t('系统'), 'serviceHubSetting','/commonsetting',null,[
|
getNavItem($t('系统'), 'serviceHubSetting','/commonsetting',null,[
|
||||||
getNavItem(<a>{$t('常规')}</a>, 'commonsetting','/commonsetting',<Icon icon="ic:baseline-hub" width="18" height="18"/>,undefined,undefined,'system.api_market.service_classification.view'),
|
getNavItem(<a>{$t('常规')}</a>, 'commonsetting','/commonsetting',<Icon icon="ic:baseline-hub" width="18" height="18"/>,undefined,undefined,'system.api_market.service_classification.view'),
|
||||||
getNavItem(<a>{$t('API 网关')}</a>, 'cluster','/cluster',<Icon icon="ic:baseline-device-hub" width="18" height="18"/>,undefined,undefined,'system.devops.cluster.view'),
|
getNavItem(<a>{$t('API 网关')}</a>, 'cluster','/cluster',<Icon icon="ic:baseline-device-hub" width="18" height="18"/>,undefined,undefined,'system.settings.api_gateway.view'),
|
||||||
getNavItem(<a>{$t('AI 模型')}</a>, 'aisetting','/aisetting',<Icon icon="hugeicons:ai-network" width="18" height="18"/>,undefined,undefined,'system.devops.cluster.view'),
|
getNavItem(<a>{$t('AI 模型')}</a>, 'aisetting','/aisetting',<Icon icon="hugeicons:ai-network" width="18" height="18"/>,undefined,undefined,'system.settings.api_gateway.view'),
|
||||||
],undefined,'system.api_market.service_classification.view'),
|
],undefined,'system.api_market.service_classification.view'),
|
||||||
getNavItem($t('用户'), 'organization','/member',null,[
|
getNavItem($t('用户'), 'organization','/member',null,[
|
||||||
getNavItem(<a>{$t('账号')}</a>, 'member','/member',<Icon icon="ic:baseline-people-alt" width="18" height="18"/>,undefined,undefined,'system.organization.member.view'),
|
getNavItem(<a>{$t('账号')}</a>, 'member','/member',<Icon icon="ic:baseline-people-alt" width="18" height="18"/>,undefined,undefined,'system.settings.account.view'),
|
||||||
getNavItem(<a>{$t('角色')}</a>, 'role','/role',<Icon icon="ic:baseline-verified-user" width="18" height="18"/>,undefined,undefined,'system.organization.role.view'),
|
getNavItem(<a>{$t('角色')}</a>, 'role','/role',<Icon icon="ic:baseline-verified-user" width="18" height="18"/>,undefined,undefined,'system.organization.role.view'),
|
||||||
],undefined,''),
|
],undefined,''),
|
||||||
getNavItem($t('集成'), 'maintenanceCenter','/datasourcing', null, [
|
getNavItem($t('集成'), 'maintenanceCenter','/datasourcing', null, [
|
||||||
getNavItem(<a>{$t('数据源')}</a>, 'datasourcing','/datasourcing',<Icon icon="ic:baseline-monitor-heart" width="18" height="18"/>,undefined,undefined,'system.devops.data_source.view'),
|
getNavItem(<a>{$t('数据源')}</a>, 'datasourcing','/datasourcing',<Icon icon="ic:baseline-monitor-heart" width="18" height="18"/>,undefined,undefined,'system.settings.data_source.view'),
|
||||||
getNavItem(<a>{$t('证书')}</a>, 'cert','/cert',<Icon icon="ic:baseline-security" width="18" height="18"/>,undefined,undefined,'system.devops.ssl_certificate.view'),
|
getNavItem(<a>{$t('证书')}</a>, 'cert','/cert',<Icon icon="ic:baseline-security" width="18" height="18"/>,undefined,undefined,'system.settings.ssl_certificate.view'),
|
||||||
getNavItem(<a>{$t('日志')}</a>, 'logsettings','/logsettings',<Icon icon="ic:baseline-sticky-note-2" width="18" height="18"/>,undefined,undefined,'system.devops.log_configuration.view'),
|
getNavItem(<a>{$t('日志')}</a>, 'logsettings','/logsettings',<Icon icon="ic:baseline-sticky-note-2" width="18" height="18"/>,undefined,undefined,'system.settings.log_configuration.view'),
|
||||||
APP_MODE === 'pro' ? getNavItem(<a>{$t('资源')}</a>, 'resourcesettings','/resourcesettings',null,undefined,undefined,'system.partition.self.view'):null,
|
APP_MODE === 'pro' ? getNavItem(<a>{$t('资源')}</a>, 'resourcesettings','/resourcesettings',null,undefined,undefined,'system.partition.self.view'):null,
|
||||||
APP_MODE === 'pro' ? getNavItem(<a>{$t('Open API')}</a>, 'openapi','/openapi',null,undefined,undefined,'system.openapi.self.view'):null,
|
APP_MODE === 'pro' ? getNavItem(<a>{$t('Open API')}</a>, 'openapi','/openapi',null,undefined,undefined,'system.openapi.self.view'):null,
|
||||||
]),
|
]),
|
||||||
|
|||||||
@@ -219,12 +219,12 @@ export const PublishApprovalModalContent = forwardRef<PublishApprovalModalHandle
|
|||||||
/></Row>
|
/></Row>
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
<Form.Item
|
{/* <Form.Item
|
||||||
label={$t("备注")}
|
label={$t("备注")}
|
||||||
name="remark"
|
name="remark"
|
||||||
>
|
>
|
||||||
<Input.TextArea className="w-INPUT_NORMAL" disabled={type !== 'add' && type !== 'publish'} placeholder={$t(PLACEHOLDER.input)} />
|
<Input.TextArea className="w-INPUT_NORMAL" disabled={type !== 'add' && type !== 'publish'} placeholder={$t(PLACEHOLDER.input)} />
|
||||||
</Form.Item>
|
</Form.Item> */}
|
||||||
{/*
|
{/*
|
||||||
{type !== 'add' && type !== 'publish' && <Form.Item
|
{type !== 'add' && type !== 'publish' && <Form.Item
|
||||||
label={$t("审核意见"
|
label={$t("审核意见"
|
||||||
|
|||||||
@@ -145,12 +145,20 @@ export const TranslateWord = ()=>{
|
|||||||
{$t('非等匹配')}
|
{$t('非等匹配')}
|
||||||
{$t('空值匹配')}
|
{$t('空值匹配')}
|
||||||
{$t('存在匹配')}
|
{$t('存在匹配')}
|
||||||
|
{$t('不存在匹配')}
|
||||||
{$t('区分大小写的正则匹配')}
|
{$t('区分大小写的正则匹配')}
|
||||||
{$t('不区分大小写的正则匹配')}
|
{$t('不区分大小写的正则匹配')}
|
||||||
{$t('任意匹配')}
|
{$t('任意匹配')}
|
||||||
{$t('驳回')}
|
{$t('驳回')}
|
||||||
{$t('已订阅')}
|
{$t('已订阅')}
|
||||||
{$t('取消申请')}
|
{$t('取消申请')}
|
||||||
|
{$t('透传客户端请求 Host')}
|
||||||
|
{$t('使用上游服务 Host')}
|
||||||
|
{$t('重写 Host')}
|
||||||
|
{$t('动态服务发现')}
|
||||||
|
{$t('地址')}
|
||||||
|
{$t('新增')}
|
||||||
|
{$t('申请方消费者')}
|
||||||
|
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -343,11 +343,6 @@ export const PUBLISH_APPROVAL_RECORD_INNER_TABLE_COLUMN : PageProColumns<Publish
|
|||||||
dataIndex: 'status',
|
dataIndex: 'status',
|
||||||
ellipsis:true,
|
ellipsis:true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title:('备注'),
|
|
||||||
dataIndex: 'comments',
|
|
||||||
ellipsis:true
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title:('申请人'),
|
title:('申请人'),
|
||||||
dataIndex: ['applicant','name'],
|
dataIndex: ['applicant','name'],
|
||||||
|
|||||||
@@ -4,84 +4,84 @@
|
|||||||
|
|
||||||
export const PERMISSION_DEFINITION = [
|
export const PERMISSION_DEFINITION = [
|
||||||
{
|
{
|
||||||
"system.organization.member.view": {
|
"system.settings.account.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.member.view"] }]
|
"anyOf": [{ "backend": ["system.settings.account.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.member.add": {
|
"system.organization.member.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.member.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.account.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.member.edit": {
|
"system.organization.member.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.member.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.account.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.member.remove": {
|
"system.organization.member.remove": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.member.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.account.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.member.delete": {
|
"system.organization.member.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.member.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.account.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.member.block": {
|
"system.organization.member.block": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.member.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.account.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.member.department.add": {
|
"system.organization.member.department.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.member.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.account.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.member.department.edit": {
|
"system.organization.member.department.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.member.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.account.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.member.department.delete": {
|
"system.organization.member.department.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.member.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.account.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.team.view": {
|
"system.workspace.team.view_all": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.team.view"] }]
|
"anyOf": [{ "backend": ["system.workspace.team.view_all"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.team.add": {
|
"system.organization.team.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.team.manager"] }]
|
"anyOf": [{ "backend": ["system.workspace.team.create"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.team.edit": {
|
"system.organization.team.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.team.manager"] }]
|
"anyOf": [{ "backend": ["system.workspace.team.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.team.delete": {
|
"system.organization.team.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.team.manager"] }]
|
"anyOf": [{ "backend": ["system.workspace.team.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.team.running": {
|
"system.organization.team.running": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.team.manager"] }]
|
"anyOf": [{ "backend": ["system.workspace.team.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.role.view": {
|
"system.organization.role.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.role.view_system_role","system.organization.role.view_team_role"] }]
|
"anyOf": [{ "backend": ["system.settings.role.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.role.system.view": {
|
"system.organization.role.system.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.role.view_system_role"] }]
|
"anyOf": [{ "backend": ["system.settings.role.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.role.system.add": {
|
"system.organization.role.system.add": {
|
||||||
@@ -101,7 +101,7 @@ export const PERMISSION_DEFINITION = [
|
|||||||
},
|
},
|
||||||
"system.organization.role.team.view": {
|
"system.organization.role.team.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.organization.role.view_team_role"] }]
|
"anyOf": [{ "backend": ["system.settings.role.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.organization.role.team.add": {
|
"system.organization.role.team.add": {
|
||||||
@@ -121,22 +121,22 @@ export const PERMISSION_DEFINITION = [
|
|||||||
},
|
},
|
||||||
"system.api_market.service_classification.view": {
|
"system.api_market.service_classification.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.settings.service_classification.view"] }]
|
"anyOf": [{ "backend": ["system.settings.general.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.api_market.service_classification.add": {
|
"system.api_market.service_classification.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.settings.service_classification.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.general.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.api_market.service_classification.edit": {
|
"system.api_market.service_classification.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.settings.service_classification.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.general.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.api_market.service_classification.delete": {
|
"system.api_market.service_classification.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.settings.service_classification.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.general.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.system_setting.view": {
|
"system.devops.system_setting.view": {
|
||||||
@@ -149,94 +149,94 @@ export const PERMISSION_DEFINITION = [
|
|||||||
"anyOf": [{ "backend": ["system.settings.general.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.general.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.dashboard.run_view.view":{
|
"system.analysis.run_view.view":{
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ['system.dashboard.run_view.view'] }]
|
"anyOf": [{ "backend": ['system.analysis.run_view.view'] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.data_source.view":{
|
"system.settings.data_source.view":{
|
||||||
"granted":{
|
"granted":{
|
||||||
"anyOf":[{"backend":['system.devops.data_source.view']}]
|
"anyOf":[{"backend":['system.settings.data_source.view']}]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.data_source.edit":{
|
"system.devops.data_source.edit":{
|
||||||
"granted":{
|
"granted":{
|
||||||
"anyOf":[{"backend":['system.devops.data_source.manager']}]
|
"anyOf":[{"backend":['system.settings.data_source.manager']}]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.cluster.view": {
|
"system.settings.api_gateway.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.cluster.view"] }]
|
"anyOf": [{ "backend": ["system.settings.api_gateway.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.cluster.add": {
|
"system.devops.cluster.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.cluster.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.api_gateway.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.cluster.edit": {
|
"system.devops.cluster.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.cluster.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.api_gateway.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.cluster.delete": {
|
"system.devops.cluster.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.cluster.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.api_gateway.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.ai_provider.view": {
|
"system.settings.ai_provider.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.ai_provider.view"] }]
|
"anyOf": [{ "backend": ["system.settings.ai_provider.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.ai_provider.edit": {
|
"system.devops.ai_provider.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.ai_provider.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.ai_provider.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.ssl_certificate.view": {
|
"system.settings.ssl_certificate.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.ssl_certificate.view"] }]
|
"anyOf": [{ "backend": ["system.settings.ssl_certificate.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.ssl_certificate.add": {
|
"system.devops.ssl_certificate.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.ssl_certificate.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.ssl_certificate.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.ssl_certificate.edit": {
|
"system.devops.ssl_certificate.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.ssl_certificate.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.ssl_certificate.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.ssl_certificate.delete": {
|
"system.devops.ssl_certificate.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.ssl_certificate.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.ssl_certificate.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.log_configuration.view": {
|
"system.settings.log_configuration.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.log_configuration.view"] }]
|
"anyOf": [{ "backend": ["system.settings.log_configuration.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.log_configuration.add": {
|
"system.devops.log_configuration.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.log_configuration.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.log_configuration.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.log_configuration.edit": {
|
"system.devops.log_configuration.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.log_configuration.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.log_configuration.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.log_configuration.publish": {
|
"system.devops.log_configuration.publish": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.log_configuration.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.log_configuration.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.devops.log_configuration.delete": {
|
"system.devops.log_configuration.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.devops.log_configuration.manager"] }]
|
"anyOf": [{ "backend": ["system.settings.log_configuration.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.workspace.application.view_all": {
|
"system.workspace.application.view_all": {
|
||||||
@@ -244,19 +244,24 @@ export const PERMISSION_DEFINITION = [
|
|||||||
"anyOf": [{ "backend": ["system.workspace.application.view_all"] }]
|
"anyOf": [{ "backend": ["system.workspace.application.view_all"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"system.workspace.application.edit": {
|
||||||
|
"granted": {
|
||||||
|
"anyOf": [{ "backend": ["system.workspace.application.manager_all"] }]
|
||||||
|
}
|
||||||
|
},
|
||||||
"system.workspace.service.view_all": {
|
"system.workspace.service.view_all": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.workspace.service.view_all"] }]
|
"anyOf": [{ "backend": ["system.workspace.service.view_all"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.workspace.team.view_all": {
|
"system.workspace.service.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.workspace.team.view_all"] }]
|
"anyOf": [{ "backend": ["system.workspace.service.manager_all"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.workspace.api_market.view": {
|
"system.api_portal.api_portal.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["system.workspace.api_market.view"] }]
|
"anyOf": [{ "backend": ["system.api_portal.api_portal.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"system.dashboard.dashboard.view": {
|
"system.dashboard.dashboard.view": {
|
||||||
@@ -284,6 +289,21 @@ export const PERMISSION_DEFINITION = [
|
|||||||
"anyOf": [{ "backend": ["team.service.api_doc.manager"] }]
|
"anyOf": [{ "backend": ["team.service.api_doc.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"team.service.service_intro.view": {
|
||||||
|
"granted": {
|
||||||
|
"anyOf": [{ "backend": ["team.service.service_intro.view"] }]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"team.service.service_intro.add": {
|
||||||
|
"granted": {
|
||||||
|
"anyOf": [{ "backend": [" team.service.service_intro.manager"] }]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"team.service.service_intro.edit": {
|
||||||
|
"granted": {
|
||||||
|
"anyOf": [{ "backend": [" team.service.service_intro.manager"] }]
|
||||||
|
}
|
||||||
|
},
|
||||||
"team.service.api_doc.import": {
|
"team.service.api_doc.import": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.service.api_doc.manager"] }]
|
"anyOf": [{ "backend": ["team.service.api_doc.manager"] }]
|
||||||
@@ -291,22 +311,22 @@ export const PERMISSION_DEFINITION = [
|
|||||||
},
|
},
|
||||||
"team.service.router.view": {
|
"team.service.router.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.service.router.view"] }]
|
"anyOf": [{ "backend": ["team.service.api.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.service.router.add": {
|
"team.service.router.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.service.router.manager"] }]
|
"anyOf": [{ "backend": ["team.service.api.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.service.router.edit": {
|
"team.service.router.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.service.router.manager"] }]
|
"anyOf": [{ "backend": ["team.service.api.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.service.router.delete": {
|
"team.service.router.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.service.router.manager"] }]
|
"anyOf": [{ "backend": ["team.service.api.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.service.upstream.view": {
|
"team.service.upstream.view": {
|
||||||
@@ -391,92 +411,92 @@ export const PERMISSION_DEFINITION = [
|
|||||||
},
|
},
|
||||||
"team.service.service.view": {
|
"team.service.service.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": [""] }]
|
"anyOf": [{ "backend": ["team.team.service.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.service.service.add": {
|
"team.service.service.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.service.service.manager"] }]
|
"anyOf": [{ "backend": ["team.team.service.manager","team.service.service.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.service.service.edit": {
|
"team.service.service.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.service.service.manager"] }]
|
"anyOf": [{ "backend": ["team.team.service.manager","team.service.service.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.service.service.delete": {
|
"team.service.service.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.service.service.manager"] }]
|
"anyOf": [{ "backend": ["team.team.service.manager","team.service.service.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.subscription.view": {
|
"team.application.subscription.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.subscription.view"] }]
|
"anyOf": [{ "backend": ["team.consumer.subscription.view_subscribed_service"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.subscription.add": {
|
"team.application.subscription.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.subscription.manager"] }]
|
"anyOf": [{ "backend": ["team.consumer.subscription.subscribe"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.subscription.edit": {
|
"team.application.subscription.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.subscription.manager"] }]
|
"anyOf": [{ "backend": ["team.consumer.subscription.manager_subscribed_services"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.subscription.delete": {
|
"team.application.subscription.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.subscription.manager"] }]
|
"anyOf": [{ "backend": ["team.team.consumer.subscription.manager_subscribed_services"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.application.view": {
|
"team.application.application.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.application.view"] }]
|
"anyOf": [{ "backend": ["team.team.consumer.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.application.add": {
|
"team.application.application.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.application.manager"] }]
|
"anyOf": [{ "backend": ['team.team.consumer.manager',"team.consumer.application.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.application.edit": {
|
"team.application.application.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.application.manager"] }]
|
"anyOf": [{ "backend": ['team.team.consumer.manager',"team.consumer.application.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.application.delete": {
|
"team.application.application.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.application.manager"] }]
|
"anyOf": [{ "backend": ['team.team.consumer.manager',"team.consumer.application.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.authorization.view": {
|
"team.consumer.authorization.view": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.authorization.view"] }]
|
"anyOf": [{ "backend": ["team.consumer.authorization.view"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.authorization.add": {
|
"team.application.authorization.add": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.authorization.manager"] }]
|
"anyOf": [{ "backend": ["team.consumer.authorization.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.authorization.edit": {
|
"team.application.authorization.edit": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.authorization.manager"] }]
|
"anyOf": [{ "backend": ["team.consumer.authorization.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.authorization.delete": {
|
"team.application.authorization.delete": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.authorization.manager"] }]
|
"anyOf": [{ "backend": ["team.consumer.authorization.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.authorization.cancelSubApply": {
|
"team.application.authorization.cancelSubApply": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.authorization.manager"] }]
|
"anyOf": [{ "backend": ["team.consumer.authorization.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.application.authorization.cancelSub": {
|
"team.application.authorization.cancelSub": {
|
||||||
"granted": {
|
"granted": {
|
||||||
"anyOf": [{ "backend": ["team.application.authorization.manager"] }]
|
"anyOf": [{ "backend": ["team.consumer.authorization.manager"] }]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"team.team.team.view": {
|
"team.team.team.view": {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ system:
|
|||||||
cname: '成员'
|
cname: '成员'
|
||||||
value: 'member'
|
value: 'member'
|
||||||
access:
|
access:
|
||||||
- system.organization.member.view
|
- system.settings.account.view
|
||||||
- system.organization.member.add
|
- system.organization.member.add
|
||||||
- system.organization.member.edit
|
- system.organization.member.edit
|
||||||
- system.organization.member.delete
|
- system.organization.member.delete
|
||||||
@@ -18,7 +18,7 @@ system:
|
|||||||
- name: team_manager
|
- name: team_manager
|
||||||
cname: '团队管理'
|
cname: '团队管理'
|
||||||
desc: '团队管理'
|
desc: '团队管理'
|
||||||
- system.organization.team.view
|
- system.workspace.team.view_all
|
||||||
- system.organization.team.add
|
- system.organization.team.add
|
||||||
- system.organization.team.edit
|
- system.organization.team.edit
|
||||||
- system.organization.team.delete
|
- system.organization.team.delete
|
||||||
@@ -55,7 +55,7 @@ system:
|
|||||||
cname: 集群
|
cname: 集群
|
||||||
value: 'cluster'
|
value: 'cluster'
|
||||||
children:
|
children:
|
||||||
- system.devops.cluster.view
|
- system.settings.api_gateway.view
|
||||||
- system.devops.cluster.add
|
- system.devops.cluster.add
|
||||||
- system.devops.cluster.edit
|
- system.devops.cluster.edit
|
||||||
- system.devops.cluster.delete
|
- system.devops.cluster.delete
|
||||||
@@ -63,7 +63,7 @@ system:
|
|||||||
cname: 证书
|
cname: 证书
|
||||||
value: 'ssl_certificate'
|
value: 'ssl_certificate'
|
||||||
children:
|
children:
|
||||||
- system.devops.ssl_certificate.view
|
- system.settings.ssl_certificate.view
|
||||||
- system.devops.ssl_certificate.add
|
- system.devops.ssl_certificate.add
|
||||||
- system.devops.ssl_certificate.edit
|
- system.devops.ssl_certificate.edit
|
||||||
- system.devops.ssl_certificate.delete
|
- system.devops.ssl_certificate.delete
|
||||||
@@ -71,7 +71,7 @@ system:
|
|||||||
cname: 日志
|
cname: 日志
|
||||||
value: 'log_configuration'
|
value: 'log_configuration'
|
||||||
children:
|
children:
|
||||||
- system.devops.log_configuration.view
|
- system.settings.log_configuration.view
|
||||||
- system.devops.log_configuration.add
|
- system.devops.log_configuration.add
|
||||||
- system.devops.log_configuration.edit
|
- system.devops.log_configuration.edit
|
||||||
- system.devops.log_configuration.publish
|
- system.devops.log_configuration.publish
|
||||||
@@ -99,7 +99,7 @@ system:
|
|||||||
cname: API市场
|
cname: API市场
|
||||||
value: 'api_market'
|
value: 'api_market'
|
||||||
children:
|
children:
|
||||||
- system.workspace.api_market.view
|
- system.api_portal.api_portal.view
|
||||||
team:
|
team:
|
||||||
- name: service
|
- name: service
|
||||||
cname: 服务
|
cname: 服务
|
||||||
@@ -172,8 +172,8 @@ team:
|
|||||||
cname: 访问授权
|
cname: 访问授权
|
||||||
value: 'authorization'
|
value: 'authorization'
|
||||||
children:
|
children:
|
||||||
- team.application.authorization.view
|
- team.consumer.authorization.view
|
||||||
- team.application.authorization.manager
|
- team.consumer.authorization.manager
|
||||||
- team.application.authorization.add
|
- team.application.authorization.add
|
||||||
- team.application.authorization.edit
|
- team.application.authorization.edit
|
||||||
- team.application.authorization.delete
|
- team.application.authorization.delete
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
* @Date: 2024-01-31 15:00:11
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-05-10 17:03:03
|
|
||||||
* @FilePath: \frontend\packages\core\src\hooks\crypto.ts
|
|
||||||
*/
|
|
||||||
// import CryptoJS from 'crypto-js';
|
|
||||||
|
|
||||||
// export const useCrypto = () => {
|
|
||||||
// const key = '1e42=7838a1vfc6n';
|
|
||||||
|
|
||||||
// const encryptByEnAES = (secretKey: string, data: string, initializationVector?: string): string => {
|
|
||||||
// const iv = CryptoJS.enc.Latin1.parse(initializationVector || key);
|
|
||||||
// const keyForEncryption = CryptoJS.enc.Latin1.parse(CryptoJS.MD5(secretKey).toString());
|
|
||||||
|
|
||||||
// const cipher = CryptoJS.AES.encrypt(data, keyForEncryption, {
|
|
||||||
// iv,
|
|
||||||
// mode: CryptoJS.mode.CBC,
|
|
||||||
// padding: CryptoJS.pad.Pkcs7,
|
|
||||||
// });
|
|
||||||
|
|
||||||
// return CryptoJS.enc.Base64.stringify(cipher.ciphertext);
|
|
||||||
// };
|
|
||||||
|
|
||||||
// return { encryptByEnAES };
|
|
||||||
// };
|
|
||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2024-06-04 14:58:33
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-04 15:39:24
|
|
||||||
* @FilePath: \frontend\packages\common\src\index.css
|
|
||||||
*/
|
|
||||||
@tailwind base;
|
@tailwind base;
|
||||||
@tailwind components;
|
@tailwind components;
|
||||||
@tailwind utilities;
|
@tailwind utilities;
|
||||||
@@ -220,12 +220,20 @@
|
|||||||
"非等匹配": "K30b2e44f",
|
"非等匹配": "K30b2e44f",
|
||||||
"空值匹配": "Kb1587991",
|
"空值匹配": "Kb1587991",
|
||||||
"存在匹配": "K1e97dbd8",
|
"存在匹配": "K1e97dbd8",
|
||||||
|
"不存在匹配": "Kc8ee3e62",
|
||||||
"区分大小写的正则匹配": "K87c5a801",
|
"区分大小写的正则匹配": "K87c5a801",
|
||||||
"不区分大小写的正则匹配": "K95f062f1",
|
"不区分大小写的正则匹配": "K95f062f1",
|
||||||
"任意匹配": "Kfbd230a5",
|
"任意匹配": "Kfbd230a5",
|
||||||
"驳回": "Kd85208a3",
|
"驳回": "Kd85208a3",
|
||||||
"已订阅": "Kad6aa439",
|
"已订阅": "Kad6aa439",
|
||||||
"取消申请": "K9a68443b",
|
"取消申请": "K9a68443b",
|
||||||
|
"透传客户端请求 Host": "Kaeba0229",
|
||||||
|
"使用上游服务 Host": "K6d7e2fd0",
|
||||||
|
"重写 Host": "K31332633",
|
||||||
|
"动态服务发现": "K2c2bc64f",
|
||||||
|
"地址": "K78b1ca25",
|
||||||
|
"新增": "K1644b775",
|
||||||
|
"申请方消费者": "Kec91f0db",
|
||||||
"暂无操作权限,请联系管理员分配。": "K23fda291",
|
"暂无操作权限,请联系管理员分配。": "K23fda291",
|
||||||
"微信小程序": "K4618cb0a",
|
"微信小程序": "K4618cb0a",
|
||||||
"获取文件,需填路径": "Ka854f511",
|
"获取文件,需填路径": "Ka854f511",
|
||||||
|
|||||||
@@ -656,5 +656,27 @@
|
|||||||
"K9eaa2eb6": "List",
|
"K9eaa2eb6": "List",
|
||||||
"Kfaec39e9": "Block",
|
"Kfaec39e9": "Block",
|
||||||
"Kc3b7bfa8": "No Consumer Description",
|
"Kc3b7bfa8": "No Consumer Description",
|
||||||
"K3a6f905d": "Enter Name, ID to Search Consumer"
|
"K3a6f905d": "Enter Name, ID to Search Consumer",
|
||||||
|
"K76036e25": "HTTP Request Header",
|
||||||
|
"K44607e3f": "Exact Match",
|
||||||
|
"Kc287500a": "Prefix Match",
|
||||||
|
"Kfc0b1147": "Suffix Match",
|
||||||
|
"Ka4a92043": "Substring Match",
|
||||||
|
"K30b2e44f": "Non-Exact Match",
|
||||||
|
"Kb1587991": "Null Match",
|
||||||
|
"K87c5a801": "Case-Sensitive Regex Match",
|
||||||
|
"K95f062f1": "Case-Insensitive Regex Match",
|
||||||
|
"Kfbd230a5": "Any Match",
|
||||||
|
"Kd85208a3": "Reject",
|
||||||
|
"Kad6aa439": "Subscribed",
|
||||||
|
"K9a68443b": "Cancel Request",
|
||||||
|
"Kaeba0229": "Pass-through Client Request Host",
|
||||||
|
"K6d7e2fd0": "Use Upstream Service Host",
|
||||||
|
"K31332633": "Rewrite Host",
|
||||||
|
"K2c2bc64f": "Dynamic Service Discovery",
|
||||||
|
"K78b1ca25": "Address",
|
||||||
|
"K1644b775": "Add",
|
||||||
|
"Kc8ee3e62": "Non-Existence",
|
||||||
|
"K1e97dbd8": "Existence",
|
||||||
|
"Kec91f0db": "Applicant Consumer"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -678,5 +678,27 @@
|
|||||||
"K5c4e2865": "コンシューマーエンティティを作成および管理し、各コンシューマーは複数の API サービスにサブスクライブできます。呼び出し前に適切な権限が付与されていることを確認してください。コンシューマー用に API キーなどの認証方法を生成して、安全に API サービスを呼び出せます。",
|
"K5c4e2865": "コンシューマーエンティティを作成および管理し、各コンシューマーは複数の API サービスにサブスクライブできます。呼び出し前に適切な権限が付与されていることを確認してください。コンシューマー用に API キーなどの認証方法を生成して、安全に API サービスを呼び出せます。",
|
||||||
"K84c4dc71": "コンシューマーを追加",
|
"K84c4dc71": "コンシューマーを追加",
|
||||||
"Kc3b7bfa8": "コンシューマーの説明がありません",
|
"Kc3b7bfa8": "コンシューマーの説明がありません",
|
||||||
"K3a6f905d": "名前、IDを入力してコンシューマーを検索"
|
"K3a6f905d": "名前、IDを入力してコンシューマーを検索",
|
||||||
|
"K76036e25": "HTTPリクエストヘッダー",
|
||||||
|
"K44607e3f": "完全一致",
|
||||||
|
"Kc287500a": "プレフィックス一致",
|
||||||
|
"Kfc0b1147": "サフィックス一致",
|
||||||
|
"Ka4a92043": "部分一致",
|
||||||
|
"K30b2e44f": "非完全一致",
|
||||||
|
"Kb1587991": "ヌル一致",
|
||||||
|
"K87c5a801": "大文字小文字を区別する正規表現一致",
|
||||||
|
"K95f062f1": "大文字小文字を区別しない正規表現一致",
|
||||||
|
"Kfbd230a5": "任意一致",
|
||||||
|
"Kd85208a3": "拒否",
|
||||||
|
"Kad6aa439": "申し込み済み",
|
||||||
|
"K9a68443b": "申し込み取消",
|
||||||
|
"Kaeba0229": "クライアントリクエストホストのパススルー",
|
||||||
|
"K6d7e2fd0": "上位サービスホストの使用",
|
||||||
|
"K31332633": "ホストの書き換え",
|
||||||
|
"K2c2bc64f": "動的サービス発見",
|
||||||
|
"K78b1ca25": "アドレス",
|
||||||
|
"K1644b775": "追加",
|
||||||
|
"Kc8ee3e62": "存在しない",
|
||||||
|
"K1e97dbd8": "存在する",
|
||||||
|
"Kec91f0db": "申請側コンシューマー"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1 @@
|
|||||||
{
|
{}
|
||||||
"K76036e25": "HTTP 请求头",
|
|
||||||
"K44607e3f": "全等匹配",
|
|
||||||
"Kc287500a": "前缀匹配",
|
|
||||||
"Kfc0b1147": "后缀匹配",
|
|
||||||
"Ka4a92043": "子串匹配",
|
|
||||||
"K30b2e44f": "非等匹配",
|
|
||||||
"Kb1587991": "空值匹配",
|
|
||||||
"K1e97dbd8": "存在匹配",
|
|
||||||
"K87c5a801": "区分大小写的正则匹配",
|
|
||||||
"K95f062f1": "不区分大小写的正则匹配",
|
|
||||||
"Kfbd230a5": "任意匹配",
|
|
||||||
"Kd85208a3": "驳回",
|
|
||||||
"Kad6aa439": "已订阅",
|
|
||||||
"K9a68443b": "取消申请"
|
|
||||||
}
|
|
||||||
@@ -1,16 +1 @@
|
|||||||
{
|
{}
|
||||||
"K76036e25": "HTTP 请求头",
|
|
||||||
"K44607e3f": "全等匹配",
|
|
||||||
"Kc287500a": "前缀匹配",
|
|
||||||
"Kfc0b1147": "后缀匹配",
|
|
||||||
"Ka4a92043": "子串匹配",
|
|
||||||
"K30b2e44f": "非等匹配",
|
|
||||||
"Kb1587991": "空值匹配",
|
|
||||||
"K1e97dbd8": "存在匹配",
|
|
||||||
"K87c5a801": "区分大小写的正则匹配",
|
|
||||||
"K95f062f1": "不区分大小写的正则匹配",
|
|
||||||
"Kfbd230a5": "任意匹配",
|
|
||||||
"Kd85208a3": "驳回",
|
|
||||||
"Kad6aa439": "已订阅",
|
|
||||||
"K9a68443b": "取消申请"
|
|
||||||
}
|
|
||||||
@@ -7,12 +7,20 @@
|
|||||||
"K30b2e44f": "非等匹配",
|
"K30b2e44f": "非等匹配",
|
||||||
"Kb1587991": "空值匹配",
|
"Kb1587991": "空值匹配",
|
||||||
"K1e97dbd8": "存在匹配",
|
"K1e97dbd8": "存在匹配",
|
||||||
|
"Kc8ee3e62": "不存在匹配",
|
||||||
"K87c5a801": "区分大小写的正则匹配",
|
"K87c5a801": "区分大小写的正则匹配",
|
||||||
"K95f062f1": "不区分大小写的正则匹配",
|
"K95f062f1": "不区分大小写的正则匹配",
|
||||||
"Kfbd230a5": "任意匹配",
|
"Kfbd230a5": "任意匹配",
|
||||||
"Kd85208a3": "驳回",
|
"Kd85208a3": "驳回",
|
||||||
"Kad6aa439": "已订阅",
|
"Kad6aa439": "已订阅",
|
||||||
"K9a68443b": "取消申请",
|
"K9a68443b": "取消申请",
|
||||||
|
"Kaeba0229": "透传客户端请求 Host",
|
||||||
|
"K6d7e2fd0": "使用上游服务 Host",
|
||||||
|
"K31332633": "重写 Host",
|
||||||
|
"K2c2bc64f": "动态服务发现",
|
||||||
|
"K78b1ca25": "地址",
|
||||||
|
"K1644b775": "新增",
|
||||||
|
"Kec91f0db": "申请方消费者",
|
||||||
"Kc3b7bfa8": "暂无消费者描述",
|
"Kc3b7bfa8": "暂无消费者描述",
|
||||||
"K3a6f905d": "输入名称、ID 查找消费者"
|
"K3a6f905d": "输入名称、ID 查找消费者"
|
||||||
}
|
}
|
||||||
@@ -1,16 +1 @@
|
|||||||
{
|
{}
|
||||||
"K76036e25": "HTTP 请求头",
|
|
||||||
"K44607e3f": "全等匹配",
|
|
||||||
"Kc287500a": "前缀匹配",
|
|
||||||
"Kfc0b1147": "后缀匹配",
|
|
||||||
"Ka4a92043": "子串匹配",
|
|
||||||
"K30b2e44f": "非等匹配",
|
|
||||||
"Kb1587991": "空值匹配",
|
|
||||||
"K1e97dbd8": "存在匹配",
|
|
||||||
"K87c5a801": "区分大小写的正则匹配",
|
|
||||||
"K95f062f1": "不区分大小写的正则匹配",
|
|
||||||
"Kfbd230a5": "任意匹配",
|
|
||||||
"Kd85208a3": "驳回",
|
|
||||||
"Kad6aa439": "已订阅",
|
|
||||||
"K9a68443b": "取消申请"
|
|
||||||
}
|
|
||||||
@@ -678,5 +678,27 @@
|
|||||||
"Kba74f26d": "接入消費者",
|
"Kba74f26d": "接入消費者",
|
||||||
"K70b79760": "接入消費者數量",
|
"K70b79760": "接入消費者數量",
|
||||||
"Kc3b7bfa8": "暫無消費者描述",
|
"Kc3b7bfa8": "暫無消費者描述",
|
||||||
"K3a6f905d": "輸入名稱、ID 查找消費者"
|
"K3a6f905d": "輸入名稱、ID 查找消費者",
|
||||||
|
"K76036e25": "HTTP請求頭",
|
||||||
|
"K44607e3f": "全等匹配",
|
||||||
|
"Kc287500a": "前綴匹配",
|
||||||
|
"Kfc0b1147": "後綴匹配",
|
||||||
|
"Ka4a92043": "子串匹配",
|
||||||
|
"K30b2e44f": "非等匹配",
|
||||||
|
"Kb1587991": "空值匹配",
|
||||||
|
"K87c5a801": "區分大小寫的正則匹配",
|
||||||
|
"K95f062f1": "不區分大小寫的正則匹配",
|
||||||
|
"Kfbd230a5": "任意匹配",
|
||||||
|
"Kd85208a3": "駁回",
|
||||||
|
"Kad6aa439": "已訂閱",
|
||||||
|
"K9a68443b": "取消申請",
|
||||||
|
"Kaeba0229": "透傳客戶端請求Host",
|
||||||
|
"K6d7e2fd0": "使用上游服務Host",
|
||||||
|
"K31332633": "重寫Host",
|
||||||
|
"K2c2bc64f": "動態服務發現",
|
||||||
|
"K78b1ca25": "位址",
|
||||||
|
"K1644b775": "新增",
|
||||||
|
"Kc8ee3e62": "不存在匹配",
|
||||||
|
"K1e97dbd8": "存在匹配",
|
||||||
|
"Kec91f0db": "申請方消費者"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2024-06-04 15:05:05
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-08-01 17:59:56
|
|
||||||
* @FilePath: \frontend\packages\common\tailwind.config.js
|
|
||||||
*/
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
/** @type {import('tailwindcss').Config} */
|
||||||
module.exports = {
|
module.exports = {
|
||||||
important:true,
|
important:true,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/frontend/favicon.ico" />
|
<link rel="icon" type="image/svg+xml" href="/frontend/favicon.ico" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>APIPark - 企业API数据开放平台</title>
|
<title>APIPark</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:54
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-05 10:42:18
|
|
||||||
* @FilePath: \frontend\packages\core\postcss.config.js
|
|
||||||
*/
|
|
||||||
export default {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
'postcss-import': {},
|
'postcss-import': {},
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -137,7 +137,7 @@ const ServiceInsideDocument = ()=>{
|
|||||||
<div className=" pl-[8px] py-btnbase ">
|
<div className=" pl-[8px] py-btnbase ">
|
||||||
<div className="flex justify-between items-center">
|
<div className="flex justify-between items-center">
|
||||||
<p className="text-[14px] leading-[20px] text-[#999999]"><span className="mr-[20px]">{$t('最近一次更新者')}:{updater || '-'}</span><span>{$t('最近一次更新时间')}:{updateTime || '-'}</span></p>
|
<p className="text-[14px] leading-[20px] text-[#999999]"><span className="mr-[20px]">{$t('最近一次更新者')}:{updater || '-'}</span><span>{$t('最近一次更新时间')}:{updateTime || '-'}</span></p>
|
||||||
<WithPermission access="team.service.service.edit"><Button type="primary" className="mr-btnbase" onClick={save}>{$t('保存')}</Button></WithPermission>
|
<WithPermission access="team.service.service_intro.edit"><Button type="primary" className="mr-btnbase" onClick={save}>{$t('保存')}</Button></WithPermission>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>)
|
</div>)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ const AiServiceInsidePage:FC = ()=> {
|
|||||||
[
|
[
|
||||||
getItem(<Link to="./route">{$t('API 路由')}</Link>, 'route',undefined,undefined,undefined,'team.service.router.view'),
|
getItem(<Link to="./route">{$t('API 路由')}</Link>, 'route',undefined,undefined,undefined,'team.service.router.view'),
|
||||||
getItem(<Link to="./api">{$t('API 文档')}</Link>, 'api',undefined,undefined,undefined,'team.service.api_doc.view'),
|
getItem(<Link to="./api">{$t('API 文档')}</Link>, 'api',undefined,undefined,undefined,'team.service.api_doc.view'),
|
||||||
getItem(<Link to="./document">{$t('使用说明')}</Link>, 'document',undefined,undefined,undefined,''),
|
getItem(<Link to="./document">{$t('使用说明')}</Link>, 'document',undefined,undefined,undefined,'team.service.service_intro.view'),
|
||||||
getItem(<Link to="./publish">{$t('发布')}</Link>, 'publish',undefined,undefined,undefined,'team.service.release.view'),
|
getItem(<Link to="./publish">{$t('发布')}</Link>, 'publish',undefined,undefined,undefined,'team.service.release.view'),
|
||||||
],
|
],
|
||||||
'group'),
|
'group'),
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ export type AiServiceRouterModelConfigProps = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type AiServiceRouterModelConfigField = {
|
type AiServiceRouterModelConfigField = {
|
||||||
|
provider:string
|
||||||
id:string
|
id:string
|
||||||
config:string
|
config:string
|
||||||
}
|
}
|
||||||
@@ -57,6 +58,7 @@ const AiServiceRouterModelConfig = forwardRef<AiServiceRouterModelConfigHandle,
|
|||||||
const {code,data,msg} = response
|
const {code,data,msg} = response
|
||||||
if(code === STATUS_CODE.SUCCESS){
|
if(code === STATUS_CODE.SUCCESS){
|
||||||
setLlmList(data.llms)
|
setLlmList(data.llms)
|
||||||
|
console.log(data)
|
||||||
form.setFieldsValue({
|
form.setFieldsValue({
|
||||||
id:data.provider.defaultLlm,
|
id:data.provider.defaultLlm,
|
||||||
config:data.llms.find(x=>x.id===data.provider.defaultLlm)?.config})
|
config:data.llms.find(x=>x.id===data.provider.defaultLlm)?.config})
|
||||||
@@ -70,6 +72,10 @@ const AiServiceRouterModelConfig = forwardRef<AiServiceRouterModelConfigHandle,
|
|||||||
getLlmList(provider)
|
getLlmList(provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
useEffect(()=>{
|
||||||
|
getLlmList(entity.provider)
|
||||||
|
},[])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form
|
<Form
|
||||||
layout='vertical'
|
layout='vertical'
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ const AiSettingList = ()=>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<WithPermission access="system.devops.ai_provider.view">
|
<WithPermission access="system.settings.ai_provider.view">
|
||||||
<Button block icon={<Icon icon="ic:outline-settings" width={18} height={18}/>} onClick={()=>openModal(provider)} classNames={{icon:'h-[18px]'}}>{$t('设置')}</Button>
|
<Button block icon={<Icon icon="ic:outline-settings" width={18} height={18}/>} onClick={()=>openModal(provider)} classNames={{icon:'h-[18px]'}}>{$t('设置')}</Button>
|
||||||
</WithPermission>
|
</WithPermission>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ const LogSettings = ()=>{
|
|||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
'system.devops.log_configuration.view')
|
'system.settings.log_configuration.view')
|
||||||
})
|
})
|
||||||
return newMenu
|
return newMenu
|
||||||
},[state.language,menuItems])
|
},[state.language,menuItems])
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ const LogSettings = ()=>{
|
|||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
'system.devops.log_configuration.view')
|
'system.settings.log_configuration.view')
|
||||||
})
|
})
|
||||||
return newMenu
|
return newMenu
|
||||||
},[state.language,menuItems])
|
},[state.language,menuItems])
|
||||||
|
|||||||
@@ -176,13 +176,17 @@ const RoleConfig = ()=>{
|
|||||||
},[permissionInfo, state.language])
|
},[permissionInfo, state.language])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getPermissionTemplate()
|
|
||||||
form.setFieldsValue({name:'',permits:[]})
|
form.setFieldsValue({name:'',permits:[]})
|
||||||
if(roleId){
|
if(roleId){
|
||||||
getPermissionInfo()
|
getPermissionInfo()
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
useEffect(()=>{
|
||||||
|
getPermissionTemplate()
|
||||||
|
|
||||||
|
},[state.language])
|
||||||
|
|
||||||
const onFinish =async() => {
|
const onFinish =async() => {
|
||||||
const body = await form.validateFields()
|
const body = await form.validateFields()
|
||||||
|
|
||||||
|
|||||||
@@ -292,7 +292,7 @@ const SystemConfig = forwardRef<SystemConfigHandle>((_,ref) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<WithPermission access={onEdit ? 'team.service.service.edit' :''}>
|
<WithPermission access={onEdit ? ['team.service.service.edit'] :''}>
|
||||||
<Form
|
<Form
|
||||||
layout='vertical'
|
layout='vertical'
|
||||||
labelAlign='left'
|
labelAlign='left'
|
||||||
@@ -460,7 +460,7 @@ const SystemConfig = forwardRef<SystemConfigHandle>((_,ref) => {
|
|||||||
<Row className="mb-[10px]"
|
<Row className="mb-[10px]"
|
||||||
// wrapperCol={{ offset: 5, span: 19 }}
|
// wrapperCol={{ offset: 5, span: 19 }}
|
||||||
>
|
>
|
||||||
<WithPermission access={onEdit ? 'team.service.service.edit' :''}>
|
<WithPermission access={onEdit ? ['team.service.service.edit'] :''}>
|
||||||
<Button type="primary" htmlType="submit">
|
<Button type="primary" htmlType="submit">
|
||||||
{$t('保存')}
|
{$t('保存')}
|
||||||
</Button>
|
</Button>
|
||||||
@@ -468,11 +468,11 @@ const SystemConfig = forwardRef<SystemConfigHandle>((_,ref) => {
|
|||||||
</Row></>}
|
</Row></>}
|
||||||
</div>
|
</div>
|
||||||
{onEdit && <>
|
{onEdit && <>
|
||||||
<WithPermission access="team.service.service.delete" showDisabled={false}>
|
<WithPermission access={["team.service.service.delete"]} showDisabled={false}>
|
||||||
<div className="bg-[rgb(255_120_117_/_5%)] rounded-[10px] mt-[50px] p-btnrbase pb-0">
|
<div className="bg-[rgb(255_120_117_/_5%)] rounded-[10px] mt-[50px] p-btnrbase pb-0">
|
||||||
<p className="text-left"><span className="font-bold">{$t('删除服务')}:</span>{$t('删除操作不可恢复,请谨慎操作!')}</p>
|
<p className="text-left"><span className="font-bold">{$t('删除服务')}:</span>{$t('删除操作不可恢复,请谨慎操作!')}</p>
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<WithPermission access="team.service.service.delete">
|
<WithPermission access={["team.service.service.delete"]}>
|
||||||
<Button className="m-auto mt-[16px] mb-[20px]" type="default" danger={true} onClick={deleteSystemModal}>{$t('删除服务')}</Button>
|
<Button className="m-auto mt-[16px] mb-[20px]" type="default" danger={true} onClick={deleteSystemModal}>{$t('删除服务')}</Button>
|
||||||
</WithPermission>
|
</WithPermission>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ const ServiceInsideDocument = ()=>{
|
|||||||
<div className=" pl-[8px] py-btnbase ">
|
<div className=" pl-[8px] py-btnbase ">
|
||||||
<div className="flex justify-between items-center">
|
<div className="flex justify-between items-center">
|
||||||
<p className="text-[14px] leading-[20px] text-[#999999]"><span className="mr-[20px]">{$t('最近一次更新者')}:{updater || '-'}</span><span>{$t('最近一次更新时间')}:{updateTime || '-'}</span></p>
|
<p className="text-[14px] leading-[20px] text-[#999999]"><span className="mr-[20px]">{$t('最近一次更新者')}:{updater || '-'}</span><span>{$t('最近一次更新时间')}:{updateTime || '-'}</span></p>
|
||||||
<WithPermission access="team.service.service.edit"><Button type="primary" className="mr-btnbase" onClick={save}>{$t('保存')}</Button></WithPermission>
|
<WithPermission access="team.service.service_intro.edit"><Button type="primary" className="mr-btnbase" onClick={save}>{$t('保存')}</Button></WithPermission>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>)
|
</div>)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ const SystemInsidePage:FC = ()=> {
|
|||||||
getItem(<Link to="./route">{$t('API 路由')}</Link>, 'route',undefined,undefined,undefined,'team.service.router.view'),
|
getItem(<Link to="./route">{$t('API 路由')}</Link>, 'route',undefined,undefined,undefined,'team.service.router.view'),
|
||||||
getItem(<Link to="./api">{$t('API 文档')}</Link>, 'api',undefined,undefined,undefined,'team.service.api_doc.view'),
|
getItem(<Link to="./api">{$t('API 文档')}</Link>, 'api',undefined,undefined,undefined,'team.service.api_doc.view'),
|
||||||
getItem(<Link to="./upstream">{$t('上游')}</Link>, 'upstream',undefined,undefined,undefined,'team.service.upstream.view'),
|
getItem(<Link to="./upstream">{$t('上游')}</Link>, 'upstream',undefined,undefined,undefined,'team.service.upstream.view'),
|
||||||
getItem(<Link to="./document">{$t('使用说明')}</Link>, 'document',undefined,undefined,undefined,''),
|
getItem(<Link to="./document">{$t('使用说明')}</Link>, 'document',undefined,undefined,undefined,'team.service.service_intro.view'),
|
||||||
getItem(<Link to="./publish">{$t('发布')}</Link>, 'publish',undefined,undefined,undefined,'team.service.release.view'),
|
getItem(<Link to="./publish">{$t('发布')}</Link>, 'publish',undefined,undefined,undefined,'team.service.release.view'),
|
||||||
],
|
],
|
||||||
'group'),
|
'group'),
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import {App, Button, Form, Input, Row, Select} from "antd";
|
|||||||
import {Link, useLocation, useNavigate, useParams} from "react-router-dom";
|
import {Link, useLocation, useNavigate, useParams} from "react-router-dom";
|
||||||
import {RouterParams} from "@core/components/aoplatform/RenderRoutes.tsx";
|
import {RouterParams} from "@core/components/aoplatform/RenderRoutes.tsx";
|
||||||
import { v4 as uuidv4 } from 'uuid'
|
import { v4 as uuidv4 } from 'uuid'
|
||||||
import {BasicResponse, PLACEHOLDER, RESPONSE_TIPS, STATUS_CODE, VALIDATE_MESSAGE} from "@common/const/const.tsx";
|
import {BasicResponse, PLACEHOLDER, RESPONSE_TIPS, STATUS_CODE} from "@common/const/const.tsx";
|
||||||
import {MemberItem} from "@common/const/type.ts";
|
import {MemberItem} from "@common/const/type.ts";
|
||||||
import {useFetch} from "@common/hooks/http.ts";
|
import {useFetch} from "@common/hooks/http.ts";
|
||||||
import {DefaultOptionType} from "antd/es/cascader";
|
import {DefaultOptionType} from "antd/es/cascader";
|
||||||
@@ -37,7 +37,7 @@ const TeamConfig= forwardRef<TeamConfigHandle,TeamConfigProps>((props,ref) => {
|
|||||||
const {checkPermission,accessInit} = useGlobalContext()
|
const {checkPermission,accessInit} = useGlobalContext()
|
||||||
const pageType= useMemo(()=>{
|
const pageType= useMemo(()=>{
|
||||||
if(!accessInit) return 'myteam'
|
if(!accessInit) return 'myteam'
|
||||||
return checkPermission('system.organization.team.view') ? 'manage' : 'myteam'
|
return checkPermission('system.workspace.team.view_all') ? 'manage' : 'myteam'
|
||||||
},[checkPermission,accessInit])
|
},[checkPermission,accessInit])
|
||||||
|
|
||||||
const [canDelete, setCanDelete] = useState<boolean>(false)
|
const [canDelete, setCanDelete] = useState<boolean>(false)
|
||||||
@@ -197,7 +197,7 @@ const TeamConfig= forwardRef<TeamConfigHandle,TeamConfigProps>((props,ref) => {
|
|||||||
<p className="text-left"><span className="font-bold">{$t('删除团队')}:</span>{$t('删除操作不可恢复,请谨慎操作!')}</p>
|
<p className="text-left"><span className="font-bold">{$t('删除团队')}:</span>{$t('删除操作不可恢复,请谨慎操作!')}</p>
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<WithPermission access="system.organization.team.delete" disabled={!canDelete} tooltip={canDelete ? '':$t('服务数据清除后,方可删除')}>
|
<WithPermission access="system.organization.team.delete" disabled={!canDelete} tooltip={canDelete ? '':$t('服务数据清除后,方可删除')}>
|
||||||
<Button className="m-auto mt-[16px] mb-[20px]" type="default" danger onClick={()=>deleteTeam(entity!)}>{$t('删除')}</Button>
|
<Button className="m-auto mt-[16px] mb-[20px]" type="default" danger onClick={()=>deleteTeam()}>{$t('删除')}</Button>
|
||||||
</WithPermission>
|
</WithPermission>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,16 +1,15 @@
|
|||||||
|
|
||||||
import PageList, { PageProColumns } from "@common/components/aoplatform/PageList.tsx"
|
import PageList from "@common/components/aoplatform/PageList.tsx"
|
||||||
import {ActionType} from "@ant-design/pro-components";
|
import {ActionType} from "@ant-design/pro-components";
|
||||||
import {FC, useEffect, useMemo, useRef, useState} from "react";
|
import {FC, useEffect, useMemo, useRef, useState} from "react";
|
||||||
import {useLocation, useNavigate} from "react-router-dom";
|
import {useLocation, useNavigate} from "react-router-dom";
|
||||||
import {useBreadcrumb} from "@common/contexts/BreadcrumbContext.tsx";
|
import {useBreadcrumb} from "@common/contexts/BreadcrumbContext.tsx";
|
||||||
import {App, Divider, Modal} from "antd";
|
import {App, Modal} from "antd";
|
||||||
import {BasicResponse, COLUMNS_TITLE, DELETE_TIPS, RESPONSE_TIPS, STATUS_CODE} from "@common/const/const.tsx";
|
import {BasicResponse, DELETE_TIPS, RESPONSE_TIPS, STATUS_CODE} from "@common/const/const.tsx";
|
||||||
import { SimpleMemberItem } from "@common/const/type.ts";
|
import { SimpleMemberItem } from "@common/const/type.ts";
|
||||||
import {useFetch} from "@common/hooks/http.ts";
|
import {useFetch} from "@common/hooks/http.ts";
|
||||||
import { TEAM_TABLE_COLUMNS } from "../../const/team/const.tsx";
|
import { TEAM_TABLE_COLUMNS } from "../../const/team/const.tsx";
|
||||||
import { TeamConfigFieldType, TeamConfigHandle, TeamTableListItem } from "../../const/team/type.ts";
|
import { TeamConfigFieldType, TeamConfigHandle, TeamTableListItem } from "../../const/team/type.ts";
|
||||||
import TableBtnWithPermission from "@common/components/aoplatform/TableBtnWithPermission.tsx";
|
|
||||||
import { useGlobalContext } from "@common/contexts/GlobalStateContext.tsx";
|
import { useGlobalContext } from "@common/contexts/GlobalStateContext.tsx";
|
||||||
import { checkAccess } from "@common/utils/permission.ts";
|
import { checkAccess } from "@common/utils/permission.ts";
|
||||||
import TeamConfig from "./TeamConfig.tsx";
|
import TeamConfig from "./TeamConfig.tsx";
|
||||||
@@ -131,21 +130,6 @@ const TeamList:FC = ()=>{
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const operation:PageProColumns<TeamTableListItem>[] =[
|
|
||||||
{
|
|
||||||
title: COLUMNS_TITLE.operate,
|
|
||||||
key: 'option',
|
|
||||||
fixed:'right',
|
|
||||||
btnNums:2,
|
|
||||||
valueType: 'option',
|
|
||||||
render: (_: React.ReactNode, entity: TeamTableListItem) => [
|
|
||||||
<TableBtnWithPermission access="" key="view" btnType="view" navigateTo={`../inside/${entity.id}/setting`} btnTitle="查看"/>,
|
|
||||||
<Divider type="vertical" className="mx-0" key="div2"/>,
|
|
||||||
<TableBtnWithPermission access="system.organization.team.delete" key="delete" btnType="delete" disabled={!entity.canDelete} tooltip="服务数据清除后,方可删除" onClick={()=>{openModal('delete',entity)}} btnTitle="删除"/>,
|
|
||||||
],
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setBreadcrumb([
|
setBreadcrumb([
|
||||||
{title: $t('团队')}
|
{title: $t('团队')}
|
||||||
@@ -173,7 +157,7 @@ const TeamList:FC = ()=>{
|
|||||||
id="global_team"
|
id="global_team"
|
||||||
className="pl-btnbase"
|
className="pl-btnbase"
|
||||||
ref={pageListRef}
|
ref={pageListRef}
|
||||||
columns = {[...columns,...operation]}
|
columns = {[...columns]}
|
||||||
request = {()=>getTeamList()}
|
request = {()=>getTeamList()}
|
||||||
showPagination={false}
|
showPagination={false}
|
||||||
addNewBtnTitle={$t('添加团队')}
|
addNewBtnTitle={$t('添加团队')}
|
||||||
@@ -207,7 +191,7 @@ const TeamList:FC = ()=>{
|
|||||||
}
|
}
|
||||||
return res})}
|
return res})}
|
||||||
>
|
>
|
||||||
<TeamConfig ref={teamConfigRef} inModal entity={modalType === 'add' ? undefined : curTeam} />
|
<TeamConfig ref={teamConfigRef} entity={modalType === 'add' ? undefined : curTeam} />
|
||||||
</Modal>
|
</Modal>
|
||||||
</InsidePage>
|
</InsidePage>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2024-06-05 09:35:25
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-05 10:50:12
|
|
||||||
* @FilePath: \frontend\packages\core\start-vite.js
|
|
||||||
*/
|
|
||||||
// start-vite.js// start-vite.js
|
// start-vite.js// start-vite.js
|
||||||
import { exec } from 'child_process';
|
import { exec } from 'child_process';
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:44
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-05 10:36:46
|
|
||||||
* @FilePath: \frontend\packages\core\tailwind.config.js
|
|
||||||
*/
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:54
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2023-11-29 15:49:05
|
|
||||||
* @FilePath: \applatform\frontend\packages\core\postcss.config.js
|
|
||||||
*/
|
|
||||||
export default {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
'postcss-import': {},
|
'postcss-import': {},
|
||||||
|
|||||||
@@ -231,9 +231,9 @@ const MonitorTotalPage = (props:MonitorTotalPageProps) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`h-full overflow-hidden pb-btnybase flex flex-col bg-[#fff]`}>
|
<div className={`h-full overflow-hidden pb-btnybase flex flex-col bg-[#fff] `}>
|
||||||
<ScrollableSection>
|
<ScrollableSection>
|
||||||
<div className="flex items-center flex-wrap pb-[10px] px-btnbase content-before bg-MAIN_BG">
|
<div className="flex items-center flex-wrap pb-[10px] px-btnbase content-before bg-MAIN_BG pr-PAGE_INSIDE_X ">
|
||||||
<TimeRangeSelector
|
<TimeRangeSelector
|
||||||
labelSize="small"
|
labelSize="small"
|
||||||
initialTimeButton={timeButton}
|
initialTimeButton={timeButton}
|
||||||
@@ -247,7 +247,7 @@ const MonitorTotalPage = (props:MonitorTotalPageProps) => {
|
|||||||
</div>
|
</div>
|
||||||
<Spin wrapperClassName={`flex-1 ${totalEmpty ?'':'overflow-auto'}`} indicator={<LoadingOutlined style={{ fontSize: 24 }} spin/>} spinning={queryBtnLoading}>
|
<Spin wrapperClassName={`flex-1 ${totalEmpty ?'':'overflow-auto'}`} indicator={<LoadingOutlined style={{ fontSize: 24 }} spin/>} spinning={queryBtnLoading}>
|
||||||
{totalEmpty ?<Empty className="mt-[100px]" image={Empty.PRESENTED_IMAGE_SIMPLE} />:
|
{totalEmpty ?<Empty className="mt-[100px]" image={Empty.PRESENTED_IMAGE_SIMPLE} />:
|
||||||
<div className=" h-full scroll-area">
|
<div className=" h-full scroll-area pr-PAGE_INSIDE_X ">
|
||||||
{/* 图表区域 */}
|
{/* 图表区域 */}
|
||||||
<div className=" px-btnbase mt-[12px] mb-[16px] grid gap-[20px]" style={{ gridTemplateColumns: 'repeat(auto-fill, minmax(570px, 1fr))'}}>
|
<div className=" px-btnbase mt-[12px] mb-[16px] grid gap-[20px]" style={{ gridTemplateColumns: 'repeat(auto-fill, minmax(570px, 1fr))'}}>
|
||||||
{/* 请求统计饼图 */}
|
{/* 请求统计饼图 */}
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import { reject } from "lodash-es";
|
|||||||
import { EntityItem } from "@common/const/type";
|
import { EntityItem } from "@common/const/type";
|
||||||
import { LoadingOutlined } from "@ant-design/icons";
|
import { LoadingOutlined } from "@ant-design/icons";
|
||||||
import DashboardInstruction from "./DashboardInstruction";
|
import DashboardInstruction from "./DashboardInstruction";
|
||||||
import cluster from "cluster";
|
|
||||||
|
|
||||||
export default function Dashboard(){
|
export default function Dashboard(){
|
||||||
const { setBreadcrumb } = useBreadcrumb()
|
const { setBreadcrumb } = useBreadcrumb()
|
||||||
@@ -47,7 +46,7 @@ export default function Dashboard(){
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Spin wrapperClassName="h-full w-full pr-PAGE_INSIDE_X pb-PAGE_INSIDE_B " indicator={<LoadingOutlined style={{ fontSize: 24 }} spin/>} spinning={loading}>
|
<Spin wrapperClassName="h-full w-full pb-PAGE_INSIDE_B " indicator={<LoadingOutlined style={{ fontSize: 24 }} spin/>} spinning={loading}>
|
||||||
{
|
{
|
||||||
!loading && <>
|
!loading && <>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:44
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-05 10:36:11
|
|
||||||
* @FilePath: \frontend\packages\market\tailwind.config.js
|
|
||||||
*/
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:54
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-05 10:42:18
|
|
||||||
* @FilePath: \frontend\packages\core\postcss.config.js
|
|
||||||
*/
|
|
||||||
export default {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
'postcss-import': {},
|
'postcss-import': {},
|
||||||
|
|||||||
@@ -77,7 +77,9 @@ const getServiceList = ()=>{
|
|||||||
|
|
||||||
const getTeamsList = ()=>{
|
const getTeamsList = ()=>{
|
||||||
if(!accessInit){
|
if(!accessInit){
|
||||||
getGlobalAccessData()?.then?.(()=>{getTeamsList()})
|
setTimeout(()=>{
|
||||||
|
getGlobalAccessData()?.then?.(()=>{getTeamsList()})
|
||||||
|
},200)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
setPageLoading(true)
|
setPageLoading(true)
|
||||||
@@ -167,6 +169,7 @@ useEffect(() => {
|
|||||||
)
|
)
|
||||||
getTeamsList()
|
getTeamsList()
|
||||||
setAppName('')
|
setAppName('')
|
||||||
|
console.log()
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:54
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2023-11-29 15:49:05
|
|
||||||
* @FilePath: \applatform\frontend\packages\core\postcss.config.js
|
|
||||||
*/
|
|
||||||
export default {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
'postcss-import': {},
|
'postcss-import': {},
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:44
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-05 10:36:11
|
|
||||||
* @FilePath: \frontend\packages\market\tailwind.config.js
|
|
||||||
*/
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:54
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2023-11-29 15:49:05
|
|
||||||
* @FilePath: \applatform\frontend\packages\core\postcss.config.js
|
|
||||||
*/
|
|
||||||
export default {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
'postcss-import': {},
|
'postcss-import': {},
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:44
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-05 10:36:11
|
|
||||||
* @FilePath: \frontend\packages\market\tailwind.config.js
|
|
||||||
*/
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
packages:
|
packages:
|
||||||
- "packages/*"
|
- "packages/*"
|
||||||
|
|
||||||
@@ -1,9 +1,4 @@
|
|||||||
/*
|
|
||||||
* @Date: 2023-11-27 17:31:44
|
|
||||||
* @LastEditors: maggieyyy
|
|
||||||
* @LastEditTime: 2024-06-04 15:03:36
|
|
||||||
* @FilePath: \frontend\tailwind.config.js
|
|
||||||
*/
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|||||||
@@ -11,4 +11,5 @@
|
|||||||
},
|
},
|
||||||
"include": ["**/*.test.ts", "**/*.test.tsx", "jest.setup.js"],
|
"include": ["**/*.test.ts", "**/*.test.tsx", "jest.setup.js"],
|
||||||
"exclude": ["node_modules"]
|
"exclude": ["node_modules"]
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,7 @@ go 1.21
|
|||||||
//toolchain go1.21.1
|
//toolchain go1.21.1
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/eolinker/ap-account v1.0.13
|
github.com/eolinker/ap-account v1.0.14
|
||||||
github.com/eolinker/eosc v0.17.3
|
github.com/eolinker/eosc v0.17.3
|
||||||
github.com/eolinker/go-common v1.1.0
|
github.com/eolinker/go-common v1.1.0
|
||||||
github.com/gabriel-vasile/mimetype v1.4.4
|
github.com/gabriel-vasile/mimetype v1.4.4
|
||||||
@@ -13,7 +13,7 @@ require (
|
|||||||
github.com/gin-gonic/gin v1.10.0
|
github.com/gin-gonic/gin v1.10.0
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/influxdata/influxdb-client-go/v2 v2.14.0
|
github.com/influxdata/influxdb-client-go/v2 v2.14.0
|
||||||
github.com/urfave/cli/v2 v2.27.2
|
github.com/urfave/cli v1.22.16
|
||||||
golang.org/x/crypto v0.24.0
|
golang.org/x/crypto v0.24.0
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
gorm.io/gorm v1.25.5
|
gorm.io/gorm v1.25.5
|
||||||
@@ -26,7 +26,7 @@ require (
|
|||||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||||
github.com/cloudwego/base64x v0.1.4 // indirect
|
github.com/cloudwego/base64x v0.1.4 // indirect
|
||||||
github.com/cloudwego/iasm v0.2.0 // indirect
|
github.com/cloudwego/iasm v0.2.0 // indirect
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect
|
||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
||||||
github.com/dustin/go-humanize v1.0.0 // indirect
|
github.com/dustin/go-humanize v1.0.0 // indirect
|
||||||
github.com/ghodss/yaml v1.0.0 // indirect
|
github.com/ghodss/yaml v1.0.0 // indirect
|
||||||
@@ -62,7 +62,6 @@ require (
|
|||||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||||
github.com/ugorji/go/codec v1.2.12 // indirect
|
github.com/ugorji/go/codec v1.2.12 // indirect
|
||||||
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect
|
|
||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.13 // indirect
|
go.etcd.io/etcd/client/pkg/v3 v3.5.13 // indirect
|
||||||
go.uber.org/atomic v1.7.0 // indirect
|
go.uber.org/atomic v1.7.0 // indirect
|
||||||
go.uber.org/multierr v1.6.0 // indirect
|
go.uber.org/multierr v1.6.0 // indirect
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||||
github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk=
|
github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk=
|
||||||
github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ=
|
github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ=
|
||||||
github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk=
|
github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk=
|
||||||
@@ -18,8 +19,8 @@ github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/
|
|||||||
github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
|
github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
|
||||||
github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg=
|
github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg=
|
||||||
github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
|
github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
|
github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
@@ -27,8 +28,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r
|
|||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
||||||
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
|
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
|
||||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||||
github.com/eolinker/ap-account v1.0.13 h1:6iWdyxLAIkJfgw9JvkHEq0t2m8Levpg30kSx5pTK2wY=
|
github.com/eolinker/ap-account v1.0.14 h1:QE9LWx9F/t/BbTeBcjPX+Alzh3mdlHv+BVvKcBwr5dc=
|
||||||
github.com/eolinker/ap-account v1.0.13/go.mod h1:qLKg4xervGHTNBWaGckfPkQb+FZT0XfhwPEdNpzvsjE=
|
github.com/eolinker/ap-account v1.0.14/go.mod h1:qLKg4xervGHTNBWaGckfPkQb+FZT0XfhwPEdNpzvsjE=
|
||||||
github.com/eolinker/eosc v0.17.3 h1:sr2yT+v/AsqEdciRaaZZj0zL9pTufR5RvDW6+65hraQ=
|
github.com/eolinker/eosc v0.17.3 h1:sr2yT+v/AsqEdciRaaZZj0zL9pTufR5RvDW6+65hraQ=
|
||||||
github.com/eolinker/eosc v0.17.3/go.mod h1:xgq816hpanlMXFtZw7Ztdctb1eEk9UPHchY4NfFO6Cw=
|
github.com/eolinker/eosc v0.17.3/go.mod h1:xgq816hpanlMXFtZw7Ztdctb1eEk9UPHchY4NfFO6Cw=
|
||||||
github.com/eolinker/go-common v1.1.0 h1:n/XXK7yVRen3jhNG/SfZGXJA+KNnaYf0XTDfMeviaBw=
|
github.com/eolinker/go-common v1.1.0 h1:n/XXK7yVRen3jhNG/SfZGXJA+KNnaYf0XTDfMeviaBw=
|
||||||
@@ -139,10 +140,8 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS
|
|||||||
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
||||||
github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=
|
github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=
|
||||||
github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
|
github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
|
||||||
github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI=
|
github.com/urfave/cli v1.22.16 h1:MH0k6uJxdwdeWQTwhSO42Pwr4YLrNLwBtg1MRgTqPdQ=
|
||||||
github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM=
|
github.com/urfave/cli v1.22.16/go.mod h1:EeJR6BKodywf4zciqrdw6hpCPk68JO9z5LazXZMn5Po=
|
||||||
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw=
|
|
||||||
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk=
|
|
||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.13 h1:RVZSAnWWWiI5IrYAXjQorajncORbS0zI48LQlE2kQWg=
|
go.etcd.io/etcd/client/pkg/v3 v3.5.13 h1:RVZSAnWWWiI5IrYAXjQorajncORbS0zI48LQlE2kQWg=
|
||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.13/go.mod h1:XxHT4u1qU12E2+po+UVPrEeL94Um6zL58ppuJWXSAB8=
|
go.etcd.io/etcd/client/pkg/v3 v3.5.13/go.mod h1:XxHT4u1qU12E2+po+UVPrEeL94Um6zL58ppuJWXSAB8=
|
||||||
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||||
|
|||||||
+13
-9
@@ -85,10 +85,7 @@ func (i *imlProviderModule) Providers(ctx context.Context) ([]*ai_dto.ProviderIt
|
|||||||
})
|
})
|
||||||
items := make([]*ai_dto.ProviderItem, 0, len(providers))
|
items := make([]*ai_dto.ProviderItem, 0, len(providers))
|
||||||
for _, v := range providers {
|
for _, v := range providers {
|
||||||
defaultLLM, has := v.DefaultModel(model_runtime.ModelTypeLLM)
|
|
||||||
if !has {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
item := &ai_dto.ProviderItem{
|
item := &ai_dto.ProviderItem{
|
||||||
Id: v.ID(),
|
Id: v.ID(),
|
||||||
Name: v.Name(),
|
Name: v.Name(),
|
||||||
@@ -97,6 +94,10 @@ func (i *imlProviderModule) Providers(ctx context.Context) ([]*ai_dto.ProviderIt
|
|||||||
Sort: v.Sort(),
|
Sort: v.Sort(),
|
||||||
}
|
}
|
||||||
if info, has := providerMap[v.ID()]; has {
|
if info, has := providerMap[v.ID()]; has {
|
||||||
|
defaultLLM, has := v.GetModel(info.DefaultLLM)
|
||||||
|
if !has {
|
||||||
|
continue
|
||||||
|
}
|
||||||
item.Configured = true
|
item.Configured = true
|
||||||
item.DefaultLLM = defaultLLM.ID()
|
item.DefaultLLM = defaultLLM.ID()
|
||||||
item.DefaultLLMLogo = defaultLLM.Logo()
|
item.DefaultLLMLogo = defaultLLM.Logo()
|
||||||
@@ -201,7 +202,7 @@ func (i *imlProviderModule) LLMs(ctx context.Context, driver string) ([]*ai_dto.
|
|||||||
DefaultLLMLogo: defaultLLM.Logo(),
|
DefaultLLMLogo: defaultLLM.Logo(),
|
||||||
Logo: p.Logo(),
|
Logo: p.Logo(),
|
||||||
Configured: false,
|
Configured: false,
|
||||||
}, err
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return items, &ai_dto.ProviderItem{Id: info.Id, Name: info.Name, DefaultLLM: info.DefaultLLM, Logo: p.Logo(), Configured: true}, nil
|
return items, &ai_dto.ProviderItem{Id: info.Id, Name: info.Name, DefaultLLM: info.DefaultLLM, Logo: p.Logo(), Configured: true}, nil
|
||||||
@@ -279,10 +280,13 @@ func (i *imlProviderModule) UpdateProviderConfig(ctx context.Context, id string,
|
|||||||
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
//defaultLLm, ok := p.DefaultModel(model_runtime.ModelTypeLLM)
|
if input.DefaultLLM == "" {
|
||||||
//if !ok {
|
defaultLLM, has := p.DefaultModel(model_runtime.ModelTypeLLM)
|
||||||
// return fmt.Errorf("ai provider default llm not found")
|
if !has {
|
||||||
//}
|
return fmt.Errorf("ai provider default llm not found")
|
||||||
|
}
|
||||||
|
input.DefaultLLM = defaultLLM.ID()
|
||||||
|
}
|
||||||
info = &ai.Provider{
|
info = &ai.Provider{
|
||||||
Id: id,
|
Id: id,
|
||||||
Name: p.Name(),
|
Name: p.Name(),
|
||||||
|
|||||||
+4
-3
@@ -111,13 +111,13 @@ func (m *imlTeamModule) Create(ctx context.Context, input *team_dto.CreateTeam)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
supperRole, err := m.roleService.GetSupperRole(ctx, role.GroupTeam)
|
superRole, err := m.roleService.GetSupperRole(ctx, role.GroupTeam)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return m.roleMemberService.Add(ctx, &role.AddMember{
|
return m.roleMemberService.Add(ctx, &role.AddMember{
|
||||||
Role: supperRole.Id,
|
Role: superRole.Id,
|
||||||
User: input.Master,
|
User: input.Master,
|
||||||
Target: role.TeamTarget(input.Id),
|
Target: role.TeamTarget(input.Id),
|
||||||
})
|
})
|
||||||
@@ -145,7 +145,8 @@ func (m *imlTeamModule) Edit(ctx context.Context, id string, input *team_dto.Edi
|
|||||||
func (m *imlTeamModule) Delete(ctx context.Context, id string) error {
|
func (m *imlTeamModule) Delete(ctx context.Context, id string) error {
|
||||||
err := m.transaction.Transaction(ctx, func(ctx context.Context) error {
|
err := m.transaction.Transaction(ctx, func(ctx context.Context) error {
|
||||||
count, err := m.serviceService.Count(ctx, "", map[string]interface{}{
|
count, err := m.serviceService.Count(ctx, "", map[string]interface{}{
|
||||||
"team": id,
|
"team": id,
|
||||||
|
"is_delete": false,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
+150
-233
@@ -1,21 +1,75 @@
|
|||||||
system:
|
system:
|
||||||
- name: organization
|
- name: workspace
|
||||||
# cname: '组织管理'
|
value: 'workspace'
|
||||||
value: 'organization'
|
|
||||||
children:
|
children:
|
||||||
- name: member
|
- name: consumer
|
||||||
# cname: '成员'
|
value: 'application'
|
||||||
value: 'member'
|
children:
|
||||||
|
- name: view all consumer
|
||||||
|
value: 'view_all'
|
||||||
|
guest_allow: true
|
||||||
|
- name: manager all consumer
|
||||||
|
value: "manager_all"
|
||||||
|
dependents:
|
||||||
|
- system.workspace.consumer.view_all
|
||||||
|
- name: service
|
||||||
|
value: 'service'
|
||||||
|
children:
|
||||||
|
- name: view all service
|
||||||
|
value: 'view_all'
|
||||||
|
guest_allow: true
|
||||||
|
- name: manager all consumer
|
||||||
|
value: "manager_all"
|
||||||
|
dependents:
|
||||||
|
- system.workspace.service.view_all
|
||||||
|
- name: team
|
||||||
|
value: 'team'
|
||||||
|
children:
|
||||||
|
- name: view all team
|
||||||
|
value: 'view_all'
|
||||||
|
guest_allow: true
|
||||||
|
- name: create
|
||||||
|
value: 'create'
|
||||||
|
- name: manager
|
||||||
|
value: 'manager'
|
||||||
|
dependents:
|
||||||
|
- system.workspace.team.view_all
|
||||||
|
- name: api portal
|
||||||
|
value: 'api_portal'
|
||||||
|
children:
|
||||||
|
- name: api portal
|
||||||
|
value: 'api_portal'
|
||||||
|
children:
|
||||||
|
- name: view
|
||||||
|
value: 'view'
|
||||||
|
guest_allow: true
|
||||||
|
- name: analysis
|
||||||
|
value: 'analysis'
|
||||||
|
children:
|
||||||
|
- name: run view
|
||||||
|
value: 'run_view'
|
||||||
|
children:
|
||||||
|
- name: view
|
||||||
|
value: 'view'
|
||||||
|
guest_allow: true
|
||||||
|
- name: system settings
|
||||||
|
value: 'settings'
|
||||||
|
children:
|
||||||
|
- name: general
|
||||||
|
value: 'general'
|
||||||
|
children:
|
||||||
|
- name: view
|
||||||
|
value: 'view'
|
||||||
|
guest_allow: true
|
||||||
|
- name: manager
|
||||||
|
value: 'manager'
|
||||||
|
- name: account
|
||||||
|
value: 'account'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: '查看'
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/user/accounts"
|
|
||||||
- "GET:/api/v1/user/departments"
|
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: '管理'
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/user/account"
|
- "POST:/api/v1/user/account"
|
||||||
@@ -31,93 +85,20 @@ system:
|
|||||||
- "POST:/api/v1/user/department/member/remove"
|
- "POST:/api/v1/user/department/member/remove"
|
||||||
- "POST:/api/v1/account/role"
|
- "POST:/api/v1/account/role"
|
||||||
dependents:
|
dependents:
|
||||||
- system.organization.member.view
|
- system.settings.account.view
|
||||||
- name: team
|
|
||||||
cname: '团队'
|
|
||||||
value: 'team'
|
|
||||||
children:
|
|
||||||
- name: view
|
|
||||||
# cname: '查看'
|
|
||||||
value: 'view'
|
|
||||||
guest_allow: true
|
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/manager/teams"
|
|
||||||
- "GET:/api/v1/manager/team"
|
|
||||||
- name: manager
|
|
||||||
# cname: '管理'
|
|
||||||
value: 'manager'
|
|
||||||
apis:
|
|
||||||
- "POST:/api/v1/manager/team"
|
|
||||||
- "PUT:/api/v1/manager/team"
|
|
||||||
- "DELETE:/api/v1/manager/team"
|
|
||||||
dependents:
|
|
||||||
- system.organization.team.view
|
|
||||||
- name: role
|
- name: role
|
||||||
# cname: '角色'
|
|
||||||
value: 'role'
|
value: 'role'
|
||||||
children:
|
children:
|
||||||
- name: view system role
|
- name: view
|
||||||
cname: '查看系统角色'
|
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
value: 'view_system_role'
|
value: 'view'
|
||||||
apis:
|
apis:
|
||||||
- "GET:/api/v1/system/roles"
|
- "GET:/api/v1/system/roles"
|
||||||
- "GET:/api/v1/system/role"
|
- "GET:/api/v1/system/role"
|
||||||
- name: view team role
|
|
||||||
cname: '查看团队角色'
|
|
||||||
guest_allow: true
|
|
||||||
value: 'view_team_role'
|
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/team/roles"
|
- "GET:/api/v1/team/roles"
|
||||||
- "GET:/api/v1/team/role"
|
- "GET:/api/v1/team/role"
|
||||||
- name: System Settings
|
- name: api gateway
|
||||||
# cname: '系统设置'
|
value: 'api_gateway'
|
||||||
value: 'settings'
|
|
||||||
children:
|
|
||||||
- name: service classification
|
|
||||||
# cname: '服务分类'
|
|
||||||
value: 'service_classification'
|
|
||||||
children:
|
|
||||||
- name: view
|
|
||||||
# cname: '查看'
|
|
||||||
value: 'view'
|
|
||||||
guest_allow: true
|
|
||||||
# apis:
|
|
||||||
# - "GET:/api/v1/catalogues"
|
|
||||||
- name: manager
|
|
||||||
# cname: '管理'
|
|
||||||
value: 'manager'
|
|
||||||
apis:
|
|
||||||
- "POST:/api/v1/catalogue"
|
|
||||||
- "PUT:/api/v1/catalogue"
|
|
||||||
- "DELETE:/api/v1/catalogue"
|
|
||||||
- "PUT:/api/v1/catalogue/sort"
|
|
||||||
dependents:
|
|
||||||
- system.settings.service_classification.view
|
|
||||||
- name: General
|
|
||||||
# cname: 常规设置
|
|
||||||
value: 'general'
|
|
||||||
children:
|
|
||||||
- name: view
|
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
|
||||||
guest_allow: true
|
|
||||||
apis:
|
|
||||||
# - "GET:/api/v1/setting"
|
|
||||||
- name: manager
|
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
|
||||||
apis:
|
|
||||||
# - "PUT:/api/v1/setting"
|
|
||||||
dependents:
|
|
||||||
- system.settings.general.view
|
|
||||||
- name: Devops
|
|
||||||
# cname: 运维
|
|
||||||
value: 'devops'
|
|
||||||
children:
|
|
||||||
- name: cluster
|
|
||||||
cname: 集群
|
|
||||||
value: 'cluster'
|
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
cname: 查看
|
cname: 查看
|
||||||
@@ -126,53 +107,63 @@ system:
|
|||||||
apis:
|
apis:
|
||||||
- "GET:/api/v1/cluster/nodes"
|
- "GET:/api/v1/cluster/nodes"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "PUT:/api/v1/cluster/reset"
|
- "PUT:/api/v1/cluster/reset"
|
||||||
- "POST:/api/v1/cluster/check"
|
- "POST:/api/v1/cluster/check"
|
||||||
|
- name: ai provider
|
||||||
|
value: 'ai_provider'
|
||||||
|
children:
|
||||||
|
- name: view
|
||||||
|
value: 'view'
|
||||||
|
guest_allow: true
|
||||||
|
apis:
|
||||||
|
- "GET:/api/v1/ai/providers"
|
||||||
|
- "GET:/api/v1/ai/provider/config"
|
||||||
|
- name: manager
|
||||||
|
value: 'manager'
|
||||||
|
apis:
|
||||||
|
- "PUT:/api/v1/ai/provider/config"
|
||||||
|
- "PUT:/api/v1/ai/provider/default-llm"
|
||||||
|
dependents:
|
||||||
|
- system.settings.ai_provider.view
|
||||||
- name: ssl certificate
|
- name: ssl certificate
|
||||||
cname: 证书
|
cname: 证书
|
||||||
value: 'ssl_certificate'
|
value: 'ssl_certificate'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
- "GET:/api/v1/certificates"
|
- "GET:/api/v1/certificates"
|
||||||
- "GET:/api/v1/certificate"
|
- "GET:/api/v1/certificate"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/certificate"
|
- "POST:/api/v1/certificate"
|
||||||
- "PUT:/api/v1/certificate"
|
- "PUT:/api/v1/certificate"
|
||||||
- "DELETE:/api/v1/certificate"
|
- "DELETE:/api/v1/certificate"
|
||||||
dependents:
|
dependents:
|
||||||
- system.devops.ssl_certificate.view
|
- system.settings.ssl_certificate.view
|
||||||
- name: Data Source
|
- name: Data Source
|
||||||
# cname: '数据源'
|
|
||||||
value: 'data_source'
|
value: 'data_source'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: '查看'
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
- "GET:/api/v1/monitor/config"
|
- "GET:/api/v1/monitor/config"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: '管理'
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/monitor/config"
|
- "POST:/api/v1/monitor/config"
|
||||||
- "PUT:/api/v1/monitor/config"
|
- "PUT:/api/v1/monitor/config"
|
||||||
|
dependents:
|
||||||
|
- system.settings.data_source.view
|
||||||
- name: log configuration
|
- name: log configuration
|
||||||
# cname: 日志
|
|
||||||
value: 'log_configuration'
|
value: 'log_configuration'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
@@ -180,7 +171,6 @@ system:
|
|||||||
- "GET:/api/v1/dynamic/{name}/list"
|
- "GET:/api/v1/dynamic/{name}/list"
|
||||||
- "GET:/api/v1/dynamic/{name}/render"
|
- "GET:/api/v1/dynamic/{name}/render"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/dynamic/{name}"
|
- "POST:/api/v1/dynamic/{name}"
|
||||||
@@ -189,100 +179,15 @@ system:
|
|||||||
- "PUT:/api/v1/dynamic/{name}/online"
|
- "PUT:/api/v1/dynamic/{name}/online"
|
||||||
- "PUT:/api/v1/dynamic/{name}/offline"
|
- "PUT:/api/v1/dynamic/{name}/offline"
|
||||||
dependents:
|
dependents:
|
||||||
- system.devops.log_configuration.view
|
- system.settings.log_configuration.view
|
||||||
- name: ai provider
|
|
||||||
# cname: AI 模型供应商
|
|
||||||
value: 'ai_provider'
|
|
||||||
children:
|
|
||||||
- name: view
|
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
|
||||||
guest_allow: true
|
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/ai/providers"
|
|
||||||
- "GET:/api/v1/ai/provider/config"
|
|
||||||
- name: manager
|
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
|
||||||
apis:
|
|
||||||
- "PUT:/api/v1/ai/provider/config"
|
|
||||||
- "PUT:/api/v1/ai/provider/default-llm"
|
|
||||||
dependents:
|
|
||||||
- system.devops.ai_provider.view
|
|
||||||
|
|
||||||
- name: dashboard
|
|
||||||
# cname: 仪表盘
|
|
||||||
value: 'dashboard'
|
|
||||||
children:
|
|
||||||
- name: run view
|
|
||||||
# cname: 运行视图
|
|
||||||
value: 'run_view'
|
|
||||||
children:
|
|
||||||
- name: view
|
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
|
||||||
guest_allow: true
|
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/monitor/overview/invoke"
|
|
||||||
- "GET:/api/v1/monitor/overview/message"
|
|
||||||
- "GET:/api/v1/monitor/overview/top10"
|
|
||||||
- "GET:/api/v1/monitor/overview/summary"
|
|
||||||
- name: workspace
|
|
||||||
# cname: 工作空间
|
|
||||||
value: 'workspace'
|
|
||||||
children:
|
|
||||||
- name: application
|
|
||||||
# cname: 应用
|
|
||||||
value: 'application'
|
|
||||||
children:
|
|
||||||
- name: view all application
|
|
||||||
# cname: 查看所有应用
|
|
||||||
value: 'view_all'
|
|
||||||
guest_allow: true
|
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/apps"
|
|
||||||
- name: service
|
|
||||||
# cname: 服务
|
|
||||||
value: 'service'
|
|
||||||
children:
|
|
||||||
- name: view all service
|
|
||||||
# cname: 查看所有服务
|
|
||||||
value: 'view_all'
|
|
||||||
guest_allow: true
|
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/services"
|
|
||||||
- name: team
|
|
||||||
# cname: 团队
|
|
||||||
value: 'team'
|
|
||||||
children:
|
|
||||||
- name: view all team
|
|
||||||
# cname: 查看所有团队
|
|
||||||
value: 'view_all'
|
|
||||||
guest_allow: true
|
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/manager/teams"
|
|
||||||
- name: api market
|
|
||||||
# cname: API市场
|
|
||||||
value: 'api_market'
|
|
||||||
children:
|
|
||||||
- name: view
|
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
|
||||||
guest_allow: true
|
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/catalogue/services"
|
|
||||||
- "GET:/api/v1/catalogue/service"
|
|
||||||
team:
|
team:
|
||||||
- name: service
|
- name: service
|
||||||
# cname: 服务
|
|
||||||
value: 'service'
|
value: 'service'
|
||||||
children:
|
children:
|
||||||
- name: router
|
- name: api
|
||||||
# cname: 路由
|
value: 'api'
|
||||||
value: 'router'
|
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
@@ -291,49 +196,58 @@ team:
|
|||||||
- "GET:/api/v1/service/router/detail/simple"
|
- "GET:/api/v1/service/router/detail/simple"
|
||||||
- "GET:/api/v1/service/router/define"
|
- "GET:/api/v1/service/router/define"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/service/router"
|
- "POST:/api/v1/service/router"
|
||||||
- "PUT:/api/v1/service/router"
|
- "PUT:/api/v1/service/router"
|
||||||
- "DELETE:/api/v1/service/router"
|
- "DELETE:/api/v1/service/router"
|
||||||
|
dependents:
|
||||||
|
- team.service.api.view
|
||||||
- name: api doc
|
- name: api doc
|
||||||
cname: API文档
|
cname: API文档
|
||||||
value: 'api_doc'
|
value: 'api_doc'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
- "GET:/api/v1/service/api_doc"
|
- "GET:/api/v1/service/api_doc"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "PUT:/api/v1/service/api_doc"
|
- "PUT:/api/v1/service/api_doc"
|
||||||
- "POST:/api/v1/service/api_doc/upload"
|
- "POST:/api/v1/service/api_doc/upload"
|
||||||
|
dependents:
|
||||||
|
- team.service.api_doc.view
|
||||||
|
- name: service intro
|
||||||
|
value: 'service_intro'
|
||||||
|
children:
|
||||||
|
- name: view
|
||||||
|
value: 'view'
|
||||||
|
guest_allow: true
|
||||||
|
- name: manager
|
||||||
|
value: 'manager'
|
||||||
|
dependents:
|
||||||
|
- team.service.service_intro.view
|
||||||
- name: upstream
|
- name: upstream
|
||||||
cname: 上游
|
cname: 上游
|
||||||
value: 'upstream'
|
value: 'upstream'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
- "GET:/api/v1/service/upstream"
|
- "GET:/api/v1/service/upstream"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "PUT:/api/v1/service/upstream"
|
- "PUT:/api/v1/service/upstream"
|
||||||
|
dependents:
|
||||||
|
- team.service.upstream.view
|
||||||
- name: release
|
- name: release
|
||||||
# cname: 发布
|
|
||||||
value: 'release'
|
value: 'release'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
@@ -344,18 +258,16 @@ team:
|
|||||||
- "GET:/api/v1/service/release/preview"
|
- "GET:/api/v1/service/release/preview"
|
||||||
- "GET:/api/v1/service/publish/status"
|
- "GET:/api/v1/service/publish/status"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/service/publish/release/do"
|
- "POST:/api/v1/service/publish/release/do"
|
||||||
# - "PUT:/api/v1/service/publish/execute"
|
|
||||||
- "DELETE:/api/v1/service/release"
|
- "DELETE:/api/v1/service/release"
|
||||||
|
dependents:
|
||||||
|
- team.service.release.view
|
||||||
- name: subscription management
|
- name: subscription management
|
||||||
# cname: 订阅方管理
|
|
||||||
value: 'subscription'
|
value: 'subscription'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
@@ -363,50 +275,49 @@ team:
|
|||||||
- "GET:/api/v1/service/approval/subscribe"
|
- "GET:/api/v1/service/approval/subscribe"
|
||||||
- "GET:/api/v1/service/subscribers"
|
- "GET:/api/v1/service/subscribers"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/service/approval/subscribe"
|
- "POST:/api/v1/service/approval/subscribe"
|
||||||
- "POST:/api/v1/service/subscriber"
|
- "POST:/api/v1/service/subscriber"
|
||||||
- "DELETE:/api/v1/service/subscriber"
|
- "DELETE:/api/v1/service/subscriber"
|
||||||
|
dependents:
|
||||||
|
- team.service.subscription.view
|
||||||
- name: service
|
- name: service
|
||||||
# cname: 服务管理
|
|
||||||
value: 'service'
|
value: 'service'
|
||||||
children:
|
children:
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "PUT:/api/v1/service/info"
|
- "PUT:/api/v1/service/info"
|
||||||
- "POST:/api/v1/team/service"
|
- "POST:/api/v1/team/service"
|
||||||
- "DELETE:/api/v1/team/service"
|
- "DELETE:/api/v1/team/service"
|
||||||
- name: application
|
dependents:
|
||||||
cname: 应用
|
- team.service.service.manager
|
||||||
value: 'application'
|
- name: consumer
|
||||||
|
value: 'consumer'
|
||||||
children:
|
children:
|
||||||
- name: subscription Service
|
- name: subscription Service
|
||||||
cname: 订阅服务
|
cname: 订阅服务
|
||||||
value: 'subscription'
|
value: 'subscription'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: subscribe
|
||||||
# cname: 查看
|
value: 'subscribe'
|
||||||
value: 'view'
|
|
||||||
|
- name: view subscribed services
|
||||||
|
value: 'view_subscribed_service'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
- "GET:/api/v1/application/subscriptions"
|
- "GET:/api/v1/application/subscription"
|
||||||
- name: manager
|
- name: manager subscribed services
|
||||||
# cname: 管理
|
value: 'manager_subscribed_services'
|
||||||
value: 'manager'
|
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/catalogue/service/subscribe"
|
- "POST:/api/v1/catalogue/service/subscribe"
|
||||||
- "POST:/api/v1/application/subscription/cancel"
|
- "POST:/api/v1/application/subscription/cancel"
|
||||||
- "POST:/api/v1/application/subscription/cancel_apply"
|
- "POST:/api/v1/application/subscription/cancel_apply"
|
||||||
- name: authorization
|
- name: authorization
|
||||||
# cname: 访问授权
|
|
||||||
value: 'authorization'
|
value: 'authorization'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
@@ -414,60 +325,66 @@ team:
|
|||||||
- "GET:/api/v1/app/authorizations"
|
- "GET:/api/v1/app/authorizations"
|
||||||
- "GET:/api/v1/app/authorization/details"
|
- "GET:/api/v1/app/authorization/details"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/app/authorization"
|
- "POST:/api/v1/app/authorization"
|
||||||
- "PUT:/api/v1/app/authorization"
|
- "PUT:/api/v1/app/authorization"
|
||||||
- "DELETE:/api/v1/app/authorization"
|
- "DELETE:/api/v1/app/authorization"
|
||||||
- name: application
|
- name: consumer
|
||||||
# cname: 应用
|
|
||||||
value: 'application'
|
value: 'application'
|
||||||
children:
|
children:
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "PUT:/api/v1/app/info"
|
- "PUT:/api/v1/app/info"
|
||||||
- "POST:/api/v1/team/app"
|
- "POST:/api/v1/team/app"
|
||||||
- "DELETE:/api/v1/app"
|
|
||||||
- name: team
|
- name: team
|
||||||
# cname: 团队
|
|
||||||
value: 'team'
|
value: 'team'
|
||||||
children:
|
children:
|
||||||
|
- name: service
|
||||||
|
value: 'service'
|
||||||
|
children:
|
||||||
|
- name: view
|
||||||
|
value: 'view'
|
||||||
|
guest_allow: true
|
||||||
|
- name: manager
|
||||||
|
value: 'manager'
|
||||||
|
dependents:
|
||||||
|
- team.team.service.view
|
||||||
|
- name: consumer
|
||||||
|
value: 'consumer'
|
||||||
|
children:
|
||||||
|
- name: view
|
||||||
|
value: 'view'
|
||||||
|
guest_allow: true
|
||||||
|
- name: manager
|
||||||
|
value: 'manager'
|
||||||
|
dependents:
|
||||||
|
- team.team.consumer.view
|
||||||
- name: member
|
- name: member
|
||||||
# cname: 成员
|
|
||||||
value: 'member'
|
value: 'member'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: 查看
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
|
||||||
- "GET:/api/v1/team/members"
|
|
||||||
- "GET:/api/v1/team/members/toadd"
|
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: 管理
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
dependents:
|
||||||
- "POST:/api/v1/team/member"
|
- team.team.member.view
|
||||||
- "DELETE:/api/v1/team/member"
|
|
||||||
- "PUT:/api/v1/team/member/role"
|
|
||||||
- name: team
|
- name: team
|
||||||
# cname: 团队管理
|
|
||||||
value: 'team'
|
value: 'team'
|
||||||
children:
|
children:
|
||||||
- name: view
|
- name: view
|
||||||
# cname: '查看'
|
|
||||||
value: 'view'
|
value: 'view'
|
||||||
guest_allow: true
|
guest_allow: true
|
||||||
apis:
|
apis:
|
||||||
- "GET:/api/v1/manager/teams"
|
- "GET:/api/v1/manager/teams"
|
||||||
- "GET:/api/v1/manager/team"
|
- "GET:/api/v1/manager/team"
|
||||||
- name: manager
|
- name: manager
|
||||||
# cname: '管理'
|
|
||||||
value: 'manager'
|
value: 'manager'
|
||||||
apis:
|
apis:
|
||||||
- "POST:/api/v1/manager/team"
|
- "POST:/api/v1/manager/team"
|
||||||
- "PUT:/api/v1/manager/team"
|
- "PUT:/api/v1/manager/team"
|
||||||
- "DELETE:/api/v1/manager/team"
|
- "DELETE:/api/v1/manager/team"
|
||||||
|
dependents:
|
||||||
|
- team.team.team.view
|
||||||
+106
-110
@@ -1,164 +1,160 @@
|
|||||||
system:
|
system:
|
||||||
- name: supper admin
|
- name: super admin
|
||||||
value: supper_admin
|
value: super_admin
|
||||||
permits:
|
permits:
|
||||||
- system.dashboard.run_view.view
|
- system.analysis.run_view.view
|
||||||
- system.devops.ai_provider.manager
|
- system.api_portal.api_portal.view
|
||||||
- system.devops.ai_provider.view
|
- system.settings.account.manager
|
||||||
- system.devops.cluster.manager
|
- system.settings.account.view
|
||||||
- system.devops.cluster.view
|
- system.settings.ai_provider.manager
|
||||||
- system.devops.data_source.manager
|
- system.settings.ai_provider.view
|
||||||
- system.devops.data_source.view
|
- system.settings.api_gateway.manager
|
||||||
- system.devops.log_configuration.manager
|
- system.settings.api_gateway.view
|
||||||
- system.devops.log_configuration.view
|
- system.settings.data_source.manager
|
||||||
- system.devops.ssl_certificate.manager
|
- system.settings.data_source.view
|
||||||
- system.devops.ssl_certificate.view
|
|
||||||
- system.organization.member.manager
|
|
||||||
- system.organization.member.view
|
|
||||||
- system.organization.role.view_system_role
|
|
||||||
- system.organization.role.view_team_role
|
|
||||||
- system.organization.team.manager
|
|
||||||
- system.organization.team.view
|
|
||||||
- system.settings.general.manager
|
- system.settings.general.manager
|
||||||
- system.settings.general.view
|
- system.settings.general.view
|
||||||
- system.settings.service_classification.manager
|
- system.settings.log_configuration.manager
|
||||||
- system.settings.service_classification.view
|
- system.settings.log_configuration.view
|
||||||
- system.workspace.api_market.view
|
- system.settings.role.view
|
||||||
|
- system.settings.ssl_certificate.manager
|
||||||
|
- system.settings.ssl_certificate.view
|
||||||
|
- system.workspace.application.manager_all
|
||||||
- system.workspace.application.view_all
|
- system.workspace.application.view_all
|
||||||
|
- system.workspace.service.manager_all
|
||||||
- system.workspace.service.view_all
|
- system.workspace.service.view_all
|
||||||
|
- system.workspace.team.create
|
||||||
|
- system.workspace.team.manager
|
||||||
- system.workspace.team.view_all
|
- system.workspace.team.view_all
|
||||||
supper: true
|
supper: true
|
||||||
- name: team admin
|
- name: team admin
|
||||||
value: team_admin
|
value: team_admin
|
||||||
permits:
|
permits:
|
||||||
- system.organization.role.view_team_role
|
- system.api_portal.api_portal.view
|
||||||
- system.organization.team.manager
|
- system.workspace.team.create
|
||||||
- system.organization.team.view
|
|
||||||
- system.workspace.api_market.view
|
|
||||||
- system.workspace.application.view_all
|
|
||||||
- system.workspace.service.view_all
|
|
||||||
- system.workspace.team.view_all
|
|
||||||
- name: devops admin
|
- name: devops admin
|
||||||
value: devops_admin
|
value: devops_admin
|
||||||
permits:
|
permits:
|
||||||
- system.dashboard.run_view.view
|
- system.analysis.run_view.view
|
||||||
- system.devops.ai_provider.manager
|
- system.api_portal.api_portal.view
|
||||||
- system.devops.ai_provider.view
|
- system.settings.ai_provider.manager
|
||||||
- system.devops.cluster.manager
|
- system.settings.ai_provider.view
|
||||||
- system.devops.cluster.view
|
- system.settings.api_gateway.manager
|
||||||
- system.devops.data_source.manager
|
- system.settings.api_gateway.view
|
||||||
- system.devops.data_source.view
|
- system.settings.data_source.manager
|
||||||
- system.devops.log_configuration.manager
|
- system.settings.data_source.view
|
||||||
- system.devops.log_configuration.view
|
- system.settings.general.manager
|
||||||
- system.devops.ssl_certificate.manager
|
- system.settings.general.view
|
||||||
- system.devops.ssl_certificate.view
|
- system.settings.log_configuration.manager
|
||||||
- system.workspace.api_market.view
|
- system.settings.log_configuration.view
|
||||||
|
- system.settings.ssl_certificate.manager
|
||||||
|
- system.settings.ssl_certificate.view
|
||||||
- system.workspace.application.view_all
|
- system.workspace.application.view_all
|
||||||
- system.workspace.service.view_all
|
- system.workspace.service.view_all
|
||||||
- system.workspace.team.view_all
|
- system.workspace.team.view_all
|
||||||
- system.settings.general.manager
|
|
||||||
- system.settings.general.view
|
|
||||||
- system.settings.service_classification.manager
|
|
||||||
- system.settings.service_classification.view
|
|
||||||
- name: general member
|
- name: general member
|
||||||
value: member
|
value: member
|
||||||
permits:
|
permits:
|
||||||
- system.workspace.api_market.view
|
- system.api_portal.api_portal.view
|
||||||
default: true
|
default: true
|
||||||
- name: guest
|
|
||||||
value: guest
|
|
||||||
permits:
|
|
||||||
- system.settings.service_classification.view
|
|
||||||
- system.devops.cluster.view
|
|
||||||
- system.devops.log_configuration.view
|
|
||||||
- system.devops.ssl_certificate.view
|
|
||||||
- system.devops.monitor.view
|
|
||||||
- system.organization.member.view
|
|
||||||
- system.organization.role.view_system_role
|
|
||||||
- system.organization.role.view_team_role
|
|
||||||
- system.organization.team.view
|
|
||||||
- system.workspace.api_market.view
|
|
||||||
- system.workspace.application.view_all
|
|
||||||
- system.workspace.service.view_all
|
|
||||||
- system.workspace.team.view_all
|
|
||||||
- system.dashboard.run_view.view
|
|
||||||
team:
|
team:
|
||||||
- name: team admin
|
- name: team admin
|
||||||
value: team_admin
|
value: team_admin
|
||||||
permits:
|
permits:
|
||||||
- team.application.application.manager
|
- team.consumer.application.manager
|
||||||
- team.application.authorization.manager
|
- team.consumer.authorization.manager
|
||||||
- team.application.authorization.view
|
- team.consumer.authorization.view
|
||||||
- team.application.subscription.manager
|
- team.consumer.subscription.manager_subscribed_services
|
||||||
- team.application.subscription.view
|
- team.consumer.subscription.subscribe
|
||||||
- team.service.api_doc.view
|
- team.consumer.subscription.view_subscribed_service
|
||||||
|
- team.service.api.manager
|
||||||
|
- team.service.api.view
|
||||||
- team.service.api_doc.manager
|
- team.service.api_doc.manager
|
||||||
- team.service.router.manager
|
- team.service.api_doc.view
|
||||||
- team.service.router.view
|
|
||||||
- team.service.release.manager
|
- team.service.release.manager
|
||||||
- team.service.release.view
|
- team.service.release.view
|
||||||
- team.service.service.manager
|
- team.service.service.manager
|
||||||
|
- team.service.service_intro.manager
|
||||||
|
- team.service.service_intro.view
|
||||||
- team.service.subscription.manager
|
- team.service.subscription.manager
|
||||||
- team.service.subscription.view
|
- team.service.subscription.view
|
||||||
- team.service.upstream.manager
|
- team.service.upstream.manager
|
||||||
- team.service.upstream.view
|
- team.service.upstream.view
|
||||||
|
- team.team.consumer.manager
|
||||||
|
- team.team.consumer.view
|
||||||
- team.team.member.manager
|
- team.team.member.manager
|
||||||
- team.team.member.view
|
- team.team.member.view
|
||||||
|
- team.team.service.manager
|
||||||
|
- team.team.service.view
|
||||||
- team.team.team.manager
|
- team.team.team.manager
|
||||||
- team.team.team.view
|
- team.team.team.view
|
||||||
supper: true
|
supper: true
|
||||||
- name: service admin
|
- name: service admin
|
||||||
value: service_admin
|
value: service_admin
|
||||||
permits:
|
permits:
|
||||||
- team.service.service.manager
|
- team.service.api.manager
|
||||||
- team.service.upstream.manager
|
- team.service.api.view
|
||||||
- team.service.upstream.view
|
|
||||||
- team.service.api_doc.view
|
|
||||||
- team.service.api_doc.manager
|
- team.service.api_doc.manager
|
||||||
- team.service.router.manager
|
- team.service.api_doc.view
|
||||||
- team.service.router.view
|
|
||||||
- team.service.subscription.manager
|
|
||||||
- team.service.subscription.view
|
|
||||||
- team.service.release.manager
|
- team.service.release.manager
|
||||||
- team.service.release.view
|
- team.service.release.view
|
||||||
|
- team.service.service.manager
|
||||||
|
- team.service.service_intro.manager
|
||||||
|
- team.service.service_intro.view
|
||||||
|
- team.service.subscription.manager
|
||||||
|
- team.service.subscription.view
|
||||||
|
- team.service.upstream.manager
|
||||||
|
- team.service.upstream.view
|
||||||
|
- team.team.consumer.view
|
||||||
- team.team.member.view
|
- team.team.member.view
|
||||||
|
- team.team.service.manager
|
||||||
|
- team.team.service.view
|
||||||
|
- team.team.team.view
|
||||||
- name: service developer
|
- name: service developer
|
||||||
value: service_developer
|
value: service_developer
|
||||||
permits:
|
permits:
|
||||||
- team.service.upstream.manager
|
- team.service.api.manager
|
||||||
- team.service.upstream.view
|
- team.service.api.view
|
||||||
- team.service.api_doc.view
|
|
||||||
- team.service.api_doc.manager
|
- team.service.api_doc.manager
|
||||||
- team.service.router.manager
|
- team.service.api_doc.view
|
||||||
- team.service.router.view
|
|
||||||
- team.service.release.manager
|
- team.service.release.manager
|
||||||
- team.service.release.view
|
- team.service.release.view
|
||||||
- team.team.member.view
|
- team.service.service.manager
|
||||||
- name: application admin
|
- team.service.service_intro.manager
|
||||||
value: application_admin
|
- team.service.service_intro.view
|
||||||
permits:
|
- team.service.subscription.manager
|
||||||
- team.application.application.manager
|
|
||||||
- team.application.authorization.manager
|
|
||||||
- team.application.authorization.view
|
|
||||||
- team.application.subscription.manager
|
|
||||||
- team.application.subscription.view
|
|
||||||
- team.team.member.view
|
|
||||||
- name: application developer
|
|
||||||
value: application_developer
|
|
||||||
permits:
|
|
||||||
- team.application.authorization.view
|
|
||||||
- team.application.subscription.manager
|
|
||||||
- team.application.subscription.view
|
|
||||||
- team.team.member.view
|
|
||||||
default: true
|
|
||||||
- name: guest
|
|
||||||
value: guest
|
|
||||||
permits:
|
|
||||||
- team.application.authorization.view
|
|
||||||
- team.application.subscription.view
|
|
||||||
- team.service.router.view
|
|
||||||
- team.service.release.view
|
|
||||||
- team.service.subscription.view
|
- team.service.subscription.view
|
||||||
|
- team.service.upstream.manager
|
||||||
- team.service.upstream.view
|
- team.service.upstream.view
|
||||||
|
- team.team.consumer.view
|
||||||
- team.team.member.view
|
- team.team.member.view
|
||||||
- team.team.team.view
|
- team.team.service.view
|
||||||
|
- team.team.team.view
|
||||||
|
- name: consumer admin
|
||||||
|
value: consumer_admin
|
||||||
|
permits:
|
||||||
|
- team.consumer.application.manager
|
||||||
|
- team.consumer.authorization.manager
|
||||||
|
- team.consumer.authorization.view
|
||||||
|
- team.consumer.subscription.manager_subscribed_services
|
||||||
|
- team.consumer.subscription.subscribe
|
||||||
|
- team.consumer.subscription.view_subscribed_service
|
||||||
|
- team.team.consumer.manager
|
||||||
|
- team.team.consumer.view
|
||||||
|
- team.team.member.view
|
||||||
|
- team.team.service.view
|
||||||
|
- team.team.team.view
|
||||||
|
- name: consumer developer
|
||||||
|
value: consumer_developer
|
||||||
|
permits:
|
||||||
|
- team.consumer.application.manager
|
||||||
|
- team.consumer.authorization.manager
|
||||||
|
- team.consumer.authorization.view
|
||||||
|
- team.consumer.subscription.subscribe
|
||||||
|
- team.consumer.subscription.view_subscribed_service
|
||||||
|
- team.team.consumer.view
|
||||||
|
- team.team.member.view
|
||||||
|
- team.team.service.view
|
||||||
|
- team.team.team.view
|
||||||
|
default: true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"ai provider": "AI Provider",
|
"ai provider": "AI Provider",
|
||||||
"api market": "API Market",
|
"api market": "API Portal",
|
||||||
"api doc": "API Documentation",
|
"api doc": "API Documentation",
|
||||||
"application": "Application",
|
"application": "Application",
|
||||||
"application admin": "Application Administrator",
|
"application admin": "Application Administrator",
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"ssl certificate": "SSL Certificate",
|
"ssl certificate": "SSL Certificate",
|
||||||
"subscription management": "Subscription Management",
|
"subscription management": "Subscription Management",
|
||||||
"subscription service": "Subscription Service",
|
"subscription service": "Subscription Service",
|
||||||
"supper admin": "Super Administrator",
|
"super admin": "Super Administrator",
|
||||||
"system settings": "System Settings",
|
"system settings": "System Settings",
|
||||||
"team": "Team",
|
"team": "Team",
|
||||||
"team admin": "Team Administrator",
|
"team admin": "Team Administrator",
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"ssl certificate": "SSL証明書",
|
"ssl certificate": "SSL証明書",
|
||||||
"subscription management": "サブスクリプション管理",
|
"subscription management": "サブスクリプション管理",
|
||||||
"subscription service": "サブスクリプションサービス",
|
"subscription service": "サブスクリプションサービス",
|
||||||
"supper admin": "スーパ管理者",
|
"super admin": "スーパ管理者",
|
||||||
"system settings": "システム設定",
|
"system settings": "システム設定",
|
||||||
"team": "チーム",
|
"team": "チーム",
|
||||||
"team admin": "チーム管理者",
|
"team admin": "チーム管理者",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"ai provider": "AI供应商",
|
"ai provider": "AI供应商",
|
||||||
"api market": "API市场",
|
"api market": "API门户",
|
||||||
"api doc": "API文档",
|
"api doc": "API文档",
|
||||||
"application": "应用",
|
"application": "应用",
|
||||||
"application admin": "应用管理员",
|
"application admin": "应用管理员",
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"ssl certificate": "SSL证书",
|
"ssl certificate": "SSL证书",
|
||||||
"subscription management": "订阅方管理",
|
"subscription management": "订阅方管理",
|
||||||
"subscription service": "订阅服务",
|
"subscription service": "订阅服务",
|
||||||
"supper admin": "超级管理员",
|
"super admin": "超级管理员",
|
||||||
"system settings": "系统设置",
|
"system settings": "系统设置",
|
||||||
"team": "团队",
|
"team": "团队",
|
||||||
"team admin": "团队管理员",
|
"team admin": "团队管理员",
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"ssl certificate": "SSL證書",
|
"ssl certificate": "SSL證書",
|
||||||
"subscription management": "訂閱方管理",
|
"subscription management": "訂閱方管理",
|
||||||
"subscription service": "訂閱服務",
|
"subscription service": "訂閱服務",
|
||||||
"supper admin": "超級管理員",
|
"super admin": "超級管理員",
|
||||||
"system settings": "系統設置",
|
"system settings": "系統設置",
|
||||||
"team": "團隊",
|
"team": "團隊",
|
||||||
"team admin": "團隊管理員",
|
"team admin": "團隊管理員",
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ func (i *imlServiceService) SearchPublicServices(ctx context.Context, keyword st
|
|||||||
func (i *imlServiceService) ServiceCountByTeam(ctx context.Context, teamId ...string) (map[string]int64, error) {
|
func (i *imlServiceService) ServiceCountByTeam(ctx context.Context, teamId ...string) (map[string]int64, error) {
|
||||||
w := map[string]interface{}{
|
w := map[string]interface{}{
|
||||||
"as_server": true,
|
"as_server": true,
|
||||||
|
"is_delete": false,
|
||||||
}
|
}
|
||||||
if len(teamId) > 0 {
|
if len(teamId) > 0 {
|
||||||
w["team"] = teamId
|
w["team"] = teamId
|
||||||
@@ -77,7 +78,8 @@ func (i *imlServiceService) ServiceCountByTeam(ctx context.Context, teamId ...st
|
|||||||
|
|
||||||
func (i *imlServiceService) AppCountByTeam(ctx context.Context, teamId ...string) (map[string]int64, error) {
|
func (i *imlServiceService) AppCountByTeam(ctx context.Context, teamId ...string) (map[string]int64, error) {
|
||||||
w := map[string]interface{}{
|
w := map[string]interface{}{
|
||||||
"as_app": true,
|
"as_app": true,
|
||||||
|
"is_delete": false,
|
||||||
}
|
}
|
||||||
if len(teamId) > 0 {
|
if len(teamId) > 0 {
|
||||||
w["team"] = teamId
|
w["team"] = teamId
|
||||||
|
|||||||
Reference in New Issue
Block a user