diff --git a/internal/domain/provider.go b/internal/domain/provider.go index 49bf2cee..350b3926 100644 --- a/internal/domain/provider.go +++ b/internal/domain/provider.go @@ -9,19 +9,30 @@ type AccessProviderType string NOTICE: If you add new constant, please keep ASCII order. */ const ( + AccessProviderType1Panel = AccessProviderType("1panel") // 1Panel(预留) AccessProviderTypeACMEHttpReq = AccessProviderType("acmehttpreq") + AccessProviderTypeAkamai = AccessProviderType("akamai") // Akamai(预留) AccessProviderTypeAliyun = AccessProviderType("aliyun") AccessProviderTypeAWS = AccessProviderType("aws") AccessProviderTypeAzure = AccessProviderType("azure") AccessProviderTypeBaiduCloud = AccessProviderType("baiducloud") + AccessProviderTypeBaishan = AccessProviderType("baishan") // 白山云(预留) AccessProviderTypeBaotaPanel = AccessProviderType("baotapanel") AccessProviderTypeBytePlus = AccessProviderType("byteplus") + AccessProviderTypeCacheFly = AccessProviderType("cachefly") // CacheFly(预留) + AccessProviderTypeCdnfly = AccessProviderType("cdnfly") // Cdnly(预留) AccessProviderTypeCloudflare = AccessProviderType("cloudflare") AccessProviderTypeClouDNS = AccessProviderType("cloudns") + AccessProviderTypeCMCCCloud = AccessProviderType("cmcccloud") // 移动云(预留) + AccessProviderTypeCTCCCloud = AccessProviderType("ctcccloud") // 联通云(预留) + AccessProviderTypeCUCCCloud = AccessProviderType("cucccloud") // 天翼云(预留) AccessProviderTypeDogeCloud = AccessProviderType("dogecloud") AccessProviderTypeEdgio = AccessProviderType("edgio") + AccessProviderTypeFastly = AccessProviderType("fastly") // Fastly(预留) AccessProviderTypeGname = AccessProviderType("gname") + AccessProviderTypeGcore = AccessProviderType("gcore") // Gcore(预留) AccessProviderTypeGoDaddy = AccessProviderType("godaddy") + AccessProviderTypeGoEdge = AccessProviderType("goedge") // GoEdge(预留) AccessProviderTypeHuaweiCloud = AccessProviderType("huaweicloud") AccessProviderTypeKubernetes = AccessProviderType("k8s") AccessProviderTypeLocal = AccessProviderType("local") @@ -31,6 +42,7 @@ const ( AccessProviderTypePowerDNS = AccessProviderType("powerdns") AccessProviderTypeQiniu = AccessProviderType("qiniu") AccessProviderTypeRainYun = AccessProviderType("rainyun") + AccessProviderTypeSafeLine = AccessProviderType("safeline") // 雷池(预留) AccessProviderTypeSSH = AccessProviderType("ssh") AccessProviderTypeTencentCloud = AccessProviderType("tencentcloud") AccessProviderTypeUCloud = AccessProviderType("ucloud") diff --git a/migrations/1739453752_updated_access.go b/migrations/1739453752_updated_access.go new file mode 100644 index 00000000..31dd607a --- /dev/null +++ b/migrations/1739453752_updated_access.go @@ -0,0 +1,161 @@ +package migrations + +import ( + "encoding/json" + + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +func init() { + m.Register(func(app core.App) error { + collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e") + if err != nil { + return err + } + + // update collection data + if err := json.Unmarshal([]byte(`{ + "indexes": [ + "CREATE INDEX `+"`"+`idx_wkoST0j`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`name`+"`"+`)", + "CREATE INDEX `+"`"+`idx_frh0JT1Aqx`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`provider`+"`"+`)" + ] + }`), &collection); err != nil { + return err + } + + // update field + if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ + "hidden": false, + "id": "hwy7m03o", + "maxSelect": 1, + "name": "provider", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "1panel", + "acmehttpreq", + "akamai", + "aliyun", + "aws", + "azure", + "baiducloud", + "baishan", + "baotapanel", + "byteplus", + "cachefly", + "cdnfly", + "cloudflare", + "cloudns", + "cmcccloud", + "ctcccloud", + "cucccloud", + "dogecloud", + "edgio", + "fastly", + "gname", + "gcore", + "godaddy", + "goedge", + "huaweicloud", + "k8s", + "local", + "namedotcom", + "namesilo", + "ns1", + "powerdns", + "qiniu", + "rainyun", + "safeline", + "ssh", + "tencentcloud", + "ucloud", + "volcengine", + "webhook", + "westcn" + ] + }`)); err != nil { + return err + } + + // remove field + collection.Fields.RemoveById("hsxcnlvd") + + return app.Save(collection) + }, func(app core.App) error { + collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e") + if err != nil { + return err + } + + // update collection data + if err := json.Unmarshal([]byte(`{ + "indexes": [ + "CREATE INDEX `+"`"+`idx_wkoST0j`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`name`+"`"+`)" + ] + }`), &collection); err != nil { + return err + } + + // update field + if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ + "hidden": false, + "id": "hwy7m03o", + "maxSelect": 1, + "name": "provider", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "acmehttpreq", + "aliyun", + "aws", + "azure", + "baiducloud", + "baotapanel", + "byteplus", + "cloudflare", + "dogecloud", + "godaddy", + "huaweicloud", + "k8s", + "local", + "namedotcom", + "namesilo", + "powerdns", + "qiniu", + "ssh", + "tencentcloud", + "ucloud", + "volcengine", + "webhook" + ] + }`)); err != nil { + return err + } + + // add field + if err := collection.Fields.AddMarshaledJSONAt(4, []byte(`{ + "hidden": false, + "id": "hsxcnlvd", + "maxSelect": 1, + "name": "usage", + "presentable": false, + "required": false, + "system": false, + "type": "select", + "values": [ + "apply", + "deploy", + "all" + ] + }`)); err != nil { + return err + } + + return app.Save(collection) + }) +} diff --git a/ui/src/components/access/AccessEditModal.tsx b/ui/src/components/access/AccessEditModal.tsx index 067dc339..66154866 100644 --- a/ui/src/components/access/AccessEditModal.tsx +++ b/ui/src/components/access/AccessEditModal.tsx @@ -4,7 +4,6 @@ import { useControllableValue } from "ahooks"; import { Modal, notification } from "antd"; import { type AccessModel } from "@/domain/access"; -import { accessProvidersMap } from "@/domain/provider"; import { useTriggerElement, useZustandShallowSelector } from "@/hooks"; import { useAccessesStore } from "@/stores/access"; import { getErrMsg } from "@/utils/error"; @@ -50,7 +49,6 @@ const AccessEditModal = ({ data, loading, trigger, preset, afterSubmit, ...props try { let values: AccessModel = formRef.current!.getFieldsValue(); - values.usage = accessProvidersMap.get(values.provider)!.usage; if (preset === "add") { if (data?.id) { diff --git a/ui/src/components/provider/DeployProviderPicker.tsx b/ui/src/components/provider/DeployProviderPicker.tsx index 83c0a011..00356780 100644 --- a/ui/src/components/provider/DeployProviderPicker.tsx +++ b/ui/src/components/provider/DeployProviderPicker.tsx @@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next"; import { Avatar, Card, Col, Empty, Flex, Input, type InputRef, Row, Tabs, Tooltip, Typography } from "antd"; import Show from "@/components/Show"; -import { DEPLOY_CATEGORIES, type DeployProvider, deployProvidersMap } from "@/domain/provider"; +import { DEPLOY_CATEGORIES, deployProvidersMap } from "@/domain/provider"; export type DeployProviderPickerProps = { className?: string; diff --git a/ui/src/domain/access.ts b/ui/src/domain/access.ts index ed7f8559..cf6b1055 100644 --- a/ui/src/domain/access.ts +++ b/ui/src/domain/access.ts @@ -1,5 +1,3 @@ -import { type AccessUsageType } from "./provider"; - export interface AccessModel extends BaseModel { name: string; provider: string; @@ -36,7 +34,6 @@ export interface AccessModel extends BaseModel { | AccessConfigForWebhook | AccessConfigForWestcn ); - usage: AccessUsageType; } // #region AccessConfig diff --git a/ui/src/i18n/locales/en/nls.provider.json b/ui/src/i18n/locales/en/nls.provider.json index e3c84072..9194e4a2 100644 --- a/ui/src/i18n/locales/en/nls.provider.json +++ b/ui/src/i18n/locales/en/nls.provider.json @@ -1,4 +1,5 @@ { + "provider.1panel": "1Panel", "provider.acmehttpreq": "Http Request (ACME Proxy)", "provider.aliyun": "Alibaba Cloud", "provider.aliyun.alb": "Alibaba Cloud - ALB (Application Load Balancer)", @@ -12,6 +13,8 @@ "provider.aliyun.nlb": "Alibaba Cloud - NLB (Network Load Balancer)", "provider.aliyun.oss": "Alibaba Cloud - OSS (Object Storage Service)", "provider.aliyun.waf": "Alibaba Cloud - WAF (Web Application Firewall)", + "provider.akamai": "Akamai", + "provider.akamai.cdn": "Akamai - CDN (Content Delivery Network)", "provider.aws": "AWS", "provider.aws.cloudfront": "AWS - CloudFront", "provider.aws.route53": "AWS - Route53", @@ -19,18 +22,29 @@ "provider.azure.dns": "Azure - DNS", "provider.baiducloud": "Baidu Cloud", "provider.baiducloud.cdn": "Baidu Cloud - CDN (Content Delivery Network)", + "provider.baishan": "Baishan", + "provider.baishan.cdn": "Baishan - CDN (Content Delivery Network)", "provider.baotapanel": "BaoTa Panel", "provider.baotapanel.site": "BaoTa Panel - Site", "provider.byteplus": "BytePlus", "provider.byteplus.cdn": "BytePlus - CDN (Content Delivery Network)", + "provider.cachefly": "Cachefly", + "provider.cdnfly": "Cdnfly", "provider.cloudflare": "Cloudflare", "provider.cloudns": "ClouDNS", + "provider.cmcccloud": "China Mobile Cloud (ECloud)", + "provider.ctcccloud": "China Telecom Cloud (State Cloud)", + "provider.cucccloud": "China Unicom Cloud", "provider.dogecloud": "Doge Cloud", "provider.dogecloud.cdn": "Doge Cloud - CDN (Content Delivery Network)", "provider.edgio": "Edgio", "provider.edgio.applications": "Edgio - Applications", + "provider.fastly": "Fastly", + "provider.gcore": "Gcore", "provider.gname": "GNAME", "provider.godaddy": "GoDaddy", + "provider.goedge": "GoEdge", + "provider.goedge.cdn": "GoEdge - CDN (Content Delivery Network)", "provider.huaweicloud": "Huawei Cloud", "provider.huaweicloud.cdn": "Huawei Cloud - CDN (Content Delivery Network)", "provider.huaweicloud.dns": "Huawei Cloud - DNS (Domain Name Service)", @@ -46,6 +60,7 @@ "provider.qiniu.cdn": "Qiniu - CDN (Content Delivery Network)", "provider.qiniu.pili": "Qiniu - Pili", "provider.rainyun": "Rain Yun", + "provider.safeline": "SafeLine", "provider.ssh": "SSH deployment", "provider.tencentcloud": "Tencent Cloud", "provider.tencentcloud.cdn": "Tencent Cloud - CDN (Content Delivery Network)", diff --git a/ui/src/i18n/locales/zh/nls.provider.json b/ui/src/i18n/locales/zh/nls.provider.json index ea0bb251..744cfb97 100644 --- a/ui/src/i18n/locales/zh/nls.provider.json +++ b/ui/src/i18n/locales/zh/nls.provider.json @@ -1,4 +1,5 @@ { + "provider.1panel": "1Panel", "provider.acmehttpreq": "Http Request (ACME Proxy)", "provider.aliyun": "阿里云", "provider.aliyun.alb": "阿里云 - 应用型负载均衡 ALB", @@ -12,6 +13,8 @@ "provider.aliyun.nlb": "阿里云 - 网络型负载均衡 NLB", "provider.aliyun.oss": "阿里云 - 对象存储 OSS", "provider.aliyun.waf": "阿里云 - Web 应用防火墙 WAF", + "provider.akamai": "Akamai", + "provider.akamai.cdn": "Akamai - 内容分发网络 CDN", "provider.aws": "AWS", "provider.aws.cloudfront": "AWS - CloudFront", "provider.aws.route53": "AWS - Route53", @@ -19,18 +22,29 @@ "provider.azure.dns": "Azure - DNS", "provider.baiducloud": "百度智能云", "provider.baiducloud.cdn": "百度智能云 - 内容分发网络 CDN", + "provider.baishan": "白山云", + "provider.baishan.cdn": "白山云 - 内容分发网络 CDN", "provider.baotapanel": "宝塔面板", "provider.baotapanel.site": "宝塔面板 - 网站", "provider.byteplus": "BytePlus", "provider.byteplus.cdn": "BytePlus - 内容分发网络 CDN", + "provider.cachefly": "Cachefly", + "provider.cdnfly": "Cdnfly", "provider.cloudflare": "Cloudflare", "provider.cloudns": "ClouDNS", + "provider.cmcccloud": "移动云", + "provider.ctcccloud": "联通云", + "provider.cucccloud": "天翼云", "provider.dogecloud": "多吉云", "provider.dogecloud.cdn": "多吉云 - 内容分发网络 CDN", "provider.edgio": "Edgio", "provider.edgio.applications": "Edgio - Applications", + "provider.fastly": "Fastly", + "provider.gcore": "Gcore", "provider.gname": "GNAME", "provider.godaddy": "GoDaddy", + "provider.goedge": "GoEdge", + "provider.goedge.cdn": "GoEdge - 内容分发网络 CDN", "provider.huaweicloud": "华为云", "provider.huaweicloud.cdn": "华为云 - 内容分发网络 CDN", "provider.huaweicloud.dns": "华为云 - 云解析 DNS", @@ -46,6 +60,7 @@ "provider.qiniu.cdn": "七牛云 - 内容分发网络 CDN", "provider.qiniu.pili": "七牛云 - 视频直播 Pili", "provider.rainyun": "雨云", + "provider.safeline": "雷池", "provider.ssh": "SSH 部署", "provider.tencentcloud": "腾讯云", "provider.tencentcloud.cdn": "腾讯云 - 内容分发网络 CDN", diff --git a/ui/src/i18n/locales/zh/nls.workflow.runs.json b/ui/src/i18n/locales/zh/nls.workflow.runs.json index 4a57e4ca..e3928f24 100644 --- a/ui/src/i18n/locales/zh/nls.workflow.runs.json +++ b/ui/src/i18n/locales/zh/nls.workflow.runs.json @@ -3,7 +3,7 @@ "workflow_run.action.cancel": "取消执行", "workflow_run.action.cancel.confirm": "确定要取消此执行吗?请注意此操作仅中止流程,但不会回滚已执行的节点。", "workflow_run.action.delete": "删除执行", - "workflow_run.action.delete.confirm": "确定要删除此执行吗?请注意此操作仅清除日志历史,但不会影响各节点的执行结果和签发的证书。", + "workflow_run.action.delete.confirm": "确定要删除此执行吗?请注意此操作仅清除日志历史,但不会影响签发的证书。", "workflow_run.props.id": "ID", "workflow_run.props.status": "状态",