diff --git a/internal/domain/access.go b/internal/domain/access.go
index e6d94764..e9df61d2 100644
--- a/internal/domain/access.go
+++ b/internal/domain/access.go
@@ -12,7 +12,6 @@ type Access struct {
Name string `json:"name" db:"name"`
Provider string `json:"provider" db:"provider"`
Config string `json:"config" db:"config"`
- Usage string `json:"usage" db:"usage"`
DeletedAt *time.Time `json:"deleted" db:"deleted"`
}
diff --git a/internal/repository/access.go b/internal/repository/access.go
index a8370fd8..0bfeaea9 100644
--- a/internal/repository/access.go
+++ b/internal/repository/access.go
@@ -48,7 +48,6 @@ func (r *AccessRepository) castRecordToModel(record *core.Record) (*domain.Acces
Name: record.GetString("name"),
Provider: record.GetString("provider"),
Config: record.GetString("config"),
- Usage: record.GetString("usage"),
}
return access, nil
}
diff --git a/ui/src/components/provider/AccessProviderSelect.tsx b/ui/src/components/provider/AccessProviderSelect.tsx
index ffba5c8a..04b859ac 100644
--- a/ui/src/components/provider/AccessProviderSelect.tsx
+++ b/ui/src/components/provider/AccessProviderSelect.tsx
@@ -29,22 +29,16 @@ const AccessProviderSelect = (props: AccessProviderSelectProps) => {
- {provider?.usage === ACCESS_USAGES.APPLY && (
+ {provider?.usages?.includes(ACCESS_USAGES.APPLY) && (
<>
{t("access.props.provider.usage.dns")}
>
)}
- {provider?.usage === ACCESS_USAGES.DEPLOY && (
+ {provider?.usages?.includes(ACCESS_USAGES.DEPLOY) && (
<>
{t("access.props.provider.usage.host")}
>
)}
- {provider?.usage === ACCESS_USAGES.ALL && (
- <>
- {t("access.props.provider.usage.dns")}
- {t("access.props.provider.usage.host")}
- >
- )}
);
diff --git a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx
index bfb5f420..5a0472dd 100644
--- a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx
+++ b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx
@@ -279,7 +279,7 @@ const ApplyNodeConfigForm = forwardRef {
const provider = accessProvidersMap.get(record.provider);
- if (ACCESS_USAGES.ALL === provider?.usage || ACCESS_USAGES.APPLY === provider?.usage) {
+ if (provider?.usages?.includes(ACCESS_USAGES.APPLY)) {
formInst.setFieldValue("providerAccessId", record.id);
}
}}
@@ -292,7 +292,7 @@ const ApplyNodeConfigForm = forwardRef {
const provider = accessProvidersMap.get(record.provider);
- return ACCESS_USAGES.ALL === provider?.usage || ACCESS_USAGES.APPLY === provider?.usage;
+ return !!provider?.usages?.includes(ACCESS_USAGES.APPLY);
}}
onChange={handleProviderAccessSelect}
/>
diff --git a/ui/src/components/workflow/node/DeployNodeConfigForm.tsx b/ui/src/components/workflow/node/DeployNodeConfigForm.tsx
index c5518057..78d1b99d 100644
--- a/ui/src/components/workflow/node/DeployNodeConfigForm.tsx
+++ b/ui/src/components/workflow/node/DeployNodeConfigForm.tsx
@@ -301,7 +301,7 @@ const DeployNodeConfigForm = forwardRef {
const provider = accessProvidersMap.get(record.provider);
- if (ACCESS_USAGES.ALL === provider?.usage || ACCESS_USAGES.DEPLOY === provider?.usage) {
+ if (provider?.usages?.includes(ACCESS_USAGES.DEPLOY)) {
formInst.setFieldValue("providerAccessId", record.id);
}
}}
@@ -318,7 +318,7 @@ const DeployNodeConfigForm = forwardRef
diff --git a/ui/src/domain/provider.ts b/ui/src/domain/provider.ts
index 7a6df3f2..b4504694 100644
--- a/ui/src/domain/provider.ts
+++ b/ui/src/domain/provider.ts
@@ -37,7 +37,6 @@ export const ACCESS_PROVIDERS = Object.freeze({
export type AccessProviderType = (typeof ACCESS_PROVIDERS)[keyof typeof ACCESS_PROVIDERS];
export const ACCESS_USAGES = Object.freeze({
- ALL: "all",
APPLY: "apply",
DEPLOY: "deploy",
} as const);
@@ -48,7 +47,7 @@ export type AccessProvider = {
type: AccessProviderType;
name: string;
icon: string;
- usage: AccessUsageType;
+ usages: AccessUsageType[];
};
export const accessProvidersMap: Map = new Map(
@@ -57,41 +56,41 @@ export const accessProvidersMap: Map [
- type,
+ [ACCESS_PROVIDERS.LOCAL, "provider.local", "/imgs/providers/local.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.SSH, "provider.ssh", "/imgs/providers/ssh.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.WEBHOOK, "provider.webhook", "/imgs/providers/webhook.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.KUBERNETES, "provider.kubernetes", "/imgs/providers/kubernetes.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.ALIYUN, "provider.aliyun", "/imgs/providers/aliyun.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.TENCENTCLOUD, "provider.tencentcloud", "/imgs/providers/tencentcloud.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.HUAWEICLOUD, "provider.huaweicloud", "/imgs/providers/huaweicloud.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.VOLCENGINE, "provider.volcengine", "/imgs/providers/volcengine.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.AWS, "provider.aws", "/imgs/providers/aws.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.BAIDUCLOUD, "provider.baiducloud", "/imgs/providers/baiducloud.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.QINIU, "provider.qiniu", "/imgs/providers/qiniu.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.DOGECLOUD, "provider.dogecloud", "/imgs/providers/dogecloud.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.BYTEPLUS, "provider.byteplus", "/imgs/providers/byteplus.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.UCLOUD, "provider.ucloud", "/imgs/providers/ucloud.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.BAOTAPANEL, "provider.baotapanel", "/imgs/providers/baotapanel.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.EDGIO, "provider.edgio", "/imgs/providers/edgio.svg", [ACCESS_USAGES.DEPLOY]],
+ [ACCESS_PROVIDERS.AZURE, "provider.azure", "/imgs/providers/azure.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.CLOUDFLARE, "provider.cloudflare", "/imgs/providers/cloudflare.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.CLOUDNS, "provider.cloudns", "/imgs/providers/cloudns.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.GNAME, "provider.gname", "/imgs/providers/gname.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.GODADDY, "provider.godaddy", "/imgs/providers/godaddy.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.NAMEDOTCOM, "provider.namedotcom", "/imgs/providers/namedotcom.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.NAMESILO, "provider.namesilo", "/imgs/providers/namesilo.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.NS1, "provider.ns1", "/imgs/providers/ns1.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.RAINYUN, "provider.rainyun", "/imgs/providers/rainyun.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.WESTCN, "provider.westcn", "/imgs/providers/westcn.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.POWERDNS, "provider.powerdns", "/imgs/providers/powerdns.svg", [ACCESS_USAGES.APPLY]],
+ [ACCESS_PROVIDERS.ACMEHTTPREQ, "provider.acmehttpreq", "/imgs/providers/acmehttpreq.svg", [ACCESS_USAGES.APPLY]],
+ ].map((e) => [
+ e[0] as string,
{
- type: type as AccessProviderType,
- name: name,
- icon: icon,
- usage: usage as AccessUsageType,
+ type: e[0] as AccessProviderType,
+ name: e[1] as string,
+ icon: e[2] as string,
+ usages: e[3] as AccessUsageType[],
},
])
);