From ecff16c89de4bafa04ee3f948d7cb3f183d163a7 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 3 Apr 2025 21:03:43 +0800 Subject: [PATCH 01/38] chore: improve error messages --- .../baiducloud/internal/lego.go | 4 +- .../lego-providers/cmcccloud/internal/lego.go | 55 +++++++++++-------- .../lego-providers/dnsla/internal/lego.go | 4 +- .../lego-providers/dynv6/internal/lego.go | 4 +- .../lego-providers/gname/internal/lego.go | 4 +- .../lego-providers/jdcloud/internal/lego.go | 4 +- 6 files changed, 43 insertions(+), 32 deletions(-) diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/baiducloud/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/baiducloud/internal/lego.go index da157bd0..68d59d47 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/baiducloud/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/baiducloud/internal/lego.go @@ -89,7 +89,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("baiducloud: %w", err) + return fmt.Errorf("baiducloud: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) @@ -109,7 +109,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("baiducloud: %w", err) + return fmt.Errorf("baiducloud: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/cmcccloud/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/cmcccloud/internal/lego.go index 0329d18d..6bccb1dc 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/cmcccloud/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/cmcccloud/internal/lego.go @@ -93,7 +93,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { zoneName, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("cmccecloud: %w", err) + return fmt.Errorf("cmccecloud: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, zoneName) @@ -108,33 +108,33 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { } if record == nil { - // add new record resp, err := d.client.CreateRecordOpenapi(&model.CreateRecordOpenapiRequest{ CreateRecordOpenapiBody: &model.CreateRecordOpenapiBody{ LineId: "0", // 默认线路 Rr: subDomain, DomainName: readDomain, - Description: "from certimate", + Description: "certimate acme", Type: model.CreateRecordOpenapiBodyTypeEnumTxt, Value: info.Value, Ttl: &d.config.TTL, }, }) if err != nil { - return fmt.Errorf("lego: %w", err) + return fmt.Errorf("cmccecloud: %w", err) } + if resp.State != model.CreateRecordOpenapiResponseStateEnumOk { - return fmt.Errorf("lego: create record failed, response state: %s, message: %s, code: %s", resp.State, resp.ErrorMessage, resp.ErrorCode) + return fmt.Errorf("cmccecloud: create record failed, response state: %s, message: %s, code: %s", resp.State, resp.ErrorMessage, resp.ErrorCode) } + return nil } else { - // update record resp, err := d.client.ModifyRecordOpenapi(&model.ModifyRecordOpenapiRequest{ ModifyRecordOpenapiBody: &model.ModifyRecordOpenapiBody{ RecordId: record.RecordId, Rr: subDomain, DomainName: readDomain, - Description: "from certmate", + Description: "certmate acme", LineId: "0", Type: model.ModifyRecordOpenapiBodyTypeEnumTxt, Value: info.Value, @@ -142,44 +142,52 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { }, }) if err != nil { - return fmt.Errorf("lego: %w", err) + return fmt.Errorf("cmccecloud: %w", err) } + if resp.State != model.ModifyRecordOpenapiResponseStateEnumOk { - return fmt.Errorf("lego: create record failed, response state: %s", resp.State) + return fmt.Errorf("cmccecloud: create record failed, response state: %s", resp.State) } + return nil } } func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error { challengeInfo := dns01.GetChallengeInfo(domain, keyAuth) + zoneName, err := dns01.FindZoneByFqdn(challengeInfo.FQDN) if err != nil { - return fmt.Errorf("cmccecloud: %w", err) + return fmt.Errorf("cmccecloud: could not find zone for domain %q: %w", domain, err) } + subDomain, err := dns01.ExtractSubDomain(challengeInfo.FQDN, zoneName) if err != nil { return fmt.Errorf("cmccecloud: %w", err) } + readDomain := strings.Trim(zoneName, ".") record, err := d.getDomainRecord(readDomain, subDomain) if err != nil { return err } + if record == nil { return nil + } else { + resp, err := d.client.DeleteRecordOpenapi(&model.DeleteRecordOpenapiRequest{ + DeleteRecordOpenapiBody: &model.DeleteRecordOpenapiBody{ + RecordIdList: []string{record.RecordId}, + }, + }) + if err != nil { + return fmt.Errorf("cmccecloud: %w", err) + } + if resp.State != model.DeleteRecordOpenapiResponseStateEnumOk { + return fmt.Errorf("cmccecloud: delete record failed, unexpected response state: %s", resp.State) + } } - resp, err := d.client.DeleteRecordOpenapi(&model.DeleteRecordOpenapiRequest{ - DeleteRecordOpenapiBody: &model.DeleteRecordOpenapiBody{ - RecordIdList: []string{record.RecordId}, - }, - }) - if err != nil { - return fmt.Errorf("lego: %w", err) - } - if resp.State != model.DeleteRecordOpenapiResponseStateEnumOk { - return fmt.Errorf("lego: delete record failed, response state: %s", resp.State) - } + return nil } @@ -205,8 +213,9 @@ func (d *DNSProvider) getDomainRecord(domain string, rr string) (*model.ListReco } if resp.State != model.ListRecordOpenapiResponseStateEnumOk { respStr, _ := json.Marshal(resp) - return nil, fmt.Errorf("request error. %s", string(respStr)) + return nil, fmt.Errorf("cmccecloud: request error: %s", string(respStr)) } + if resp.Body.Data != nil { for _, item := range *resp.Body.Data { if item.Rr == rr { @@ -214,9 +223,11 @@ func (d *DNSProvider) getDomainRecord(domain string, rr string) (*model.ListReco } } } + if resp.Body.TotalPages == nil || page >= *resp.Body.TotalPages { return nil, nil } + page++ } } diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go index 1b9603bd..249f6045 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go @@ -83,7 +83,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("dnsla: %w", err) + return fmt.Errorf("dnsla: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) @@ -103,7 +103,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("dnsla: %w", err) + return fmt.Errorf("dnsla: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dynv6/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dynv6/internal/lego.go index f83949a2..d833acd0 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dynv6/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dynv6/internal/lego.go @@ -76,7 +76,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("dynv6: %w", err) + return fmt.Errorf("dynv6: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) @@ -96,7 +96,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("dynv6: %w", err) + return fmt.Errorf("dynv6: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go index 3c9b1b13..b5df4207 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go @@ -82,7 +82,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("gname: %w", err) + return fmt.Errorf("gname: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) @@ -102,7 +102,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("gname: %w", err) + return fmt.Errorf("gname: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/jdcloud/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/jdcloud/internal/lego.go index d5b5277b..8c0e5ddf 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/jdcloud/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/jdcloud/internal/lego.go @@ -91,7 +91,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("jdcloud: %w", err) + return fmt.Errorf("jdcloud: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) @@ -111,7 +111,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error { authZone, err := dns01.FindZoneByFqdn(info.EffectiveFQDN) if err != nil { - return fmt.Errorf("jdcloud: %w", err) + return fmt.Errorf("jdcloud: could not find zone for domain %q: %w", domain, err) } subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) From 2899aa1b198002fcc25f4b17c2d166249deb9397 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 3 Apr 2025 21:12:21 +0800 Subject: [PATCH 02/38] feat: set placeholder values in preset scripts --- .../node/DeployNodeConfigFormLocalConfig.tsx | 16 ++++++++-------- .../node/DeployNodeConfigFormSSHConfig.tsx | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ui/src/components/workflow/node/DeployNodeConfigFormLocalConfig.tsx b/ui/src/components/workflow/node/DeployNodeConfigFormLocalConfig.tsx index 1ca2fe8c..cc8648c1 100644 --- a/ui/src/components/workflow/node/DeployNodeConfigFormLocalConfig.tsx +++ b/ui/src/components/workflow/node/DeployNodeConfigFormLocalConfig.tsx @@ -142,8 +142,8 @@ const DeployNodeConfigFormLocalConfig = ({ form: formInst, formName, disabled, i formInst.setFieldValue( "preCommand", `# 请将以下路径替换为实际值 -cp "${formInst.getFieldValue("certPath")}" "${formInst.getFieldValue("certPath")}.bak" 2>/dev/null || : -cp "${formInst.getFieldValue("keyPath")}" "${formInst.getFieldValue("keyPath")}.bak" 2>/dev/null || : +cp "${formInst.getFieldValue("certPath") || ""}" "${formInst.getFieldValue("certPath") || ""}.bak" 2>/dev/null || : +cp "${formInst.getFieldValue("keyPath") || ""}" "${formInst.getFieldValue("keyPath") || ""}.bak" 2>/dev/null || : `.trim() ); } @@ -166,8 +166,8 @@ cp "${formInst.getFieldValue("keyPath")}" "${formInst.getFieldValue("keyPath")}. formInst.setFieldValue( "postCommand", `# 请将以下变量替换为实际值 -$pfxPath = "${formInst.getFieldValue("certPath")}" # PFX 文件路径 -$pfxPassword = "${formInst.getFieldValue("pfxPassword")}" # PFX 密码 +$pfxPath = "${formInst.getFieldValue("certPath") || ""}" # PFX 文件路径 +$pfxPassword = "${formInst.getFieldValue("pfxPassword") || ""}" # PFX 密码 $siteName = "" # IIS 网站名称 $domain = "" # 域名 $ipaddr = "" # 绑定 IP,“*”表示所有 IP 绑定 @@ -203,8 +203,8 @@ Remove-Item -Path "$pfxPath" -Force formInst.setFieldValue( "postCommand", `# 请将以下变量替换为实际值 -$pfxPath = "${formInst.getFieldValue("certPath")}" # PFX 文件路径 -$pfxPassword = "${formInst.getFieldValue("pfxPassword")}" # PFX 密码 +$pfxPath = "${formInst.getFieldValue("certPath") || ""}" # PFX 文件路径 +$pfxPassword = "${formInst.getFieldValue("pfxPassword") || ""}" # PFX 密码 $ipaddr = "" # 绑定 IP,“0.0.0.0”表示所有 IP 绑定,可填入域名。 $port = "" # 绑定端口 @@ -232,8 +232,8 @@ Remove-Item -Path "$pfxPath" -Force formInst.setFieldValue( "postCommand", `# 请将以下变量替换为实际值 -$pfxPath = "${formInst.getFieldValue("certPath")}" # PFX 文件路径 -$pfxPassword = "${formInst.getFieldValue("pfxPassword")}" # PFX 密码 +$pfxPath = "${formInst.getFieldValue("certPath") || ""}" # PFX 文件路径 +$pfxPassword = "${formInst.getFieldValue("pfxPassword") || ""}" # PFX 密码 # 导入证书到本地计算机的个人存储区 $cert = Import-PfxCertificate -FilePath "$pfxPath" -CertStoreLocation Cert:\\LocalMachine\\My -Password (ConvertTo-SecureString -String "$pfxPassword" -AsPlainText -Force) -Exportable diff --git a/ui/src/components/workflow/node/DeployNodeConfigFormSSHConfig.tsx b/ui/src/components/workflow/node/DeployNodeConfigFormSSHConfig.tsx index 65a7df7b..8d4619eb 100644 --- a/ui/src/components/workflow/node/DeployNodeConfigFormSSHConfig.tsx +++ b/ui/src/components/workflow/node/DeployNodeConfigFormSSHConfig.tsx @@ -134,8 +134,8 @@ const DeployNodeConfigFormSSHConfig = ({ form: formInst, formName, disabled, ini formInst.setFieldValue( "preCommand", `# 请将以下路径替换为实际值 -cp "${formInst.getFieldValue("certPath")}" "${formInst.getFieldValue("certPath")}.bak" 2>/dev/null || : -cp "${formInst.getFieldValue("keyPath")}" "${formInst.getFieldValue("keyPath")}.bak" 2>/dev/null || : +cp "${formInst.getFieldValue("certPath") || ""}" "${formInst.getFieldValue("certPath") || ""}.bak" 2>/dev/null || : +cp "${formInst.getFieldValue("keyPath") || ""}" "${formInst.getFieldValue("keyPath") || ""}.bak" 2>/dev/null || : `.trim() ); } From 56405eff6c7a4c3720f97cdebb75d95c1e7d9dff Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 22 Apr 2025 16:25:08 +0800 Subject: [PATCH 03/38] chore(deps): upgrade npm dependencies --- ui/package-lock.json | 1019 ++++++++++++++++++++++++++---------------- ui/package.json | 42 +- 2 files changed, 645 insertions(+), 416 deletions(-) diff --git a/ui/package-lock.json b/ui/package-lock.json index 90a18bbf..bf44f371 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -8,57 +8,57 @@ "name": "ui", "version": "0.0.0", "dependencies": { - "@ant-design/icons": "^5.6.1", - "@ant-design/pro-components": "^2.8.6", + "@ant-design/icons": "^6.0.0", + "@ant-design/pro-components": "^2.8.7", "ahooks": "^3.8.4", - "antd": "^5.24.4", - "antd-zod": "^6.0.1", + "antd": "^5.24.8", + "antd-zod": "^6.1.0", "clsx": "^2.1.1", - "cron-parser": "^5.0.6", + "cron-parser": "^5.1.1", "file-saver": "^2.0.5", - "i18next": "^24.2.3", - "i18next-browser-languagedetector": "^8.0.4", + "i18next": "^25.0.1", + "i18next-browser-languagedetector": "^8.0.5", "immer": "^10.1.1", - "lucide-react": "^0.483.0", + "lucide-react": "^0.503.0", "nanoid": "^5.1.5", - "pocketbase": "^0.25.2", + "pocketbase": "^0.26.0", "radash": "^12.1.0", "react": "^18.3.1", "react-copy-to-clipboard": "^5.1.0", "react-dom": "^18.3.1", "react-i18next": "^15.4.1", - "react-router-dom": "^7.4.0", + "react-router-dom": "^7.5.1", "tailwind-merge": "^2.6.0", - "zod": "^3.24.2", + "zod": "^3.24.3", "zustand": "^5.0.3" }, "devDependencies": { "@types/file-saver": "^2.0.7", "@types/fs-extra": "^11.0.4", - "@types/node": "^22.13.10", + "@types/node": "^22.14.1", "@types/react": "^18.3.12", "@types/react-copy-to-clipboard": "^5.0.7", "@types/react-dom": "^18.3.1", - "@typescript-eslint/eslint-plugin": "^8.27.0", - "@typescript-eslint/parser": "^8.27.0", - "@vitejs/plugin-legacy": "^6.0.2", - "@vitejs/plugin-react": "^4.3.4", + "@typescript-eslint/eslint-plugin": "^8.31.0", + "@typescript-eslint/parser": "^8.31.0", + "@vitejs/plugin-legacy": "^6.1.0", + "@vitejs/plugin-react": "^4.4.1", "autoprefixer": "^10.4.21", "eslint": "^8.57.0", - "eslint-config-prettier": "^10.1.1", + "eslint-config-prettier": "^10.1.2", "eslint-import-resolver-typescript": "^3.8.3", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-prettier": "^5.2.3", + "eslint-plugin-prettier": "^5.2.6", "eslint-plugin-react-hooks": "^5.2.0", - "eslint-plugin-react-refresh": "^0.4.19", + "eslint-plugin-react-refresh": "^0.4.20", "eslint-plugin-tailwindcss": "^3.18.0", "fs-extra": "^11.3.0", "postcss": "^8.5.3", "prettier": "^3.5.3", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", - "typescript": "^5.8.2", - "vite": "^6.2.2" + "typescript": "^5.8.3", + "vite": "^6.3.2" } }, "node_modules/@alloc/quick-lru": { @@ -138,6 +138,64 @@ } }, "node_modules/@ant-design/icons": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-6.0.0.tgz", + "integrity": "sha512-o0aCCAlHc1o4CQcapAwWzHeaW2x9F49g7P3IDtvtNXgHowtRWYb7kiubt8sQPFvfVIVU/jLw2hzeSlNt0FU+Uw==", + "dependencies": { + "@ant-design/colors": "^8.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@rc-component/util": "^1.2.1", + "classnames": "^2.2.6" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" + }, + "node_modules/@ant-design/icons/node_modules/@ant-design/colors": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-8.0.0.tgz", + "integrity": "sha512-6YzkKCw30EI/E9kHOIXsQDHmMvTllT8STzjMb4K2qzit33RW2pqCJP0sk+hidBntXxE+Vz4n1+RvCTfBw6OErw==", + "dependencies": { + "@ant-design/fast-color": "^3.0.0" + } + }, + "node_modules/@ant-design/icons/node_modules/@ant-design/fast-color": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@ant-design/fast-color/-/fast-color-3.0.0.tgz", + "integrity": "sha512-eqvpP7xEDm2S7dUzl5srEQCBTXZMmY3ekf97zI+M2DHOYyKdJGH0qua0JACHTqbkRnD/KHFQP9J1uMJ/XWVzzA==", + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/pro-card": { + "version": "2.9.7", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-card/-/pro-card-2.9.7.tgz", + "integrity": "sha512-uDDYowmYH1ldRfG8Mb4QOwcEEz6ptRBQDLO1tkVADCRkdOMwz82xlZneR4uVuFyKcuNmgHzarYNncozBKhFuaA==", + "dependencies": { + "@ant-design/cssinjs": "^1.21.1", + "@ant-design/icons": "^5.0.0", + "@ant-design/pro-provider": "2.15.4", + "@ant-design/pro-utils": "2.17.0", + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.4.0" + }, + "peerDependencies": { + "antd": "^4.24.15 || ^5.11.2", + "react": ">=17.0.0" + } + }, + "node_modules/@ant-design/pro-card/node_modules/@ant-design/icons": { "version": "5.6.1", "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", @@ -156,45 +214,21 @@ "react-dom": ">=16.0.0" } }, - "node_modules/@ant-design/icons-svg": { - "version": "4.4.2", - "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", - "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" - }, - "node_modules/@ant-design/pro-card": { - "version": "2.9.6", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-card/-/pro-card-2.9.6.tgz", - "integrity": "sha512-boUvowODMhc1l55ZZj/08YwnaggL50fAio2NaA7uXsgpbLduSPL2OE0RyiI24NCqFhPRZMZQHbPOmcHw4Bf3yQ==", - "dependencies": { - "@ant-design/cssinjs": "^1.21.1", - "@ant-design/icons": "^5.0.0", - "@ant-design/pro-provider": "2.15.3", - "@ant-design/pro-utils": "2.16.4", - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.4.0" - }, - "peerDependencies": { - "antd": "^4.24.15 || ^5.11.2", - "react": ">=17.0.0" - } - }, "node_modules/@ant-design/pro-components": { - "version": "2.8.6", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-components/-/pro-components-2.8.6.tgz", - "integrity": "sha512-iNd9kTLI0vAYGiyVrpDRflmee+h7486OLXIgIb89g3G+5YS9xSnRuCYt6UBRAEGsB1GRUPznRUGUd6Gsg33V+g==", + "version": "2.8.7", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-components/-/pro-components-2.8.7.tgz", + "integrity": "sha512-QhibkPsUJryEjI1QmwUn+XCngGHidu0ekvricL6TIEvPgP+AUAca29XutN5+Mmn8Xfja1ca9HFTHTgFoV74Z7Q==", "dependencies": { - "@ant-design/pro-card": "2.9.6", - "@ant-design/pro-descriptions": "2.6.6", - "@ant-design/pro-field": "3.0.3", - "@ant-design/pro-form": "2.31.6", - "@ant-design/pro-layout": "7.22.3", - "@ant-design/pro-list": "2.6.6", - "@ant-design/pro-provider": "2.15.3", + "@ant-design/pro-card": "2.9.7", + "@ant-design/pro-descriptions": "2.6.7", + "@ant-design/pro-field": "3.0.4", + "@ant-design/pro-form": "2.31.7", + "@ant-design/pro-layout": "7.22.4", + "@ant-design/pro-list": "2.6.7", + "@ant-design/pro-provider": "2.15.4", "@ant-design/pro-skeleton": "2.2.1", - "@ant-design/pro-table": "3.18.6", - "@ant-design/pro-utils": "2.16.4", + "@ant-design/pro-table": "3.19.0", + "@ant-design/pro-utils": "2.17.0", "@babel/runtime": "^7.16.3" }, "peerDependencies": { @@ -204,15 +238,15 @@ } }, "node_modules/@ant-design/pro-descriptions": { - "version": "2.6.6", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-descriptions/-/pro-descriptions-2.6.6.tgz", - "integrity": "sha512-Onwn79P5wNcFNHQmXVdTDgewXt4MCW5snEFctZuCY6T5KwpH7Y9UA8GWtFNIL2KfF5+uu83es20N0E2hg73G0w==", + "version": "2.6.7", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-descriptions/-/pro-descriptions-2.6.7.tgz", + "integrity": "sha512-fgn2d0kDWUODGDWKpgziZuuqPlmIoKxQFJY9Yg4nbaRp8GDDKZeSSqgvW+OxjpYM8dxq31fiz1dZlZnOPoYKpg==", "dependencies": { - "@ant-design/pro-field": "3.0.3", - "@ant-design/pro-form": "2.31.6", - "@ant-design/pro-provider": "2.15.3", + "@ant-design/pro-field": "3.0.4", + "@ant-design/pro-form": "2.31.7", + "@ant-design/pro-provider": "2.15.4", "@ant-design/pro-skeleton": "2.2.1", - "@ant-design/pro-utils": "2.16.4", + "@ant-design/pro-utils": "2.17.0", "@babel/runtime": "^7.18.0", "rc-resize-observer": "^0.2.3", "rc-util": "^5.0.6" @@ -238,13 +272,13 @@ } }, "node_modules/@ant-design/pro-field": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-field/-/pro-field-3.0.3.tgz", - "integrity": "sha512-MrDZcx1kP4vpmnSJyHuxeool2o5hDRiJ8aRFloM2M7yW+Tw9ilABMlHFkKz1FLIt4esO9Zc4vd8Iv2ndlkB4/Q==", + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-field/-/pro-field-3.0.4.tgz", + "integrity": "sha512-nJSng/6/pPZFdiFeTtZcBQLNrHg9tIeiKFR1+zzbnQbI3qBOFP9aBZS/+LwkQZcI2G71vrRgz2x5OhHb7AX0wQ==", "dependencies": { "@ant-design/icons": "^5.0.0", - "@ant-design/pro-provider": "2.15.3", - "@ant-design/pro-utils": "2.16.4", + "@ant-design/pro-provider": "2.15.4", + "@ant-design/pro-utils": "2.17.0", "@babel/runtime": "^7.18.0", "@chenshuai2144/sketch-color": "^1.0.8", "classnames": "^2.3.2", @@ -259,15 +293,34 @@ "react": ">=17.0.0" } }, + "node_modules/@ant-design/pro-field/node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, "node_modules/@ant-design/pro-form": { - "version": "2.31.6", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-form/-/pro-form-2.31.6.tgz", - "integrity": "sha512-pDthX9AjLiryFrtPFY+Ep1z/CfEbhg++K25p7jA6tyl1gVeOIcHVkLTEFMNKmWrc9ZSCA35D/UeSz3bn102GLg==", + "version": "2.31.7", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-form/-/pro-form-2.31.7.tgz", + "integrity": "sha512-0TCtIC/ynbLPoes8sLBFwFbi0tkeNmSU6the2EcyKIKDLfWHDbfkLM1OSFrzv3QD+H8OgFWMkTSOjhMOKSsOBg==", "dependencies": { "@ant-design/icons": "^5.0.0", - "@ant-design/pro-field": "3.0.3", - "@ant-design/pro-provider": "2.15.3", - "@ant-design/pro-utils": "2.16.4", + "@ant-design/pro-field": "3.0.4", + "@ant-design/pro-provider": "2.15.4", + "@ant-design/pro-utils": "2.17.0", "@babel/runtime": "^7.18.0", "@chenshuai2144/sketch-color": "^1.0.7", "@umijs/use-params": "^1.0.9", @@ -285,15 +338,34 @@ "react-dom": ">=17.0.0" } }, + "node_modules/@ant-design/pro-form/node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, "node_modules/@ant-design/pro-layout": { - "version": "7.22.3", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-layout/-/pro-layout-7.22.3.tgz", - "integrity": "sha512-di/EOMDuoMDRjBweqesYyCxEYr2LCmO82y6A4bSwmmJ6ehxN7HGC73Wx4RuBkzDR7kHLTOXt7WxI6875ENT8mg==", + "version": "7.22.4", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-layout/-/pro-layout-7.22.4.tgz", + "integrity": "sha512-X2WO4L2itXemX4zhS+0NG+8kXQD5SX9sG+zjx/15BmIO3FvsUGqOHgoCg0vhd424EiyPj7WtdMZJ39G1xdgDwA==", "dependencies": { "@ant-design/cssinjs": "^1.21.1", "@ant-design/icons": "^5.0.0", - "@ant-design/pro-provider": "2.15.3", - "@ant-design/pro-utils": "2.16.4", + "@ant-design/pro-provider": "2.15.4", + "@ant-design/pro-utils": "2.17.0", "@babel/runtime": "^7.18.0", "@umijs/route-utils": "^4.0.0", "@umijs/use-params": "^1.0.9", @@ -312,17 +384,36 @@ "react-dom": ">=17.0.0" } }, + "node_modules/@ant-design/pro-layout/node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, "node_modules/@ant-design/pro-list": { - "version": "2.6.6", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-list/-/pro-list-2.6.6.tgz", - "integrity": "sha512-Yea/KDd3kjOKklz1AHs66JGvtguvPYYFSaZFXW4m4VBjABHoaF6seo7ySW9UUWgwuoegdGtiglvleYv/rQoEcw==", + "version": "2.6.7", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-list/-/pro-list-2.6.7.tgz", + "integrity": "sha512-6k/En7pioMgepho/1HMf2DAnkSTZiat1lDg2ggCok2lhSgqXzir7x22ewJQRgPvEiVb6/qqaFQNd7a8dnrFj1w==", "dependencies": { "@ant-design/cssinjs": "^1.21.1", "@ant-design/icons": "^5.0.0", - "@ant-design/pro-card": "2.9.6", - "@ant-design/pro-field": "3.0.3", - "@ant-design/pro-table": "3.18.6", - "@ant-design/pro-utils": "2.16.4", + "@ant-design/pro-card": "2.9.7", + "@ant-design/pro-field": "3.0.4", + "@ant-design/pro-table": "3.19.0", + "@ant-design/pro-utils": "2.17.0", "@babel/runtime": "^7.18.0", "classnames": "^2.3.2", "dayjs": "^1.11.10", @@ -335,6 +426,38 @@ "react-dom": ">=17.0.0" } }, + "node_modules/@ant-design/pro-list/node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/pro-list/node_modules/@ant-design/icons/node_modules/rc-util": { + "version": "5.44.4", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/@ant-design/pro-list/node_modules/rc-util": { "version": "4.21.1", "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-4.21.1.tgz", @@ -347,15 +470,15 @@ "shallowequal": "^1.1.0" } }, - "node_modules/@ant-design/pro-list/node_modules/react-is": { + "node_modules/@ant-design/pro-list/node_modules/rc-util/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/@ant-design/pro-provider": { - "version": "2.15.3", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-provider/-/pro-provider-2.15.3.tgz", - "integrity": "sha512-jUBCuRrhAXNMumSZ++704/zEg/7U1k2N3jMVBgtirvVaCAk5O9iZQKK4W3O3LRFc+D8yO16sXjsxhawvdGL4cA==", + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-provider/-/pro-provider-2.15.4.tgz", + "integrity": "sha512-DBX0JNUNOYXAucVqd/zTdqtXckCDqr2Lo85KIku2YzWdhptDPDZRTNqL04JShjGejDl8fzwQ8yREHgVUfzn6Gg==", "dependencies": { "@ant-design/cssinjs": "^1.21.1", "@babel/runtime": "^7.18.0", @@ -384,17 +507,17 @@ } }, "node_modules/@ant-design/pro-table": { - "version": "3.18.6", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-table/-/pro-table-3.18.6.tgz", - "integrity": "sha512-ABXavpJWUOGGcer/WLBpRtzWCbfwZX3T8vAwMbLUQAl1xz3TTgkYzDDTcIdwUmtVdkgJUdWc8GdHWangWW30iQ==", + "version": "3.19.0", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-table/-/pro-table-3.19.0.tgz", + "integrity": "sha512-nL25734d5q5oqtmG7Apn2TNJUnJE8m9dkopXMQdoNZnv8qeRQLBH+i5cZT1yh7FIO8z6QLXleg+KnR/cI7VRRw==", "dependencies": { "@ant-design/cssinjs": "^1.21.1", "@ant-design/icons": "^5.0.0", - "@ant-design/pro-card": "2.9.6", - "@ant-design/pro-field": "3.0.3", - "@ant-design/pro-form": "2.31.6", - "@ant-design/pro-provider": "2.15.3", - "@ant-design/pro-utils": "2.16.4", + "@ant-design/pro-card": "2.9.7", + "@ant-design/pro-field": "3.0.4", + "@ant-design/pro-form": "2.31.7", + "@ant-design/pro-provider": "2.15.4", + "@ant-design/pro-utils": "2.17.0", "@babel/runtime": "^7.18.0", "@dnd-kit/core": "^6.0.8", "@dnd-kit/modifiers": "^6.0.1", @@ -414,13 +537,32 @@ "react-dom": ">=17.0.0" } }, + "node_modules/@ant-design/pro-table/node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, "node_modules/@ant-design/pro-utils": { - "version": "2.16.4", - "resolved": "https://registry.npmmirror.com/@ant-design/pro-utils/-/pro-utils-2.16.4.tgz", - "integrity": "sha512-PFxqF0fsUsLj8ORvJSuMgVv9NDHwAxZaglzPN/u3jZX7rWYcrHD04EMJEXooZaSyT6Q4+j7SqXDx6oBsdb9zNw==", + "version": "2.17.0", + "resolved": "https://registry.npmmirror.com/@ant-design/pro-utils/-/pro-utils-2.17.0.tgz", + "integrity": "sha512-hHKUISjMEoS+E5ltJWyvNTrlEA3IimZNxtDrEhorRIbgVYAlmEN5Mj/ESSofzDM3+UlxiI5+A/Y6IHkByTfDEA==", "dependencies": { "@ant-design/icons": "^5.0.0", - "@ant-design/pro-provider": "2.15.3", + "@ant-design/pro-provider": "2.15.4", "@babel/runtime": "^7.18.0", "classnames": "^2.3.2", "dayjs": "^1.11.10", @@ -436,6 +578,25 @@ "react-dom": ">=17.0.0" } }, + "node_modules/@ant-design/pro-utils/node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, "node_modules/@ant-design/react-slick": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-1.1.2.tgz", @@ -475,21 +636,21 @@ } }, "node_modules/@babel/core": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.26.9.tgz", - "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "version": "7.26.10", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", + "@babel/generator": "^7.26.10", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.9", - "@babel/parser": "^7.26.9", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.9", - "@babel/types": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -514,13 +675,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.26.9.tgz", - "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "version": "7.27.0", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.27.0.tgz", + "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", "dev": true, "dependencies": { - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -791,25 +952,25 @@ } }, "node_modules/@babel/helpers": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.26.9.tgz", - "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", + "version": "7.27.0", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.27.0.tgz", + "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", "dev": true, "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9" + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", + "version": "7.27.0", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", "dev": true, "dependencies": { - "@babel/types": "^7.26.9" + "@babel/types": "^7.27.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -1890,30 +2051,30 @@ } }, "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "version": "7.27.0", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.26.9.tgz", - "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "version": "7.27.0", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1922,9 +2083,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", + "version": "7.27.0", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -2730,15 +2891,15 @@ } }, "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmmirror.com/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/@pkgr/core/-/core-0.2.4.tgz", + "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", "dev": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/pkgr" } }, "node_modules/@rc-component/async-validator": { @@ -2881,10 +3042,22 @@ "react-dom": ">=16.9.0" } }, + "node_modules/@rc-component/util": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@rc-component/util/-/util-1.2.1.tgz", + "integrity": "sha512-AUVu6jO+lWjQnUOOECwu8iR0EdElQgWW5NBv5vP/Uf9dWbAX3udhMutRlkVXjuac2E40ghkFy+ve00mc/3Fymg==", + "dependencies": { + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.6.tgz", - "integrity": "sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", + "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", "cpu": [ "arm" ], @@ -2895,9 +3068,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.6.tgz", - "integrity": "sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", + "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", "cpu": [ "arm64" ], @@ -2908,9 +3081,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.6.tgz", - "integrity": "sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", + "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", "cpu": [ "arm64" ], @@ -2921,9 +3094,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.6.tgz", - "integrity": "sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", + "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", "cpu": [ "x64" ], @@ -2934,9 +3107,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.6.tgz", - "integrity": "sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", + "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", "cpu": [ "arm64" ], @@ -2947,9 +3120,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.6.tgz", - "integrity": "sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", + "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", "cpu": [ "x64" ], @@ -2960,9 +3133,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.6.tgz", - "integrity": "sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", + "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", "cpu": [ "arm" ], @@ -2973,9 +3146,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.6.tgz", - "integrity": "sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", + "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", "cpu": [ "arm" ], @@ -2986,9 +3159,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.6.tgz", - "integrity": "sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", + "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", "cpu": [ "arm64" ], @@ -2999,9 +3172,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.6.tgz", - "integrity": "sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", + "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", "cpu": [ "arm64" ], @@ -3012,9 +3185,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.6.tgz", - "integrity": "sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", + "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", "cpu": [ "loong64" ], @@ -3025,9 +3198,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.6.tgz", - "integrity": "sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", + "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", "cpu": [ "ppc64" ], @@ -3038,9 +3211,22 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.6.tgz", - "integrity": "sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", + "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", + "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", "cpu": [ "riscv64" ], @@ -3051,9 +3237,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.6.tgz", - "integrity": "sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", + "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", "cpu": [ "s390x" ], @@ -3064,9 +3250,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.6.tgz", - "integrity": "sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", + "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", "cpu": [ "x64" ], @@ -3077,9 +3263,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.6.tgz", - "integrity": "sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", + "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", "cpu": [ "x64" ], @@ -3090,9 +3276,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.6.tgz", - "integrity": "sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", + "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", "cpu": [ "arm64" ], @@ -3103,9 +3289,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.6.tgz", - "integrity": "sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", + "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", "cpu": [ "ia32" ], @@ -3116,9 +3302,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.6.tgz", - "integrity": "sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", + "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", "cpu": [ "x64" ], @@ -3175,15 +3361,10 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmmirror.com/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" - }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", "dev": true }, "node_modules/@types/file-saver": { @@ -3218,12 +3399,12 @@ } }, "node_modules/@types/node": { - "version": "22.13.10", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.13.10.tgz", - "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", + "version": "22.14.1", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.14.1.tgz", + "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", "dev": true, "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~6.21.0" } }, "node_modules/@types/prop-types": { @@ -3261,16 +3442,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.27.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz", - "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==", + "version": "8.31.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.0.tgz", + "integrity": "sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.27.0", - "@typescript-eslint/type-utils": "8.27.0", - "@typescript-eslint/utils": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0", + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/type-utils": "8.31.0", + "@typescript-eslint/utils": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3290,15 +3471,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.27.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-8.27.0.tgz", - "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==", + "version": "8.31.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-8.31.0.tgz", + "integrity": "sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.27.0", - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/typescript-estree": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0", + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", "debug": "^4.3.4" }, "engines": { @@ -3314,13 +3495,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.27.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz", - "integrity": "sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==", + "version": "8.31.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", + "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0" + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3331,13 +3512,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.27.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz", - "integrity": "sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==", + "version": "8.31.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-8.31.0.tgz", + "integrity": "sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "8.27.0", - "@typescript-eslint/utils": "8.27.0", + "@typescript-eslint/typescript-estree": "8.31.0", + "@typescript-eslint/utils": "8.31.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -3354,9 +3535,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.27.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.27.0.tgz", - "integrity": "sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==", + "version": "8.31.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.31.0.tgz", + "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3367,13 +3548,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.27.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz", - "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==", + "version": "8.31.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", + "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/visitor-keys": "8.27.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3393,15 +3574,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.27.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.27.0.tgz", - "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==", + "version": "8.31.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.31.0.tgz", + "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.27.0", - "@typescript-eslint/types": "8.27.0", - "@typescript-eslint/typescript-estree": "8.27.0" + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3416,12 +3597,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.27.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz", - "integrity": "sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==", + "version": "8.31.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", + "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/types": "8.31.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -3464,16 +3645,16 @@ "dev": true }, "node_modules/@vitejs/plugin-legacy": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-6.0.2.tgz", - "integrity": "sha512-b/a6ARuJ1yCoIH/lSjpwPMyqo3NSCoqyxYtff7VCC6cnJfvBTzd7PthcrbomhLZnMsp/eW41b6TrbNSQvHW2lA==", + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-6.1.0.tgz", + "integrity": "sha512-D5/33NZFBDdlXvCoRbdGe3DcnSY4TZIDkQpolbMdMXBtUNgwJc03X1LHmEov4Igi4f5z2l9/lC0te74R8iHn5A==", "dev": true, "dependencies": { - "@babel/core": "^7.26.9", + "@babel/core": "^7.26.10", "@babel/preset-env": "^7.26.9", "browserslist": "^4.24.4", "browserslist-to-esbuild": "^2.1.1", - "core-js": "^3.40.0", + "core-js": "^3.41.0", "magic-string": "^0.30.17", "regenerator-runtime": "^0.14.1", "systemjs": "^6.15.1" @@ -3490,16 +3671,16 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", - "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", + "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", "dev": true, "dependencies": { - "@babel/core": "^7.26.0", + "@babel/core": "^7.26.10", "@babel/plugin-transform-react-jsx-self": "^7.25.9", "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" + "react-refresh": "^0.17.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -3585,9 +3766,9 @@ } }, "node_modules/antd": { - "version": "5.24.4", - "resolved": "https://registry.npmmirror.com/antd/-/antd-5.24.4.tgz", - "integrity": "sha512-s89666DcoWeekJFaIqbtz2vRlIvgPR28GuDYYGUpW1mVP08bV7HZAPBH5lFJKYNGKrN3dHbZGgRK5aNRD2iPHg==", + "version": "5.24.8", + "resolved": "https://registry.npmmirror.com/antd/-/antd-5.24.8.tgz", + "integrity": "sha512-vJcW81WSRq+ymBKTiA3NE+FddmiqTAKxdWVRZU+HnLLrRrIz896svcUxXFPa7M4mH9HqyeJ5JPOHsne4sQAC1A==", "dependencies": { "@ant-design/colors": "^7.2.0", "@ant-design/cssinjs": "^1.23.0", @@ -3611,13 +3792,13 @@ "rc-drawer": "~7.2.0", "rc-dropdown": "~4.2.1", "rc-field-form": "~2.7.0", - "rc-image": "~7.11.0", - "rc-input": "~1.7.3", - "rc-input-number": "~9.4.0", - "rc-mentions": "~2.19.1", + "rc-image": "~7.11.1", + "rc-input": "~1.8.0", + "rc-input-number": "~9.5.0", + "rc-mentions": "~2.20.0", "rc-menu": "~9.16.1", "rc-motion": "^2.9.5", - "rc-notification": "~5.6.3", + "rc-notification": "~5.6.4", "rc-pagination": "~5.1.0", "rc-picker": "~4.11.3", "rc-progress": "~4.0.0", @@ -3629,8 +3810,8 @@ "rc-steps": "~6.0.1", "rc-switch": "~4.1.0", "rc-table": "~7.50.4", - "rc-tabs": "~15.5.1", - "rc-textarea": "~1.9.0", + "rc-tabs": "~15.6.0", + "rc-textarea": "~1.10.0", "rc-tooltip": "~6.4.0", "rc-tree": "~5.13.1", "rc-tree-select": "~5.27.0", @@ -3649,9 +3830,9 @@ } }, "node_modules/antd-zod": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/antd-zod/-/antd-zod-6.0.1.tgz", - "integrity": "sha512-O4cEUq2p/DOwmpZYtPHbrie1CzcvhJKeN/bDOtfostjcFRz3E/HgINqALZeNaT68X+hqcXxhnxjwIHhxb+oaWw==", + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/antd-zod/-/antd-zod-6.1.0.tgz", + "integrity": "sha512-7gXf5NgZO9MRrn54dQVmSDujGuY9YgV6jmE4sOKw4MuFu+YgYPrk0oAEiRTZ9DveCyyZ1krurOwsXJJGuDJ3IQ==", "dependencies": { "lodash.merge": "^4.6.2" }, @@ -3660,6 +3841,25 @@ "zod": ">=3.0.0" } }, + "node_modules/antd/node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", @@ -4177,9 +4377,9 @@ } }, "node_modules/core-js": { - "version": "3.40.0", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.40.0.tgz", - "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", + "version": "3.41.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.41.0.tgz", + "integrity": "sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==", "dev": true, "hasInstallScript": true, "funding": { @@ -4201,11 +4401,11 @@ } }, "node_modules/cron-parser": { - "version": "5.0.6", - "resolved": "https://registry.npmmirror.com/cron-parser/-/cron-parser-5.0.6.tgz", - "integrity": "sha512-KtZxEaO4XtQwQ6q2Val3gX09TxM/1Okz0BIqkm6Wwc582gAHTnjBP1rtYEgWcVOUPRIg2CeirOTiUSu7A2I+HQ==", + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/cron-parser/-/cron-parser-5.1.1.tgz", + "integrity": "sha512-xNhwjTUTJcvevF4EvOxB3xYpEKC/qOAmykR+2Qf91ARIfdbjStUwo8qpem6jjzdwFgoo4pnf3sS264xG0G858w==", "dependencies": { - "luxon": "^3.5.0" + "luxon": "^3.6.1" }, "engines": { "node": ">=18" @@ -4670,9 +4870,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.1.1", - "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", - "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", + "version": "10.1.2", + "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz", + "integrity": "sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -4847,13 +5047,13 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.3", - "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", - "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", + "version": "5.2.6", + "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz", + "integrity": "sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" + "synckit": "^0.11.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -4864,7 +5064,7 @@ "peerDependencies": { "@types/eslint": ">=8.0.0", "eslint": ">=8.0.0", - "eslint-config-prettier": "*", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", "prettier": ">=3.0.0" }, "peerDependenciesMeta": { @@ -4889,9 +5089,9 @@ } }, "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.19", - "resolved": "https://registry.npmmirror.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", - "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", + "version": "0.4.20", + "resolved": "https://registry.npmmirror.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", + "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", "dev": true, "peerDependencies": { "eslint": ">=8.40" @@ -5608,9 +5808,9 @@ } }, "node_modules/i18next": { - "version": "24.2.3", - "resolved": "https://registry.npmmirror.com/i18next/-/i18next-24.2.3.tgz", - "integrity": "sha512-lfbf80OzkocvX7nmZtu7nSTNbrTYR52sLWxPtlXX1zAhVw8WEnFk4puUkCR4B1dNQwbSpEHHHemcZu//7EcB7A==", + "version": "25.0.1", + "resolved": "https://registry.npmmirror.com/i18next/-/i18next-25.0.1.tgz", + "integrity": "sha512-8S8PyZbrymJZn3DaN70/34JYWNhsqrU6yA4MuzcygJBv+41dgNMocEA8h+kV1P7MCc1ll03lOTOIXE7mpNCicw==", "funding": [ { "type": "individual", @@ -5638,9 +5838,9 @@ } }, "node_modules/i18next-browser-languagedetector": { - "version": "8.0.4", - "resolved": "https://registry.npmmirror.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.0.4.tgz", - "integrity": "sha512-f3frU3pIxD50/Tz20zx9TD9HobKYg47fmAETb117GKGPrhwcSSPJDoCposXlVycVebQ9GQohC3Efbpq7/nnJ5w==", + "version": "8.0.5", + "resolved": "https://registry.npmmirror.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.0.5.tgz", + "integrity": "sha512-OstebRKqKiQw8xEvQF5aRyUujsCatanj7Q9eo5iiH2gJpoXGZ7483ol3sVBwfqbobTQPNH1J+NAyJ1aCQoEC+w==", "dependencies": { "@babel/runtime": "^7.23.2" } @@ -6324,17 +6524,17 @@ } }, "node_modules/lucide-react": { - "version": "0.483.0", - "resolved": "https://registry.npmmirror.com/lucide-react/-/lucide-react-0.483.0.tgz", - "integrity": "sha512-WldsY17Qb/T3VZdMnVQ9C3DDIP7h1ViDTHVdVGnLZcvHNg30zH/MTQ04RTORjexoGmpsXroiQXZ4QyR0kBy0FA==", + "version": "0.503.0", + "resolved": "https://registry.npmmirror.com/lucide-react/-/lucide-react-0.503.0.tgz", + "integrity": "sha512-HGGkdlPWQ0vTF8jJ5TdIqhQXZi6uh3LnNgfZ8MHiuxFfX3RZeA79r2MW2tHAZKlAVfoNE8esm3p+O6VkIvpj6w==", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/luxon": { - "version": "3.5.0", - "resolved": "https://registry.npmmirror.com/luxon/-/luxon-3.5.0.tgz", - "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", + "version": "3.6.1", + "resolved": "https://registry.npmmirror.com/luxon/-/luxon-3.6.1.tgz", + "integrity": "sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==", "engines": { "node": ">=12" } @@ -6787,9 +6987,9 @@ } }, "node_modules/pocketbase": { - "version": "0.25.2", - "resolved": "https://registry.npmmirror.com/pocketbase/-/pocketbase-0.25.2.tgz", - "integrity": "sha512-ONZl1+qHJMnhR2uacBlBJ90lm7njtL/zy0606+1ROfK9hSL4LRBRc8r89rMcNRzPzRqCNyoFTh2Qg/lYXdEC1w==" + "version": "0.26.0", + "resolved": "https://registry.npmmirror.com/pocketbase/-/pocketbase-0.26.0.tgz", + "integrity": "sha512-WBBeOgz4Jnrd7a1KEzSBUJqpTortKKCcp16j5KoF+4tNIyQHsmynj+qRSvS56/RVacVMbAqO8Qkfj3N84fpzEw==" }, "node_modules/possible-typed-array-names": { "version": "1.0.0", @@ -7159,9 +7359,9 @@ } }, "node_modules/rc-image": { - "version": "7.11.0", - "resolved": "https://registry.npmmirror.com/rc-image/-/rc-image-7.11.0.tgz", - "integrity": "sha512-aZkTEZXqeqfPZtnSdNUnKQA0N/3MbgR7nUnZ+/4MfSFWPFHZau4p5r5ShaI0KPEMnNjv4kijSCFq/9wtJpwykw==", + "version": "7.11.1", + "resolved": "https://registry.npmmirror.com/rc-image/-/rc-image-7.11.1.tgz", + "integrity": "sha512-XuoWx4KUXg7hNy5mRTy1i8c8p3K8boWg6UajbHpDXS5AlRVucNfTi5YxTtPBTBzegxAZpvuLfh3emXFt6ybUdA==", "dependencies": { "@babel/runtime": "^7.11.2", "@rc-component/portal": "^1.0.2", @@ -7176,9 +7376,9 @@ } }, "node_modules/rc-input": { - "version": "1.7.3", - "resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-1.7.3.tgz", - "integrity": "sha512-A5w4egJq8+4JzlQ55FfQjDnPvOaAbzwC3VLOAdOytyek3TboSOP9qxN+Gifup+shVXfvecBLBbWBpWxmk02SWQ==", + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-1.8.0.tgz", + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -7190,14 +7390,14 @@ } }, "node_modules/rc-input-number": { - "version": "9.4.0", - "resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-9.4.0.tgz", - "integrity": "sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA==", + "version": "9.5.0", + "resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-9.5.0.tgz", + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", "dependencies": { "@babel/runtime": "^7.10.1", "@rc-component/mini-decimal": "^1.0.1", "classnames": "^2.2.5", - "rc-input": "~1.7.1", + "rc-input": "~1.8.0", "rc-util": "^5.40.1" }, "peerDependencies": { @@ -7206,16 +7406,16 @@ } }, "node_modules/rc-mentions": { - "version": "2.19.1", - "resolved": "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.19.1.tgz", - "integrity": "sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA==", + "version": "2.20.0", + "resolved": "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.20.0.tgz", + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", "dependencies": { "@babel/runtime": "^7.22.5", "@rc-component/trigger": "^2.0.0", "classnames": "^2.2.6", - "rc-input": "~1.7.1", + "rc-input": "~1.8.0", "rc-menu": "~9.16.0", - "rc-textarea": "~1.9.0", + "rc-textarea": "~1.10.0", "rc-util": "^5.34.1" }, "peerDependencies": { @@ -7255,9 +7455,9 @@ } }, "node_modules/rc-notification": { - "version": "5.6.3", - "resolved": "https://registry.npmmirror.com/rc-notification/-/rc-notification-5.6.3.tgz", - "integrity": "sha512-42szwnn8VYQoT6GnjO00i1iwqV9D1TTMvxObWsuLwgl0TsOokzhkYiufdtQBsJMFjJravS1hfDKVMHLKLcPE4g==", + "version": "5.6.4", + "resolved": "https://registry.npmmirror.com/rc-notification/-/rc-notification-5.6.4.tgz", + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -7490,9 +7690,9 @@ } }, "node_modules/rc-tabs": { - "version": "15.5.1", - "resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-15.5.1.tgz", - "integrity": "sha512-yiWivLAjEo5d1v2xlseB2dQocsOhkoVSfo1krS8v8r+02K+TBUjSjXIf7dgyVSxp6wRIPv5pMi5hanNUlQMgUA==", + "version": "15.6.0", + "resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-15.6.0.tgz", + "integrity": "sha512-SQ99Yjc9ewrJCUwoWPKq0FeGL2znWsqPhfcZgsHz1R7bkA2rMNe7CPgOiJkwppdJ98wkLhzs9vPrv21QOE1RyQ==", "dependencies": { "@babel/runtime": "^7.11.2", "classnames": "2.x", @@ -7511,13 +7711,13 @@ } }, "node_modules/rc-textarea": { - "version": "1.9.0", - "resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.9.0.tgz", - "integrity": "sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ==", + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.10.0.tgz", + "integrity": "sha512-ai9IkanNuyBS4x6sOL8qu/Ld40e6cEs6pgk93R+XLYg0mDSjNBGey6/ZpDs5+gNLD7urQ14po3V6Ck2dJLt9SA==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.1", - "rc-input": "~1.7.1", + "rc-input": "~1.8.0", "rc-resize-observer": "^1.0.0", "rc-util": "^5.27.0" }, @@ -7693,20 +7893,19 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "version": "0.17.0", + "resolved": "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/react-router": { - "version": "7.4.0", - "resolved": "https://registry.npmmirror.com/react-router/-/react-router-7.4.0.tgz", - "integrity": "sha512-Y2g5ObjkvX3VFeVt+0CIPuYd9PpgqCslG7ASSIdN73LwA1nNWzcMLaoMRJfP3prZFI92svxFwbn7XkLJ+UPQ6A==", + "version": "7.5.1", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-7.5.1.tgz", + "integrity": "sha512-/jjU3fcYNd2bwz9Q0xt5TwyiyoO8XjSEFXJY4O/lMAlkGTHWuHRAbR9Etik+lSDqMC7A7mz3UlXzgYT6Vl58sA==", "dependencies": { - "@types/cookie": "^0.6.0", "cookie": "^1.0.1", "set-cookie-parser": "^2.6.0", "turbo-stream": "2.4.0" @@ -7725,11 +7924,11 @@ } }, "node_modules/react-router-dom": { - "version": "7.4.0", - "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-7.4.0.tgz", - "integrity": "sha512-VlksBPf3n2bijPvnA7nkTsXxMAKOj+bWp4R9c3i+bnwlSOFAGOkJkKhzy/OsRkWaBMICqcAl1JDzh9ZSOze9CA==", + "version": "7.5.1", + "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-7.5.1.tgz", + "integrity": "sha512-5DPSPc7ENrt2tlKPq0FtpG80ZbqA9aIKEyqX6hSNJDlol/tr6iqCK4crqdsusmOSSotq6zDsn0y3urX9TuTNmA==", "dependencies": { - "react-router": "7.4.0" + "react-router": "7.5.1" }, "engines": { "node": ">=20.0.0" @@ -7954,12 +8153,12 @@ } }, "node_modules/rollup": { - "version": "4.34.6", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.34.6.tgz", - "integrity": "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==", + "version": "4.40.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.40.0.tgz", + "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", "dev": true, "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.7" }, "bin": { "rollup": "dist/bin/rollup" @@ -7969,25 +8168,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.6", - "@rollup/rollup-android-arm64": "4.34.6", - "@rollup/rollup-darwin-arm64": "4.34.6", - "@rollup/rollup-darwin-x64": "4.34.6", - "@rollup/rollup-freebsd-arm64": "4.34.6", - "@rollup/rollup-freebsd-x64": "4.34.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.6", - "@rollup/rollup-linux-arm-musleabihf": "4.34.6", - "@rollup/rollup-linux-arm64-gnu": "4.34.6", - "@rollup/rollup-linux-arm64-musl": "4.34.6", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.6", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.6", - "@rollup/rollup-linux-riscv64-gnu": "4.34.6", - "@rollup/rollup-linux-s390x-gnu": "4.34.6", - "@rollup/rollup-linux-x64-gnu": "4.34.6", - "@rollup/rollup-linux-x64-musl": "4.34.6", - "@rollup/rollup-win32-arm64-msvc": "4.34.6", - "@rollup/rollup-win32-ia32-msvc": "4.34.6", - "@rollup/rollup-win32-x64-msvc": "4.34.6", + "@rollup/rollup-android-arm-eabi": "4.40.0", + "@rollup/rollup-android-arm64": "4.40.0", + "@rollup/rollup-darwin-arm64": "4.40.0", + "@rollup/rollup-darwin-x64": "4.40.0", + "@rollup/rollup-freebsd-arm64": "4.40.0", + "@rollup/rollup-freebsd-x64": "4.40.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", + "@rollup/rollup-linux-arm-musleabihf": "4.40.0", + "@rollup/rollup-linux-arm64-gnu": "4.40.0", + "@rollup/rollup-linux-arm64-musl": "4.40.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", + "@rollup/rollup-linux-riscv64-gnu": "4.40.0", + "@rollup/rollup-linux-riscv64-musl": "4.40.0", + "@rollup/rollup-linux-s390x-gnu": "4.40.0", + "@rollup/rollup-linux-x64-gnu": "4.40.0", + "@rollup/rollup-linux-x64-musl": "4.40.0", + "@rollup/rollup-win32-arm64-msvc": "4.40.0", + "@rollup/rollup-win32-ia32-msvc": "4.40.0", + "@rollup/rollup-win32-x64-msvc": "4.40.0", "fsevents": "~2.3.2" } }, @@ -8540,9 +8740,9 @@ } }, "node_modules/swr": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/swr/-/swr-2.3.2.tgz", - "integrity": "sha512-RosxFpiabojs75IwQ316DGoDRmOqtiAj0tg8wCcbEu4CiLZBs/a9QNtHV7TUfDXmmlgqij/NqzKq/eLelyv9xA==", + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/swr/-/swr-2.3.3.tgz", + "integrity": "sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==", "dependencies": { "dequal": "^2.0.3", "use-sync-external-store": "^1.4.0" @@ -8552,19 +8752,19 @@ } }, "node_modules/synckit": { - "version": "0.9.2", - "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.9.2.tgz", - "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "version": "0.11.4", + "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.11.4.tgz", + "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==", "dev": true, "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" + "@pkgr/core": "^0.2.3", + "tslib": "^2.8.1" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/synckit" } }, "node_modules/systemjs": { @@ -8805,9 +9005,9 @@ } }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/turbo-stream": { "version": "2.4.0", @@ -8913,9 +9113,9 @@ } }, "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "version": "5.8.3", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "devOptional": true, "bin": { "tsc": "bin/tsc", @@ -8944,9 +9144,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "dev": true }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -9052,14 +9252,17 @@ "dev": true }, "node_modules/vite": { - "version": "6.2.2", - "resolved": "https://registry.npmmirror.com/vite/-/vite-6.2.2.tgz", - "integrity": "sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==", + "version": "6.3.2", + "resolved": "https://registry.npmmirror.com/vite/-/vite-6.3.2.tgz", + "integrity": "sha512-ZSvGOXKGceizRQIZSz7TGJ0pS3QLlVY/9hwxVh17W3re67je1RKYzFHivZ/t0tubU78Vkyb9WnHPENSBCzbckg==", "dev": true, "dependencies": { "esbuild": "^0.25.0", + "fdir": "^6.4.3", + "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rollup": "^4.30.1" + "rollup": "^4.34.9", + "tinyglobby": "^0.2.12" }, "bin": { "vite": "bin/vite.js" @@ -9122,6 +9325,32 @@ } } }, + "node_modules/vite/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/void-elements": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/void-elements/-/void-elements-3.1.0.tgz", @@ -9416,9 +9645,9 @@ } }, "node_modules/zod": { - "version": "3.24.2", - "resolved": "https://registry.npmmirror.com/zod/-/zod-3.24.2.tgz", - "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", + "version": "3.24.3", + "resolved": "https://registry.npmmirror.com/zod/-/zod-3.24.3.tgz", + "integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==", "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/ui/package.json b/ui/package.json index d11376fe..1862c30d 100644 --- a/ui/package.json +++ b/ui/package.json @@ -10,56 +10,56 @@ "preview": "vite preview" }, "dependencies": { - "@ant-design/icons": "^5.6.1", - "@ant-design/pro-components": "^2.8.6", + "@ant-design/icons": "^6.0.0", + "@ant-design/pro-components": "^2.8.7", "ahooks": "^3.8.4", - "antd": "^5.24.4", - "antd-zod": "^6.0.1", + "antd": "^5.24.8", + "antd-zod": "^6.1.0", "clsx": "^2.1.1", - "cron-parser": "^5.0.6", + "cron-parser": "^5.1.1", "file-saver": "^2.0.5", - "i18next": "^24.2.3", - "i18next-browser-languagedetector": "^8.0.4", + "i18next": "^25.0.1", + "i18next-browser-languagedetector": "^8.0.5", "immer": "^10.1.1", - "lucide-react": "^0.483.0", + "lucide-react": "^0.503.0", "nanoid": "^5.1.5", - "pocketbase": "^0.25.2", + "pocketbase": "^0.26.0", "radash": "^12.1.0", "react": "^18.3.1", "react-copy-to-clipboard": "^5.1.0", "react-dom": "^18.3.1", "react-i18next": "^15.4.1", - "react-router-dom": "^7.4.0", + "react-router-dom": "^7.5.1", "tailwind-merge": "^2.6.0", - "zod": "^3.24.2", + "zod": "^3.24.3", "zustand": "^5.0.3" }, "devDependencies": { "@types/file-saver": "^2.0.7", "@types/fs-extra": "^11.0.4", - "@types/node": "^22.13.10", + "@types/node": "^22.14.1", "@types/react": "^18.3.12", "@types/react-copy-to-clipboard": "^5.0.7", "@types/react-dom": "^18.3.1", - "@typescript-eslint/eslint-plugin": "^8.27.0", - "@typescript-eslint/parser": "^8.27.0", - "@vitejs/plugin-legacy": "^6.0.2", - "@vitejs/plugin-react": "^4.3.4", + "@typescript-eslint/eslint-plugin": "^8.31.0", + "@typescript-eslint/parser": "^8.31.0", + "@vitejs/plugin-legacy": "^6.1.0", + "@vitejs/plugin-react": "^4.4.1", "autoprefixer": "^10.4.21", "eslint": "^8.57.0", - "eslint-config-prettier": "^10.1.1", + "eslint-config-prettier": "^10.1.2", "eslint-import-resolver-typescript": "^3.8.3", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-prettier": "^5.2.3", + "eslint-plugin-prettier": "^5.2.6", "eslint-plugin-react-hooks": "^5.2.0", - "eslint-plugin-react-refresh": "^0.4.19", + "eslint-plugin-react-refresh": "^0.4.20", "eslint-plugin-tailwindcss": "^3.18.0", "fs-extra": "^11.3.0", "postcss": "^8.5.3", "prettier": "^3.5.3", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", - "typescript": "^5.8.2", - "vite": "^6.2.2" + "typescript": "^5.8.3", + "vite": "^6.3.2" } } From efd813534153ea57e610becebbedc61739f72ccf Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 22 Apr 2025 16:25:18 +0800 Subject: [PATCH 04/38] chore(deps): upgrade gomod dependencies --- go.mod | 138 ++++---- go.sum | 305 +++++++++--------- .../azure-keyvault/azure_keyvault.go | 2 +- .../azure-keyvault/azure_keyvault.go | 24 +- migrations/1744459000_upgrade.go | 160 +++++---- 5 files changed, 312 insertions(+), 317 deletions(-) diff --git a/go.mod b/go.mod index e5038ab0..fbcf77a9 100644 --- a/go.mod +++ b/go.mod @@ -5,30 +5,32 @@ go 1.23.0 toolchain go1.23.2 require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 - github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates v0.9.0 + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.9.0 + github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates v1.3.1 github.com/Edgio/edgio-api v0.0.0-workspace - github.com/G-Core/gcorelabscdn-go v1.0.28 + github.com/G-Core/gcorelabscdn-go v1.0.29 github.com/alibabacloud-go/alb-20200616/v2 v2.2.8 + github.com/alibabacloud-go/apig-20240327/v3 v3.2.2 github.com/alibabacloud-go/cas-20200407/v3 v3.0.4 github.com/alibabacloud-go/cdn-20180510/v5 v5.2.2 - github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.4 - github.com/alibabacloud-go/esa-20240910/v2 v2.23.0 - github.com/alibabacloud-go/fc-20230330/v4 v4.1.7 + github.com/alibabacloud-go/cloudapi-20160714/v5 v5.7.2 + github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.7 + github.com/alibabacloud-go/esa-20240910/v2 v2.31.1 + github.com/alibabacloud-go/fc-20230330/v4 v4.3.4 github.com/alibabacloud-go/fc-open-20210406/v2 v2.0.12 github.com/alibabacloud-go/live-20161101 v1.1.1 github.com/alibabacloud-go/nlb-20220430/v2 v2.0.3 github.com/alibabacloud-go/slb-20140515/v4 v4.0.10 - github.com/alibabacloud-go/tea v1.3.4 - github.com/alibabacloud-go/vod-20170321/v4 v4.7.0 - github.com/alibabacloud-go/waf-openapi-20211001/v5 v5.0.5 + github.com/alibabacloud-go/tea v1.3.9 + github.com/alibabacloud-go/vod-20170321/v4 v4.8.3 + github.com/alibabacloud-go/waf-openapi-20211001/v5 v5.1.1 github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible - github.com/aws/aws-sdk-go-v2/service/acm v1.31.1 - github.com/aws/aws-sdk-go-v2/service/cloudfront v1.45.2 - github.com/baidubce/bce-sdk-go v0.9.221 - github.com/byteplus-sdk/byteplus-sdk-golang v1.0.42 - github.com/go-acme/lego/v4 v4.22.2 + github.com/aws/aws-sdk-go-v2/service/acm v1.31.3 + github.com/aws/aws-sdk-go-v2/service/cloudfront v1.45.3 + github.com/baidubce/bce-sdk-go v0.9.224 + github.com/byteplus-sdk/byteplus-sdk-golang v1.0.44 + github.com/go-acme/lego/v4 v4.23.1 github.com/go-resty/resty/v2 v2.16.5 github.com/go-viper/mapstructure/v2 v2.2.1 github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.141 @@ -37,28 +39,28 @@ require ( github.com/libdns/libdns v0.2.3 github.com/nikoksr/notify v1.3.0 github.com/pavlo-v-chernykh/keystore-go/v4 v4.5.0 - github.com/pkg/sftp v1.13.8 + github.com/pkg/sftp v1.13.9 github.com/pocketbase/dbx v1.11.0 - github.com/pocketbase/pocketbase v0.26.1 + github.com/pocketbase/pocketbase v0.27.1 github.com/povsister/scp v0.0.0-20240802064259-28781e87b246 - github.com/qiniu/go-sdk/v7 v7.25.2 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1115 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1127 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1127 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1117 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.1115 + github.com/qiniu/go-sdk/v7 v7.25.3 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1136 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1143 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1147 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1143 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.1120 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1124 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1126 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.1115 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1125 - github.com/ucloud/ucloud-sdk-go v0.22.31 - github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.9 - github.com/volcengine/volc-sdk-golang v1.0.199 - github.com/volcengine/volcengine-go-sdk v1.0.187 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1138 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.1136 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1147 + github.com/ucloud/ucloud-sdk-go v0.22.33 + github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.11 + github.com/volcengine/volc-sdk-golang v1.0.204 + github.com/volcengine/volcengine-go-sdk v1.1.4 gitlab.ecloud.com/ecloud/ecloudsdkclouddns v1.0.1 gitlab.ecloud.com/ecloud/ecloudsdkcore v1.0.0 - golang.org/x/crypto v0.36.0 - golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 + golang.org/x/crypto v0.37.0 + golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 k8s.io/api v0.32.3 k8s.io/apimachinery v0.32.3 k8s.io/client-go v0.32.3 @@ -66,22 +68,20 @@ require ( ) require ( - github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.2.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3 // indirect + github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect github.com/alibabacloud-go/alibabacloud-gateway-fc-util v0.0.7 // indirect - github.com/alibabacloud-go/apig-20240327/v3 v3.2.2 // indirect - github.com/alibabacloud-go/cloudapi-20160714/v5 v5.7.2 // indirect github.com/alibabacloud-go/openplatform-20191219/v2 v2.0.1 // indirect github.com/alibabacloud-go/tea-fileform v1.1.1 // indirect github.com/alibabacloud-go/tea-oss-sdk v1.1.3 // indirect github.com/alibabacloud-go/tea-oss-utils v1.1.0 // indirect github.com/alibabacloud-go/tea-utils/v2 v2.0.7 // indirect github.com/avast/retry-go v3.0.0+incompatible // indirect - github.com/aws/aws-sdk-go-v2/service/route53 v1.48.1 // indirect + github.com/aws/aws-sdk-go-v2/service/route53 v1.50.0 // indirect github.com/blinkbean/dingtalk v1.1.3 // indirect github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect @@ -97,7 +97,7 @@ require ( github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible // indirect github.com/gofrs/uuid v4.4.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.1 // indirect + github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.9 // indirect github.com/google/go-cmp v0.6.0 // indirect @@ -136,7 +136,7 @@ require ( ) require ( - github.com/BurntSushi/toml v1.4.0 // indirect + github.com/BurntSushi/toml v1.5.0 // indirect github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 // indirect github.com/alibabacloud-go/dcdn-20180115/v3 v3.5.0 github.com/alibabacloud-go/debug v1.0.1 // indirect @@ -144,35 +144,35 @@ require ( github.com/alibabacloud-go/openapi-util v0.1.1 // indirect github.com/alibabacloud-go/tea-utils v1.4.5 // indirect github.com/alibabacloud-go/tea-xml v1.1.3 // indirect - github.com/aliyun/alibaba-cloud-sdk-go v1.63.83 // indirect - github.com/aliyun/credentials-go v1.4.3 // indirect + github.com/aliyun/alibaba-cloud-sdk-go v1.63.100 // indirect + github.com/aliyun/credentials-go v1.4.5 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/aws/aws-sdk-go-v2 v1.36.3 - github.com/aws/aws-sdk-go-v2/config v1.29.5 - github.com/aws/aws-sdk-go-v2/credentials v1.17.58 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 // indirect + github.com/aws/aws-sdk-go-v2/config v1.29.9 + github.com/aws/aws-sdk-go-v2/credentials v1.17.62 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.25.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.17 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/clbanning/mxj/v2 v2.7.0 // indirect - github.com/cloudflare/cloudflare-go v0.114.0 // indirect + github.com/cloudflare/cloudflare-go v0.115.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/disintegration/imaging v1.6.2 // indirect github.com/domodwyer/mailyak/v3 v3.6.2 github.com/dustin/go-humanize v1.0.1 // indirect github.com/fatih/color v1.18.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect - github.com/ganigeorgiev/fexpr v0.4.1 // indirect - github.com/go-jose/go-jose/v4 v4.0.4 // indirect + github.com/ganigeorgiev/fexpr v0.5.0 // indirect + github.com/go-jose/go-jose/v4 v4.0.5 // indirect github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect - github.com/goccy/go-json v0.10.4 // indirect + github.com/goccy/go-json v0.10.5 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/uuid v1.6.0 github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -181,7 +181,7 @@ require ( github.com/kr/fs v0.1.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/miekg/dns v1.1.62 // indirect + github.com/miekg/dns v1.1.64 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/ncruces/go-strftime v0.1.9 // indirect @@ -194,25 +194,25 @@ require ( github.com/spf13/pflag v1.0.6 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.10.0 // indirect - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1084 // indirect + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1128 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect - golang.org/x/image v0.25.0 // indirect + golang.org/x/image v0.26.0 // indirect golang.org/x/mod v0.24.0 // indirect - golang.org/x/net v0.37.0 // indirect - golang.org/x/oauth2 v0.28.0 // indirect - golang.org/x/sync v0.12.0 - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.23.0 // indirect - golang.org/x/time v0.9.0 - golang.org/x/tools v0.31.0 // indirect + golang.org/x/net v0.39.0 // indirect + golang.org/x/oauth2 v0.29.0 // indirect + golang.org/x/sync v0.13.0 + golang.org/x/sys v0.32.0 // indirect + golang.org/x/term v0.31.0 // indirect + golang.org/x/text v0.24.0 // indirect + golang.org/x/time v0.11.0 + golang.org/x/tools v0.32.0 // indirect google.golang.org/protobuf v1.36.5 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - modernc.org/libc v1.61.13 // indirect + modernc.org/libc v1.62.1 // indirect modernc.org/mathutil v1.7.1 // indirect - modernc.org/memory v1.8.2 // indirect - modernc.org/sqlite v1.36.1 // indirect + modernc.org/memory v1.9.1 // indirect + modernc.org/sqlite v1.37.0 // indirect ) replace github.com/Edgio/edgio-api v0.0.0-workspace => ./internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace diff --git a/go.sum b/go.sum index 9caf29d6..89b1fec2 100644 --- a/go.sum +++ b/go.sum @@ -34,18 +34,14 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 h1:g0EZJwz7xkXQiZAI5xi9f3WWFYBlX1CPTrR+NDToRkQ= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0/go.mod h1:XCW7KnZet0Opnr7HccfUw1PLc4CjHqpcaxW8DHklNkQ= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 h1:F0gBpfdPLGsw+nsgk6aqqkZS1jiixa5WwFe3fk/T3Ys= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2/go.mod h1:SqINnQ9lVVdRlyC8cd1lCI0SdX4n2paeABd2K8ggfnE= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.9.0 h1:OVoM452qUFBrX+URdH3VpR299ma4kfom0yB0URYky9g= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.9.0/go.mod h1:kUjrAo8bgEwLeZ/CmHqNl3Z/kPm7y6FKfxxK0izYUg4= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= -github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates v0.9.0 h1:btEsytNrA4TG3edZnnUnzOz8W2MjOd6Bu3/7xyOXSOY= -github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates v0.9.0/go.mod h1:5SlTxxL1U4LLipEr7pAbnu6Ck5y3aIEu4L/tVbGmpsY= -github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 h1:FbH3BbSb4bvGluTesZZ+ttN/MDsnMmQP36OSnDuSXqw= -github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1/go.mod h1:9V2j0jn9jDEkCkv8w/bKTNppX/d0FVA1ud77xCIP4KA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.2.0 h1:lpOxwrQ919lCZoNCd69rVt8u1eLZuMORrGXqy8sNf3c= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.2.0/go.mod h1:fSvRkb8d26z9dbL40Uf/OO6Vo9iExtZK3D0ulRV+8M0= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v3 v3.1.0 h1:2qsIIvxVT+uE6yrNldntJKlLRgxGbZ85kgtz5SNBhMw= @@ -56,19 +52,23 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourceg github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0/go.mod h1:wVEOJfGTj0oPAUGA1JuRAvz/lxXQsWW16axmHPP47Bk= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 h1:Dd+RhdJn0OTtVGaeDLZpcumkIVCtA/3/Fo42+eoYvVM= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0/go.mod h1:5kakwfW5CjC9KK+Q4wjXAg+ShuIm2mBMua0ZFj2C8PE= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates v1.3.1 h1:HUJQzFYTv7t3V1dxPms52eEgl0l9xCNqutDrY45Lvmw= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates v1.3.1/go.mod h1:ig/8nSkzmfxm5QGeIy5JYIEj8JEFy5JxvY3OB1YNRC4= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1 h1:bFWuoEKg+gImo7pvkiQEFAc8ocibADgXeiLAxWhWmkI= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1/go.mod h1:Vih/3yc6yac2JzU4hzpaDupBJP0Flaia9rXXrU8xyww= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3 h1:H5xDQaE3XowWfhZRUpnfC+rGZMEVoSiji+b+/HFAPU4= -github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= +github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= -github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= +github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/G-Core/gcorelabscdn-go v1.0.28 h1:6ymVMV3HPTICO5BWJCEcZZzgY+Pc/+/TQMzeXMN77GQ= -github.com/G-Core/gcorelabscdn-go v1.0.28/go.mod h1:iSGXaTvZBzDHQW+rKFS918BgFVpONcyLEijwh8WsXpE= +github.com/G-Core/gcorelabscdn-go v1.0.29 h1:9jNCwzNZAgihTPe+nrsLD2c0GHjxvpuV3VEA74L5Kkk= +github.com/G-Core/gcorelabscdn-go v1.0.29/go.mod h1:iSGXaTvZBzDHQW+rKFS918BgFVpONcyLEijwh8WsXpE= github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= @@ -113,8 +113,9 @@ github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.0/go.mod h1:5JHVmnHvGzR2wNd github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.2/go.mod h1:5JHVmnHvGzR2wNdgaW1zDLQG8kOC4Uec8ubkMogW7OQ= github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.5/go.mod h1:kUe8JqFmoVU7lfBauaDD5taFaW7mBI+xVsyHutYtabg= github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.10/go.mod h1:26a14FGhZVELuz2cc2AolvW4RHmIO3/HRwsdHhaIPDE= -github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.4 h1:IGSZHlOnWwBbLtX5xDplQvZOH0nkrV7Wmq+Fto7JK5w= -github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.4/go.mod h1:Wxis0IBFusdbo44HO6KYYCJR1rRkoh47QQOYWvaheSU= +github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.11/go.mod h1:wHxkgZT1ClZdcwEVP/pDgYK/9HucsnCfMipmJgCz4xY= +github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.7 h1:ASXSBga98QrGMxbIThCD6jAti09gedLfvry6yJtsoBE= +github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.7/go.mod h1:TBpgqm3XofZz2LCYjZhektGPU7ArEgascyzbm4SjFo4= github.com/alibabacloud-go/darabonba-signature-util v0.0.7 h1:UzCnKvsjPFzApvODDNEYqBHMFt1w98wC7FOo0InLyxg= github.com/alibabacloud-go/darabonba-signature-util v0.0.7/go.mod h1:oUzCYV2fcCH797xKdL6BDH8ADIHlzrtKVjeRtunBNTQ= github.com/alibabacloud-go/darabonba-string v1.0.2 h1:E714wms5ibdzCqGeYJ9JCFywE5nDyvIXIIQbZVFkkqo= @@ -128,10 +129,10 @@ github.com/alibabacloud-go/debug v1.0.1/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/ql github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= github.com/alibabacloud-go/endpoint-util v1.1.1 h1:ZkBv2/jnghxtU0p+upSU0GGzW1VL9GQdZO3mcSUTUy8= github.com/alibabacloud-go/endpoint-util v1.1.1/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= -github.com/alibabacloud-go/esa-20240910/v2 v2.23.0 h1:Z/AALmxhOfzN+35tNCvm62/pET4IlxhDQn4nsdLqNzk= -github.com/alibabacloud-go/esa-20240910/v2 v2.23.0/go.mod h1:P1w/+i7dE2xSXVHJznEOVImlLtqqrzUJQQk2AsyBJ6o= -github.com/alibabacloud-go/fc-20230330/v4 v4.1.7 h1:rQvPfzPaouL/WGNgMDMCplA4wDscmVFff7aLCUkjv4g= -github.com/alibabacloud-go/fc-20230330/v4 v4.1.7/go.mod h1:ssEfKO6MskPtq7QaQnyiOHGWLXOZcl7a8YIf8u56DGc= +github.com/alibabacloud-go/esa-20240910/v2 v2.31.1 h1:LACf71RxZjaystAfcWXa3EMtueVKNGxsCR3L+UihKtU= +github.com/alibabacloud-go/esa-20240910/v2 v2.31.1/go.mod h1:qa4hC7W/BQOc9liuJckLnBLxILEzYjg2xhAZ+UVeUUQ= +github.com/alibabacloud-go/fc-20230330/v4 v4.3.4 h1:DMUkeW24CWuvChy9uOD1DzMh3ToVARCB6m3xxWBslic= +github.com/alibabacloud-go/fc-20230330/v4 v4.3.4/go.mod h1:vEJimQ6E/e+m2z0/oXdeQWlFw/Pi/Ar6NKcMrSvcILE= github.com/alibabacloud-go/fc-open-20210406/v2 v2.0.12 h1:A3D8Mp6qf8DfR6Dt5MpS8aDVaWfS4N85T5CvGUvgrjM= github.com/alibabacloud-go/fc-open-20210406/v2 v2.0.12/go.mod h1:F5c0E5UB3k8v6neTtw3FBcJ1YCNFzVoL1JPRHTe33u4= github.com/alibabacloud-go/live-20161101 v1.1.1 h1:rUGfA8RHmCMtQ5M3yMSyRde+yRXWqVecmiXBU3XrGJ8= @@ -157,9 +158,9 @@ github.com/alibabacloud-go/tea v1.1.19/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy github.com/alibabacloud-go/tea v1.1.20/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A= github.com/alibabacloud-go/tea v1.2.1/go.mod h1:qbzof29bM/IFhLMtJPrgTGK3eauV5J2wSyEUo4OEmnA= github.com/alibabacloud-go/tea v1.2.2/go.mod h1:CF3vOzEMAG+bR4WOql8gc2G9H3EkH3ZLAQdpmpXMgwk= -github.com/alibabacloud-go/tea v1.3.2/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg= -github.com/alibabacloud-go/tea v1.3.4 h1:QGTns2930y+ANmoNcUS74TgYpsoqusSrLIyYDOvIFFI= -github.com/alibabacloud-go/tea v1.3.4/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg= +github.com/alibabacloud-go/tea v1.3.8/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg= +github.com/alibabacloud-go/tea v1.3.9 h1:bjgt1bvdY780vz/17iWNNtbXl4A77HWntWMeaUF3So0= +github.com/alibabacloud-go/tea v1.3.9/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg= github.com/alibabacloud-go/tea-fileform v1.1.1 h1:1YG6erAP3joQ0XdCXYIotuD7zyOM6qCR49xkp5FZDeU= github.com/alibabacloud-go/tea-fileform v1.1.1/go.mod h1:ZeCV91o4ISmxidd686f0ebdS5EDHWU+vW+TkjLhrsFE= github.com/alibabacloud-go/tea-oss-sdk v1.1.3 h1:EhAHI6edMeqgkZEqP7r4nc9iMWAUBKGxJHoBsOSKTtU= @@ -181,20 +182,20 @@ github.com/alibabacloud-go/tea-xml v1.1.1/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCE github.com/alibabacloud-go/tea-xml v1.1.2/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8= github.com/alibabacloud-go/tea-xml v1.1.3 h1:7LYnm+JbOq2B+T/B0fHC4Ies4/FofC4zHzYtqw7dgt0= github.com/alibabacloud-go/tea-xml v1.1.3/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8= -github.com/alibabacloud-go/vod-20170321/v4 v4.7.0 h1:hpsnJBX5EeMrFujopMCjfq+p8XbNvPhFw6LOTV/WHd8= -github.com/alibabacloud-go/vod-20170321/v4 v4.7.0/go.mod h1:TkgLKMSLu0qZN8Qdcu8svfHREyI64kjFvrp/GhrD4VQ= -github.com/alibabacloud-go/waf-openapi-20211001/v5 v5.0.5 h1:ldAm1nvsCq66igjtcZyGhAoLClr+2eZ/pMIBUdKCOMM= -github.com/alibabacloud-go/waf-openapi-20211001/v5 v5.0.5/go.mod h1:DohGoS8BnMxHXghHebtjPP7+GMdxPsRN19T3nn2HcCU= -github.com/aliyun/alibaba-cloud-sdk-go v1.63.83 h1:YBkf7H5CSgrlb3C1aWcpDt7Vk8UEGFPeD2OOirtt6IM= -github.com/aliyun/alibaba-cloud-sdk-go v1.63.83/go.mod h1:SOSDHfe1kX91v3W5QiBsWSLqeLxImobbMX1mxrFHsVQ= +github.com/alibabacloud-go/vod-20170321/v4 v4.8.3 h1:IXDfINF3Wc88SKIijYgqy9HF3NiA68F97wgVeiRRwkc= +github.com/alibabacloud-go/vod-20170321/v4 v4.8.3/go.mod h1:5ocQ6hIc9tpGixD2iy099aOGwIgpzjT2le4Krd4aLn8= +github.com/alibabacloud-go/waf-openapi-20211001/v5 v5.1.1 h1:7gHYtb2swx96tG7rflKoiFOdjKZ/W3N7azS6LT1TVFI= +github.com/alibabacloud-go/waf-openapi-20211001/v5 v5.1.1/go.mod h1:DohGoS8BnMxHXghHebtjPP7+GMdxPsRN19T3nn2HcCU= +github.com/aliyun/alibaba-cloud-sdk-go v1.63.100 h1:yUkCbrSM1cWtgBfRVKMQtdt22KhDvKY7g4V+92eG9wA= +github.com/aliyun/alibaba-cloud-sdk-go v1.63.100/go.mod h1:SOSDHfe1kX91v3W5QiBsWSLqeLxImobbMX1mxrFHsVQ= github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible h1:8psS8a+wKfiLt1iVDX79F7Y6wUM49Lcha2FMXt4UM8g= github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw= github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTsBEN04dgcAcYz0= github.com/aliyun/credentials-go v1.3.6/go.mod h1:1LxUuX7L5YrZUWzBrRyk0SwSdH4OmPrib8NVePL3fxM= github.com/aliyun/credentials-go v1.3.10/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U= -github.com/aliyun/credentials-go v1.4.3 h1:N3iHyvHRMyOwY1+0qBLSf3hb5JFiOujVSVuEpgeGttY= -github.com/aliyun/credentials-go v1.4.3/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U= +github.com/aliyun/credentials-go v1.4.5 h1:O76WYKgdy1oQYYiJkERjlA2dxGuvLRrzuO2ScrtGWSk= +github.com/aliyun/credentials-go v1.4.5/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= @@ -210,40 +211,40 @@ github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM= github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= -github.com/aws/aws-sdk-go-v2/config v1.29.5 h1:4lS2IB+wwkj5J43Tq/AwvnscBerBJtQQ6YS7puzCI1k= -github.com/aws/aws-sdk-go-v2/config v1.29.5/go.mod h1:SNzldMlDVbN6nWxM7XsUiNXPSa1LWlqiXtvh/1PrJGg= -github.com/aws/aws-sdk-go-v2/credentials v1.17.58 h1:/d7FUpAPU8Lf2KUdjniQvfNdlMID0Sd9pS23FJ3SS9Y= -github.com/aws/aws-sdk-go-v2/credentials v1.17.58/go.mod h1:aVYW33Ow10CyMQGFgC0ptMRIqJWvJ4nxZb0sUiuQT/A= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 h1:KwsodFKVQTlI5EyhRSugALzsV6mG/SGrdjlMXSZSdso= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28/go.mod h1:EY3APf9MzygVhKuPXAc5H+MkGb8k/DOSQjWS0LgkKqI= +github.com/aws/aws-sdk-go-v2/config v1.29.9 h1:Kg+fAYNaJeGXp1vmjtidss8O2uXIsXwaRqsQJKXVr+0= +github.com/aws/aws-sdk-go-v2/config v1.29.9/go.mod h1:oU3jj2O53kgOU4TXq/yipt6ryiooYjlkqqVaZk7gY/U= +github.com/aws/aws-sdk-go-v2/credentials v1.17.62 h1:fvtQY3zFzYJ9CfixuAQ96IxDrBajbBWGqjNTCa79ocU= +github.com/aws/aws-sdk-go-v2/credentials v1.17.62/go.mod h1:ElETBxIQqcxej++Cs8GyPBbgMys5DgQPTwo7cUPDKt8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 h1:Pg9URiobXy85kgFev3og2CuOZ8JZUBENF+dcgWBaYNk= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= -github.com/aws/aws-sdk-go-v2/service/acm v1.31.1 h1:FB1PgU6vlXbqehxZiHuYQRWo5Ou6sQrFJcUaRe27lRo= -github.com/aws/aws-sdk-go-v2/service/acm v1.31.1/go.mod h1:3sKYAgRbuBa2QMYGh/WEclwnmfx+QoPhhX25PdSQSQM= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.45.2 h1:S3JpsBLyn/jqSJ6GgsbDQHubmop6fshQk/iOaOeotsc= -github.com/aws/aws-sdk-go-v2/service/cloudfront v1.45.2/go.mod h1:FIBJ48TS+qJb+Ne4qJ+0NeIhtPTVXItXooTeNeVI4Po= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= +github.com/aws/aws-sdk-go-v2/service/acm v1.31.3 h1:GwlU39usxM7E1LIhZchk93PtTQm2j3jb63of/YkBd+o= +github.com/aws/aws-sdk-go-v2/service/acm v1.31.3/go.mod h1:3sKYAgRbuBa2QMYGh/WEclwnmfx+QoPhhX25PdSQSQM= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.45.3 h1:xQnjN34F4I3a/I3Xj0g9vmD5hAqC7u5y3SC3eC6T1E8= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.45.3/go.mod h1:FIBJ48TS+qJb+Ne4qJ+0NeIhtPTVXItXooTeNeVI4Po= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 h1:SYVGSFQHlchIcy6e7x12bsrxClCXSP5et8cqVhL8cuw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13/go.mod h1:kizuDaLX37bG5WZaoxGPQR/LNFXpxp0vsUnqfkWXfNE= -github.com/aws/aws-sdk-go-v2/service/route53 v1.48.1 h1:njgAP7Rtt4DGdTGFPhJ4gaZXCD1CDj/SZDa5W4ZgSTs= -github.com/aws/aws-sdk-go-v2/service/route53 v1.48.1/go.mod h1:TN4PcCL0lvqmYcv+AV8iZFC4Sd0FM06QDaoBXrFEftU= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 h1:/eE3DogBjYlvlbhd2ssWyeuovWunHLxfgw3s/OJa4GQ= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.15/go.mod h1:2PCJYpi7EKeA5SkStAmZlF6fi0uUABuhtF8ILHjGc3Y= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 h1:M/zwXiL2iXUrHputuXgmO94TVNmcenPHxgLXLutodKE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14/go.mod h1:RVwIw3y/IqxC2YEXSIkAzRDdEU1iRabDPaYjpGCbCGQ= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 h1:TzeR06UCMUq+KA3bDkujxK1GVGy+G8qQN/QVYzGLkQE= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.14/go.mod h1:dspXf/oYWGWo6DEvj98wpaTeqt5+DMidZD0A9BYTizc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= +github.com/aws/aws-sdk-go-v2/service/route53 v1.50.0 h1:/nkJHXtJXJeelXHqG0898+fWKgvfaXBhGzbCsSmn9j8= +github.com/aws/aws-sdk-go-v2/service/route53 v1.50.0/go.mod h1:kGYOjvTa0Vw0qxrqrOLut1vMnui6qLxqv/SX3vYeM8Y= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.1 h1:8JdC7Gr9NROg1Rusk25IcZeTO59zLxsKgE0gkh5O6h0= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.1/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.1 h1:KwuLovgQPcdjNMfFt9OhUd9a2OwcOKhxfvF4glTzLuA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.17 h1:PZV5W8yk4OtH1JAuhV2PXwwO9v5G5Aoj+eMCn4T+1Kc= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.17/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= -github.com/baidubce/bce-sdk-go v0.9.221 h1:x5uTXND33m5TE3UBXYhlePuXcJi5rxNnBBt+bP7kPe0= -github.com/baidubce/bce-sdk-go v0.9.221/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg= +github.com/baidubce/bce-sdk-go v0.9.224 h1:z2L8alGw/y3IUHjrLRyrxrgCvMssYTjgCd7OQdb4gt0= +github.com/baidubce/bce-sdk-go v0.9.224/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= @@ -251,8 +252,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/blinkbean/dingtalk v1.1.3 h1:MbidFZYom7DTFHD/YIs+eaI7kRy52kmWE/sy0xjo6E4= github.com/blinkbean/dingtalk v1.1.3/go.mod h1:9BaLuGSBqY3vT5hstValh48DbsKO7vaHaJnG9pXwbto= -github.com/byteplus-sdk/byteplus-sdk-golang v1.0.42 h1:Dm9FDjQP2SlAjUH7WAV7DFYDBFQz2uBxX6JULs0Sxs0= -github.com/byteplus-sdk/byteplus-sdk-golang v1.0.42/go.mod h1:CIL/T2dxgbIA79os+wl0Fq0vCbADTZNIddV6PNYB6DY= +github.com/byteplus-sdk/byteplus-sdk-golang v1.0.44 h1:men5pKZNho+cw9/YU7TFerTspS3lKayS64zctl/D7Fk= +github.com/byteplus-sdk/byteplus-sdk-golang v1.0.44/go.mod h1:CIL/T2dxgbIA79os+wl0Fq0vCbADTZNIddV6PNYB6DY= github.com/casbin/casbin/v2 v2.37.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= @@ -275,8 +276,8 @@ github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME= github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/cloudflare-go v0.114.0 h1:ucoti4/7Exo0XQ+rzpn1H+IfVVe++zgiM+tyKtf0HUA= -github.com/cloudflare/cloudflare-go v0.114.0/go.mod h1:O7fYfFfA6wKqKFn2QIR9lhj7FDw6VQCGOY6hd2TBtd0= +github.com/cloudflare/cloudflare-go v0.115.0 h1:84/dxeeXweCc0PN5Cto44iTA8AkG1fyT11yPO5ZB7sM= +github.com/cloudflare/cloudflare-go v0.115.0/go.mod h1:Ds6urDwn/TF2uIU24mu7H91xkKP8gSAHxQ44DSZgVmU= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= @@ -332,16 +333,16 @@ github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXE github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/gammazero/toposort v0.1.1/go.mod h1:H2cozTnNpMw0hg2VHAYsAxmkHXBYroNangj2NTBQDvw= -github.com/ganigeorgiev/fexpr v0.4.1 h1:hpUgbUEEWIZhSDBtf4M9aUNfQQ0BZkGRaMePy7Gcx5k= -github.com/ganigeorgiev/fexpr v0.4.1/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE= +github.com/ganigeorgiev/fexpr v0.5.0 h1:XA9JxtTE/Xm+g/JFI6RfZEHSiQlk+1glLvRK1Lpv/Tk= +github.com/ganigeorgiev/fexpr v0.5.0/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-acme/lego/v4 v4.22.2 h1:ck+HllWrV/rZGeYohsKQ5iKNnU/WAZxwOdiu6cxky+0= -github.com/go-acme/lego/v4 v4.22.2/go.mod h1:E2FndyI3Ekv0usNJt46mFb9LVpV/XBYT+4E3tz02Tzo= +github.com/go-acme/lego/v4 v4.23.1 h1:lZ5fGtGESA2L9FB8dNTvrQUq3/X4QOb8ExkKyY7LSV4= +github.com/go-acme/lego/v4 v4.23.1/go.mod h1:7UMVR7oQbIYw6V7mTgGwi4Er7B6Ww0c+c8feiBM0EgI= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E= -github.com/go-jose/go-jose/v4 v4.0.4/go.mod h1:NKb5HO1EZccyMpiZNbdUw/14tiXNyUJh188dfnMCAfc= +github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= +github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= @@ -392,8 +393,8 @@ github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= -github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= -github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= @@ -403,8 +404,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= -github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= +github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -474,8 +475,8 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20250315033105-103756e64e1d h1:tx51Lf+wdE+aavqH8TcPJoCjTf4cE8hrMzROghCely0= -github.com/google/pprof v0.0.0-20250315033105-103756e64e1d/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -566,8 +567,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= -github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= +github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= +github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= @@ -619,8 +620,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= -github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= -github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= +github.com/miekg/dns v1.1.64 h1:wuZgD9wwCE6XMT05UU/mlSko71eRSXEAm2EbjQXLKnQ= +github.com/miekg/dns v1.1.64/go.mod h1:Dzw9769uoKVaLuODMDZz9M6ynFU6Em65csPuoi8G0ck= github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= @@ -702,15 +703,15 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -github.com/pkg/sftp v1.13.8 h1:Xt7eJ/xqXv7s0VuzFw7JXhZj6Oc1zI6l4GK8KP9sFB0= -github.com/pkg/sftp v1.13.8/go.mod h1:DmvEkvKE2lshEeuo2JMp06yqcx9HVnR7e3zqQl42F3U= +github.com/pkg/sftp v1.13.9 h1:4NGkvGudBL7GteO3m6qnaQ4pC0Kvf0onSVc9gR3EWBw= +github.com/pkg/sftp v1.13.9/go.mod h1:OBN7bVXdstkFFN/gdnHPUb5TE8eb8G1Rp9wCItqjkkA= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pocketbase/dbx v1.11.0 h1:LpZezioMfT3K4tLrqA55wWFw1EtH1pM4tzSVa7kgszU= github.com/pocketbase/dbx v1.11.0/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs= -github.com/pocketbase/pocketbase v0.26.1 h1:0WBqIRKKPCqp+xHPVLB4fevkoT9HVlR4BSuNwAt5oJ0= -github.com/pocketbase/pocketbase v0.26.1/go.mod h1:t5y5pfnhrEg//RuSzSg0a926OLZ0oQj66jYs3BzDJwA= +github.com/pocketbase/pocketbase v0.27.1 h1:KGCsS8idUVTC5QHxTj91qHDhIXOb5Yb50wwHhNvJRTQ= +github.com/pocketbase/pocketbase v0.27.1/go.mod h1:aTpwwloVJzeJ7MlwTRrbI/x62QNR2/kkCrovmyrXpqs= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/povsister/scp v0.0.0-20240802064259-28781e87b246 h1:c4D8BPWLOxxdaxQLfLKQXH2YXY/E9yo3jrDSL54XrTw= @@ -737,14 +738,14 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/qiniu/dyn v1.3.0 h1:s+xPTeV0H8yikgM4ZMBc7Rrefam8UNI3asBlkaOQg5o= github.com/qiniu/dyn v1.3.0/go.mod h1:E8oERcm8TtwJiZvkQPbcAh0RL8jO1G0VXJMW3FAWdkk= -github.com/qiniu/go-sdk/v7 v7.25.2 h1:URwgZpxySdiwu2yQpHk93X4LXWHyFRp1x3Vmlk/YWvo= -github.com/qiniu/go-sdk/v7 v7.25.2/go.mod h1:dmKtJ2ahhPWFVi9o1D5GemmWoh/ctuB9peqTowyTO8o= +github.com/qiniu/go-sdk/v7 v7.25.3 h1:eYHh02q4i5MrlEn3qy823w7moieymFzb4dsP38Y43AI= +github.com/qiniu/go-sdk/v7 v7.25.3/go.mod h1:dmKtJ2ahhPWFVi9o1D5GemmWoh/ctuB9peqTowyTO8o= github.com/qiniu/x v1.10.5 h1:7V/CYWEmo9axJULvrJN6sMYh2FdY+esN5h8jwDkA4b0= github.com/qiniu/x v1.10.5/go.mod h1:03Ni9tj+N2h2aKnAz+6N0Xfl8FwMEDRC2PAlxekASDs= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E= -github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw= +github.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0wM= +github.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= @@ -801,32 +802,32 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/technoweenie/multipartstreamer v1.0.1 h1:XRztA5MXiR1TIRHxH2uNxXxaIkKQDeX7m2XsSOlQEnM= github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1115 h1:HsrXyqKQB2mKfGq+ZkbylRCMrbtPCmmUBrwA8MhhEX0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1115/go.mod h1:5cz1DtLlXK98U1Hh36oW4PjVOU+mbKg5wtCDmCc9Fcs= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1127 h1:PiLZflqaW0690YsqIM/hqaVYjZJ3+cCJp4NHfw7h/uw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1127/go.mod h1:V1+julLUOH0jKoVH6o6xgM4STWowzAL57M4VanUEEag= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1084/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1115/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1117/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1136 h1:H1pjtH5uZ4XZPj9qQ9tt9jzeWqZzrd8qYIw01Q60/08= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1136/go.mod h1:K6absuzpElv6mw2d7j8xkphOkwd23qvG0Rcmhl4rqlk= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1143 h1:7OL/ThUCqkntItSiqbY1g3s0Ua26Qr08G8fcSzyrAqA= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1143/go.mod h1:XO18PkKinF17cQOSlhbP7GOnj04N5L2iCaHn64yiMtE= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1120/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1124/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1125/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1126/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1127 h1:1uG8zc0b9gLbyTr27T0CzGtcdrL86CGGJ6Flkq867f4= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1127/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1084 h1:kwctN0WQYt8/iKP+iRCTCwdzEMIXsXklbRIib5rjeQ8= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1084/go.mod h1:qE67ApiBzeRvzeDsV+GxyIDbVIDemsKpHXllQATz/Vw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1117 h1:Yc/r5zUAyukVI3huIuwE7koowCjDjOWqeRpBILCvOSE= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1117/go.mod h1:YxsorHl3sTRw+2GsUObMqcumDqAQ3zo9rLMtf3Cxj8U= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.1115 h1:Qi7VWmJ0AQxEMlwKpbWfnsLA5QdNxekdcLJTBVdO85U= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.1115/go.mod h1:P16nIMvmpSY+arTc2m2HyJmrYQP6CFnr48glz0+abyw= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1128/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1136/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1138/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1143/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1147 h1:6v559jM1v6A4KJinNZ28RqVZs+ipKMzCWtYWcWy+zZ4= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1147/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1128 h1:mrJ5Fbkd7sZIJ5F6oRfh5zebPQaudPH9Y0+GUmFytYU= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1128/go.mod h1:zbsYIBT+VTX4z4ocjTAdLBIWyNYj3z0BRqd0iPdnjsk= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1143 h1:fvK9kOsPquDTWrT2aXLWVnAMUokr4gFK7uYeY3JMB6U= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.1143/go.mod h1:SLYgasv8DdvRnesG+SLdqFdEBIJzietfVDytke8ASKQ= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.1120 h1:z0t0lb5h1mZirXftO8MRg25COYZHx0ubQjSPhZT/LY0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.1120/go.mod h1:IFZL44Keyl+MHrhpFwUaQmJvMDwGr+t+cUfFAC+74lU= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1124 h1:LQKAlxFb0sYiE8ojK5h9+seuFzogoJtYnXmiRF+4F4Q= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1124/go.mod h1:tYbK0FbHVG+78od7eZpzczE8qk0JWKO/osTQWuiJ3Fo= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1126 h1:+CJQNXLdLP0GLaz2fnPECQsU+WdOmW3BQ54cNoQgMKA= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1126/go.mod h1:eY3GoWilNoCPOEw2Lp4o+h02nEfc+BoZnqK3TlK6F7I= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.1115 h1:rO0LdbcNtT5VlL9sB/K3Ve848uLp1rgg3R8igT9xsFQ= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.1115/go.mod h1:jJR8Y5sHuujSXZy0cpCgBk180TvPNsLw9hEoSH9w7iA= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1125 h1:IR9pJqHjHr7KyncRVxld9iltfnmy9sCC+0USZrs3rOw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1125/go.mod h1:5+5QrF7x+AW1KPM7F+YRzD74L88RXHZ6BxDF07b8QkE= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1138 h1:SrQ+rlWLwnXU/6S8ULGhFaiV5faAeqL0ysdsqV6P1AA= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1138/go.mod h1:XvXgF+4yO4Ni6gYoqMszSkNNqFLkOxx2j5F7+u3lpKQ= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.1136 h1:9GqM1URHNySj0f8TkUcKT6qSDiGep3IB1hWWu1ti6rY= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.1136/go.mod h1:b5JZEbM4ROYUSVcgNkDHuHWdTJX5Qe4wC1asq2n0yes= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1147 h1:SxZsn9N4c1yx40kZOINIh9AnUKcgChUWbZoDiv6VvmQ= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1147/go.mod h1:T4sxG9+SJ038MBsam2upsEYRpQ82JpX+IkZ08+P9RlE= github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho= github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= @@ -835,16 +836,16 @@ github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaO github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= -github.com/ucloud/ucloud-sdk-go v0.22.31 h1:izZK+Re9ZkJAd1fHSVpFzgh8uKda4f5G6++iUw4n/mE= -github.com/ucloud/ucloud-sdk-go v0.22.31/go.mod h1:dyLmFHmUfgb4RZKYQP9IArlvQ2pxzFthfhwxRzOEPIw= +github.com/ucloud/ucloud-sdk-go v0.22.33 h1:YKY8VpFNttdnVNb0o3owGeZRoUtRJmoWPJYJPfcCf9A= +github.com/ucloud/ucloud-sdk-go v0.22.33/go.mod h1:dyLmFHmUfgb4RZKYQP9IArlvQ2pxzFthfhwxRzOEPIw= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.9 h1:fEnScn2dXfvfNcFnvJnpf/cYdj8kLIe5QC5qORlFO2c= -github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.9/go.mod h1:IrjK84IJJTuOZOTMv/P18Ydjy/x+ow7fF7q11jAxXLM= +github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.11 h1:J4AweXxLqlSwb1Aam9npcb5optZmszDIrKWa/hs+e4U= +github.com/volcengine/ve-tos-golang-sdk/v2 v2.7.11/go.mod h1:IrjK84IJJTuOZOTMv/P18Ydjy/x+ow7fF7q11jAxXLM= github.com/volcengine/volc-sdk-golang v1.0.23/go.mod h1:AfG/PZRUkHJ9inETvbjNifTDgut25Wbkm2QoYBTbvyU= -github.com/volcengine/volc-sdk-golang v1.0.199 h1:zv9QOqTl/IsLwtfC37GlJtcz6vMAHi+pjq8ILWjLYUc= -github.com/volcengine/volc-sdk-golang v1.0.199/go.mod h1:stZX+EPgv1vF4nZwOlEe8iGcriUPRBKX8zA19gXycOQ= -github.com/volcengine/volcengine-go-sdk v1.0.187 h1:YpZjydoyHDA/ofnF6mYCelbOoo9pJsBEiQOOSJzGSOY= -github.com/volcengine/volcengine-go-sdk v1.0.187/go.mod h1:gfEDc1s7SYaGoY+WH2dRrS3qiuDJMkwqyfXWCa7+7oA= +github.com/volcengine/volc-sdk-golang v1.0.204 h1:Njid6coReHV2gWc3bsqWMQf+K8jveauzW8zEX08CTzI= +github.com/volcengine/volc-sdk-golang v1.0.204/go.mod h1:stZX+EPgv1vF4nZwOlEe8iGcriUPRBKX8zA19gXycOQ= +github.com/volcengine/volcengine-go-sdk v1.1.4 h1:xPT4KOy8VkXxhY7dbXzzvLvKQXUe4J6AtkQdNQU3wRY= +github.com/volcengine/volcengine-go-sdk v1.1.4/go.mod h1:gfEDc1s7SYaGoY+WH2dRrS3qiuDJMkwqyfXWCa7+7oA= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= @@ -912,8 +913,8 @@ golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOM golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= +golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -927,14 +928,14 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= -golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= +golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= +golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ= -golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs= +golang.org/x/image v0.26.0 h1:4XjIFEZWQmCZi6Wv8BoxsDhRU3RVnLX04dToTDAEPlY= +golang.org/x/image v0.26.0/go.mod h1:lcxbMFAovzpnJxzXS3nyL83K27tmqtKzIJpctK8YO5c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1017,16 +1018,16 @@ golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= -golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= -golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= +golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc= -golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= +golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1044,8 +1045,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= +golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1122,8 +1123,8 @@ golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1139,8 +1140,8 @@ golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= +golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1159,15 +1160,15 @@ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= +golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= -golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= +golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1222,8 +1223,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= -golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= +golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= +golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1375,27 +1376,27 @@ k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8X k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas= k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0= k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -modernc.org/cc/v4 v4.24.4 h1:TFkx1s6dCkQpd6dKurBNmpo+G8Zl4Sq/ztJ+2+DEsh0= -modernc.org/cc/v4 v4.24.4/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= -modernc.org/ccgo/v4 v4.23.16 h1:Z2N+kk38b7SfySC1ZkpGLN2vthNJP1+ZzGZIlH7uBxo= -modernc.org/ccgo/v4 v4.23.16/go.mod h1:nNma8goMTY7aQZQNTyN9AIoJfxav4nvTnvKThAeMDdo= +modernc.org/cc/v4 v4.25.2 h1:T2oH7sZdGvTaie0BRNFbIYsabzCxUQg8nLqCdQ2i0ic= +modernc.org/cc/v4 v4.25.2/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= +modernc.org/ccgo/v4 v4.25.1 h1:TFSzPrAGmDsdnhT9X2UrcPMI3N/mJ9/X9ykKXwLhDsU= +modernc.org/ccgo/v4 v4.25.1/go.mod h1:njjuAYiPflywOOrm3B7kCB444ONP5pAVr8PIEoE0uDw= modernc.org/fileutil v1.0.0/go.mod h1:JHsWpkrk/CnVV1H/eGlFf85BEpfkrp56ro8nojIq9Q8= modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE= modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ= -modernc.org/gc/v2 v2.6.3 h1:aJVhcqAte49LF+mGveZ5KPlsp4tdGdAOT4sipJXADjw= -modernc.org/gc/v2 v2.6.3/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= -modernc.org/libc v1.61.13 h1:3LRd6ZO1ezsFiX1y+bHd1ipyEHIJKvuprv0sLTBwLW8= -modernc.org/libc v1.61.13/go.mod h1:8F/uJWL/3nNil0Lgt1Dpz+GgkApWh04N3el3hxJcA6E= +modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= +modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= +modernc.org/libc v1.62.1 h1:s0+fv5E3FymN8eJVmnk0llBe6rOxCu/DEU+XygRbS8s= +modernc.org/libc v1.62.1/go.mod h1:iXhATfJQLjG3NWy56a6WVU73lWOcdYVxsvwCgoPljuo= modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= -modernc.org/memory v1.8.2 h1:cL9L4bcoAObu4NkxOlKWBWtNHIsnnACGF/TbqQ6sbcI= -modernc.org/memory v1.8.2/go.mod h1:ZbjSvMO5NQ1A2i3bWeDiVMxIorXwdClKE/0SZ+BMotU= +modernc.org/memory v1.9.1 h1:V/Z1solwAVmMW1yttq3nDdZPJqV1rM05Ccq6KMSZ34g= +modernc.org/memory v1.9.1/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8= modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= -modernc.org/sqlite v1.36.1 h1:bDa8BJUH4lg6EGkLbahKe/8QqoF8p9gArSc6fTqYhyQ= -modernc.org/sqlite v1.36.1/go.mod h1:7MPwH7Z6bREicF9ZVUR78P1IKuxfZ8mRIDHD0iD+8TU= +modernc.org/sqlite v1.37.0 h1:s1TMe7T3Q3ovQiK2Ouz4Jwh7dw4ZDqbebSDTlSJdfjI= +modernc.org/sqlite v1.37.0/go.mod h1:5YiWv+YviqGMuGw4V+PNplcyaJ5v+vQd7TQOgkACoJM= modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= diff --git a/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go b/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go index 422d39d5..fe39eeec 100644 --- a/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go +++ b/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go @@ -11,7 +11,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" + "github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates" xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" diff --git a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go index 36af11c7..415f7d2e 100644 --- a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go +++ b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go @@ -11,7 +11,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" + "github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates" xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -81,42 +81,42 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // 获取证书列表,避免重复上传 // REF: https://learn.microsoft.com/en-us/rest/api/keyvault/certificates/get-certificates/get-certificates - listCertificatesPager := u.sdkClient.NewListCertificatesPager(nil) + listCertificatesPager := u.sdkClient.NewListCertificatePropertiesPager(nil) for listCertificatesPager.More() { page, err := listCertificatesPager.NextPage(context.TODO()) if err != nil { return nil, xerrors.Wrap(err, "failed to execute sdk request 'keyvault.GetCertificates'") } - for _, certItem := range page.Value { + for _, certProp := range page.Value { // 先对比证书有效期 - if certItem.Attributes == nil { + if certProp.Attributes == nil { continue } - if certItem.Attributes.NotBefore == nil || !certItem.Attributes.NotBefore.Equal(certX509.NotBefore) { + if certProp.Attributes.NotBefore == nil || !certProp.Attributes.NotBefore.Equal(certX509.NotBefore) { continue } - if certItem.Attributes.Expires == nil || !certItem.Attributes.Expires.Equal(certX509.NotAfter) { + if certProp.Attributes.Expires == nil || !certProp.Attributes.Expires.Equal(certX509.NotAfter) { continue } // 再对比 Tag 中的通用名称 - if v, ok := certItem.Tags[TAG_CERTCN]; !ok || v == nil { + if v, ok := certProp.Tags[TAG_CERTCN]; !ok || v == nil { continue } else if *v != certCN { continue } // 再对比 Tag 中的序列号 - if v, ok := certItem.Tags[TAG_CERTSN]; !ok || v == nil { + if v, ok := certProp.Tags[TAG_CERTSN]; !ok || v == nil { continue } else if *v != certSN { continue } // 最后对比证书内容 - getCertificateResp, err := u.sdkClient.GetCertificate(context.TODO(), certItem.ID.Name(), certItem.ID.Version(), nil) - u.logger.Debug("sdk request 'keyvault.GetCertificate'", slog.String("request.certificateName", certItem.ID.Name()), slog.String("request.certificateVersion", certItem.ID.Version()), slog.Any("response", getCertificateResp)) + getCertificateResp, err := u.sdkClient.GetCertificate(context.TODO(), certProp.ID.Name(), certProp.ID.Version(), nil) + u.logger.Debug("sdk request 'keyvault.GetCertificate'", slog.String("request.certificateName", certProp.ID.Name()), slog.String("request.certificateVersion", certProp.ID.Version()), slog.Any("response", getCertificateResp)) if err != nil { return nil, xerrors.Wrap(err, "failed to execute sdk request 'keyvault.GetCertificate'") } else { @@ -133,8 +133,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // 如果以上信息都一致,则视为已存在相同证书,直接返回 u.logger.Info("ssl certificate already exists") return &uploader.UploadResult{ - CertId: string(*certItem.ID), - CertName: certItem.ID.Name(), + CertId: string(*certProp.ID), + CertName: certProp.ID.Name(), }, nil } } diff --git a/migrations/1744459000_upgrade.go b/migrations/1744459000_upgrade.go index d2f95004..4b2bbba9 100644 --- a/migrations/1744459000_upgrade.go +++ b/migrations/1744459000_upgrade.go @@ -7,91 +7,85 @@ import ( func init() { m.Register(func(app core.App) error { - // update collection `access` - { - collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e") - if 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", - "bunny", - "byteplus", - "buypass", - "cachefly", - "cdnfly", - "cloudflare", - "cloudns", - "cmcccloud", - "ctcccloud", - "cucccloud", - "desec", - "dnsla", - "dogecloud", - "dynv6", - "edgio", - "fastly", - "gname", - "gcore", - "godaddy", - "goedge", - "googletrustservices", - "huaweicloud", - "jdcloud", - "k8s", - "letsencrypt", - "letsencryptstaging", - "local", - "namecheap", - "namedotcom", - "namesilo", - "ns1", - "porkbun", - "powerdns", - "qiniu", - "qingcloud", - "rainyun", - "safeline", - "ssh", - "sslcom", - "tencentcloud", - "ucloud", - "upyun", - "vercel", - "volcengine", - "webhook", - "westcn", - "zerossl" - ] - }`)); err != nil { - return err - } - - if err := app.Save(collection); err != nil { - return err - } + collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e") + if err != nil { + return err } - return nil + // 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", + "bunny", + "byteplus", + "buypass", + "cachefly", + "cdnfly", + "cloudflare", + "cloudns", + "cmcccloud", + "ctcccloud", + "cucccloud", + "desec", + "dnsla", + "dogecloud", + "dynv6", + "edgio", + "fastly", + "gname", + "gcore", + "godaddy", + "goedge", + "googletrustservices", + "huaweicloud", + "jdcloud", + "k8s", + "letsencrypt", + "letsencryptstaging", + "local", + "namecheap", + "namedotcom", + "namesilo", + "ns1", + "porkbun", + "powerdns", + "qiniu", + "qingcloud", + "rainyun", + "safeline", + "ssh", + "sslcom", + "tencentcloud", + "ucloud", + "upyun", + "vercel", + "volcengine", + "wangsu", + "webhook", + "westcn", + "zerossl" + ] + }`)); err != nil { + return err + } + + return app.Save(collection) }, func(app core.App) error { return nil }) From 3febc530611450ceecc770be2721bec0a86efd91 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 22 Apr 2025 18:34:51 +0800 Subject: [PATCH 05/38] feat: change field `provider`'s type of table `access` --- migrations/1745308800_upgrade.go | 94 ++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 migrations/1745308800_upgrade.go diff --git a/migrations/1745308800_upgrade.go b/migrations/1745308800_upgrade.go new file mode 100644 index 00000000..989664fb --- /dev/null +++ b/migrations/1745308800_upgrade.go @@ -0,0 +1,94 @@ +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 + } + + // add temp field `providerTmp` + if err := collection.Fields.AddMarshaledJSONAt(3, []byte(`{ + "autogeneratePattern": "", + "hidden": false, + "id": "text2024822322", + "max": 0, + "min": 0, + "name": "providerTmp", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }`)); err != nil { + return err + } + if err := app.Save(collection); err != nil { + return err + } + + // copy `provider` to `providerTmp` + if _, err := app.DB().NewQuery("UPDATE access SET providerTmp = provider").Execute(); err != nil { + return err + } + + // remove old field `provider` + collection.Fields.RemoveById("hwy7m03o") + if err := json.Unmarshal([]byte(`{ + "indexes": [ + "CREATE INDEX `+"`"+`idx_wkoST0j`+"`"+` ON `+"`"+`access`+"`"+` (`+"`"+`name`+"`"+`)" + ] + }`), &collection); err != nil { + return err + } + if err := app.Save(collection); err != nil { + return err + } + + // rename field `providerTmp` to `provider` + if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{ + "autogeneratePattern": "", + "hidden": false, + "id": "text2024822322", + "max": 0, + "min": 0, + "name": "provider", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }`)); err != nil { + return err + } + if err := app.Save(collection); err != nil { + return err + } + + // rebuild indexes + 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 + } + if err := app.Save(collection); err != nil { + return err + } + + return nil + }, func(app core.App) error { + return nil + }) +} From 3189e65badf693dfe3961f58154bb65fc843dbc9 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 22 Apr 2025 21:18:16 +0800 Subject: [PATCH 06/38] refactor: clean code --- go.mod | 6 ++--- internal/applicant/acme_user.go | 4 +-- internal/applicant/applicant.go | 2 +- internal/applicant/providers.go | 2 +- internal/certificate/service.go | 2 +- internal/deployer/providers.go | 6 ++--- internal/domain/certificate.go | 2 +- internal/domain/workflow.go | 2 +- internal/notify/notify.go | 2 +- internal/notify/providers.go | 4 +-- .../lego-providers/azure-dns/azure-dns.go | 2 +- .../lego-providers/dnsla/internal/lego.go | 2 +- .../lego-providers/gname/internal/lego.go | 2 +- internal/pkg/core/deployer/deployer.go | 6 ++--- .../1panel-console/1panel_console.go | 8 +++--- .../providers/1panel-site/1panel_site.go | 18 ++++++------- .../providers/aliyun-alb/aliyun_alb.go | 4 +-- .../providers/aliyun-apigw/aliyun_apigw.go | 16 ++++++------ .../aliyun-cas-deploy/aliyun_cas_deploy.go | 4 +-- .../providers/aliyun-cas/aliyun_cas.go | 4 +-- .../providers/aliyun-cdn/aliyun_cdn.go | 6 ++--- .../providers/aliyun-clb/aliyun_clb.go | 4 +-- .../providers/aliyun-dcdn/aliyun_dcdn.go | 6 ++--- .../providers/aliyun-esa/aliyun_esa.go | 4 +-- .../deployer/providers/aliyun-fc/aliyun_fc.go | 18 ++++++------- .../providers/aliyun-live/aliyun_live.go | 6 ++--- .../providers/aliyun-nlb/aliyun_nlb.go | 4 +-- .../providers/aliyun-oss/aliyun_oss.go | 6 ++--- .../providers/aliyun-vod/aliyun_vod.go | 6 ++--- .../providers/aliyun-waf/aliyun_waf.go | 10 +++---- .../deployer/providers/aws-acm/aws_acm.go | 4 +-- .../aws-cloudfront/aws_cloudfront.go | 4 +-- .../azure-keyvault/azure_keyvault.go | 14 +++++----- .../baiducloud-appblb/baiducloud_appblb.go | 6 ++--- .../baiducloud-blb/baiducloud_blb.go | 6 ++--- .../baiducloud-cdn/baiducloud_cdn.go | 6 ++--- .../baiducloud-cert/baiducloud_cert.go | 4 +-- .../providers/baishan-cdn/baishan_cdn.go | 12 ++++----- .../baotapanel-console/baotapanel_console.go | 8 +++--- .../baotapanel-site/baotapanel_site.go | 14 +++++----- .../deployer/providers/bunny-cdn/bunny_cdn.go | 25 ++++++++---------- .../providers/bunny-cdn/bunny_cdn_test.go | 2 +- .../providers/byteplus-cdn/byteplus_cdn.go | 4 +-- .../deployer/providers/cachefly/cachefly.go | 8 +++--- .../core/deployer/providers/cdnfly/cdnfly.go | 20 +++++++------- .../providers/dogecloud-cdn/dogecloud_cdn.go | 6 ++--- .../edgio-applications/edgio_applications.go | 12 ++++----- .../deployer/providers/gcore-cdn/gcore_cdn.go | 6 ++--- .../huaweicloud-cdn/huaweicloud_cdn.go | 6 ++--- .../huaweicloud-elb/huaweicloud_elb.go | 24 ++++++++--------- .../huaweicloud-scm/huaweicloud_scm.go | 4 +-- .../huaweicloud-waf/huaweicloud_waf.go | 26 +++++++++---------- .../providers/jdcloud-alb/jdcloud_alb.go | 6 ++--- .../providers/jdcloud-cdn/jdcloud_cdn.go | 8 +++--- .../providers/jdcloud-live/jdcloud_live.go | 6 ++--- .../providers/jdcloud-vod/jdcloud_vod.go | 6 ++--- .../providers/k8s-secret/k8s_secret.go | 14 +++++----- .../core/deployer/providers/local/local.go | 14 +++++----- .../deployer/providers/qiniu-cdn/qiniu_cdn.go | 6 ++--- .../providers/qiniu-pili/qiniu_pili.go | 4 +-- .../providers/rainyun-rcdn/rainyun_rcdn.go | 6 ++--- .../deployer/providers/safeline/safeline.go | 12 ++++----- .../pkg/core/deployer/providers/ssh/ssh.go | 12 ++++----- .../tencentcloud-cdn/tencentcloud_cdn.go | 4 +-- .../tencentcloud-clb/tencentcloud_clb.go | 4 +-- .../tencentcloud-cos/tencentcloud_cos.go | 4 +-- .../tencentcloud-css/tencentcloud_css.go | 4 +-- .../tencentcloud-ecdn/tencentcloud_ecdn.go | 4 +-- .../tencentcloud-eo/tencentcloud_eo.go | 4 +-- .../tencentcloud-scf/tencentcloud_scf.go | 4 +-- .../tencentcloud_ssl_deploy.go | 4 +-- .../tencentcloud-ssl/tencentcloud_ssl.go | 4 +-- .../tencentcloud-vod/tencentcloud_vod.go | 4 +-- .../tencentcloud-waf/tencentcloud_waf.go | 4 +-- .../providers/ucloud-ucdn/ucloud_ucdn.go | 4 +-- .../providers/ucloud-us3/ucloud_us3.go | 6 ++--- .../deployer/providers/upyun-cdn/upyun_cdn.go | 6 ++--- .../volcengine-alb/volcengine_alb.go | 6 ++--- .../volcengine-cdn/volcengine_cdn.go | 4 +-- .../volcengine_certcenter.go | 4 +-- .../volcengine-clb/volcengine_clb.go | 4 +-- .../volcengine-dcdn/volcengine_dcdn.go | 4 +-- .../volcengine-imagex/volcengine_imagex.go | 4 +-- .../volcengine-live/volcengine_live.go | 4 +-- .../volcengine-tos/volcengine_tos.go | 4 +-- .../providers/wangsu-cdnpro/wangsu_cdnpro.go | 16 ++++++------ .../deployer/providers/webhook/webhook.go | 10 +++---- .../providers/1panel-ssl/1panel_ssl.go | 18 ++++++------- .../providers/aliyun-cas/aliyun_cas.go | 12 ++++----- .../providers/aliyun-slb/aliyun_slb.go | 14 +++++----- .../uploader/providers/aws-acm/aws_acm.go | 24 ++++++++--------- .../azure-keyvault/azure_keyvault.go | 12 ++++----- .../baiducloud-cert/baiducloud_cert.go | 12 ++++----- .../providers/byteplus-cdn/byteplus_cdn.go | 10 +++---- .../uploader/providers/dogecloud/dogecloud.go | 6 ++--- .../uploader/providers/gcore-cdn/gcore_cdn.go | 8 +++--- .../huaweicloud-elb/huaweicloud_elb.go | 14 +++++----- .../huaweicloud-scm/huaweicloud_scm.go | 14 +++++----- .../huaweicloud-waf/huaweicloud_waf.go | 14 +++++----- .../providers/jdcloud-ssl/jdcloud_ssl.go | 18 ++++++------- .../providers/qiniu-sslcert/qiniu_sslcert.go | 10 +++---- .../rainyun-sslcenter/rainyun_sslcenter.go | 20 +++++++------- .../tencentcloud-ssl/tencentcloud_ssl.go | 6 ++--- .../providers/ucloud-ussl/ucloud_ussl.go | 22 ++++++++-------- .../uploader/providers/upyun-ssl/upyun_ssl.go | 8 +++--- .../volcengine-cdn/volcengine_cdn.go | 10 +++---- .../volcengine_certcenter.go | 8 +++--- .../volcengine-live/volcengine_live.go | 12 ++++----- internal/pkg/core/uploader/uploader.go | 6 ++--- .../1panel-sdk => sdk3rd/1panel}/api.go | 12 +++++++++ .../1panel-sdk => sdk3rd/1panel}/client.go | 0 .../1panel-sdk => sdk3rd/1panel}/models.go | 0 .../azure}/common/config.go | 0 .../baiducloud}/cert/api.go | 0 .../baiducloud}/cert/client.go | 0 .../baiducloud}/cert/models.go | 0 .../baishan-sdk => sdk3rd/baishan}/api.go | 0 .../baishan-sdk => sdk3rd/baishan}/client.go | 0 .../baishan-sdk => sdk3rd/baishan}/models.go | 0 .../btpanel-sdk => sdk3rd/btpanel}/api.go | 0 .../btpanel-sdk => sdk3rd/btpanel}/client.go | 0 .../btpanel-sdk => sdk3rd/btpanel}/models.go | 0 .../bunny-sdk => sdk3rd/bunny}/api.go | 7 ++++- .../bunny-sdk => sdk3rd/bunny}/client.go | 2 +- .../bunny-sdk => sdk3rd/bunny}/models.go | 0 .../cachefly-sdk => sdk3rd/cachefly}/api.go | 0 .../cachefly}/client.go | 0 .../cachefly}/models.go | 0 .../cdnfly-sdk => sdk3rd/cdnfly}/api.go | 12 +++++++++ .../cdnfly-sdk => sdk3rd/cdnfly}/client.go | 0 .../cdnfly-sdk => sdk3rd/cdnfly}/models.go | 0 .../cmcc-sdk => sdk3rd/cmcc}/README.md | 0 .../cmcc}/ecloudsdkclouddns@v1.0.1/client.go | 0 .../cmcc}/ecloudsdkclouddns@v1.0.1/go.mod | 0 .../model/create_record_body.go | 0 .../model/create_record_openapi_body.go | 0 .../model/create_record_openapi_request.go | 0 .../model/create_record_openapi_response.go | 0 .../create_record_openapi_response_body.go | 0 .../create_record_openapi_response_tags.go | 0 .../model/create_record_request.go | 0 .../model/create_record_response.go | 0 .../model/create_record_response_body.go | 0 .../model/create_record_response_tags.go | 0 .../model/delete_record_body.go | 0 .../model/delete_record_openapi_body.go | 0 .../model/delete_record_openapi_request.go | 0 .../model/delete_record_openapi_response.go | 0 .../delete_record_openapi_response_body.go | 0 .../model/delete_record_request.go | 0 .../model/delete_record_response.go | 0 .../model/delete_record_response_body.go | 0 .../model/list_record_body.go | 0 .../model/list_record_openapi_body.go | 0 .../model/list_record_openapi_query.go | 0 .../model/list_record_openapi_request.go | 0 .../model/list_record_openapi_response.go | 0 .../list_record_openapi_response_body.go | 0 .../list_record_openapi_response_data.go | 0 .../list_record_openapi_response_tags.go | 0 .../model/list_record_query.go | 0 .../model/list_record_request.go | 0 .../model/list_record_response.go | 0 .../model/list_record_response_body.go | 0 .../model/list_record_response_results.go | 0 .../model/modify_record_body.go | 0 .../model/modify_record_openapi_body.go | 0 .../model/modify_record_openapi_request.go | 0 .../model/modify_record_openapi_response.go | 0 .../modify_record_openapi_response_body.go | 0 .../modify_record_openapi_response_tags.go | 0 .../model/modify_record_request.go | 0 .../model/modify_record_response.go | 0 .../model/modify_record_response_body.go | 0 .../cmcc}/ecloudsdkcore@v1.0.0/api_client.go | 0 .../ecloudsdkcore@v1.0.0/api_response.go | 0 .../ecloudsdkcore@v1.0.0/config/config.go | 0 .../ecloudsdkcore@v1.0.0/configuration.go | 0 .../cmcc}/ecloudsdkcore@v1.0.0/go.mod | 0 .../ecloudsdkcore@v1.0.0/http_request.go | 0 .../ecloudsdkcore@v1.0.0/open_api_request.go | 0 .../position/http_position.go | 0 .../dnsla-sdk => sdk3rd/dnsla}/api.go | 4 +++ .../dnsla-sdk => sdk3rd/dnsla}/client.go | 0 .../dnsla-sdk => sdk3rd/dnsla}/models.go | 0 .../dogecloud}/client.go | 0 .../dogecloud}/models.go | 0 .../edgio-sdk => sdk3rd/edgio}/README.md | 0 .../applications/v7/dtos/cdn_configuration.go | 0 .../applications/v7/dtos/environment.go | 0 .../applications/v7/dtos/property.go | 0 .../applications/v7/dtos/purge.go | 0 .../applications/v7/dtos/tls_cert.go | 0 .../applications/v7/edgio_client.go | 0 .../applications/v7/edgio_client_interface.go | 0 .../edgio}/edgio-api@v0.0.0-workspace/go.mod | 0 .../gcore}/common/endpoint.go | 0 .../gcore}/common/signer.go | 0 .../gname-sdk => sdk3rd/gname}/api.go | 0 .../gname-sdk => sdk3rd/gname}/client.go | 0 .../gname-sdk => sdk3rd/gname}/models.go | 0 .../huaweicloud}/cast.go | 0 .../qiniu-sdk => sdk3rd/qiniu}/auth.go | 0 .../qiniu-sdk => sdk3rd/qiniu}/client.go | 0 .../qiniu-sdk => sdk3rd/qiniu}/models.go | 0 .../rainyun-sdk => sdk3rd/rainyun}/api.go | 8 ++++++ .../rainyun-sdk => sdk3rd/rainyun}/client.go | 0 .../rainyun-sdk => sdk3rd/rainyun}/models.go | 0 .../safeline-sdk => sdk3rd/safeline}/api.go | 0 .../safeline}/client.go | 0 .../safeline}/models.go | 0 .../ucloud}/ufile/apis.go | 0 .../ucloud}/ufile/client.go | 0 .../ucloud-sdk => sdk3rd/ucloud}/ussl/apis.go | 0 .../ucloud}/ussl/client.go | 0 .../ucloud}/ussl/models.go | 0 .../upyun-sdk => sdk3rd/upyun}/console/api.go | 0 .../upyun}/console/client.go | 0 .../upyun}/console/models.go | 0 .../certcenter/api_import_certificate.go | 0 .../volcengine}/certcenter/interface.go | 0 .../volcengine}/certcenter/service.go | 0 .../wangsu-sdk => sdk3rd/wangsu}/cdn/api.go | 6 ++--- .../wangsu}/cdn/client.go | 2 +- .../wangsu}/cdn/models.go | 8 +++--- .../wangsu}/openapi/client.go | 0 .../pkg/utils/{certutil => cert}/common.go | 0 .../pkg/utils/{certutil => cert}/converter.go | 8 +++--- .../pkg/utils/{certutil => cert}/extractor.go | 20 +++++++------- .../pkg/utils/{certutil => cert}/parser.go | 24 ++++++++--------- .../utils/{certutil => cert}/transformer.go | 20 +++++++------- internal/pkg/utils/{fileutil => file}/io.go | 0 internal/pkg/utils/{maputil => map}/getter.go | 0 .../pkg/utils/{maputil => map}/marshal.go | 0 .../{sliceutil/slices.go => slice/slice.go} | 0 .../utils/{typeutil/types.go => type/type.go} | 0 internal/workflow/dispatcher/dispatcher.go | 2 +- .../workflow/node-processor/apply_node.go | 2 +- migrations/1739462400_collections_snapshot.go | 2 +- .../DeployNodeConfigFormBunnyCDNConfig.tsx | 18 ++++++------- ui/src/i18n/locales/en/nls.access.json | 2 +- .../i18n/locales/en/nls.workflow.nodes.json | 6 ++--- .../i18n/locales/zh/nls.workflow.nodes.json | 6 ++--- 243 files changed, 545 insertions(+), 507 deletions(-) rename internal/pkg/{vendors/1panel-sdk => sdk3rd/1panel}/api.go (83%) rename internal/pkg/{vendors/1panel-sdk => sdk3rd/1panel}/client.go (100%) rename internal/pkg/{vendors/1panel-sdk => sdk3rd/1panel}/models.go (100%) rename internal/pkg/{vendors/azure-sdk => sdk3rd/azure}/common/config.go (100%) rename internal/pkg/{vendors/baiducloud-sdk => sdk3rd/baiducloud}/cert/api.go (100%) rename internal/pkg/{vendors/baiducloud-sdk => sdk3rd/baiducloud}/cert/client.go (100%) rename internal/pkg/{vendors/baiducloud-sdk => sdk3rd/baiducloud}/cert/models.go (100%) rename internal/pkg/{vendors/baishan-sdk => sdk3rd/baishan}/api.go (100%) rename internal/pkg/{vendors/baishan-sdk => sdk3rd/baishan}/client.go (100%) rename internal/pkg/{vendors/baishan-sdk => sdk3rd/baishan}/models.go (100%) rename internal/pkg/{vendors/btpanel-sdk => sdk3rd/btpanel}/api.go (100%) rename internal/pkg/{vendors/btpanel-sdk => sdk3rd/btpanel}/client.go (100%) rename internal/pkg/{vendors/btpanel-sdk => sdk3rd/btpanel}/models.go (100%) rename internal/pkg/{vendors/bunny-sdk => sdk3rd/bunny}/api.go (56%) rename internal/pkg/{vendors/bunny-sdk => sdk3rd/bunny}/client.go (96%) rename internal/pkg/{vendors/bunny-sdk => sdk3rd/bunny}/models.go (100%) rename internal/pkg/{vendors/cachefly-sdk => sdk3rd/cachefly}/api.go (100%) rename internal/pkg/{vendors/cachefly-sdk => sdk3rd/cachefly}/client.go (100%) rename internal/pkg/{vendors/cachefly-sdk => sdk3rd/cachefly}/models.go (100%) rename internal/pkg/{vendors/cdnfly-sdk => sdk3rd/cdnfly}/api.go (79%) rename internal/pkg/{vendors/cdnfly-sdk => sdk3rd/cdnfly}/client.go (100%) rename internal/pkg/{vendors/cdnfly-sdk => sdk3rd/cdnfly}/models.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/README.md (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/client.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/go.mod (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_tags.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_response.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_response_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/create_record_response_tags.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/delete_record_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/delete_record_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/delete_record_response.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/delete_record_response_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_query.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_data.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_tags.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_query.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_response.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_response_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/list_record_response_results.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/modify_record_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_tags.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/modify_record_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/modify_record_response.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkclouddns@v1.0.1/model/modify_record_response_body.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkcore@v1.0.0/api_client.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkcore@v1.0.0/api_response.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkcore@v1.0.0/config/config.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkcore@v1.0.0/configuration.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkcore@v1.0.0/go.mod (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkcore@v1.0.0/http_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkcore@v1.0.0/open_api_request.go (100%) rename internal/pkg/{vendors/cmcc-sdk => sdk3rd/cmcc}/ecloudsdkcore@v1.0.0/position/http_position.go (100%) rename internal/pkg/{vendors/dnsla-sdk => sdk3rd/dnsla}/api.go (92%) rename internal/pkg/{vendors/dnsla-sdk => sdk3rd/dnsla}/client.go (100%) rename internal/pkg/{vendors/dnsla-sdk => sdk3rd/dnsla}/models.go (100%) rename internal/pkg/{vendors/dogecloud-sdk => sdk3rd/dogecloud}/client.go (100%) rename internal/pkg/{vendors/dogecloud-sdk => sdk3rd/dogecloud}/models.go (100%) rename internal/pkg/{vendors/edgio-sdk => sdk3rd/edgio}/README.md (100%) rename internal/pkg/{vendors/edgio-sdk => sdk3rd/edgio}/edgio-api@v0.0.0-workspace/applications/v7/dtos/cdn_configuration.go (100%) rename internal/pkg/{vendors/edgio-sdk => sdk3rd/edgio}/edgio-api@v0.0.0-workspace/applications/v7/dtos/environment.go (100%) rename internal/pkg/{vendors/edgio-sdk => sdk3rd/edgio}/edgio-api@v0.0.0-workspace/applications/v7/dtos/property.go (100%) rename internal/pkg/{vendors/edgio-sdk => sdk3rd/edgio}/edgio-api@v0.0.0-workspace/applications/v7/dtos/purge.go (100%) rename internal/pkg/{vendors/edgio-sdk => sdk3rd/edgio}/edgio-api@v0.0.0-workspace/applications/v7/dtos/tls_cert.go (100%) rename internal/pkg/{vendors/edgio-sdk => sdk3rd/edgio}/edgio-api@v0.0.0-workspace/applications/v7/edgio_client.go (100%) rename internal/pkg/{vendors/edgio-sdk => sdk3rd/edgio}/edgio-api@v0.0.0-workspace/applications/v7/edgio_client_interface.go (100%) rename internal/pkg/{vendors/edgio-sdk => sdk3rd/edgio}/edgio-api@v0.0.0-workspace/go.mod (100%) rename internal/pkg/{vendors/gcore-sdk => sdk3rd/gcore}/common/endpoint.go (100%) rename internal/pkg/{vendors/gcore-sdk => sdk3rd/gcore}/common/signer.go (100%) rename internal/pkg/{vendors/gname-sdk => sdk3rd/gname}/api.go (100%) rename internal/pkg/{vendors/gname-sdk => sdk3rd/gname}/client.go (100%) rename internal/pkg/{vendors/gname-sdk => sdk3rd/gname}/models.go (100%) rename internal/pkg/{vendors/huaweicloud-sdk => sdk3rd/huaweicloud}/cast.go (100%) rename internal/pkg/{vendors/qiniu-sdk => sdk3rd/qiniu}/auth.go (100%) rename internal/pkg/{vendors/qiniu-sdk => sdk3rd/qiniu}/client.go (100%) rename internal/pkg/{vendors/qiniu-sdk => sdk3rd/qiniu}/models.go (100%) rename internal/pkg/{vendors/rainyun-sdk => sdk3rd/rainyun}/api.go (85%) rename internal/pkg/{vendors/rainyun-sdk => sdk3rd/rainyun}/client.go (100%) rename internal/pkg/{vendors/rainyun-sdk => sdk3rd/rainyun}/models.go (100%) rename internal/pkg/{vendors/safeline-sdk => sdk3rd/safeline}/api.go (100%) rename internal/pkg/{vendors/safeline-sdk => sdk3rd/safeline}/client.go (100%) rename internal/pkg/{vendors/safeline-sdk => sdk3rd/safeline}/models.go (100%) rename internal/pkg/{vendors/ucloud-sdk => sdk3rd/ucloud}/ufile/apis.go (100%) rename internal/pkg/{vendors/ucloud-sdk => sdk3rd/ucloud}/ufile/client.go (100%) rename internal/pkg/{vendors/ucloud-sdk => sdk3rd/ucloud}/ussl/apis.go (100%) rename internal/pkg/{vendors/ucloud-sdk => sdk3rd/ucloud}/ussl/client.go (100%) rename internal/pkg/{vendors/ucloud-sdk => sdk3rd/ucloud}/ussl/models.go (100%) rename internal/pkg/{vendors/upyun-sdk => sdk3rd/upyun}/console/api.go (100%) rename internal/pkg/{vendors/upyun-sdk => sdk3rd/upyun}/console/client.go (100%) rename internal/pkg/{vendors/upyun-sdk => sdk3rd/upyun}/console/models.go (100%) rename internal/pkg/{vendors/volcengine-sdk => sdk3rd/volcengine}/certcenter/api_import_certificate.go (100%) rename internal/pkg/{vendors/volcengine-sdk => sdk3rd/volcengine}/certcenter/interface.go (100%) rename internal/pkg/{vendors/volcengine-sdk => sdk3rd/volcengine}/certcenter/service.go (100%) rename internal/pkg/{vendors/wangsu-sdk => sdk3rd/wangsu}/cdn/api.go (89%) rename internal/pkg/{vendors/wangsu-sdk => sdk3rd/wangsu}/cdn/client.go (80%) rename internal/pkg/{vendors/wangsu-sdk => sdk3rd/wangsu}/cdn/models.go (94%) rename internal/pkg/{vendors/wangsu-sdk => sdk3rd/wangsu}/openapi/client.go (100%) rename internal/pkg/utils/{certutil => cert}/common.go (100%) rename internal/pkg/utils/{certutil => cert}/converter.go (86%) rename internal/pkg/utils/{certutil => cert}/extractor.go (55%) rename internal/pkg/utils/{certutil => cert}/parser.go (79%) rename internal/pkg/utils/{certutil => cert}/transformer.go (77%) rename internal/pkg/utils/{fileutil => file}/io.go (100%) rename internal/pkg/utils/{maputil => map}/getter.go (100%) rename internal/pkg/utils/{maputil => map}/marshal.go (100%) rename internal/pkg/utils/{sliceutil/slices.go => slice/slice.go} (100%) rename internal/pkg/utils/{typeutil/types.go => type/type.go} (100%) diff --git a/go.mod b/go.mod index e5038ab0..a6e15309 100644 --- a/go.mod +++ b/go.mod @@ -215,8 +215,8 @@ require ( modernc.org/sqlite v1.36.1 // indirect ) -replace github.com/Edgio/edgio-api v0.0.0-workspace => ./internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace +replace github.com/Edgio/edgio-api v0.0.0-workspace => ./internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace -replace gitlab.ecloud.com/ecloud/ecloudsdkcore v1.0.0 => ./internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0 +replace gitlab.ecloud.com/ecloud/ecloudsdkcore v1.0.0 => ./internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0 -replace gitlab.ecloud.com/ecloud/ecloudsdkclouddns v1.0.1 => ./internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1 +replace gitlab.ecloud.com/ecloud/ecloudsdkclouddns v1.0.1 => ./internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1 diff --git a/internal/applicant/acme_user.go b/internal/applicant/acme_user.go index 430db5a3..b4768211 100644 --- a/internal/applicant/acme_user.go +++ b/internal/applicant/acme_user.go @@ -13,8 +13,8 @@ import ( "golang.org/x/sync/singleflight" "github.com/usual2970/certimate/internal/domain" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - "github.com/usual2970/certimate/internal/pkg/utils/maputil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" + maputil "github.com/usual2970/certimate/internal/pkg/utils/map" "github.com/usual2970/certimate/internal/repository" ) diff --git a/internal/applicant/applicant.go b/internal/applicant/applicant.go index 93ab30ae..216ff789 100644 --- a/internal/applicant/applicant.go +++ b/internal/applicant/applicant.go @@ -18,7 +18,7 @@ import ( "golang.org/x/time/rate" "github.com/usual2970/certimate/internal/domain" - "github.com/usual2970/certimate/internal/pkg/utils/sliceutil" + sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" "github.com/usual2970/certimate/internal/repository" ) diff --git a/internal/applicant/providers.go b/internal/applicant/providers.go index ddecad7c..7f9d8a9d 100644 --- a/internal/applicant/providers.go +++ b/internal/applicant/providers.go @@ -35,7 +35,7 @@ import ( pVercel "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/vercel" pVolcEngine "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/volcengine" pWestcn "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/westcn" - "github.com/usual2970/certimate/internal/pkg/utils/maputil" + maputil "github.com/usual2970/certimate/internal/pkg/utils/map" ) func createApplicant(options *applicantOptions) (challenge.Provider, error) { diff --git a/internal/certificate/service.go b/internal/certificate/service.go index f8874f2d..ffb30d0f 100644 --- a/internal/certificate/service.go +++ b/internal/certificate/service.go @@ -17,7 +17,7 @@ import ( "github.com/usual2970/certimate/internal/domain" "github.com/usual2970/certimate/internal/domain/dtos" "github.com/usual2970/certimate/internal/notify" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" "github.com/usual2970/certimate/internal/repository" ) diff --git a/internal/deployer/providers.go b/internal/deployer/providers.go index 71874c90..cdf53b1d 100644 --- a/internal/deployer/providers.go +++ b/internal/deployer/providers.go @@ -78,8 +78,8 @@ import ( pVolcEngineTOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-tos" pWangsuCDNPro "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/wangsu-cdnpro" pWebhook "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/webhook" - "github.com/usual2970/certimate/internal/pkg/utils/maputil" - "github.com/usual2970/certimate/internal/pkg/utils/sliceutil" + maputil "github.com/usual2970/certimate/internal/pkg/utils/map" + sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) func createDeployer(options *deployerOptions) (deployer.Deployer, error) { @@ -443,7 +443,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, error) { deployer, err := pBunnyCDN.NewDeployer(&pBunnyCDN.DeployerConfig{ ApiKey: access.ApiKey, PullZoneId: maputil.GetString(options.ProviderDeployConfig, "pullZoneId"), - HostName: maputil.GetString(options.ProviderDeployConfig, "hostName"), + Hostname: maputil.GetString(options.ProviderDeployConfig, "hostname"), }) return deployer, err } diff --git a/internal/domain/certificate.go b/internal/domain/certificate.go index 489af550..d2a998da 100644 --- a/internal/domain/certificate.go +++ b/internal/domain/certificate.go @@ -8,7 +8,7 @@ import ( "strings" "time" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) const CollectionNameCertificate = "certificate" diff --git a/internal/domain/workflow.go b/internal/domain/workflow.go index 841a041d..cfa1c8cc 100644 --- a/internal/domain/workflow.go +++ b/internal/domain/workflow.go @@ -3,7 +3,7 @@ package domain import ( "time" - "github.com/usual2970/certimate/internal/pkg/utils/maputil" + maputil "github.com/usual2970/certimate/internal/pkg/utils/map" ) const CollectionNameWorkflow = "workflow" diff --git a/internal/notify/notify.go b/internal/notify/notify.go index d4b42ec9..3d447c05 100644 --- a/internal/notify/notify.go +++ b/internal/notify/notify.go @@ -9,7 +9,7 @@ import ( "github.com/usual2970/certimate/internal/domain" "github.com/usual2970/certimate/internal/pkg/core/notifier" - "github.com/usual2970/certimate/internal/pkg/utils/maputil" + maputil "github.com/usual2970/certimate/internal/pkg/utils/map" "github.com/usual2970/certimate/internal/repository" ) diff --git a/internal/notify/providers.go b/internal/notify/providers.go index c5b5e975..8c8b99bc 100644 --- a/internal/notify/providers.go +++ b/internal/notify/providers.go @@ -17,7 +17,7 @@ import ( pTelegram "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/telegram" pWebhook "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/webhook" pWeCom "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/wecom" - "github.com/usual2970/certimate/internal/pkg/utils/maputil" + maputil "github.com/usual2970/certimate/internal/pkg/utils/map" ) func createNotifier(channel domain.NotifyChannelType, channelConfig map[string]any) (notifier.Notifier, error) { @@ -67,7 +67,7 @@ func createNotifier(channel domain.NotifyChannelType, channelConfig map[string]a ChannelId: maputil.GetString(channelConfig, "channelId"), Username: maputil.GetString(channelConfig, "username"), Password: maputil.GetString(channelConfig, "password"), - }) + }) case domain.NotifyChannelTypePushover: return pPushover.NewNotifier(&pPushover.NotifierConfig{ Token: maputil.GetString(channelConfig, "token"), diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/azure-dns/azure-dns.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/azure-dns/azure-dns.go index eaf46bce..d8d54c90 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/azure-dns/azure-dns.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/azure-dns/azure-dns.go @@ -6,7 +6,7 @@ import ( "github.com/go-acme/lego/v4/challenge" "github.com/go-acme/lego/v4/providers/dns/azuredns" - azcommon "github.com/usual2970/certimate/internal/pkg/vendors/azure-sdk/common" + azcommon "github.com/usual2970/certimate/internal/pkg/sdk3rd/azure/common" ) type ChallengeProviderConfig struct { diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go index 1b9603bd..88a76d01 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go @@ -10,7 +10,7 @@ import ( "github.com/go-acme/lego/v4/challenge/dns01" "github.com/go-acme/lego/v4/platform/config/env" - dnslasdk "github.com/usual2970/certimate/internal/pkg/vendors/dnsla-sdk" + dnslasdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/dnsla" ) const ( diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go index 3c9b1b13..3d6d6e84 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go @@ -9,7 +9,7 @@ import ( "github.com/go-acme/lego/v4/challenge/dns01" "github.com/go-acme/lego/v4/platform/config/env" - gnamesdk "github.com/usual2970/certimate/internal/pkg/vendors/gname-sdk" + gnamesdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/gname" ) const ( diff --git a/internal/pkg/core/deployer/deployer.go b/internal/pkg/core/deployer/deployer.go index 54b206bd..40fdc501 100644 --- a/internal/pkg/core/deployer/deployer.go +++ b/internal/pkg/core/deployer/deployer.go @@ -14,13 +14,13 @@ type Deployer interface { // // 入参: // - ctx:上下文。 - // - certPem:证书 PEM 内容。 - // - privkeyPem:私钥 PEM 内容。 + // - certPEM:证书 PEM 内容。 + // - privkeyPEM:私钥 PEM 内容。 // // 出参: // - res:部署结果。 // - err: 错误。 - Deploy(ctx context.Context, certPem string, privkeyPem string) (res *DeployResult, err error) + Deploy(ctx context.Context, certPEM string, privkeyPEM string) (res *DeployResult, err error) } // 表示证书部署结果的数据结构。 diff --git a/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go b/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go index 91143aa6..8c4b8248 100644 --- a/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go +++ b/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go @@ -10,7 +10,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - opsdk "github.com/usual2970/certimate/internal/pkg/vendors/1panel-sdk" + opsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/1panel" ) type DeployerConfig struct { @@ -58,11 +58,11 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 设置面板 SSL 证书 updateSystemSSLReq := &opsdk.UpdateSystemSSLRequest{ - Cert: certPem, - Key: privkeyPem, + Cert: certPEM, + Key: privkeyPEM, SSL: "enable", SSLType: "import-paste", } diff --git a/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go b/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go index 24f5daa3..95916013 100644 --- a/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go +++ b/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go @@ -14,7 +14,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/1panel-ssl" - opsdk "github.com/usual2970/certimate/internal/pkg/vendors/1panel-sdk" + opsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/1panel" ) type DeployerConfig struct { @@ -79,16 +79,16 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 根据部署资源类型决定部署方式 switch d.config.ResourceType { case RESOURCE_TYPE_WEBSITE: - if err := d.deployToWebsite(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToWebsite(ctx, certPEM, privkeyPEM); err != nil { return nil, err } case RESOURCE_TYPE_CERTIFICATE: - if err := d.deployToCertificate(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToCertificate(ctx, certPEM, privkeyPEM); err != nil { return nil, err } @@ -99,7 +99,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe return &deployer.DeployResult{}, nil } -func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.WebsiteId == 0 { return errors.New("config `websiteId` is required") } @@ -115,7 +115,7 @@ func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPem string, } // 上传证书到面板 - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return xerrors.Wrap(err, "failed to upload certificate file") } else { @@ -143,7 +143,7 @@ func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPem string, return nil } -func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.CertificateId == 0 { return errors.New("config `certificateId` is required") } @@ -163,8 +163,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri Type: "paste", SSLID: d.config.CertificateId, Description: getWebsiteSSLResp.Data.Description, - Certificate: certPem, - PrivateKey: privkeyPem, + Certificate: certPEM, + PrivateKey: privkeyPEM, } uploadWebsiteSSLResp, err := d.sdkClient.UploadWebsiteSSL(uploadWebsiteSSLReq) d.logger.Debug("sdk request '1panel.UploadWebsiteSSL'", slog.Any("request", uploadWebsiteSSLReq), slog.Any("response", uploadWebsiteSSLResp)) diff --git a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go index a019917a..a9290ad1 100644 --- a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go +++ b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go @@ -88,9 +88,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go index 12b43616..1b0d575f 100644 --- a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go +++ b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go @@ -84,15 +84,15 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { switch d.config.ServiceType { case SERVICE_TYPE_TRADITIONAL: - if err := d.deployToTraditional(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToTraditional(ctx, certPEM, privkeyPEM); err != nil { return nil, err } case SERVICE_TYPE_CLOUDNATIVE: - if err := d.deployToCloudNative(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToCloudNative(ctx, certPEM, privkeyPEM); err != nil { return nil, err } @@ -103,7 +103,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe return &deployer.DeployResult{}, nil } -func (d *DeployerProvider) deployToTraditional(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToTraditional(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.GroupId == "" { return errors.New("config `groupId` is required") } @@ -117,8 +117,8 @@ func (d *DeployerProvider) deployToTraditional(ctx context.Context, certPem stri GroupId: tea.String(d.config.GroupId), DomainName: tea.String(d.config.Domain), CertificateName: tea.String(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())), - CertificateBody: tea.String(certPem), - CertificatePrivateKey: tea.String(privkeyPem), + CertificateBody: tea.String(certPEM), + CertificatePrivateKey: tea.String(privkeyPEM), } setDomainCertificateResp, err := d.sdkClients.TraditionalAPIGateway.SetDomainCertificate(setDomainCertificateReq) d.logger.Debug("sdk request 'apigateway.SetDomainCertificate'", slog.Any("request", setDomainCertificateReq), slog.Any("response", setDomainCertificateResp)) @@ -129,7 +129,7 @@ func (d *DeployerProvider) deployToTraditional(ctx context.Context, certPem stri return nil } -func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.GatewayId == "" { return errors.New("config `gatewayId` is required") } @@ -188,7 +188,7 @@ func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPem stri } // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go b/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go index b50e8c5d..cf4b2305 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go +++ b/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go @@ -78,13 +78,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if len(d.config.ResourceIds) == 0 { return nil, errors.New("config `resourceIds` is required") } // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go b/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go index e00d3788..201b0d23 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go +++ b/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go @@ -59,9 +59,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go b/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go index 2a9be884..a0499e84 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go +++ b/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go @@ -58,7 +58,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // "*.example.com" → ".example.com",适配阿里云 CDN 要求的泛域名格式 domain := strings.TrimPrefix(d.config.Domain, "*") @@ -69,8 +69,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertType: tea.String("upload"), SSLProtocol: tea.String("on"), - SSLPub: tea.String(certPem), - SSLPri: tea.String(privkeyPem), + SSLPub: tea.String(certPEM), + SSLPri: tea.String(privkeyPEM), } setCdnDomainSSLCertificateResp, err := d.sdkClient.SetCdnDomainSSLCertificate(setCdnDomainSSLCertificateReq) d.logger.Debug("sdk request 'cdn.SetCdnDomainSSLCertificate'", slog.Any("request", setCdnDomainSSLCertificateReq), slog.Any("response", setCdnDomainSSLCertificateResp)) diff --git a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go index 2fcdd0f0..0609b5c8 100644 --- a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go +++ b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go @@ -82,9 +82,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SLB - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go b/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go index b9ba9f23..251c5fb8 100644 --- a/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go +++ b/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go @@ -58,7 +58,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // "*.example.com" → ".example.com",适配阿里云 DCDN 要求的泛域名格式 domain := strings.TrimPrefix(d.config.Domain, "*") @@ -69,8 +69,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertType: tea.String("upload"), SSLProtocol: tea.String("on"), - SSLPub: tea.String(certPem), - SSLPri: tea.String(privkeyPem), + SSLPub: tea.String(certPEM), + SSLPri: tea.String(privkeyPEM), } setDcdnDomainSSLCertificateResp, err := d.sdkClient.SetDcdnDomainSSLCertificate(setDcdnDomainSSLCertificateReq) d.logger.Debug("sdk request 'dcdn.SetDcdnDomainSSLCertificate'", slog.Any("request", setDcdnDomainSSLCertificateReq), slog.Any("response", setDcdnDomainSSLCertificateResp)) diff --git a/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go b/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go index 918ec095..e30779af 100644 --- a/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go +++ b/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go @@ -71,13 +71,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.SiteId == 0 { return nil, errors.New("config `siteId` is required") } // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go b/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go index 87f51130..02fb472a 100644 --- a/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go +++ b/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go @@ -67,15 +67,15 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { switch d.config.ServiceVersion { case "3", "3.0": - if err := d.deployToFC3(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToFC3(ctx, certPEM, privkeyPEM); err != nil { return nil, err } case "2", "2.0": - if err := d.deployToFC2(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToFC2(ctx, certPEM, privkeyPEM); err != nil { return nil, err } @@ -86,7 +86,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe return &deployer.DeployResult{}, nil } -func (d *DeployerProvider) deployToFC3(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToFC3(ctx context.Context, certPEM string, privkeyPEM string) error { // 获取自定义域名 // REF: https://help.aliyun.com/zh/functioncompute/fc-3-0/developer-reference/api-fc-2023-03-30-getcustomdomain getCustomDomainResp, err := d.sdkClients.FC3.GetCustomDomain(tea.String(d.config.Domain)) @@ -101,8 +101,8 @@ func (d *DeployerProvider) deployToFC3(ctx context.Context, certPem string, priv Body: &alifc3.UpdateCustomDomainInput{ CertConfig: &alifc3.CertConfig{ CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), - Certificate: tea.String(certPem), - PrivateKey: tea.String(privkeyPem), + Certificate: tea.String(certPEM), + PrivateKey: tea.String(privkeyPEM), }, Protocol: getCustomDomainResp.Body.Protocol, TlsConfig: getCustomDomainResp.Body.TlsConfig, @@ -117,7 +117,7 @@ func (d *DeployerProvider) deployToFC3(ctx context.Context, certPem string, priv return nil } -func (d *DeployerProvider) deployToFC2(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToFC2(ctx context.Context, certPEM string, privkeyPEM string) error { // 获取自定义域名 // REF: https://help.aliyun.com/zh/functioncompute/fc-2-0/developer-reference/api-fc-open-2021-04-06-getcustomdomain getCustomDomainResp, err := d.sdkClients.FC2.GetCustomDomain(tea.String(d.config.Domain)) @@ -131,8 +131,8 @@ func (d *DeployerProvider) deployToFC2(ctx context.Context, certPem string, priv updateCustomDomainReq := &alifc2.UpdateCustomDomainRequest{ CertConfig: &alifc2.CertConfig{ CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), - Certificate: tea.String(certPem), - PrivateKey: tea.String(privkeyPem), + Certificate: tea.String(certPEM), + PrivateKey: tea.String(privkeyPEM), }, Protocol: getCustomDomainResp.Body.Protocol, TlsConfig: getCustomDomainResp.Body.TlsConfig, diff --git a/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go b/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go index e3f6a435..b148cdbb 100644 --- a/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go +++ b/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go @@ -60,7 +60,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // "*.example.com" → ".example.com",适配阿里云 Live 要求的泛域名格式 domain := strings.TrimPrefix(d.config.Domain, "*") @@ -71,8 +71,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertType: tea.String("upload"), SSLProtocol: tea.String("on"), - SSLPub: tea.String(certPem), - SSLPri: tea.String(privkeyPem), + SSLPub: tea.String(certPEM), + SSLPri: tea.String(privkeyPEM), } setLiveDomainSSLCertificateResp, err := d.sdkClient.SetLiveDomainCertificate(setLiveDomainSSLCertificateReq) d.logger.Debug("sdk request 'live.SetLiveDomainCertificate'", slog.Any("request", setLiveDomainSSLCertificateReq), slog.Any("response", setLiveDomainSSLCertificateResp)) diff --git a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go index f851fee8..9eea4cdf 100644 --- a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go +++ b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go @@ -76,9 +76,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go b/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go index 2f16b09d..eb0bd381 100644 --- a/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go +++ b/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go @@ -59,7 +59,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.Bucket == "" { return nil, errors.New("config `bucket` is required") } @@ -72,8 +72,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe putBucketCnameWithCertificateReq := oss.PutBucketCname{ Cname: d.config.Domain, CertificateConfiguration: &oss.CertificateConfiguration{ - Certificate: certPem, - PrivateKey: privkeyPem, + Certificate: certPEM, + PrivateKey: privkeyPEM, Force: true, }, } diff --git a/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go b/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go index 95d4f631..68715d57 100644 --- a/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go +++ b/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go @@ -59,7 +59,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 设置域名证书 // REF: https://help.aliyun.com/zh/vod/developer-reference/api-vod-2017-03-21-setvoddomainsslcertificate setVodDomainSSLCertificateReq := &alivod.SetVodDomainSSLCertificateRequest{ @@ -67,8 +67,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertType: tea.String("upload"), SSLProtocol: tea.String("on"), - SSLPub: tea.String(certPem), - SSLPri: tea.String(privkeyPem), + SSLPub: tea.String(certPEM), + SSLPri: tea.String(privkeyPEM), } setVodDomainSSLCertificateResp, err := d.sdkClient.SetVodDomainSSLCertificate(setVodDomainSSLCertificateReq) d.logger.Debug("sdk request 'live.SetVodDomainSSLCertificate'", slog.Any("request", setVodDomainSSLCertificateReq), slog.Any("response", setVodDomainSSLCertificateResp)) diff --git a/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go b/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go index bddefb42..2b69a3db 100644 --- a/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go +++ b/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go @@ -15,7 +15,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/aliyun-cas" - "github.com/usual2970/certimate/internal/pkg/utils/sliceutil" + sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) type DeployerConfig struct { @@ -75,14 +75,14 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.InstanceId == "" { return nil, errors.New("config `instanceId` is required") } switch d.config.ServiceVersion { case "3", "3.0": - if err := d.deployToWAF3(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToWAF3(ctx, certPEM, privkeyPEM); err != nil { return nil, err } @@ -93,9 +93,9 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe return &deployer.DeployResult{}, nil } -func (d *DeployerProvider) deployToWAF3(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToWAF3(ctx context.Context, certPEM string, privkeyPEM string) error { // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go b/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go index 88482de3..2dc61e6b 100644 --- a/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go +++ b/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go @@ -59,9 +59,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 ACM - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go b/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go index 6ebfaad2..c4fa5228 100644 --- a/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go +++ b/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go @@ -74,13 +74,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.DistributionId == "" { return nil, errors.New("config `distribuitionId` is required") } // 上传证书到 ACM - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go b/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go index 422d39d5..2c9b2670 100644 --- a/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go +++ b/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go @@ -17,8 +17,8 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/azure-keyvault" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - azcommon "github.com/usual2970/certimate/internal/pkg/vendors/azure-sdk/common" + azcommon "github.com/usual2970/certimate/internal/pkg/sdk3rd/azure/common" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type DeployerConfig struct { @@ -85,22 +85,22 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } // 转换证书格式 - certPfx, err := certutil.TransformCertificateFromPEMToPFX(certPem, privkeyPem, "") + certPFX, err := certutil.TransformCertificateFromPEMToPFX(certPEM, privkeyPEM, "") if err != nil { return nil, xerrors.Wrap(err, "failed to transform certificate from PEM to PFX") } if d.config.CertificateName == "" { // 上传证书到 KeyVault - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { @@ -128,7 +128,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // 导入证书 // REF: https://learn.microsoft.com/en-us/rest/api/keyvault/certificates/import-certificate/import-certificate importCertificateParams := azcertificates.ImportCertificateParameters{ - Base64EncodedCertificate: to.Ptr(base64.StdEncoding.EncodeToString(certPfx)), + Base64EncodedCertificate: to.Ptr(base64.StdEncoding.EncodeToString(certPFX)), CertificatePolicy: &azcertificates.CertificatePolicy{ SecretProperties: &azcertificates.SecretProperties{ ContentType: to.Ptr("application/x-pkcs12"), diff --git a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go index 7a5f7ef2..31e09e38 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go +++ b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go @@ -15,7 +15,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/baiducloud-cert" - "github.com/usual2970/certimate/internal/pkg/utils/sliceutil" + sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) type DeployerConfig struct { @@ -82,9 +82,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go index 6be94e6d..f34fc14e 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go +++ b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go @@ -15,7 +15,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/baiducloud-cert" - "github.com/usual2970/certimate/internal/pkg/utils/sliceutil" + sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) type DeployerConfig struct { @@ -82,9 +82,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go b/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go index 87f5aa5c..59140c9b 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go +++ b/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go @@ -56,15 +56,15 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 修改域名证书 // REF: https://cloud.baidu.com/doc/CDN/s/qjzuz2hp8 putCertResp, err := d.sdkClient.PutCert( d.config.Domain, &bcecdnapi.UserCertificate{ CertName: fmt.Sprintf("certimate-%d", time.Now().UnixMilli()), - ServerData: certPem, - PrivateData: privkeyPem, + ServerData: certPEM, + PrivateData: privkeyPEM, }, "ON", ) diff --git a/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go b/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go index d51018f0..bfd7f089 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go +++ b/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go @@ -55,9 +55,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CAS - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go b/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go index ce204525..fcdaa7cd 100644 --- a/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go +++ b/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go @@ -13,7 +13,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - bssdk "github.com/usual2970/certimate/internal/pkg/vendors/baishan-sdk" + bssdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/baishan" ) type DeployerConfig struct { @@ -60,7 +60,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.Domain == "" { return nil, errors.New("config `domain` is required") } @@ -70,8 +70,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // REF: https://portal.baishancloud.com/track/document/downloadPdf/1441 certificateId := "" createCertificateReq := &bssdk.CreateCertificateRequest{ - Certificate: certPem, - Key: privkeyPem, + Certificate: certPEM, + Key: privkeyPEM, Name: fmt.Sprintf("certimate_%d", time.Now().UnixMilli()), } createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) @@ -129,8 +129,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // REF: https://portal.baishancloud.com/track/document/downloadPdf/1441 createCertificateReq := &bssdk.CreateCertificateRequest{ CertificateId: &d.config.CertificateId, - Certificate: certPem, - Key: privkeyPem, + Certificate: certPEM, + Key: privkeyPEM, Name: fmt.Sprintf("certimate_%d", time.Now().UnixMilli()), } createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) diff --git a/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go b/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go index 57e37f05..655429be 100644 --- a/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go +++ b/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go @@ -10,7 +10,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - btsdk "github.com/usual2970/certimate/internal/pkg/vendors/btpanel-sdk" + btsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/btpanel" ) type DeployerConfig struct { @@ -58,11 +58,11 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 设置面板 SSL 证书 configSavePanelSSLReq := &btsdk.ConfigSavePanelSSLRequest{ - PrivateKey: privkeyPem, - Certificate: certPem, + PrivateKey: privkeyPEM, + Certificate: certPEM, } configSavePanelSSLResp, err := d.sdkClient.ConfigSavePanelSSL(configSavePanelSSLReq) d.logger.Debug("sdk request 'bt.ConfigSavePanelSSL'", slog.Any("request", configSavePanelSSLReq), slog.Any("response", configSavePanelSSLResp)) diff --git a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go index 082b57b7..4423394e 100644 --- a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go +++ b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go @@ -11,8 +11,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - "github.com/usual2970/certimate/internal/pkg/utils/sliceutil" - btsdk "github.com/usual2970/certimate/internal/pkg/vendors/btpanel-sdk" + btsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/btpanel" + sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) type DeployerConfig struct { @@ -64,7 +64,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { switch d.config.SiteType { case "php": { @@ -76,8 +76,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe siteSetSSLReq := &btsdk.SiteSetSSLRequest{ SiteName: d.config.SiteName, Type: "0", - Certificate: certPem, - PrivateKey: privkeyPem, + Certificate: certPEM, + PrivateKey: privkeyPEM, } siteSetSSLResp, err := d.sdkClient.SiteSetSSL(siteSetSSLReq) d.logger.Debug("sdk request 'bt.SiteSetSSL'", slog.Any("request", siteSetSSLReq), slog.Any("response", siteSetSSLResp)) @@ -94,8 +94,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // 上传证书 sslCertSaveCertReq := &btsdk.SSLCertSaveCertRequest{ - Certificate: certPem, - PrivateKey: privkeyPem, + Certificate: certPEM, + PrivateKey: privkeyPEM, } sslCertSaveCertResp, err := d.sdkClient.SSLCertSaveCert(sslCertSaveCertReq) d.logger.Debug("sdk request 'bt.SSLCertSaveCert'", slog.Any("request", sslCertSaveCertReq), slog.Any("response", sslCertSaveCertResp)) diff --git a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go index bcf22635..cee7c191 100644 --- a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go +++ b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go @@ -8,16 +8,16 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - bunnysdk "github.com/usual2970/certimate/internal/pkg/vendors/bunny-sdk" + bunnysdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/bunny" ) type DeployerConfig struct { - // Bunny API Key + // Bunny API Key。 ApiKey string `json:"apiKey"` - // Bunny Pull Zone ID + // Bunny Pull Zone ID。 PullZoneId string `json:"pullZoneId"` - // Bunny CDN Hostname(支持泛域名) - HostName string `json:"hostName"` + // Bunny CDN Hostname(支持泛域名)。 + Hostname string `json:"hostname"` } type DeployerProvider struct { @@ -49,21 +49,18 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { - // Prepare - certPemBase64 := base64.StdEncoding.EncodeToString([]byte(certPem)) - privkeyPemBase64 := base64.StdEncoding.EncodeToString([]byte(privkeyPem)) +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书 createCertificateReq := &bunnysdk.AddCustomCertificateRequest{ - Hostname: d.config.HostName, + Hostname: d.config.Hostname, PullZoneId: d.config.PullZoneId, - Certificate: certPemBase64, - CertificateKey: privkeyPemBase64, + Certificate: base64.StdEncoding.EncodeToString([]byte(certPEM)), + CertificateKey: base64.StdEncoding.EncodeToString([]byte(privkeyPEM)), } createCertificateResp, err := d.sdkClient.AddCustomCertificate(createCertificateReq) - d.logger.Debug("sdk request 'bunny-cdn.AddCustomCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) + d.logger.Debug("sdk request 'bunny.AddCustomCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'bunny-cdn.AddCustomCertificate'") + return nil, xerrors.Wrap(err, "failed to execute sdk request 'bunny.AddCustomCertificate'") } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn_test.go b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn_test.go index e4e54a20..e958e244 100644 --- a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn_test.go +++ b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn_test.go @@ -55,7 +55,7 @@ func TestDeploy(t *testing.T) { deployer, err := provider.NewDeployer(&provider.DeployerConfig{ ApiKey: fApiKey, PullZoneId: fPullZoneId, - HostName: fHostName, + Hostname: fHostName, }) if err != nil { t.Errorf("err: %+v", err) diff --git a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go index 7406f074..e7cba491 100644 --- a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go +++ b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go @@ -67,9 +67,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CDN - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/cachefly/cachefly.go b/internal/pkg/core/deployer/providers/cachefly/cachefly.go index 63bb4e95..d5433453 100644 --- a/internal/pkg/core/deployer/providers/cachefly/cachefly.go +++ b/internal/pkg/core/deployer/providers/cachefly/cachefly.go @@ -8,7 +8,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - cfsdk "github.com/usual2970/certimate/internal/pkg/vendors/cachefly-sdk" + cfsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/cachefly" ) type DeployerConfig struct { @@ -50,11 +50,11 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书 createCertificateReq := &cfsdk.CreateCertificateRequest{ - Certificate: certPem, - CertificateKey: privkeyPem, + Certificate: certPEM, + CertificateKey: privkeyPEM, } createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) d.logger.Debug("sdk request 'cachefly.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) diff --git a/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go b/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go index ec2c1883..8a8efa86 100644 --- a/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go +++ b/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go @@ -12,7 +12,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - cfsdk "github.com/usual2970/certimate/internal/pkg/vendors/cdnfly-sdk" + cfsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/cdnfly" ) type DeployerConfig struct { @@ -66,16 +66,16 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 根据部署资源类型决定部署方式 switch d.config.ResourceType { case RESOURCE_TYPE_SITE: - if err := d.deployToSite(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToSite(ctx, certPEM, privkeyPEM); err != nil { return nil, err } case RESOURCE_TYPE_CERTIFICATE: - if err := d.deployToCertificate(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToCertificate(ctx, certPEM, privkeyPEM); err != nil { return nil, err } @@ -86,7 +86,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe return &deployer.DeployResult{}, nil } -func (d *DeployerProvider) deployToSite(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToSite(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.SiteId == "" { return errors.New("config `siteId` is required") } @@ -107,8 +107,8 @@ func (d *DeployerProvider) deployToSite(ctx context.Context, certPem string, pri createCertificateReq := &cfsdk.CreateCertificateRequest{ Name: fmt.Sprintf("certimate-%d", time.Now().UnixMilli()), Type: "custom", - Cert: certPem, - Key: privkeyPem, + Cert: certPEM, + Key: privkeyPEM, } createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) d.logger.Debug("sdk request 'cdnfly.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) @@ -136,7 +136,7 @@ func (d *DeployerProvider) deployToSite(ctx context.Context, certPem string, pri return nil } -func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.CertificateId == "" { return errors.New("config `certificateId` is required") } @@ -147,8 +147,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri updateCertificateReq := &cfsdk.UpdateCertificateRequest{ Id: d.config.CertificateId, Type: &updateCertificateType, - Cert: &certPem, - Key: &privkeyPem, + Cert: &certPEM, + Key: &privkeyPEM, } updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq) d.logger.Debug("sdk request 'cdnfly.UpdateCertificate'", slog.Any("request", updateCertificateReq), slog.Any("response", updateCertificateResp)) diff --git a/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go b/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go index 94368998..cab362d2 100644 --- a/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go +++ b/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go @@ -10,7 +10,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/dogecloud" - dogesdk "github.com/usual2970/certimate/internal/pkg/vendors/dogecloud-sdk" + dogesdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/dogecloud" ) type DeployerConfig struct { @@ -64,9 +64,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CDN - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go b/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go index 8dea5555..caaf6b08 100644 --- a/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go +++ b/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go @@ -9,7 +9,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type DeployerConfig struct { @@ -55,9 +55,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 提取 Edgio 所需的服务端证书和中间证书内容 - privateCertPem, intermediateCertPem, err := certutil.ExtractCertificatesFromPEM(certPem) + privateCertPEM, intermediateCertPEM, err := certutil.ExtractCertificatesFromPEM(certPEM) if err != nil { return nil, err } @@ -66,9 +66,9 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // REF: https://docs.edg.io/rest_api/#tag/tls-certs/operation/postConfigV01TlsCerts uploadTlsCertReq := edgiodtos.UploadTlsCertRequest{ EnvironmentID: d.config.EnvironmentId, - PrimaryCert: privateCertPem, - IntermediateCert: intermediateCertPem, - PrivateKey: privkeyPem, + PrimaryCert: privateCertPEM, + IntermediateCert: intermediateCertPEM, + PrivateKey: privkeyPEM, } uploadTlsCertResp, err := d.sdkClient.UploadTlsCert(uploadTlsCertReq) d.logger.Debug("sdk request 'edgio.UploadTlsCert'", slog.Any("request", uploadTlsCertReq), slog.Any("response", uploadTlsCertResp)) diff --git a/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go b/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go index c0a9e5ba..820c8e71 100644 --- a/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go +++ b/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go @@ -13,7 +13,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/gcore-cdn" - gcoresdk "github.com/usual2970/certimate/internal/pkg/vendors/gcore-sdk/common" + gcoresdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/gcore/common" ) type DeployerConfig struct { @@ -67,13 +67,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.ResourceId == 0 { return nil, errors.New("config `resourceId` is required") } // 上传证书到 CDN - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go index 048ccbd2..9955db61 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go @@ -13,7 +13,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-scm" - hwsdk "github.com/usual2970/certimate/internal/pkg/vendors/huaweicloud-sdk" + hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" ) type DeployerConfig struct { @@ -76,9 +76,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SCM - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go index 904c138f..551688b5 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go @@ -20,7 +20,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-elb" - hwsdk "github.com/usual2970/certimate/internal/pkg/vendors/huaweicloud-sdk" + hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" ) type DeployerConfig struct { @@ -89,21 +89,21 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 根据部署资源类型决定部署方式 switch d.config.ResourceType { case RESOURCE_TYPE_CERTIFICATE: - if err := d.deployToCertificate(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToCertificate(ctx, certPEM, privkeyPEM); err != nil { return nil, err } case RESOURCE_TYPE_LOADBALANCER: - if err := d.deployToLoadbalancer(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToLoadbalancer(ctx, certPEM, privkeyPEM); err != nil { return nil, err } case RESOURCE_TYPE_LISTENER: - if err := d.deployToListener(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToListener(ctx, certPEM, privkeyPEM); err != nil { return nil, err } @@ -114,7 +114,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe return &deployer.DeployResult{}, nil } -func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.CertificateId == "" { return errors.New("config `certificateId` is required") } @@ -125,8 +125,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri CertificateId: d.config.CertificateId, Body: &hcelbmodel.UpdateCertificateRequestBody{ Certificate: &hcelbmodel.UpdateCertificateOption{ - Certificate: hwsdk.StringPtr(certPem), - PrivateKey: hwsdk.StringPtr(privkeyPem), + Certificate: hwsdk.StringPtr(certPEM), + PrivateKey: hwsdk.StringPtr(privkeyPEM), }, }, } @@ -139,7 +139,7 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri return nil } -func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.LoadbalancerId == "" { return errors.New("config `loadbalancerId` is required") } @@ -187,7 +187,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPem str } // 上传证书到 SCM - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return xerrors.Wrap(err, "failed to upload certificate file") } else { @@ -215,13 +215,13 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPem str return nil } -func (d *DeployerProvider) deployToListener(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToListener(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.ListenerId == "" { return errors.New("config `listenerId` is required") } // 上传证书到 SCM - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go b/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go index 69b75f2f..1e6a61c9 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go @@ -56,9 +56,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SCM - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go index 0e29567c..8dc03144 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go @@ -20,7 +20,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-waf" - hwsdk "github.com/usual2970/certimate/internal/pkg/vendors/huaweicloud-sdk" + hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" ) type DeployerConfig struct { @@ -86,9 +86,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 WAF - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { @@ -98,17 +98,17 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // 根据部署资源类型决定部署方式 switch d.config.ResourceType { case RESOURCE_TYPE_CERTIFICATE: - if err := d.deployToCertificate(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToCertificate(ctx, certPEM, privkeyPEM); err != nil { return nil, err } case RESOURCE_TYPE_CLOUDSERVER: - if err := d.deployToCloudServer(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToCloudServer(ctx, certPEM, privkeyPEM); err != nil { return nil, err } case RESOURCE_TYPE_PREMIUMHOST: - if err := d.deployToPremiumHost(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToPremiumHost(ctx, certPEM, privkeyPEM); err != nil { return nil, err } @@ -119,7 +119,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe return &deployer.DeployResult{}, nil } -func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.CertificateId == "" { return errors.New("config `certificateId` is required") } @@ -141,8 +141,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri CertificateId: d.config.CertificateId, Body: &hcwafmodel.UpdateCertificateRequestBody{ Name: *showCertificateResp.Name, - Content: hwsdk.StringPtr(certPem), - Key: hwsdk.StringPtr(privkeyPem), + Content: hwsdk.StringPtr(certPEM), + Key: hwsdk.StringPtr(privkeyPEM), }, } updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq) @@ -154,13 +154,13 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri return nil } -func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.Domain == "" { return errors.New("config `domain` is required") } // 上传证书到 WAF - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return xerrors.Wrap(err, "failed to upload certificate file") } else { @@ -221,13 +221,13 @@ func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPem stri return nil } -func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.Domain == "" { return errors.New("config `domain` is required") } // 上传证书到 WAF - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go index d6c3f05a..7d11333d 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go +++ b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go @@ -17,7 +17,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/jdcloud-ssl" - "github.com/usual2970/certimate/internal/pkg/utils/sliceutil" + sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) type DeployerConfig struct { @@ -85,9 +85,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go b/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go index 8fe7f6ea..e8367ba4 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go +++ b/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go @@ -68,7 +68,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 查询域名配置信息 // REF: https://docs.jdcloud.com/cn/cdn/api/querydomainconfig queryDomainConfigReq := jdcdnapi.NewQueryDomainConfigRequest(d.config.Domain) @@ -79,7 +79,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe } // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { @@ -90,8 +90,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // REF: https://docs.jdcloud.com/cn/cdn/api/sethttptype setHttpTypeReq := jdcdnapi.NewSetHttpTypeRequest(d.config.Domain) setHttpTypeReq.SetHttpType("https") - setHttpTypeReq.SetCertificate(certPem) - setHttpTypeReq.SetRsaKey(privkeyPem) + setHttpTypeReq.SetCertificate(certPEM) + setHttpTypeReq.SetRsaKey(privkeyPEM) setHttpTypeReq.SetCertFrom("ssl") setHttpTypeReq.SetSslCertId(upres.CertId) setHttpTypeReq.SetJumpType(queryDomainConfigResp.Result.HttpsJumpType) diff --git a/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go b/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go index c89a67b9..db936f25 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go +++ b/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go @@ -55,12 +55,12 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 设置直播证书 // REF: https://docs.jdcloud.com/cn/live-video/api/setlivedomaincertificate setLiveDomainCertificateReq := jdliveapi.NewSetLiveDomainCertificateRequest(d.config.Domain, "on") - setLiveDomainCertificateReq.SetCert(certPem) - setLiveDomainCertificateReq.SetKey(privkeyPem) + setLiveDomainCertificateReq.SetCert(certPEM) + setLiveDomainCertificateReq.SetKey(privkeyPEM) setLiveDomainCertificateResp, err := d.sdkClient.SetLiveDomainCertificate(setLiveDomainCertificateReq) d.logger.Debug("sdk request 'live.SetLiveDomainCertificate'", slog.Any("request", setLiveDomainCertificateReq), slog.Any("response", setLiveDomainCertificateResp)) if err != nil { diff --git a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go index 95be5c15..cfd94f86 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go +++ b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go @@ -58,7 +58,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 查询域名列表 // REF: https://docs.jdcloud.com/cn/video-on-demand/api/listdomains var domainId int @@ -104,8 +104,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // REF: https://docs.jdcloud.com/cn/video-on-demand/api/sethttpssl setHttpSslReq := jdvodapi.NewSetHttpSslRequest(domainId) setHttpSslReq.SetTitle(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())) - setHttpSslReq.SetSslCert(certPem) - setHttpSslReq.SetSslKey(privkeyPem) + setHttpSslReq.SetSslCert(certPEM) + setHttpSslReq.SetSslKey(privkeyPEM) setHttpSslReq.SetSource("default") setHttpSslReq.SetJumpType(getHttpSslResp.Result.JumpType) setHttpSslReq.SetEnabled(true) diff --git a/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go b/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go index 88b4b6a1..d43a8c79 100644 --- a/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go +++ b/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go @@ -14,7 +14,7 @@ import ( "k8s.io/client-go/tools/clientcmd" "github.com/usual2970/certimate/internal/pkg/core/deployer" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type DeployerConfig struct { @@ -59,7 +59,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.Namespace == "" { return nil, errors.New("config `namespace` is required") } @@ -76,7 +76,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe return nil, errors.New("config `secretDataKeyForKey` is required") } - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -111,8 +111,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe Type: k8score.SecretType(d.config.SecretType), } secretPayload.Data = make(map[string][]byte) - secretPayload.Data[d.config.SecretDataKeyForCrt] = []byte(certPem) - secretPayload.Data[d.config.SecretDataKeyForKey] = []byte(privkeyPem) + secretPayload.Data[d.config.SecretDataKeyForCrt] = []byte(certPEM) + secretPayload.Data[d.config.SecretDataKeyForKey] = []byte(privkeyPEM) secretPayload, err = client.CoreV1().Secrets(d.config.Namespace).Create(context.TODO(), secretPayload, k8smeta.CreateOptions{}) d.logger.Debug("k8s operate 'Secrets.Create'", slog.String("namespace", d.config.Namespace), slog.Any("secret", secretPayload)) @@ -135,8 +135,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe if secretPayload.Data == nil { secretPayload.Data = make(map[string][]byte) } - secretPayload.Data[d.config.SecretDataKeyForCrt] = []byte(certPem) - secretPayload.Data[d.config.SecretDataKeyForKey] = []byte(privkeyPem) + secretPayload.Data[d.config.SecretDataKeyForCrt] = []byte(certPEM) + secretPayload.Data[d.config.SecretDataKeyForKey] = []byte(privkeyPEM) secretPayload, err = client.CoreV1().Secrets(d.config.Namespace).Update(context.TODO(), secretPayload, k8smeta.UpdateOptions{}) d.logger.Debug("k8s operate 'Secrets.Update'", slog.String("namespace", d.config.Namespace), slog.Any("secret", secretPayload)) if err != nil { diff --git a/internal/pkg/core/deployer/providers/local/local.go b/internal/pkg/core/deployer/providers/local/local.go index b4d07711..4b970c0d 100644 --- a/internal/pkg/core/deployer/providers/local/local.go +++ b/internal/pkg/core/deployer/providers/local/local.go @@ -11,8 +11,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - "github.com/usual2970/certimate/internal/pkg/utils/fileutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" + fileutil "github.com/usual2970/certimate/internal/pkg/utils/file" ) type DeployerConfig struct { @@ -70,7 +70,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 执行前置命令 if d.config.PreCommand != "" { stdout, stderr, err := execCommand(d.config.ShellEnv, d.config.PreCommand) @@ -83,18 +83,18 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // 写入证书和私钥文件 switch d.config.OutputFormat { case OUTPUT_FORMAT_PEM: - if err := fileutil.WriteString(d.config.OutputCertPath, certPem); err != nil { + if err := fileutil.WriteString(d.config.OutputCertPath, certPEM); err != nil { return nil, xerrors.Wrap(err, "failed to save certificate file") } d.logger.Info("ssl certificate file saved", slog.String("path", d.config.OutputCertPath)) - if err := fileutil.WriteString(d.config.OutputKeyPath, privkeyPem); err != nil { + if err := fileutil.WriteString(d.config.OutputKeyPath, privkeyPEM); err != nil { return nil, xerrors.Wrap(err, "failed to save private key file") } d.logger.Info("ssl private key file saved", slog.String("path", d.config.OutputKeyPath)) case OUTPUT_FORMAT_PFX: - pfxData, err := certutil.TransformCertificateFromPEMToPFX(certPem, privkeyPem, d.config.PfxPassword) + pfxData, err := certutil.TransformCertificateFromPEMToPFX(certPEM, privkeyPEM, d.config.PfxPassword) if err != nil { return nil, xerrors.Wrap(err, "failed to transform certificate to PFX") } @@ -106,7 +106,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe d.logger.Info("ssl certificate file saved", slog.String("path", d.config.OutputCertPath)) case OUTPUT_FORMAT_JKS: - jksData, err := certutil.TransformCertificateFromPEMToJKS(certPem, privkeyPem, d.config.JksAlias, d.config.JksKeypass, d.config.JksStorepass) + jksData, err := certutil.TransformCertificateFromPEMToJKS(certPEM, privkeyPEM, d.config.JksAlias, d.config.JksKeypass, d.config.JksStorepass) if err != nil { return nil, xerrors.Wrap(err, "failed to transform certificate to JKS") } diff --git a/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go b/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go index e8166afd..ecb1268d 100644 --- a/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go +++ b/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go @@ -11,7 +11,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/qiniu-sslcert" - qiniusdk "github.com/usual2970/certimate/internal/pkg/vendors/qiniu-sdk" + qiniusdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/qiniu" ) type DeployerConfig struct { @@ -65,9 +65,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CDN - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go b/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go index f684253b..803af2f6 100644 --- a/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go +++ b/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go @@ -65,9 +65,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CDN - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go b/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go index d2b56e07..219bbb48 100644 --- a/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go +++ b/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go @@ -11,7 +11,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/rainyun-sslcenter" - rainyunsdk "github.com/usual2970/certimate/internal/pkg/vendors/rainyun-sdk" + rainyunsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/rainyun" ) type DeployerConfig struct { @@ -67,9 +67,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SSL 证书 - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/safeline/safeline.go b/internal/pkg/core/deployer/providers/safeline/safeline.go index 8079027f..95efbd36 100644 --- a/internal/pkg/core/deployer/providers/safeline/safeline.go +++ b/internal/pkg/core/deployer/providers/safeline/safeline.go @@ -11,7 +11,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - safelinesdk "github.com/usual2970/certimate/internal/pkg/vendors/safeline-sdk" + safelinesdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/safeline" ) type DeployerConfig struct { @@ -62,11 +62,11 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 根据部署资源类型决定部署方式 switch d.config.ResourceType { case RESOURCE_TYPE_CERTIFICATE: - if err := d.deployToCertificate(ctx, certPem, privkeyPem); err != nil { + if err := d.deployToCertificate(ctx, certPEM, privkeyPEM); err != nil { return nil, err } @@ -77,7 +77,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe return &deployer.DeployResult{}, nil } -func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem string, privkeyPem string) error { +func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM string, privkeyPEM string) error { if d.config.CertificateId == 0 { return errors.New("config `certificateId` is required") } @@ -87,8 +87,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri Id: d.config.CertificateId, Type: 2, Manual: &safelinesdk.UpdateCertificateRequestBodyManul{ - Crt: certPem, - Key: privkeyPem, + Crt: certPEM, + Key: privkeyPEM, }, } updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq) diff --git a/internal/pkg/core/deployer/providers/ssh/ssh.go b/internal/pkg/core/deployer/providers/ssh/ssh.go index 3093ab42..179fe7b9 100644 --- a/internal/pkg/core/deployer/providers/ssh/ssh.go +++ b/internal/pkg/core/deployer/providers/ssh/ssh.go @@ -14,7 +14,7 @@ import ( "golang.org/x/crypto/ssh" "github.com/usual2970/certimate/internal/pkg/core/deployer" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type DeployerConfig struct { @@ -85,7 +85,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 连接 client, err := createSshClient( d.config.SshHost, @@ -114,18 +114,18 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe // 上传证书和私钥文件 switch d.config.OutputFormat { case OUTPUT_FORMAT_PEM: - if err := writeFileString(client, d.config.UseSCP, d.config.OutputCertPath, certPem); err != nil { + if err := writeFileString(client, d.config.UseSCP, d.config.OutputCertPath, certPEM); err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } d.logger.Info("ssl certificate file uploaded", slog.String("path", d.config.OutputCertPath)) - if err := writeFileString(client, d.config.UseSCP, d.config.OutputKeyPath, privkeyPem); err != nil { + if err := writeFileString(client, d.config.UseSCP, d.config.OutputKeyPath, privkeyPEM); err != nil { return nil, xerrors.Wrap(err, "failed to upload private key file") } d.logger.Info("ssl private key file uploaded", slog.String("path", d.config.OutputKeyPath)) case OUTPUT_FORMAT_PFX: - pfxData, err := certutil.TransformCertificateFromPEMToPFX(certPem, privkeyPem, d.config.PfxPassword) + pfxData, err := certutil.TransformCertificateFromPEMToPFX(certPEM, privkeyPEM, d.config.PfxPassword) if err != nil { return nil, xerrors.Wrap(err, "failed to transform certificate to PFX") } @@ -137,7 +137,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe d.logger.Info("ssl certificate file uploaded", slog.String("path", d.config.OutputCertPath)) case OUTPUT_FORMAT_JKS: - jksData, err := certutil.TransformCertificateFromPEMToJKS(certPem, privkeyPem, d.config.JksAlias, d.config.JksKeypass, d.config.JksStorepass) + jksData, err := certutil.TransformCertificateFromPEMToJKS(certPEM, privkeyPEM, d.config.JksAlias, d.config.JksKeypass, d.config.JksStorepass) if err != nil { return nil, xerrors.Wrap(err, "failed to transform certificate to JKS") } diff --git a/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go b/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go index 38e58c7b..97bc72f7 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go @@ -76,9 +76,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go index e8edb9cc..459c03ce 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go @@ -87,9 +87,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go b/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go index 7f1992e9..182206f9 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go @@ -74,7 +74,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.Bucket == "" { return nil, errors.New("config `bucket` is required") } @@ -83,7 +83,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe } // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go b/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go index e29e25ea..172d2071 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go @@ -68,9 +68,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go b/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go index beb5a043..e5ba3db4 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go @@ -75,9 +75,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go b/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go index b6ebbf94..4ebedc82 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go @@ -77,13 +77,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.ZoneId == "" { return nil, errors.New("config `zoneId` is required") } // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go b/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go index 9d8512c2..c1ad150a 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go @@ -70,7 +70,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 查看云函数自定义域名详情 // REF: https://cloud.tencent.com/document/product/583/111924 getCustomDomainReq := tcscf.NewGetCustomDomainRequest() @@ -82,7 +82,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe } // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go b/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go index 8e06920a..e91eb7f5 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go @@ -75,7 +75,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.ResourceType == "" { return nil, errors.New("config `resourceType` is required") } @@ -84,7 +84,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe } // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go b/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go index 8f8676de..68ff24da 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go @@ -56,9 +56,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go b/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go index 6a32eb62..3b9fc5dc 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go @@ -70,9 +70,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go b/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go index 2921fb84..f3aba6fb 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go @@ -75,7 +75,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.Domain == "" { return nil, errors.New("config `domain` is required") } @@ -87,7 +87,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe } // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go b/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go index 82be501c..737d70c2 100644 --- a/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go +++ b/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go @@ -73,9 +73,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 USSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go b/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go index d3a68868..d51e893b 100644 --- a/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go +++ b/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go @@ -11,7 +11,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/ucloud-ussl" - usdkFile "github.com/usual2970/certimate/internal/pkg/vendors/ucloud-sdk/ufile" + usdkFile "github.com/usual2970/certimate/internal/pkg/sdk3rd/ucloud/ufile" ) type DeployerConfig struct { @@ -75,9 +75,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 USSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go b/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go index 84d6cafb..d43e3c15 100644 --- a/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go +++ b/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go @@ -11,7 +11,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/upyun-ssl" - upyunsdk "github.com/usual2970/certimate/internal/pkg/vendors/upyun-sdk/console" + upyunsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/upyun/console" ) type DeployerConfig struct { @@ -68,9 +68,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 SSL - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go index ceba0952..93f36ec5 100644 --- a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go +++ b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go @@ -14,7 +14,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/volcengine-certcenter" - "github.com/usual2970/certimate/internal/pkg/utils/sliceutil" + sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) type DeployerConfig struct { @@ -83,9 +83,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到证书中心 - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go index fe0844d9..cd88f400 100644 --- a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go +++ b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go @@ -67,9 +67,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 CDN - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go b/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go index a8062641..c1ed456a 100644 --- a/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go +++ b/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go @@ -59,9 +59,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到证书中心 - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go index 752b0f85..f22b415e 100644 --- a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go +++ b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go @@ -79,9 +79,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到证书中心 - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go b/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go index 23af16e5..7779c02b 100644 --- a/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go +++ b/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go @@ -72,9 +72,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到证书中心 - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go b/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go index 26696d57..b1e1cfc2 100644 --- a/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go +++ b/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go @@ -73,7 +73,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.ServiceId == "" { return nil, errors.New("config `serviceId` is required") } @@ -82,7 +82,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe } // 上传证书到证书中心 - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go index a12df9f2..7f01b6f8 100644 --- a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go +++ b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go @@ -68,9 +68,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { // 上传证书到 Live - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go b/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go index f2ac4128..8e619ba0 100644 --- a/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go +++ b/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go @@ -73,7 +73,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.Bucket == "" { return nil, errors.New("config `bucket` is required") } @@ -82,7 +82,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe } // 上传证书到证书中心 - upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) + upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to upload certificate file") } else { diff --git a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go index a0c1e586..6b09bf5e 100644 --- a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go +++ b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go @@ -20,8 +20,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - wangsucdn "github.com/usual2970/certimate/internal/pkg/vendors/wangsu-sdk/cdn" + wangsucdn "github.com/usual2970/certimate/internal/pkg/sdk3rd/wangsu/cdn" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type DeployerConfig struct { @@ -77,13 +77,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { if d.config.Domain == "" { return nil, errors.New("config `domain` is required") } // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -96,13 +96,13 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe } // 生成网宿云证书参数 - encryptedPrivateKey, err := encryptPrivateKey(privkeyPem, d.config.ApiKey, time.Now().Unix()) + encryptedPrivateKey, err := encryptPrivateKey(privkeyPEM, d.config.ApiKey, time.Now().Unix()) if err != nil { return nil, xerrors.Wrap(err, "failed to encrypt private key") } certificateNewVersionInfo := &wangsucdn.CertificateVersion{ PrivateKey: tea.String(encryptedPrivateKey), - Certificate: tea.String(certPem), + Certificate: tea.String(certPEM), IdentificationInfo: &wangsucdn.CertificateVersionIdentificationInfo{ CommonName: tea.String(certX509.Subject.CommonName), SubjectAlternativeNames: &certX509.DNSNames, @@ -236,7 +236,7 @@ func createSdkClient(accessKeyId, accessKeySecret string) (*wangsucdn.Client, er return wangsucdn.NewClient(accessKeyId, accessKeySecret), nil } -func encryptPrivateKey(privkeyPem string, apiKey string, timestamp int64) (string, error) { +func encryptPrivateKey(privkeyPEM string, apiKey string, timestamp int64) (string, error) { date := time.Unix(timestamp, 0).UTC() dateStr := date.Format("Mon, 02 Jan 2006 15:04:05 GMT") @@ -266,7 +266,7 @@ func encryptPrivateKey(privkeyPem string, apiKey string, timestamp int64) (strin return "", err } - plainBytes := []byte(privkeyPem) + plainBytes := []byte(privkeyPEM) padlen := aes.BlockSize - len(plainBytes)%aes.BlockSize if padlen > 0 { paddata := bytes.Repeat([]byte{byte(padlen)}, padlen) diff --git a/internal/pkg/core/deployer/providers/webhook/webhook.go b/internal/pkg/core/deployer/providers/webhook/webhook.go index 0afc60f0..ae7648dc 100644 --- a/internal/pkg/core/deployer/providers/webhook/webhook.go +++ b/internal/pkg/core/deployer/providers/webhook/webhook.go @@ -12,7 +12,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type DeployerConfig struct { @@ -61,8 +61,8 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { return d } -func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { - certX509, err := certutil.ParseCertificateFromPEM(certPem) +func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, xerrors.Wrap(err, "failed to parse x509") } @@ -76,8 +76,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe replaceJsonValueRecursively(webhookData, "${DOMAIN}", certX509.Subject.CommonName) replaceJsonValueRecursively(webhookData, "${DOMAINS}", strings.Join(certX509.DNSNames, ";")) replaceJsonValueRecursively(webhookData, "${SUBJECT_ALT_NAMES}", strings.Join(certX509.DNSNames, ";")) - replaceJsonValueRecursively(webhookData, "${CERTIFICATE}", certPem) - replaceJsonValueRecursively(webhookData, "${PRIVATE_KEY}", privkeyPem) + replaceJsonValueRecursively(webhookData, "${CERTIFICATE}", certPEM) + replaceJsonValueRecursively(webhookData, "${PRIVATE_KEY}", privkeyPEM) resp, err := d.httpClient.R(). SetContext(ctx). diff --git a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go index 4eeec679..644acb0f 100644 --- a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go +++ b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go @@ -12,7 +12,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - opsdk "github.com/usual2970/certimate/internal/pkg/vendors/1panel-sdk" + opsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/1panel" ) type UploaderConfig struct { @@ -56,9 +56,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 遍历证书列表,避免重复上传 - if res, err := u.getCertIfExists(ctx, certPem, privkeyPem); err != nil { + if res, err := u.getCertIfExists(ctx, certPEM, privkeyPEM); err != nil { return nil, err } else if res != nil { u.logger.Info("ssl certificate already exists") @@ -72,8 +72,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe uploadWebsiteSSLReq := &opsdk.UploadWebsiteSSLRequest{ Type: "paste", Description: certName, - Certificate: certPem, - PrivateKey: privkeyPem, + Certificate: certPEM, + PrivateKey: privkeyPEM, } uploadWebsiteSSLResp, err := u.sdkClient.UploadWebsiteSSL(uploadWebsiteSSLReq) u.logger.Debug("sdk request '1panel.UploadWebsiteSSL'", slog.Any("request", uploadWebsiteSSLReq), slog.Any("response", uploadWebsiteSSLResp)) @@ -82,7 +82,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe } // 遍历证书列表,获取刚刚上传证书 ID - if res, err := u.getCertIfExists(ctx, certPem, privkeyPem); err != nil { + if res, err := u.getCertIfExists(ctx, certPEM, privkeyPEM); err != nil { return nil, err } else if res == nil { return nil, fmt.Errorf("no ssl certificate found, may be upload failed (code: %d, message: %s)", uploadWebsiteSSLResp.GetCode(), uploadWebsiteSSLResp.GetMessage()) @@ -91,7 +91,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe } } -func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { searchWebsiteSSLPageNumber := int32(1) searchWebsiteSSLPageSize := int32(100) for { @@ -106,8 +106,8 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPem string, } for _, sslItem := range searchWebsiteSSLResp.Data.Items { - if strings.TrimSpace(sslItem.PEM) == strings.TrimSpace(certPem) && - strings.TrimSpace(sslItem.PrivateKey) == strings.TrimSpace(privkeyPem) { + if strings.TrimSpace(sslItem.PEM) == strings.TrimSpace(certPEM) && + strings.TrimSpace(sslItem.PrivateKey) == strings.TrimSpace(privkeyPEM) { // 如果已存在相同证书,直接返回 return &uploader.UploadResult{ CertId: fmt.Sprintf("%d", sslItem.ID), diff --git a/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go b/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go index f7495c40..e689826b 100644 --- a/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go +++ b/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go @@ -13,7 +13,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -59,9 +59,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -99,7 +99,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe } var isSameCert bool - if *getUserCertificateDetailResp.Body.Cert == certPem { + if *getUserCertificateDetailResp.Body.Cert == certPEM { isSameCert = true } else { oldCertX509, err := certutil.ParseCertificateFromPEM(*getUserCertificateDetailResp.Body.Cert) @@ -139,8 +139,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // REF: https://help.aliyun.com/zh/ssl-certificate/developer-reference/api-cas-2020-04-07-uploadusercertificate uploadUserCertificateReq := &alicas.UploadUserCertificateRequest{ Name: tea.String(certName), - Cert: tea.String(certPem), - Key: tea.String(privkeyPem), + Cert: tea.String(certPEM), + Key: tea.String(privkeyPEM), } uploadUserCertificateResp, err := u.sdkClient.UploadUserCertificate(uploadUserCertificateReq) u.logger.Debug("sdk request 'cas.UploadUserCertificate'", slog.Any("request", uploadUserCertificateReq), slog.Any("response", uploadUserCertificateResp)) diff --git a/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go b/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go index 59607ade..87f8e289 100644 --- a/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go +++ b/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go @@ -16,7 +16,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -62,9 +62,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -105,16 +105,16 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // 去除证书和私钥内容中的空白行,以符合阿里云 API 要求 // REF: https://github.com/usual2970/certimate/issues/326 re := regexp.MustCompile(`(?m)^\s*$\n?`) - certPem = strings.TrimSpace(re.ReplaceAllString(certPem, "")) - privkeyPem = strings.TrimSpace(re.ReplaceAllString(privkeyPem, "")) + certPEM = strings.TrimSpace(re.ReplaceAllString(certPEM, "")) + privkeyPEM = strings.TrimSpace(re.ReplaceAllString(privkeyPEM, "")) // 上传新证书 // REF: https://help.aliyun.com/zh/slb/classic-load-balancer/developer-reference/api-slb-2014-05-15-uploadservercertificate uploadServerCertificateReq := &alislb.UploadServerCertificateRequest{ RegionId: tea.String(u.config.Region), ServerCertificateName: tea.String(certName), - ServerCertificate: tea.String(certPem), - PrivateKey: tea.String(privkeyPem), + ServerCertificate: tea.String(certPEM), + PrivateKey: tea.String(privkeyPEM), } uploadServerCertificateResp, err := u.sdkClient.UploadServerCertificate(uploadServerCertificateReq) u.logger.Debug("sdk request 'slb.UploadServerCertificate'", slog.Any("request", uploadServerCertificateReq), slog.Any("response", uploadServerCertificateResp)) diff --git a/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go b/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go index 8e30d554..433117a9 100644 --- a/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go +++ b/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go @@ -12,7 +12,7 @@ import ( "golang.org/x/exp/slices" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -58,16 +58,16 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } // 生成 AWS 业务参数 - scertPem, _ := certutil.ConvertCertificateToPEM(certX509) - bcertPem := certPem + scertPEM, _ := certutil.ConvertCertificateToPEM(certX509) + bcertPEM := certPEM // 获取证书列表,避免重复上传 // REF: https://docs.aws.amazon.com/en_us/acm/latest/APIReference/API_ListCertificates.html @@ -107,12 +107,12 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe if err != nil { return nil, xerrors.Wrap(err, "failed to execute sdk request 'acm.GetCertificate'") } else { - oldCertPem := aws.ToString(getCertificateResp.CertificateChain) - if oldCertPem == "" { - oldCertPem = aws.ToString(getCertificateResp.Certificate) + oldCertPEM := aws.ToString(getCertificateResp.CertificateChain) + if oldCertPEM == "" { + oldCertPEM = aws.ToString(getCertificateResp.Certificate) } - oldCertX509, err := certutil.ParseCertificateFromPEM(oldCertPem) + oldCertX509, err := certutil.ParseCertificateFromPEM(oldCertPEM) if err != nil { continue } @@ -139,9 +139,9 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // 导入证书 // REF: https://docs.aws.amazon.com/en_us/acm/latest/APIReference/API_ImportCertificate.html importCertificateReq := &awsacm.ImportCertificateInput{ - Certificate: ([]byte)(scertPem), - CertificateChain: ([]byte)(bcertPem), - PrivateKey: ([]byte)(privkeyPem), + Certificate: ([]byte)(scertPEM), + CertificateChain: ([]byte)(bcertPEM), + PrivateKey: ([]byte)(privkeyPEM), } importCertificateResp, err := u.sdkClient.ImportCertificate(context.TODO(), importCertificateReq) u.logger.Debug("sdk request 'acm.ImportCertificate'", slog.Any("request", importCertificateReq), slog.Any("response", importCertificateResp)) diff --git a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go index 36af11c7..701d682b 100644 --- a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go +++ b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go @@ -15,8 +15,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - azcommon "github.com/usual2970/certimate/internal/pkg/vendors/azure-sdk/common" + azcommon "github.com/usual2970/certimate/internal/pkg/sdk3rd/azure/common" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -66,9 +66,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -145,7 +145,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // Azure Key Vault 不支持导入带有 Certificiate Chain 的 PEM 证书。 // Issue Link: https://github.com/Azure/azure-cli/issues/19017 // 暂时的解决方法是,将 PEM 证书转换成 PFX 格式,然后再导入。 - certPfx, err := certutil.TransformCertificateFromPEMToPFX(certPem, privkeyPem, "") + certPFX, err := certutil.TransformCertificateFromPEMToPFX(certPEM, privkeyPEM, "") if err != nil { return nil, xerrors.Wrap(err, "failed to transform certificate from PEM to PFX") } @@ -153,7 +153,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // 导入证书 // REF: https://learn.microsoft.com/en-us/rest/api/keyvault/certificates/import-certificate/import-certificate importCertificateParams := azcertificates.ImportCertificateParameters{ - Base64EncodedCertificate: to.Ptr(base64.StdEncoding.EncodeToString(certPfx)), + Base64EncodedCertificate: to.Ptr(base64.StdEncoding.EncodeToString(certPFX)), CertificatePolicy: &azcertificates.CertificatePolicy{ SecretProperties: &azcertificates.SecretProperties{ ContentType: to.Ptr("application/x-pkcs12"), diff --git a/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go b/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go index 1f311f87..6637c196 100644 --- a/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go +++ b/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go @@ -10,8 +10,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - bdsdk "github.com/usual2970/certimate/internal/pkg/vendors/baiducloud-sdk/cert" + bdsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/baiducloud/cert" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -55,9 +55,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -115,8 +115,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // REF: https://cloud.baidu.com/doc/Reference/s/Gjwvz27xu#31-%E5%88%9B%E5%BB%BA%E8%AF%81%E4%B9%A6 createCertReq := &bdsdk.CreateCertArgs{} createCertReq.CertName = fmt.Sprintf("certimate-%d", time.Now().UnixMilli()) - createCertReq.CertServerData = certPem - createCertReq.CertPrivateData = privkeyPem + createCertReq.CertServerData = certPEM + createCertReq.CertPrivateData = privkeyPEM createCertResp, err := u.sdkClient.CreateCert(createCertReq) u.logger.Debug("sdk request 'cert.CreateCert'", slog.Any("request", createCertReq), slog.Any("response", createCertResp)) if err != nil { diff --git a/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go b/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go index cdba9d4f..d69bcc15 100644 --- a/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go +++ b/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go @@ -14,7 +14,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -57,9 +57,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -114,8 +114,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // 上传新证书 // REF: https://docs.byteplus.com/en/docs/byteplus-cdn/reference-addcertificate addCertificateReq := &bytepluscdn.AddCertificateRequest{ - Certificate: certPem, - PrivateKey: privkeyPem, + Certificate: certPEM, + PrivateKey: privkeyPEM, Source: bytepluscdn.GetStrPtr("cert_center"), Desc: bytepluscdn.GetStrPtr(certName), } diff --git a/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go b/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go index 420f93bc..65cf8787 100644 --- a/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go +++ b/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go @@ -9,7 +9,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - dogesdk "github.com/usual2970/certimate/internal/pkg/vendors/dogecloud-sdk" + dogesdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/dogecloud" ) type UploaderConfig struct { @@ -53,14 +53,14 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 生成新证书名(需符合多吉云命名规则) var certId, certName string certName = fmt.Sprintf("certimate-%d", time.Now().UnixMilli()) // 上传新证书 // REF: https://docs.dogecloud.com/cdn/api-cert-upload - uploadSslCertResp, err := u.sdkClient.UploadCdnCert(certName, certPem, privkeyPem) + uploadSslCertResp, err := u.sdkClient.UploadCdnCert(certName, certPEM, privkeyPEM) u.logger.Debug("sdk request 'cdn.UploadCdnCert'", slog.Any("response", uploadSslCertResp)) if err != nil { return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.UploadCdnCert'") diff --git a/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go b/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go index 7f0a6580..6e252853 100644 --- a/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go +++ b/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go @@ -12,7 +12,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - gcoresdk "github.com/usual2970/certimate/internal/pkg/vendors/gcore-sdk/common" + gcoresdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/gcore/common" ) type UploaderConfig struct { @@ -54,7 +54,7 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 生成新证书名(需符合 Gcore 命名规则) var certId, certName string certName = fmt.Sprintf("certimate_%d", time.Now().UnixMilli()) @@ -63,8 +63,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // REF: https://api.gcore.com/docs/cdn#tag/CA-certificates/operation/ca_certificates-add createCertificateReq := &gsslcerts.CreateRequest{ Name: certName, - Cert: certPem, - PrivateKey: privkeyPem, + Cert: certPEM, + PrivateKey: privkeyPEM, Automated: false, ValidateRootCA: false, } diff --git a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go index 50d716a1..5e632da7 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go @@ -18,8 +18,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - hwsdk "github.com/usual2970/certimate/internal/pkg/vendors/huaweicloud-sdk" + hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -65,9 +65,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -91,7 +91,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe if listCertificatesResp.Certificates != nil { for _, certDetail := range *listCertificatesResp.Certificates { var isSameCert bool - if certDetail.Certificate == certPem { + if certDetail.Certificate == certPEM { isSameCert = true } else { oldCertX509, err := certutil.ParseCertificateFromPEM(certDetail.Certificate) @@ -138,8 +138,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe Certificate: &hcelbmodel.CreateCertificateOption{ ProjectId: hwsdk.StringPtr(projectId), Name: hwsdk.StringPtr(certName), - Certificate: hwsdk.StringPtr(certPem), - PrivateKey: hwsdk.StringPtr(privkeyPem), + Certificate: hwsdk.StringPtr(certPEM), + PrivateKey: hwsdk.StringPtr(privkeyPEM), }, }, } diff --git a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go index 94413993..61cb75a3 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go @@ -13,8 +13,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - hwsdk "github.com/usual2970/certimate/internal/pkg/vendors/huaweicloud-sdk" + hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -60,9 +60,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -100,7 +100,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe } var isSameCert bool - if *exportCertificateResp.Certificate == certPem { + if *exportCertificateResp.Certificate == certPEM { isSameCert = true } else { oldCertX509, err := certutil.ParseCertificateFromPEM(*exportCertificateResp.Certificate) @@ -138,8 +138,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe importCertificateReq := &hcscmmodel.ImportCertificateRequest{ Body: &hcscmmodel.ImportCertificateRequestBody{ Name: certName, - Certificate: certPem, - PrivateKey: privkeyPem, + Certificate: certPEM, + PrivateKey: privkeyPEM, }, } importCertificateResp, err := u.sdkClient.ImportCertificate(importCertificateReq) diff --git a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go index 86d25426..236cd113 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go @@ -18,8 +18,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - hwsdk "github.com/usual2970/certimate/internal/pkg/vendors/huaweicloud-sdk" + hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -65,9 +65,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -100,7 +100,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe } var isSameCert bool - if *showCertificateResp.Content == certPem { + if *showCertificateResp.Content == certPEM { isSameCert = true } else { oldCertX509, err := certutil.ParseCertificateFromPEM(*showCertificateResp.Content) @@ -138,8 +138,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe createCertificateReq := &hcwafmodel.CreateCertificateRequest{ Body: &hcwafmodel.CreateCertificateRequestBody{ Name: certName, - Content: certPem, - Key: privkeyPem, + Content: certPEM, + Key: privkeyPEM, }, } createCertificateResp, err := u.sdkClient.CreateCertificate(createCertificateReq) diff --git a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go index 10f7c203..14378cde 100644 --- a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go +++ b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go @@ -16,7 +16,7 @@ import ( "golang.org/x/exp/slices" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -60,18 +60,18 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } // 格式化私钥内容,以便后续计算私钥摘要 - privkeyPem = strings.TrimSpace(privkeyPem) - privkeyPem = strings.ReplaceAll(privkeyPem, "\r", "") - privkeyPem = strings.ReplaceAll(privkeyPem, "\n", "\r\n") - privkeyPem = privkeyPem + "\r\n" + privkeyPEM = strings.TrimSpace(privkeyPEM) + privkeyPEM = strings.ReplaceAll(privkeyPEM, "\r", "") + privkeyPEM = strings.ReplaceAll(privkeyPEM, "\n", "\r\n") + privkeyPEM = privkeyPEM + "\r\n" // 遍历查看证书列表,避免重复上传 // REF: https://docs.jdcloud.com/cn/ssl-certificate/api/describecerts @@ -107,7 +107,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe } // 最后对比私钥摘要 - newKeyDigest := sha256.Sum256([]byte(privkeyPem)) + newKeyDigest := sha256.Sum256([]byte(privkeyPEM)) newKeyDigestHex := hex.EncodeToString(newKeyDigest[:]) if !strings.EqualFold(newKeyDigestHex, certDetail.Digest) { continue @@ -133,7 +133,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // 上传证书 // REF: https://docs.jdcloud.com/cn/ssl-certificate/api/uploadcert - uploadCertReq := jdsslapi.NewUploadCertRequest(certName, privkeyPem, certPem) + uploadCertReq := jdsslapi.NewUploadCertRequest(certName, privkeyPEM, certPEM) uploadCertResp, err := u.sdkClient.UploadCert(uploadCertReq) u.logger.Debug("sdk request 'ssl.UploadCertificate'", slog.Any("request", uploadCertReq), slog.Any("response", uploadCertResp)) if err != nil { diff --git a/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go b/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go index 6bc71c3f..0999ac93 100644 --- a/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go +++ b/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go @@ -11,8 +11,8 @@ import ( "github.com/qiniu/go-sdk/v7/auth" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - qiniusdk "github.com/usual2970/certimate/internal/pkg/vendors/qiniu-sdk" + qiniusdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/qiniu" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -56,9 +56,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -69,7 +69,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // 上传新证书 // REF: https://developer.qiniu.com/fusion/8593/interface-related-certificate - uploadSslCertResp, err := u.sdkClient.UploadSslCert(context.TODO(), certName, certX509.Subject.CommonName, certPem, privkeyPem) + uploadSslCertResp, err := u.sdkClient.UploadSslCert(context.TODO(), certName, certX509.Subject.CommonName, certPEM, privkeyPEM) u.logger.Debug("sdk request 'cdn.UploadSslCert'", slog.Any("response", uploadSslCertResp)) if err != nil { return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.UploadSslCert'") diff --git a/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go b/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go index f2ee4bde..3991d07f 100644 --- a/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go +++ b/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go @@ -10,8 +10,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - rainyunsdk "github.com/usual2970/certimate/internal/pkg/vendors/rainyun-sdk" + rainyunsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/rainyun" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -53,8 +53,8 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { - if res, err := u.getCertIfExists(ctx, certPem); err != nil { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { + if res, err := u.getCertIfExists(ctx, certPEM); err != nil { return nil, err } else if res != nil { u.logger.Info("ssl certificate already exists") @@ -64,8 +64,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // SSL 证书上传 // REF: https://apifox.com/apidoc/shared/a4595cc8-44c5-4678-a2a3-eed7738dab03/api-69943046 sslCenterCreateReq := &rainyunsdk.SslCenterCreateRequest{ - Cert: certPem, - Key: privkeyPem, + Cert: certPEM, + Key: privkeyPEM, } sslCenterCreateResp, err := u.sdkClient.SslCenterCreate(sslCenterCreateReq) u.logger.Debug("sdk request 'sslcenter.Create'", slog.Any("request", sslCenterCreateReq), slog.Any("response", sslCenterCreateResp)) @@ -73,7 +73,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe return nil, xerrors.Wrap(err, "failed to execute sdk request 'sslcenter.Create'") } - if res, err := u.getCertIfExists(ctx, certPem); err != nil { + if res, err := u.getCertIfExists(ctx, certPEM); err != nil { return nil, err } else if res == nil { return nil, errors.New("rainyun sslcenter: no certificate found") @@ -82,9 +82,9 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe } } -func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -128,7 +128,7 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPem string) var isSameCert bool if sslCenterGetResp.Data != nil { - if sslCenterGetResp.Data.Cert == certPem { + if sslCenterGetResp.Data.Cert == certPEM { isSameCert = true } else { oldCertX509, err := certutil.ParseCertificateFromPEM(sslCenterGetResp.Data.Cert) diff --git a/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go b/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go index 45c7ba9e..25b3e112 100644 --- a/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go +++ b/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go @@ -53,12 +53,12 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 上传新证书 // REF: https://cloud.tencent.com/document/product/400/41665 uploadCertificateReq := tcssl.NewUploadCertificateRequest() - uploadCertificateReq.CertificatePublicKey = common.StringPtr(certPem) - uploadCertificateReq.CertificatePrivateKey = common.StringPtr(privkeyPem) + uploadCertificateReq.CertificatePublicKey = common.StringPtr(certPEM) + uploadCertificateReq.CertificatePrivateKey = common.StringPtr(privkeyPEM) uploadCertificateReq.Repeatable = common.BoolPtr(false) uploadCertificateResp, err := u.sdkClient.UploadCertificate(uploadCertificateReq) u.logger.Debug("sdk request 'ssl.UploadCertificate'", slog.Any("request", uploadCertificateReq), slog.Any("response", uploadCertificateResp)) diff --git a/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go b/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go index 4649c454..d74f9a38 100644 --- a/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go +++ b/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go @@ -17,8 +17,8 @@ import ( ucloudauth "github.com/ucloud/ucloud-sdk-go/ucloud/auth" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" - usslsdk "github.com/usual2970/certimate/internal/pkg/vendors/ucloud-sdk/ussl" + usslsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/ucloud/ussl" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -64,23 +64,23 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 生成新证书名(需符合优刻得命名规则) var certId, certName string certName = fmt.Sprintf("certimate-%d", time.Now().UnixMilli()) // 生成优刻得所需的证书参数 - certPemBase64 := base64.StdEncoding.EncodeToString([]byte(certPem)) - privkeyPemBase64 := base64.StdEncoding.EncodeToString([]byte(privkeyPem)) - certMd5 := md5.Sum([]byte(certPemBase64 + privkeyPemBase64)) + certPEMBase64 := base64.StdEncoding.EncodeToString([]byte(certPEM)) + privkeyPEMBase64 := base64.StdEncoding.EncodeToString([]byte(privkeyPEM)) + certMd5 := md5.Sum([]byte(certPEMBase64 + privkeyPEMBase64)) certMd5Hex := hex.EncodeToString(certMd5[:]) // 上传托管证书 // REF: https://docs.ucloud.cn/api/usslcertificate-api/upload_normal_certificate uploadNormalCertificateReq := u.sdkClient.NewUploadNormalCertificateRequest() uploadNormalCertificateReq.CertificateName = ucloud.String(certName) - uploadNormalCertificateReq.SslPublicKey = ucloud.String(certPemBase64) - uploadNormalCertificateReq.SslPrivateKey = ucloud.String(privkeyPemBase64) + uploadNormalCertificateReq.SslPublicKey = ucloud.String(certPEMBase64) + uploadNormalCertificateReq.SslPrivateKey = ucloud.String(privkeyPEMBase64) uploadNormalCertificateReq.SslMD5 = ucloud.String(certMd5Hex) if u.config.ProjectId != "" { uploadNormalCertificateReq.ProjectId = ucloud.String(u.config.ProjectId) @@ -89,7 +89,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe u.logger.Debug("sdk request 'ussl.UploadNormalCertificate'", slog.Any("request", uploadNormalCertificateReq), slog.Any("response", uploadNormalCertificateResp)) if err != nil { if uploadNormalCertificateResp != nil && uploadNormalCertificateResp.GetRetCode() == 80035 { - if res, err := u.getCertIfExists(ctx, certPem); err != nil { + if res, err := u.getCertIfExists(ctx, certPEM); err != nil { return nil, err } else if res == nil { return nil, errors.New("ucloud ssl: no certificate found") @@ -112,9 +112,9 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe }, nil } -func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } diff --git a/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go b/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go index dbbe41fa..5f3760bb 100644 --- a/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go +++ b/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go @@ -8,7 +8,7 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - upyunsdk "github.com/usual2970/certimate/internal/pkg/vendors/upyun-sdk/console" + upyunsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/upyun/console" ) type UploaderConfig struct { @@ -52,11 +52,11 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 上传证书 uploadHttpsCertificateReq := &upyunsdk.UploadHttpsCertificateRequest{ - Certificate: certPem, - PrivateKey: privkeyPem, + Certificate: certPEM, + PrivateKey: privkeyPEM, } uploadHttpsCertificateResp, err := u.sdkClient.UploadHttpsCertificate(uploadHttpsCertificateReq) u.logger.Debug("sdk request 'console.UploadHttpsCertificate'", slog.Any("response", uploadHttpsCertificateResp)) diff --git a/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go b/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go index 2fe52472..9fb0cd23 100644 --- a/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go +++ b/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go @@ -15,7 +15,7 @@ import ( ve "github.com/volcengine/volcengine-go-sdk/volcengine" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -58,9 +58,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -115,8 +115,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe // 上传新证书 // REF: https://www.volcengine.com/docs/6454/1245763 addCertificateReq := &vecdn.AddCertificateRequest{ - Certificate: certPem, - PrivateKey: privkeyPem, + Certificate: certPEM, + PrivateKey: privkeyPEM, Source: ve.String("volc_cert_center"), Desc: ve.String(certName), } diff --git a/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter.go b/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter.go index 66540699..f04e9e53 100644 --- a/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter.go +++ b/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter.go @@ -9,7 +9,7 @@ import ( vesession "github.com/volcengine/volcengine-go-sdk/volcengine/session" "github.com/usual2970/certimate/internal/pkg/core/uploader" - veccsdk "github.com/usual2970/certimate/internal/pkg/vendors/volcengine-sdk/certcenter" + veccsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/volcengine/certcenter" ) type UploaderConfig struct { @@ -55,13 +55,13 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 上传证书 // REF: https://www.volcengine.com/docs/6638/1365580 importCertificateReq := &veccsdk.ImportCertificateInput{ CertificateInfo: &veccsdk.ImportCertificateInputCertificateInfo{ - CertificateChain: ve.String(certPem), - PrivateKey: ve.String(privkeyPem), + CertificateChain: ve.String(certPEM), + PrivateKey: ve.String(privkeyPEM), }, Repeatable: ve.Bool(false), } diff --git a/internal/pkg/core/uploader/providers/volcengine-live/volcengine_live.go b/internal/pkg/core/uploader/providers/volcengine-live/volcengine_live.go index 46031c61..bd8d905e 100644 --- a/internal/pkg/core/uploader/providers/volcengine-live/volcengine_live.go +++ b/internal/pkg/core/uploader/providers/volcengine-live/volcengine_live.go @@ -12,7 +12,7 @@ import ( ve "github.com/volcengine/volcengine-go-sdk/volcengine" "github.com/usual2970/certimate/internal/pkg/core/uploader" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) type UploaderConfig struct { @@ -55,9 +55,9 @@ func (u *UploaderProvider) WithLogger(logger *slog.Logger) uploader.Uploader { return u } -func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPem string) (res *uploader.UploadResult, err error) { +func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *uploader.UploadResult, err error) { // 解析证书内容 - certX509, err := certutil.ParseCertificateFromPEM(certPem) + certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } @@ -85,7 +85,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe var isSameCert bool certificate := strings.Join(describeCertDetailSecretResp.Result.SSL.Chain, "\n\n") - if certificate == certPem { + if certificate == certPEM { isSameCert = true } else { oldCertX509, err := certutil.ParseCertificateFromPEM(certificate) @@ -118,8 +118,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPem string, privkeyPe UseWay: "https", ProjectName: ve.String("default"), Rsa: velive.CreateCertBodyRsa{ - Prikey: privkeyPem, - Pubkey: certPem, + Prikey: privkeyPEM, + Pubkey: certPEM, }, } createCertResp, err := u.sdkClient.CreateCert(ctx, createCertReq) diff --git a/internal/pkg/core/uploader/uploader.go b/internal/pkg/core/uploader/uploader.go index 5edcdce4..902baa3b 100644 --- a/internal/pkg/core/uploader/uploader.go +++ b/internal/pkg/core/uploader/uploader.go @@ -15,13 +15,13 @@ type Uploader interface { // // 入参: // - ctx:上下文。 - // - certPem:证书 PEM 内容。 - // - privkeyPem:私钥 PEM 内容。 + // - certPEM:证书 PEM 内容。 + // - privkeyPEM:私钥 PEM 内容。 // // 出参: // - res:上传结果。 // - err: 错误。 - Upload(ctx context.Context, certPem string, privkeyPem string) (res *UploadResult, err error) + Upload(ctx context.Context, certPEM string, privkeyPEM string) (res *UploadResult, err error) } // 表示证书上传结果的数据结构,包含上传后的证书 ID、名称和其他数据。 diff --git a/internal/pkg/vendors/1panel-sdk/api.go b/internal/pkg/sdk3rd/1panel/api.go similarity index 83% rename from internal/pkg/vendors/1panel-sdk/api.go rename to internal/pkg/sdk3rd/1panel/api.go index 8fa15393..baab2313 100644 --- a/internal/pkg/vendors/1panel-sdk/api.go +++ b/internal/pkg/sdk3rd/1panel/api.go @@ -18,6 +18,10 @@ func (c *Client) SearchWebsiteSSL(req *SearchWebsiteSSLRequest) (*SearchWebsiteS } func (c *Client) GetWebsiteSSL(req *GetWebsiteSSLRequest) (*GetWebsiteSSLResponse, error) { + if req.SSLID == 0 { + return nil, fmt.Errorf("1panel api error: invalid parameter: SSLID") + } + resp := &GetWebsiteSSLResponse{} err := c.sendRequestWithResult(http.MethodGet, fmt.Sprintf("/websites/ssl/%d", req.SSLID), req, resp) return resp, err @@ -30,12 +34,20 @@ func (c *Client) UploadWebsiteSSL(req *UploadWebsiteSSLRequest) (*UploadWebsiteS } func (c *Client) GetHttpsConf(req *GetHttpsConfRequest) (*GetHttpsConfResponse, error) { + if req.WebsiteID == 0 { + return nil, fmt.Errorf("1panel api error: invalid parameter: WebsiteID") + } + resp := &GetHttpsConfResponse{} err := c.sendRequestWithResult(http.MethodGet, fmt.Sprintf("/websites/%d/https", req.WebsiteID), req, resp) return resp, err } func (c *Client) UpdateHttpsConf(req *UpdateHttpsConfRequest) (*UpdateHttpsConfResponse, error) { + if req.WebsiteID == 0 { + return nil, fmt.Errorf("1panel api error: invalid parameter: WebsiteID") + } + resp := &UpdateHttpsConfResponse{} err := c.sendRequestWithResult(http.MethodPost, fmt.Sprintf("/websites/%d/https", req.WebsiteID), req, resp) return resp, err diff --git a/internal/pkg/vendors/1panel-sdk/client.go b/internal/pkg/sdk3rd/1panel/client.go similarity index 100% rename from internal/pkg/vendors/1panel-sdk/client.go rename to internal/pkg/sdk3rd/1panel/client.go diff --git a/internal/pkg/vendors/1panel-sdk/models.go b/internal/pkg/sdk3rd/1panel/models.go similarity index 100% rename from internal/pkg/vendors/1panel-sdk/models.go rename to internal/pkg/sdk3rd/1panel/models.go diff --git a/internal/pkg/vendors/azure-sdk/common/config.go b/internal/pkg/sdk3rd/azure/common/config.go similarity index 100% rename from internal/pkg/vendors/azure-sdk/common/config.go rename to internal/pkg/sdk3rd/azure/common/config.go diff --git a/internal/pkg/vendors/baiducloud-sdk/cert/api.go b/internal/pkg/sdk3rd/baiducloud/cert/api.go similarity index 100% rename from internal/pkg/vendors/baiducloud-sdk/cert/api.go rename to internal/pkg/sdk3rd/baiducloud/cert/api.go diff --git a/internal/pkg/vendors/baiducloud-sdk/cert/client.go b/internal/pkg/sdk3rd/baiducloud/cert/client.go similarity index 100% rename from internal/pkg/vendors/baiducloud-sdk/cert/client.go rename to internal/pkg/sdk3rd/baiducloud/cert/client.go diff --git a/internal/pkg/vendors/baiducloud-sdk/cert/models.go b/internal/pkg/sdk3rd/baiducloud/cert/models.go similarity index 100% rename from internal/pkg/vendors/baiducloud-sdk/cert/models.go rename to internal/pkg/sdk3rd/baiducloud/cert/models.go diff --git a/internal/pkg/vendors/baishan-sdk/api.go b/internal/pkg/sdk3rd/baishan/api.go similarity index 100% rename from internal/pkg/vendors/baishan-sdk/api.go rename to internal/pkg/sdk3rd/baishan/api.go diff --git a/internal/pkg/vendors/baishan-sdk/client.go b/internal/pkg/sdk3rd/baishan/client.go similarity index 100% rename from internal/pkg/vendors/baishan-sdk/client.go rename to internal/pkg/sdk3rd/baishan/client.go diff --git a/internal/pkg/vendors/baishan-sdk/models.go b/internal/pkg/sdk3rd/baishan/models.go similarity index 100% rename from internal/pkg/vendors/baishan-sdk/models.go rename to internal/pkg/sdk3rd/baishan/models.go diff --git a/internal/pkg/vendors/btpanel-sdk/api.go b/internal/pkg/sdk3rd/btpanel/api.go similarity index 100% rename from internal/pkg/vendors/btpanel-sdk/api.go rename to internal/pkg/sdk3rd/btpanel/api.go diff --git a/internal/pkg/vendors/btpanel-sdk/client.go b/internal/pkg/sdk3rd/btpanel/client.go similarity index 100% rename from internal/pkg/vendors/btpanel-sdk/client.go rename to internal/pkg/sdk3rd/btpanel/client.go diff --git a/internal/pkg/vendors/btpanel-sdk/models.go b/internal/pkg/sdk3rd/btpanel/models.go similarity index 100% rename from internal/pkg/vendors/btpanel-sdk/models.go rename to internal/pkg/sdk3rd/btpanel/models.go diff --git a/internal/pkg/vendors/bunny-sdk/api.go b/internal/pkg/sdk3rd/bunny/api.go similarity index 56% rename from internal/pkg/vendors/bunny-sdk/api.go rename to internal/pkg/sdk3rd/bunny/api.go index 8cff90b4..9c6aa285 100644 --- a/internal/pkg/vendors/bunny-sdk/api.go +++ b/internal/pkg/sdk3rd/bunny/api.go @@ -3,9 +3,14 @@ package bunnysdk import ( "fmt" "net/http" + "net/url" ) func (c *Client) AddCustomCertificate(req *AddCustomCertificateRequest) ([]byte, error) { - resp, err := c.sendRequest(http.MethodPost, fmt.Sprintf("/pullzone/%s/addCertificate", req.PullZoneId), req) + if req.PullZoneId == "" { + return nil, fmt.Errorf("bunny api error: invalid parameter: PullZoneId") + } + + resp, err := c.sendRequest(http.MethodPost, fmt.Sprintf("/pullzone/%s/addCertificate", url.PathEscape(req.PullZoneId)), req) return resp.Body(), err } diff --git a/internal/pkg/vendors/bunny-sdk/client.go b/internal/pkg/sdk3rd/bunny/client.go similarity index 96% rename from internal/pkg/vendors/bunny-sdk/client.go rename to internal/pkg/sdk3rd/bunny/client.go index 398d5cb2..90b43f39 100644 --- a/internal/pkg/vendors/bunny-sdk/client.go +++ b/internal/pkg/sdk3rd/bunny/client.go @@ -59,7 +59,7 @@ func (c *Client) sendRequest(method string, path string, params interface{}) (*r if err != nil { return resp, fmt.Errorf("bunny api error: failed to send request: %w", err) } else if resp.IsError() { - return resp, fmt.Errorf("bunny api error: unexpected status code: %d, %s", resp.StatusCode(), resp.Body()) + return resp, fmt.Errorf("bunny api error: unexpected status code: %d, resp: %s", resp.StatusCode(), resp.Body()) } return resp, nil diff --git a/internal/pkg/vendors/bunny-sdk/models.go b/internal/pkg/sdk3rd/bunny/models.go similarity index 100% rename from internal/pkg/vendors/bunny-sdk/models.go rename to internal/pkg/sdk3rd/bunny/models.go diff --git a/internal/pkg/vendors/cachefly-sdk/api.go b/internal/pkg/sdk3rd/cachefly/api.go similarity index 100% rename from internal/pkg/vendors/cachefly-sdk/api.go rename to internal/pkg/sdk3rd/cachefly/api.go diff --git a/internal/pkg/vendors/cachefly-sdk/client.go b/internal/pkg/sdk3rd/cachefly/client.go similarity index 100% rename from internal/pkg/vendors/cachefly-sdk/client.go rename to internal/pkg/sdk3rd/cachefly/client.go diff --git a/internal/pkg/vendors/cachefly-sdk/models.go b/internal/pkg/sdk3rd/cachefly/models.go similarity index 100% rename from internal/pkg/vendors/cachefly-sdk/models.go rename to internal/pkg/sdk3rd/cachefly/models.go diff --git a/internal/pkg/vendors/cdnfly-sdk/api.go b/internal/pkg/sdk3rd/cdnfly/api.go similarity index 79% rename from internal/pkg/vendors/cdnfly-sdk/api.go rename to internal/pkg/sdk3rd/cdnfly/api.go index 263bf2cd..4091a84d 100644 --- a/internal/pkg/vendors/cdnfly-sdk/api.go +++ b/internal/pkg/sdk3rd/cdnfly/api.go @@ -7,12 +7,20 @@ import ( ) func (c *Client) GetSite(req *GetSiteRequest) (*GetSiteResponse, error) { + if req.Id == "" { + return nil, fmt.Errorf("cdnfly api error: invalid parameter: Id") + } + resp := &GetSiteResponse{} err := c.sendRequestWithResult(http.MethodGet, fmt.Sprintf("/v1/sites/%s", url.PathEscape(req.Id)), req, resp) return resp, err } func (c *Client) UpdateSite(req *UpdateSiteRequest) (*UpdateSiteResponse, error) { + if req.Id == "" { + return nil, fmt.Errorf("cdnfly api error: invalid parameter: Id") + } + resp := &UpdateSiteResponse{} err := c.sendRequestWithResult(http.MethodPut, fmt.Sprintf("/v1/sites/%s", url.PathEscape(req.Id)), req, resp) return resp, err @@ -25,6 +33,10 @@ func (c *Client) CreateCertificate(req *CreateCertificateRequest) (*CreateCertif } func (c *Client) UpdateCertificate(req *UpdateCertificateRequest) (*UpdateCertificateResponse, error) { + if req.Id == "" { + return nil, fmt.Errorf("cdnfly api error: invalid parameter: Id") + } + resp := &UpdateCertificateResponse{} err := c.sendRequestWithResult(http.MethodPut, fmt.Sprintf("/v1/certs/%s", url.PathEscape(req.Id)), req, resp) return resp, err diff --git a/internal/pkg/vendors/cdnfly-sdk/client.go b/internal/pkg/sdk3rd/cdnfly/client.go similarity index 100% rename from internal/pkg/vendors/cdnfly-sdk/client.go rename to internal/pkg/sdk3rd/cdnfly/client.go diff --git a/internal/pkg/vendors/cdnfly-sdk/models.go b/internal/pkg/sdk3rd/cdnfly/models.go similarity index 100% rename from internal/pkg/vendors/cdnfly-sdk/models.go rename to internal/pkg/sdk3rd/cdnfly/models.go diff --git a/internal/pkg/vendors/cmcc-sdk/README.md b/internal/pkg/sdk3rd/cmcc/README.md similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/README.md rename to internal/pkg/sdk3rd/cmcc/README.md diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/client.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/client.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/client.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/client.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/go.mod b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/go.mod similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/go.mod rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/go.mod diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_tags.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_tags.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_tags.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_tags.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_response.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_response_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_response_tags.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_tags.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/create_record_response_tags.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_tags.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_response.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/delete_record_response_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_query.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_query.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_query.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_query.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_data.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_data.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_data.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_data.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_tags.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_tags.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_tags.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_tags.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_query.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_query.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_query.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_query.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_response.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_response_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_response_results.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_results.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/list_record_response_results.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_results.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_tags.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_tags.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_tags.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_tags.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_response.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response_body.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1/model/modify_record_response_body.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response_body.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/api_client.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_client.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/api_client.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_client.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/api_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_response.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/api_response.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_response.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/config/config.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/config/config.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/config/config.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/config/config.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/configuration.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/configuration.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/configuration.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/configuration.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/go.mod b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/go.mod similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/go.mod rename to internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/go.mod diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/http_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/http_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/http_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/http_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/open_api_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/open_api_request.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/open_api_request.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/open_api_request.go diff --git a/internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/position/http_position.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/position/http_position.go similarity index 100% rename from internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0/position/http_position.go rename to internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/position/http_position.go diff --git a/internal/pkg/vendors/dnsla-sdk/api.go b/internal/pkg/sdk3rd/dnsla/api.go similarity index 92% rename from internal/pkg/vendors/dnsla-sdk/api.go rename to internal/pkg/sdk3rd/dnsla/api.go index dae745c4..4b53a2ee 100644 --- a/internal/pkg/vendors/dnsla-sdk/api.go +++ b/internal/pkg/sdk3rd/dnsla/api.go @@ -31,6 +31,10 @@ func (c *Client) UpdateRecord(req *UpdateRecordRequest) (*UpdateRecordResponse, } func (c *Client) DeleteRecord(req *DeleteRecordRequest) (*DeleteRecordResponse, error) { + if req.Id == "" { + return nil, fmt.Errorf("dnsla api error: invalid parameter: Id") + } + resp := &DeleteRecordResponse{} err := c.sendRequestWithResult(http.MethodDelete, fmt.Sprintf("/record?id=%s", url.QueryEscape(req.Id)), req, resp) return resp, err diff --git a/internal/pkg/vendors/dnsla-sdk/client.go b/internal/pkg/sdk3rd/dnsla/client.go similarity index 100% rename from internal/pkg/vendors/dnsla-sdk/client.go rename to internal/pkg/sdk3rd/dnsla/client.go diff --git a/internal/pkg/vendors/dnsla-sdk/models.go b/internal/pkg/sdk3rd/dnsla/models.go similarity index 100% rename from internal/pkg/vendors/dnsla-sdk/models.go rename to internal/pkg/sdk3rd/dnsla/models.go diff --git a/internal/pkg/vendors/dogecloud-sdk/client.go b/internal/pkg/sdk3rd/dogecloud/client.go similarity index 100% rename from internal/pkg/vendors/dogecloud-sdk/client.go rename to internal/pkg/sdk3rd/dogecloud/client.go diff --git a/internal/pkg/vendors/dogecloud-sdk/models.go b/internal/pkg/sdk3rd/dogecloud/models.go similarity index 100% rename from internal/pkg/vendors/dogecloud-sdk/models.go rename to internal/pkg/sdk3rd/dogecloud/models.go diff --git a/internal/pkg/vendors/edgio-sdk/README.md b/internal/pkg/sdk3rd/edgio/README.md similarity index 100% rename from internal/pkg/vendors/edgio-sdk/README.md rename to internal/pkg/sdk3rd/edgio/README.md diff --git a/internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/cdn_configuration.go b/internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/cdn_configuration.go similarity index 100% rename from internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/cdn_configuration.go rename to internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/cdn_configuration.go diff --git a/internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/environment.go b/internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/environment.go similarity index 100% rename from internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/environment.go rename to internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/environment.go diff --git a/internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/property.go b/internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/property.go similarity index 100% rename from internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/property.go rename to internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/property.go diff --git a/internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/purge.go b/internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/purge.go similarity index 100% rename from internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/purge.go rename to internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/purge.go diff --git a/internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/tls_cert.go b/internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/tls_cert.go similarity index 100% rename from internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/dtos/tls_cert.go rename to internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/dtos/tls_cert.go diff --git a/internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/edgio_client.go b/internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/edgio_client.go similarity index 100% rename from internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/edgio_client.go rename to internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/edgio_client.go diff --git a/internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/edgio_client_interface.go b/internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/edgio_client_interface.go similarity index 100% rename from internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/applications/v7/edgio_client_interface.go rename to internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/applications/v7/edgio_client_interface.go diff --git a/internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/go.mod b/internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/go.mod similarity index 100% rename from internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace/go.mod rename to internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace/go.mod diff --git a/internal/pkg/vendors/gcore-sdk/common/endpoint.go b/internal/pkg/sdk3rd/gcore/common/endpoint.go similarity index 100% rename from internal/pkg/vendors/gcore-sdk/common/endpoint.go rename to internal/pkg/sdk3rd/gcore/common/endpoint.go diff --git a/internal/pkg/vendors/gcore-sdk/common/signer.go b/internal/pkg/sdk3rd/gcore/common/signer.go similarity index 100% rename from internal/pkg/vendors/gcore-sdk/common/signer.go rename to internal/pkg/sdk3rd/gcore/common/signer.go diff --git a/internal/pkg/vendors/gname-sdk/api.go b/internal/pkg/sdk3rd/gname/api.go similarity index 100% rename from internal/pkg/vendors/gname-sdk/api.go rename to internal/pkg/sdk3rd/gname/api.go diff --git a/internal/pkg/vendors/gname-sdk/client.go b/internal/pkg/sdk3rd/gname/client.go similarity index 100% rename from internal/pkg/vendors/gname-sdk/client.go rename to internal/pkg/sdk3rd/gname/client.go diff --git a/internal/pkg/vendors/gname-sdk/models.go b/internal/pkg/sdk3rd/gname/models.go similarity index 100% rename from internal/pkg/vendors/gname-sdk/models.go rename to internal/pkg/sdk3rd/gname/models.go diff --git a/internal/pkg/vendors/huaweicloud-sdk/cast.go b/internal/pkg/sdk3rd/huaweicloud/cast.go similarity index 100% rename from internal/pkg/vendors/huaweicloud-sdk/cast.go rename to internal/pkg/sdk3rd/huaweicloud/cast.go diff --git a/internal/pkg/vendors/qiniu-sdk/auth.go b/internal/pkg/sdk3rd/qiniu/auth.go similarity index 100% rename from internal/pkg/vendors/qiniu-sdk/auth.go rename to internal/pkg/sdk3rd/qiniu/auth.go diff --git a/internal/pkg/vendors/qiniu-sdk/client.go b/internal/pkg/sdk3rd/qiniu/client.go similarity index 100% rename from internal/pkg/vendors/qiniu-sdk/client.go rename to internal/pkg/sdk3rd/qiniu/client.go diff --git a/internal/pkg/vendors/qiniu-sdk/models.go b/internal/pkg/sdk3rd/qiniu/models.go similarity index 100% rename from internal/pkg/vendors/qiniu-sdk/models.go rename to internal/pkg/sdk3rd/qiniu/models.go diff --git a/internal/pkg/vendors/rainyun-sdk/api.go b/internal/pkg/sdk3rd/rainyun/api.go similarity index 85% rename from internal/pkg/vendors/rainyun-sdk/api.go rename to internal/pkg/sdk3rd/rainyun/api.go index 50f3279d..d4a9135e 100644 --- a/internal/pkg/vendors/rainyun-sdk/api.go +++ b/internal/pkg/sdk3rd/rainyun/api.go @@ -12,6 +12,10 @@ func (c *Client) SslCenterList(req *SslCenterListRequest) (*SslCenterListRespons } func (c *Client) SslCenterGet(id int32) (*SslCenterGetResponse, error) { + if id == 0 { + return nil, fmt.Errorf("rainyun api error: invalid parameter: id") + } + resp := &SslCenterGetResponse{} err := c.sendRequestWithResult(http.MethodGet, fmt.Sprintf("/product/sslcenter/%d", id), nil, resp) return resp, err @@ -24,6 +28,10 @@ func (c *Client) SslCenterCreate(req *SslCenterCreateRequest) (*SslCenterCreateR } func (c *Client) RcdnInstanceSslBind(id int32, req *RcdnInstanceSslBindRequest) (*RcdnInstanceSslBindResponse, error) { + if id == 0 { + return nil, fmt.Errorf("rainyun api error: invalid parameter: id") + } + resp := &RcdnInstanceSslBindResponse{} err := c.sendRequestWithResult(http.MethodPost, fmt.Sprintf("/product/rcdn/instance/%d/ssl_bind", id), req, resp) return resp, err diff --git a/internal/pkg/vendors/rainyun-sdk/client.go b/internal/pkg/sdk3rd/rainyun/client.go similarity index 100% rename from internal/pkg/vendors/rainyun-sdk/client.go rename to internal/pkg/sdk3rd/rainyun/client.go diff --git a/internal/pkg/vendors/rainyun-sdk/models.go b/internal/pkg/sdk3rd/rainyun/models.go similarity index 100% rename from internal/pkg/vendors/rainyun-sdk/models.go rename to internal/pkg/sdk3rd/rainyun/models.go diff --git a/internal/pkg/vendors/safeline-sdk/api.go b/internal/pkg/sdk3rd/safeline/api.go similarity index 100% rename from internal/pkg/vendors/safeline-sdk/api.go rename to internal/pkg/sdk3rd/safeline/api.go diff --git a/internal/pkg/vendors/safeline-sdk/client.go b/internal/pkg/sdk3rd/safeline/client.go similarity index 100% rename from internal/pkg/vendors/safeline-sdk/client.go rename to internal/pkg/sdk3rd/safeline/client.go diff --git a/internal/pkg/vendors/safeline-sdk/models.go b/internal/pkg/sdk3rd/safeline/models.go similarity index 100% rename from internal/pkg/vendors/safeline-sdk/models.go rename to internal/pkg/sdk3rd/safeline/models.go diff --git a/internal/pkg/vendors/ucloud-sdk/ufile/apis.go b/internal/pkg/sdk3rd/ucloud/ufile/apis.go similarity index 100% rename from internal/pkg/vendors/ucloud-sdk/ufile/apis.go rename to internal/pkg/sdk3rd/ucloud/ufile/apis.go diff --git a/internal/pkg/vendors/ucloud-sdk/ufile/client.go b/internal/pkg/sdk3rd/ucloud/ufile/client.go similarity index 100% rename from internal/pkg/vendors/ucloud-sdk/ufile/client.go rename to internal/pkg/sdk3rd/ucloud/ufile/client.go diff --git a/internal/pkg/vendors/ucloud-sdk/ussl/apis.go b/internal/pkg/sdk3rd/ucloud/ussl/apis.go similarity index 100% rename from internal/pkg/vendors/ucloud-sdk/ussl/apis.go rename to internal/pkg/sdk3rd/ucloud/ussl/apis.go diff --git a/internal/pkg/vendors/ucloud-sdk/ussl/client.go b/internal/pkg/sdk3rd/ucloud/ussl/client.go similarity index 100% rename from internal/pkg/vendors/ucloud-sdk/ussl/client.go rename to internal/pkg/sdk3rd/ucloud/ussl/client.go diff --git a/internal/pkg/vendors/ucloud-sdk/ussl/models.go b/internal/pkg/sdk3rd/ucloud/ussl/models.go similarity index 100% rename from internal/pkg/vendors/ucloud-sdk/ussl/models.go rename to internal/pkg/sdk3rd/ucloud/ussl/models.go diff --git a/internal/pkg/vendors/upyun-sdk/console/api.go b/internal/pkg/sdk3rd/upyun/console/api.go similarity index 100% rename from internal/pkg/vendors/upyun-sdk/console/api.go rename to internal/pkg/sdk3rd/upyun/console/api.go diff --git a/internal/pkg/vendors/upyun-sdk/console/client.go b/internal/pkg/sdk3rd/upyun/console/client.go similarity index 100% rename from internal/pkg/vendors/upyun-sdk/console/client.go rename to internal/pkg/sdk3rd/upyun/console/client.go diff --git a/internal/pkg/vendors/upyun-sdk/console/models.go b/internal/pkg/sdk3rd/upyun/console/models.go similarity index 100% rename from internal/pkg/vendors/upyun-sdk/console/models.go rename to internal/pkg/sdk3rd/upyun/console/models.go diff --git a/internal/pkg/vendors/volcengine-sdk/certcenter/api_import_certificate.go b/internal/pkg/sdk3rd/volcengine/certcenter/api_import_certificate.go similarity index 100% rename from internal/pkg/vendors/volcengine-sdk/certcenter/api_import_certificate.go rename to internal/pkg/sdk3rd/volcengine/certcenter/api_import_certificate.go diff --git a/internal/pkg/vendors/volcengine-sdk/certcenter/interface.go b/internal/pkg/sdk3rd/volcengine/certcenter/interface.go similarity index 100% rename from internal/pkg/vendors/volcengine-sdk/certcenter/interface.go rename to internal/pkg/sdk3rd/volcengine/certcenter/interface.go diff --git a/internal/pkg/vendors/volcengine-sdk/certcenter/service.go b/internal/pkg/sdk3rd/volcengine/certcenter/service.go similarity index 100% rename from internal/pkg/vendors/volcengine-sdk/certcenter/service.go rename to internal/pkg/sdk3rd/volcengine/certcenter/service.go diff --git a/internal/pkg/vendors/wangsu-sdk/cdn/api.go b/internal/pkg/sdk3rd/wangsu/cdn/api.go similarity index 89% rename from internal/pkg/vendors/wangsu-sdk/cdn/api.go rename to internal/pkg/sdk3rd/wangsu/cdn/api.go index 92a05cfa..9736f24d 100644 --- a/internal/pkg/vendors/wangsu-sdk/cdn/api.go +++ b/internal/pkg/sdk3rd/wangsu/cdn/api.go @@ -23,7 +23,7 @@ func (c *Client) CreateCertificate(req *CreateCertificateRequest) (*CreateCertif func (c *Client) UpdateCertificate(certificateId string, req *UpdateCertificateRequest) (*UpdateCertificateResponse, error) { if certificateId == "" { - return nil, fmt.Errorf("invalid parameter: certificateId") + return nil, fmt.Errorf("wangsu api error: invalid parameter: certificateId") } resp := &UpdateCertificateResponse{} @@ -40,7 +40,7 @@ func (c *Client) UpdateCertificate(certificateId string, req *UpdateCertificateR func (c *Client) GetHostnameDetail(hostname string) (*GetHostnameDetailResponse, error) { if hostname == "" { - return nil, fmt.Errorf("invalid parameter: hostname") + return nil, fmt.Errorf("wangsu api error: invalid parameter: hostname") } resp := &GetHostnameDetailResponse{} @@ -61,7 +61,7 @@ func (c *Client) CreateDeploymentTask(req *CreateDeploymentTaskRequest) (*Create func (c *Client) GetDeploymentTaskDetail(deploymentTaskId string) (*GetDeploymentTaskDetailResponse, error) { if deploymentTaskId == "" { - return nil, fmt.Errorf("invalid parameter: deploymentTaskId") + return nil, fmt.Errorf("wangsu api error: invalid parameter: deploymentTaskId") } resp := &GetDeploymentTaskDetailResponse{} diff --git a/internal/pkg/vendors/wangsu-sdk/cdn/client.go b/internal/pkg/sdk3rd/wangsu/cdn/client.go similarity index 80% rename from internal/pkg/vendors/wangsu-sdk/cdn/client.go rename to internal/pkg/sdk3rd/wangsu/cdn/client.go index e1831960..ca66559b 100644 --- a/internal/pkg/vendors/wangsu-sdk/cdn/client.go +++ b/internal/pkg/sdk3rd/wangsu/cdn/client.go @@ -3,7 +3,7 @@ import ( "time" - "github.com/usual2970/certimate/internal/pkg/vendors/wangsu-sdk/openapi" + "github.com/usual2970/certimate/internal/pkg/sdk3rd/wangsu/openapi" ) type Client struct { diff --git a/internal/pkg/vendors/wangsu-sdk/cdn/models.go b/internal/pkg/sdk3rd/wangsu/cdn/models.go similarity index 94% rename from internal/pkg/vendors/wangsu-sdk/cdn/models.go rename to internal/pkg/sdk3rd/wangsu/cdn/models.go index 2bebced2..a9a9ec74 100644 --- a/internal/pkg/vendors/wangsu-sdk/cdn/models.go +++ b/internal/pkg/sdk3rd/wangsu/cdn/models.go @@ -1,7 +1,7 @@ package cdn import ( - "github.com/usual2970/certimate/internal/pkg/vendors/wangsu-sdk/openapi" + "github.com/usual2970/certimate/internal/pkg/sdk3rd/wangsu/openapi" ) type baseResponse struct { @@ -46,7 +46,7 @@ type CreateCertificateRequest struct { type CreateCertificateResponse struct { baseResponse - CertificateUrl string `json:"-"` + CertificateUrl string `json:"location,omitempty"` } type UpdateCertificateRequest struct { @@ -60,7 +60,7 @@ type UpdateCertificateRequest struct { type UpdateCertificateResponse struct { baseResponse - CertificateUrl string `json:"-"` + CertificateUrl string `json:"location,omitempty"` } type HostnameProperty struct { @@ -92,7 +92,7 @@ type CreateDeploymentTaskRequest struct { type CreateDeploymentTaskResponse struct { baseResponse - DeploymentTaskUrl string `json:"-"` + DeploymentTaskUrl string `json:"location,omitempty"` } type GetDeploymentTaskDetailResponse struct { diff --git a/internal/pkg/vendors/wangsu-sdk/openapi/client.go b/internal/pkg/sdk3rd/wangsu/openapi/client.go similarity index 100% rename from internal/pkg/vendors/wangsu-sdk/openapi/client.go rename to internal/pkg/sdk3rd/wangsu/openapi/client.go diff --git a/internal/pkg/utils/certutil/common.go b/internal/pkg/utils/cert/common.go similarity index 100% rename from internal/pkg/utils/certutil/common.go rename to internal/pkg/utils/cert/common.go diff --git a/internal/pkg/utils/certutil/converter.go b/internal/pkg/utils/cert/converter.go similarity index 86% rename from internal/pkg/utils/certutil/converter.go rename to internal/pkg/utils/cert/converter.go index ccbe6360..8fe51d88 100644 --- a/internal/pkg/utils/certutil/converter.go +++ b/internal/pkg/utils/cert/converter.go @@ -15,9 +15,9 @@ import ( // - cert: x509.Certificate 对象。 // // 出参: -// - certPem: 证书 PEM 内容。 +// - certPEM: 证书 PEM 内容。 // - err: 错误。 -func ConvertCertificateToPEM(cert *x509.Certificate) (certPem string, err error) { +func ConvertCertificateToPEM(cert *x509.Certificate) (certPEM string, err error) { if cert == nil { return "", errors.New("`cert` is nil") } @@ -36,9 +36,9 @@ func ConvertCertificateToPEM(cert *x509.Certificate) (certPem string, err error) // - privkey: ecdsa.PrivateKey 对象。 // // 出参: -// - privkeyPem: 私钥 PEM 内容。 +// - privkeyPEM: 私钥 PEM 内容。 // - err: 错误。 -func ConvertECPrivateKeyToPEM(privkey *ecdsa.PrivateKey) (privkeyPem string, err error) { +func ConvertECPrivateKeyToPEM(privkey *ecdsa.PrivateKey) (privkeyPEM string, err error) { if privkey == nil { return "", errors.New("`privkey` is nil") } diff --git a/internal/pkg/utils/certutil/extractor.go b/internal/pkg/utils/cert/extractor.go similarity index 55% rename from internal/pkg/utils/certutil/extractor.go rename to internal/pkg/utils/cert/extractor.go index d4e7ee6e..97336d6d 100644 --- a/internal/pkg/utils/certutil/extractor.go +++ b/internal/pkg/utils/cert/extractor.go @@ -8,15 +8,15 @@ import ( // 从 PEM 编码的证书字符串解析并提取服务器证书和中间证书。 // // 入参: -// - certPem: 证书 PEM 内容。 +// - certPEM: 证书 PEM 内容。 // // 出参: -// - serverCertPem: 服务器证书的 PEM 内容。 -// - interCertPem: 中间证书的 PEM 内容。 +// - serverCertPEM: 服务器证书的 PEM 内容。 +// - interCertPEM: 中间证书的 PEM 内容。 // - err: 错误。 -func ExtractCertificatesFromPEM(certPem string) (serverCertPem string, interCertPem string, err error) { +func ExtractCertificatesFromPEM(certPEM string) (serverCertPEM string, interCertPEM string, err error) { pemBlocks := make([]*pem.Block, 0) - pemData := []byte(certPem) + pemData := []byte(certPEM) for { block, rest := pem.Decode(pemData) if block == nil || block.Type != "CERTIFICATE" { @@ -27,22 +27,22 @@ func ExtractCertificatesFromPEM(certPem string) (serverCertPem string, interCert pemData = rest } - serverCertPem = "" - interCertPem = "" + serverCertPEM = "" + interCertPEM = "" if len(pemBlocks) == 0 { return "", "", errors.New("failed to decode PEM block") } if len(pemBlocks) > 0 { - serverCertPem = string(pem.EncodeToMemory(pemBlocks[0])) + serverCertPEM = string(pem.EncodeToMemory(pemBlocks[0])) } if len(pemBlocks) > 1 { for i := 1; i < len(pemBlocks); i++ { - interCertPem += string(pem.EncodeToMemory(pemBlocks[i])) + interCertPEM += string(pem.EncodeToMemory(pemBlocks[i])) } } - return serverCertPem, interCertPem, nil + return serverCertPEM, interCertPEM, nil } diff --git a/internal/pkg/utils/certutil/parser.go b/internal/pkg/utils/cert/parser.go similarity index 79% rename from internal/pkg/utils/certutil/parser.go rename to internal/pkg/utils/cert/parser.go index e93ce583..33a89165 100644 --- a/internal/pkg/utils/certutil/parser.go +++ b/internal/pkg/utils/cert/parser.go @@ -16,13 +16,13 @@ import ( // PEM 内容可能是包含多张证书的证书链,但只返回第一个证书(即服务器证书)。 // // 入参: -// - certPem: 证书 PEM 内容。 +// - certPEM: 证书 PEM 内容。 // // 出参: // - cert: x509.Certificate 对象。 // - err: 错误。 -func ParseCertificateFromPEM(certPem string) (cert *x509.Certificate, err error) { - pemData := []byte(certPem) +func ParseCertificateFromPEM(certPEM string) (cert *x509.Certificate, err error) { + pemData := []byte(certPEM) block, _ := pem.Decode(pemData) if block == nil { @@ -40,26 +40,26 @@ func ParseCertificateFromPEM(certPem string) (cert *x509.Certificate, err error) // 从 PEM 编码的私钥字符串解析并返回一个 crypto.PrivateKey 对象。 // // 入参: -// - privkeyPem: 私钥 PEM 内容。 +// - privkeyPEM: 私钥 PEM 内容。 // // 出参: // - privkey: crypto.PrivateKey 对象,可能是 rsa.PrivateKey、ecdsa.PrivateKey 或 ed25519.PrivateKey。 // - err: 错误。 -func ParsePrivateKeyFromPEM(privkeyPem string) (privkey crypto.PrivateKey, err error) { - pemData := []byte(privkeyPem) +func ParsePrivateKeyFromPEM(privkeyPEM string) (privkey crypto.PrivateKey, err error) { + pemData := []byte(privkeyPEM) return certcrypto.ParsePEMPrivateKey(pemData) } // 从 PEM 编码的私钥字符串解析并返回一个 ecdsa.PrivateKey 对象。 // // 入参: -// - privkeyPem: 私钥 PEM 内容。 +// - privkeyPEM: 私钥 PEM 内容。 // // 出参: // - privkey: ecdsa.PrivateKey 对象。 // - err: 错误。 -func ParseECPrivateKeyFromPEM(privkeyPem string) (privkey *ecdsa.PrivateKey, err error) { - pemData := []byte(privkeyPem) +func ParseECPrivateKeyFromPEM(privkeyPEM string) (privkey *ecdsa.PrivateKey, err error) { + pemData := []byte(privkeyPEM) block, _ := pem.Decode(pemData) if block == nil { @@ -77,13 +77,13 @@ func ParseECPrivateKeyFromPEM(privkeyPem string) (privkey *ecdsa.PrivateKey, err // 从 PEM 编码的私钥字符串解析并返回一个 rsa.PrivateKey 对象。 // // 入参: -// - privkeyPem: 私钥 PEM 内容。 +// - privkeyPEM: 私钥 PEM 内容。 // // 出参: // - privkey: rsa.PrivateKey 对象。 // - err: 错误。 -func ParsePKCS1PrivateKeyFromPEM(privkeyPem string) (privkey *rsa.PrivateKey, err error) { - pemData := []byte(privkeyPem) +func ParsePKCS1PrivateKeyFromPEM(privkeyPEM string) (privkey *rsa.PrivateKey, err error) { + pemData := []byte(privkeyPEM) block, _ := pem.Decode(pemData) if block == nil { diff --git a/internal/pkg/utils/certutil/transformer.go b/internal/pkg/utils/cert/transformer.go similarity index 77% rename from internal/pkg/utils/certutil/transformer.go rename to internal/pkg/utils/cert/transformer.go index f48641ae..66681d97 100644 --- a/internal/pkg/utils/certutil/transformer.go +++ b/internal/pkg/utils/cert/transformer.go @@ -13,20 +13,20 @@ import ( // 将 PEM 编码的证书字符串转换为 PFX 格式。 // // 入参: -// - certPem: 证书 PEM 内容。 -// - privkeyPem: 私钥 PEM 内容。 +// - certPEM: 证书 PEM 内容。 +// - privkeyPEM: 私钥 PEM 内容。 // - pfxPassword: PFX 导出密码。 // // 出参: // - data: PFX 格式的证书数据。 // - err: 错误。 -func TransformCertificateFromPEMToPFX(certPem string, privkeyPem string, pfxPassword string) ([]byte, error) { - cert, err := ParseCertificateFromPEM(certPem) +func TransformCertificateFromPEMToPFX(certPEM string, privkeyPEM string, pfxPassword string) ([]byte, error) { + cert, err := ParseCertificateFromPEM(certPEM) if err != nil { return nil, err } - privkey, err := ParsePrivateKeyFromPEM(privkeyPem) + privkey, err := ParsePrivateKeyFromPEM(privkeyPEM) if err != nil { return nil, err } @@ -42,8 +42,8 @@ func TransformCertificateFromPEMToPFX(certPem string, privkeyPem string, pfxPass // 将 PEM 编码的证书字符串转换为 JKS 格式。 // // 入参: -// - certPem: 证书 PEM 内容。 -// - privkeyPem: 私钥 PEM 内容。 +// - certPEM: 证书 PEM 内容。 +// - privkeyPEM: 私钥 PEM 内容。 // - jksAlias: JKS 别名。 // - jksKeypass: JKS 密钥密码。 // - jksStorepass: JKS 存储密码。 @@ -51,13 +51,13 @@ func TransformCertificateFromPEMToPFX(certPem string, privkeyPem string, pfxPass // 出参: // - data: JKS 格式的证书数据。 // - err: 错误。 -func TransformCertificateFromPEMToJKS(certPem string, privkeyPem string, jksAlias string, jksKeypass string, jksStorepass string) ([]byte, error) { - certBlock, _ := pem.Decode([]byte(certPem)) +func TransformCertificateFromPEMToJKS(certPEM string, privkeyPEM string, jksAlias string, jksKeypass string, jksStorepass string) ([]byte, error) { + certBlock, _ := pem.Decode([]byte(certPEM)) if certBlock == nil { return nil, errors.New("failed to decode certificate PEM") } - privkeyBlock, _ := pem.Decode([]byte(privkeyPem)) + privkeyBlock, _ := pem.Decode([]byte(privkeyPEM)) if privkeyBlock == nil { return nil, errors.New("failed to decode private key PEM") } diff --git a/internal/pkg/utils/fileutil/io.go b/internal/pkg/utils/file/io.go similarity index 100% rename from internal/pkg/utils/fileutil/io.go rename to internal/pkg/utils/file/io.go diff --git a/internal/pkg/utils/maputil/getter.go b/internal/pkg/utils/map/getter.go similarity index 100% rename from internal/pkg/utils/maputil/getter.go rename to internal/pkg/utils/map/getter.go diff --git a/internal/pkg/utils/maputil/marshal.go b/internal/pkg/utils/map/marshal.go similarity index 100% rename from internal/pkg/utils/maputil/marshal.go rename to internal/pkg/utils/map/marshal.go diff --git a/internal/pkg/utils/sliceutil/slices.go b/internal/pkg/utils/slice/slice.go similarity index 100% rename from internal/pkg/utils/sliceutil/slices.go rename to internal/pkg/utils/slice/slice.go diff --git a/internal/pkg/utils/typeutil/types.go b/internal/pkg/utils/type/type.go similarity index 100% rename from internal/pkg/utils/typeutil/types.go rename to internal/pkg/utils/type/type.go diff --git a/internal/workflow/dispatcher/dispatcher.go b/internal/workflow/dispatcher/dispatcher.go index d453b72f..6c997ff4 100644 --- a/internal/workflow/dispatcher/dispatcher.go +++ b/internal/workflow/dispatcher/dispatcher.go @@ -11,7 +11,7 @@ import ( "github.com/usual2970/certimate/internal/app" "github.com/usual2970/certimate/internal/domain" - "github.com/usual2970/certimate/internal/pkg/utils/sliceutil" + sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) var maxWorkers = 16 diff --git a/internal/workflow/node-processor/apply_node.go b/internal/workflow/node-processor/apply_node.go index b9769f3d..d9415cb9 100644 --- a/internal/workflow/node-processor/apply_node.go +++ b/internal/workflow/node-processor/apply_node.go @@ -9,7 +9,7 @@ import ( "github.com/usual2970/certimate/internal/applicant" "github.com/usual2970/certimate/internal/domain" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" "github.com/usual2970/certimate/internal/repository" ) diff --git a/migrations/1739462400_collections_snapshot.go b/migrations/1739462400_collections_snapshot.go index d8ed7409..25564526 100644 --- a/migrations/1739462400_collections_snapshot.go +++ b/migrations/1739462400_collections_snapshot.go @@ -7,7 +7,7 @@ import ( "github.com/pocketbase/pocketbase/core" m "github.com/pocketbase/pocketbase/migrations" - "github.com/usual2970/certimate/internal/pkg/utils/certutil" + certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" ) func init() { diff --git a/ui/src/components/workflow/node/DeployNodeConfigFormBunnyCDNConfig.tsx b/ui/src/components/workflow/node/DeployNodeConfigFormBunnyCDNConfig.tsx index 3b68f811..340de12c 100644 --- a/ui/src/components/workflow/node/DeployNodeConfigFormBunnyCDNConfig.tsx +++ b/ui/src/components/workflow/node/DeployNodeConfigFormBunnyCDNConfig.tsx @@ -6,7 +6,7 @@ import { validDomainName } from "@/utils/validators"; type DeployNodeConfigFormBunnyCDNConfigFieldValues = Nullish<{ pullZoneId: string | number; - hostName: string; + hostname: string; }>; export type DeployNodeConfigFormBunnyCDNConfigProps = { @@ -30,11 +30,11 @@ const DeployNodeConfigFormBunnyCDNConfig = ({ form: formInst, formName, disabled .refine((v) => { return /^\d+$/.test(v + "") && +v! > 0; }, t("workflow_node.deploy.form.bunny_cdn_pull_zone_id.placeholder")), - hostName: z - .string({ message: t("workflow_node.deploy.form.bunny_cdn_host_name.placeholder") }) - .nonempty(t("workflow_node.deploy.form.bunny_cdn_host_name.placeholder")) + hostname: z + .string({ message: t("workflow_node.deploy.form.bunny_cdn_hostname.placeholder") }) + .nonempty(t("workflow_node.deploy.form.bunny_cdn_hostname.placeholder")) .refine((v) => { - return !v || validDomainName(v!, { allowWildcard: true }); + return validDomainName(v!, { allowWildcard: true }); }, t("common.errmsg.domain_invalid")), }); const formRule = createSchemaFieldRule(formSchema); @@ -62,12 +62,12 @@ const DeployNodeConfigFormBunnyCDNConfig = ({ form: formInst, formName, disabled } + tooltip={} > - + ); diff --git a/ui/src/i18n/locales/en/nls.access.json b/ui/src/i18n/locales/en/nls.access.json index e1b701cd..2959a9b6 100644 --- a/ui/src/i18n/locales/en/nls.access.json +++ b/ui/src/i18n/locales/en/nls.access.json @@ -85,7 +85,7 @@ "access.form.baiducloud_secret_access_key.label": "Baidu Cloud SecretAccessKey", "access.form.baiducloud_secret_access_key.placeholder": "Please enter Baidu Cloud SecretAccessKey", "access.form.baiducloud_secret_access_key.tooltip": "For more information, see https://intl.cloud.baidu.com/doc/Reference/s/jjwvz2e3p-en", - "access.form.bunny_api_key.label": "Bunny API Key", + "access.form.bunny_api_key.label": "Bunny API key", "access.form.bunny_api_key.placeholder": "Please enter Bunny API key", "access.form.bunny_api_key.tooltip": "For more information, see https://docs.bunny.net/reference/bunnynet-api-overview", "access.form.upyun_username.label": "UPYUN subaccount username", diff --git a/ui/src/i18n/locales/en/nls.workflow.nodes.json b/ui/src/i18n/locales/en/nls.workflow.nodes.json index f322c3df..b04c7f04 100644 --- a/ui/src/i18n/locales/en/nls.workflow.nodes.json +++ b/ui/src/i18n/locales/en/nls.workflow.nodes.json @@ -319,9 +319,9 @@ "workflow_node.deploy.form.bunny_cdn_pull_zone_id.label": "Bunny CDN pull zone ID", "workflow_node.deploy.form.bunny_cdn_pull_zone_id.placeholder": "Please enter Bunny CDN pull zone ID", "workflow_node.deploy.form.bunny_cdn_pull_zone_id.tooltip": "What is this? See https://dash.bunny.net/cdn", - "workflow_node.deploy.form.bunny_cdn_host_name.label": "Bunny CDN hostname", - "workflow_node.deploy.form.bunny_cdn_host_name.placeholder": "Please enter Bunny CDN hostname", - "workflow_node.deploy.form.bunny_cdn_host_name.tooltip": "What is this? See https://dash.bunny.net/cdn", + "workflow_node.deploy.form.bunny_cdn_hostname.label": "Bunny CDN hostname", + "workflow_node.deploy.form.bunny_cdn_hostname.placeholder": "Please enter Bunny CDN hostname", + "workflow_node.deploy.form.bunny_cdn_hostname.tooltip": "What is this? See https://dash.bunny.net/cdn", "workflow_node.deploy.form.byteplus_cdn_domain.label": "BytePlus CDN domain", "workflow_node.deploy.form.byteplus_cdn_domain.placeholder": "Please enter BytePlus CDN domain name", "workflow_node.deploy.form.byteplus_cdn_domain.tooltip": "For more information, see https://console.byteplus.com/cdn", diff --git a/ui/src/i18n/locales/zh/nls.workflow.nodes.json b/ui/src/i18n/locales/zh/nls.workflow.nodes.json index d3b5b494..1e1387f8 100644 --- a/ui/src/i18n/locales/zh/nls.workflow.nodes.json +++ b/ui/src/i18n/locales/zh/nls.workflow.nodes.json @@ -318,9 +318,9 @@ "workflow_node.deploy.form.bunny_cdn_pull_zone_id.label": "Bunny CDN 拉取区域 ID", "workflow_node.deploy.form.bunny_cdn_pull_zone_id.placeholder": "请输入 Bunny CDN 拉取区域 ID", "workflow_node.deploy.form.bunny_cdn_pull_zone_id.tooltip": "这是什么?请参阅 https://dash.bunny.net/cdn", - "workflow_node.deploy.form.bunny_cdn_host_name.label": "Bunny CDN 主机名", - "workflow_node.deploy.form.bunny_cdn_host_name.placeholder": "请输入 Bunny CDN 主机名", - "workflow_node.deploy.form.bunny_cdn_host_name.tooltip": "这是什么?请参阅 https://dash.bunny.net/cdn", + "workflow_node.deploy.form.bunny_cdn_hostname.label": "Bunny CDN 主机名", + "workflow_node.deploy.form.bunny_cdn_hostname.placeholder": "请输入 Bunny CDN 主机名", + "workflow_node.deploy.form.bunny_cdn_hostname.tooltip": "这是什么?请参阅 https://dash.bunny.net/cdn", "workflow_node.deploy.form.byteplus_cdn_domain.label": "BytePlus CDN 域名", "workflow_node.deploy.form.byteplus_cdn_domain.placeholder": "请输入 BytePlus CDN 域名(支持泛域名)", "workflow_node.deploy.form.byteplus_cdn_domain.tooltip": "这是什么?请参阅 https://console.byteplus.com/cdn", From f5807d215f7de8a2c0d435664f6d4f6d10679f23 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 22 Apr 2025 21:24:48 +0800 Subject: [PATCH 07/38] style: format code --- .editorconfig | 2 + internal/applicant/acme_ca.go | 2 +- internal/applicant/acme_user.go | 2 +- internal/domain/dtos/certificate.go | 2 +- internal/domain/dtos/notify.go | 2 +- internal/domain/dtos/workflow.go | 2 +- internal/domain/provider.go | 2 +- .../lego-providers/acmehttpreq/acmehttpreq.go | 2 +- .../baiducloud/internal/lego.go | 2 +- .../acme-dns-01/lego-providers/bunny/bunny.go | 2 +- .../lego-providers/dnsla/internal/lego.go | 2 +- .../lego-providers/dynv6/internal/lego.go | 2 +- .../lego-providers/gname/internal/lego.go | 2 +- .../lego-providers/jdcloud/internal/lego.go | 2 +- .../tencentcloud-eo/internal/lego.go | 2 +- internal/pkg/core/deployer/deployer.go | 2 +- .../1panel-console/1panel_console.go | 2 +- .../1panel-console/1panel_console_test.go | 2 +- .../providers/1panel-site/1panel_site.go | 2 +- .../providers/1panel-site/1panel_site_test.go | 2 +- .../deployer/providers/1panel-site/consts.go | 2 +- .../providers/aliyun-alb/aliyun_alb.go | 2 +- .../providers/aliyun-alb/aliyun_alb_test.go | 2 +- .../deployer/providers/aliyun-alb/consts.go | 2 +- .../providers/aliyun-apigw/aliyun_apigw.go | 2 +- .../aliyun-apigw/aliyun_apigw_test.go | 2 +- .../deployer/providers/aliyun-apigw/consts.go | 2 +- .../aliyun-cas-deploy/aliyun_cas_deploy.go | 2 +- .../providers/aliyun-cas/aliyun_cas.go | 2 +- .../providers/aliyun-cdn/aliyun_cdn.go | 2 +- .../providers/aliyun-cdn/aliyun_cdn_test.go | 2 +- .../providers/aliyun-clb/aliyun_clb.go | 2 +- .../providers/aliyun-clb/aliyun_clb_test.go | 2 +- .../deployer/providers/aliyun-clb/consts.go | 2 +- .../providers/aliyun-dcdn/aliyun_dcdn.go | 2 +- .../providers/aliyun-dcdn/aliyun_dcdn_test.go | 2 +- .../providers/aliyun-esa/aliyun_esa.go | 2 +- .../providers/aliyun-esa/aliyun_esa_test.go | 2 +- .../deployer/providers/aliyun-fc/aliyun_fc.go | 2 +- .../providers/aliyun-fc/aliyun_fc_test.go | 2 +- .../providers/aliyun-live/aliyun_live.go | 2 +- .../providers/aliyun-live/aliyun_live_test.go | 2 +- .../providers/aliyun-nlb/aliyun_nlb.go | 2 +- .../providers/aliyun-nlb/aliyun_nlb_test.go | 2 +- .../deployer/providers/aliyun-nlb/consts.go | 2 +- .../providers/aliyun-oss/aliyun_oss.go | 2 +- .../providers/aliyun-oss/aliyun_oss_test.go | 2 +- .../providers/aliyun-vod/aliyun_vod.go | 2 +- .../providers/aliyun-vod/aliyun_vod_test.go | 2 +- .../providers/aliyun-waf/aliyun_waf.go | 2 +- .../providers/aliyun-waf/aliyun_waf_test.go | 2 +- .../deployer/providers/aws-acm/aws_acm.go | 2 +- .../aws-cloudfront/aws_cloudfront.go | 2 +- .../aws-cloudfront/aws_cloudfront_test.go | 2 +- .../azure-keyvault/azure_keyvault.go | 2 +- .../baiducloud-appblb/baiducloud_appblb.go | 2 +- .../baiducloud_appblb_test.go | 2 +- .../providers/baiducloud-appblb/consts.go | 2 +- .../baiducloud-blb/baiducloud_blb.go | 2 +- .../baiducloud-blb/baiducloud_blb_test.go | 2 +- .../providers/baiducloud-blb/consts.go | 2 +- .../baiducloud-cdn/baiducloud_cdn.go | 2 +- .../baiducloud-cdn/baiducloud_cdn_test.go | 2 +- .../baiducloud-cert/baiducloud_cert.go | 2 +- .../providers/baishan-cdn/baishan_cdn.go | 2 +- .../providers/baishan-cdn/baishan_cdn_test.go | 2 +- .../baotapanel-console/baotapanel_console.go | 2 +- .../baotapanel_console_test.go | 2 +- .../baotapanel-site/baotapanel_site.go | 2 +- .../baotapanel-site/baotapanel_site_test.go | 2 +- .../deployer/providers/bunny-cdn/bunny_cdn.go | 2 +- .../providers/bunny-cdn/bunny_cdn_test.go | 2 +- .../providers/byteplus-cdn/byteplus_cdn.go | 2 +- .../byteplus-cdn/byteplus_cdn_test.go | 2 +- .../deployer/providers/cachefly/cachefly.go | 2 +- .../providers/cachefly/cachefly_test.go | 2 +- .../core/deployer/providers/cdnfly/cdnfly.go | 2 +- .../deployer/providers/cdnfly/cdnfly_test.go | 2 +- .../core/deployer/providers/cdnfly/consts.go | 2 +- .../providers/dogecloud-cdn/dogecloud_cdn.go | 2 +- .../dogecloud-cdn/dogecloud_cdn_test.go | 2 +- .../edgio-applications/edgio_applications.go | 2 +- .../edgio_applications_test.go | 2 +- .../deployer/providers/gcore-cdn/gcore_cdn.go | 2 +- .../providers/gcore-cdn/gcore_cdn_test.go | 2 +- .../huaweicloud-cdn/huaweicloud_cdn.go | 2 +- .../huaweicloud-cdn/huaweicloud_cdn_test.go | 2 +- .../providers/huaweicloud-elb/consts.go | 2 +- .../huaweicloud-elb/huaweicloud_elb.go | 2 +- .../huaweicloud-elb/huaweicloud_elb_test.go | 2 +- .../huaweicloud-scm/huaweicloud_scm.go | 2 +- .../providers/huaweicloud-waf/consts.go | 2 +- .../huaweicloud-waf/huaweicloud_waf.go | 2 +- .../huaweicloud-waf/huaweicloud_waf_test.go | 2 +- .../deployer/providers/jdcloud-alb/consts.go | 2 +- .../providers/jdcloud-alb/jdcloud_alb.go | 2 +- .../providers/jdcloud-alb/jdcloud_alb_test.go | 2 +- .../providers/jdcloud-cdn/jdcloud_cdn.go | 2 +- .../providers/jdcloud-cdn/jdcloud_cdn_test.go | 2 +- .../providers/jdcloud-live/jdcloud_live.go | 2 +- .../jdcloud-live/jdcloud_live_test.go | 2 +- .../providers/jdcloud-vod/jdcloud_vod.go | 2 +- .../providers/jdcloud-vod/jdcloud_vod_test.go | 2 +- .../providers/k8s-secret/k8s_secret.go | 2 +- .../providers/k8s-secret/k8s_secret_test.go | 2 +- .../core/deployer/providers/local/defines.go | 2 +- .../core/deployer/providers/local/local.go | 2 +- .../deployer/providers/local/local_test.go | 2 +- .../deployer/providers/qiniu-cdn/qiniu_cdn.go | 2 +- .../providers/qiniu-cdn/qiniu_cdn_test.go | 2 +- .../providers/qiniu-pili/qiniu_pili.go | 2 +- .../providers/qiniu-pili/qiniu_pili_test.go | 2 +- .../providers/rainyun-rcdn/rainyun_rcdn.go | 2 +- .../rainyun-rcdn/rainyun_rcdn_test.go | 2 +- .../deployer/providers/safeline/consts.go | 2 +- .../deployer/providers/safeline/safeline.go | 2 +- .../providers/safeline/safeline_test.go | 2 +- .../core/deployer/providers/ssh/defines.go | 2 +- .../pkg/core/deployer/providers/ssh/ssh.go | 2 +- .../core/deployer/providers/ssh/ssh_test.go | 2 +- .../tencentcloud-cdn/tencentcloud_cdn.go | 2 +- .../tencentcloud-cdn/tencentcloud_cdn_test.go | 2 +- .../providers/tencentcloud-clb/consts.go | 2 +- .../tencentcloud-clb/tencentcloud_clb.go | 2 +- .../tencentcloud-clb/tencentcloud_clb_test.go | 2 +- .../tencentcloud-cos/tencentcloud_cos.go | 2 +- .../tencentcloud-cos/tencentcloud_cos_test.go | 2 +- .../tencentcloud-css/tencentcloud_css.go | 2 +- .../tencentcloud-css/tencentcloud_css_test.go | 2 +- .../tencentcloud-ecdn/tencentcloud_ecdn.go | 2 +- .../tencentcloud_ecdn_test.go | 2 +- .../tencentcloud-eo/tencentcloud_eo.go | 2 +- .../tencentcloud-eo/tencentcloud_eo_test.go | 2 +- .../tencentcloud-scf/tencentcloud_scf.go | 2 +- .../tencentcloud-scf/tencentcloud_scf_test.go | 2 +- .../tencentcloud_ssl_deploy.go | 2 +- .../tencentcloud-ssl/tencentcloud_ssl.go | 2 +- .../tencentcloud-vod/tencentcloud_vod.go | 2 +- .../tencentcloud-vod/tencentcloud_vod_test.go | 2 +- .../tencentcloud-waf/tencentcloud_waf.go | 2 +- .../tencentcloud-waf/tencentcloud_waf_test.go | 2 +- .../providers/ucloud-ucdn/ucloud_ucdn.go | 2 +- .../providers/ucloud-ucdn/ucloud_ucdn_test.go | 2 +- .../providers/ucloud-us3/ucloud_us3.go | 2 +- .../providers/ucloud-us3/ucloud_us3_test.go | 2 +- .../deployer/providers/upyun-cdn/upyun_cdn.go | 2 +- .../providers/upyun-cdn/upyun_cdn_test.go | 2 +- .../providers/volcengine-alb/consts.go | 2 +- .../volcengine-alb/volcengine_alb.go | 2 +- .../volcengine-alb/volcengine_alb_test.go | 2 +- .../volcengine-cdn/volcengine_cdn.go | 2 +- .../volcengine-cdn/volcengine_cdn_test.go | 2 +- .../volcengine_certcenter.go | 2 +- .../providers/volcengine-clb/consts.go | 2 +- .../volcengine-clb/volcengine_clb.go | 2 +- .../volcengine-clb/volcengine_clb_test.go | 2 +- .../volcengine-dcdn/volcengine_dcdn.go | 2 +- .../volcengine-dcdn/volcengine_dcdn_test.go | 2 +- .../volcengine-imagex/volcengine_imagex.go | 2 +- .../volcengine_imagex_test.go | 2 +- .../volcengine-live/volcengine_live.go | 2 +- .../volcengine-live/volcengine_live_test.go | 2 +- .../volcengine-tos/volcengine_tos.go | 2 +- .../volcengine-tos/volcengine_tos_test.go | 2 +- .../providers/wangsu-cdnpro/wangsu_cdnpro.go | 2 +- .../wangsu-cdnpro/wangsu_cdnpro_test.go | 2 +- .../providers/webhook/webhook_test.go | 2 +- .../pkg/core/notifier/providers/bark/bark.go | 2 +- .../core/notifier/providers/bark/bark_test.go | 2 +- .../notifier/providers/dingtalk/dingtalk.go | 2 +- .../providers/dingtalk/dingtalk_test.go | 2 +- .../core/notifier/providers/email/email.go | 2 +- .../notifier/providers/email/email_test.go | 2 +- .../pkg/core/notifier/providers/lark/lark.go | 2 +- .../core/notifier/providers/lark/lark_test.go | 2 +- .../providers/mattermost/mattermost.go | 5 ++- .../providers/serverchan/serverchan.go | 2 +- .../providers/serverchan/serverchan_test.go | 2 +- .../notifier/providers/telegram/telegram.go | 2 +- .../providers/telegram/telegram_test.go | 2 +- .../notifier/providers/webhook/webhook.go | 2 +- .../providers/webhook/webhook_test.go | 2 +- .../core/notifier/providers/wecom/wecom.go | 2 +- .../notifier/providers/wecom/wecom_test.go | 2 +- .../providers/1panel-ssl/1panel_ssl.go | 2 +- .../providers/1panel-ssl/1panel_ssl_test.go | 2 +- .../providers/aliyun-cas/aliyun_cas.go | 2 +- .../providers/aliyun-slb/aliyun_slb.go | 2 +- .../uploader/providers/aws-acm/aws_acm.go | 2 +- .../azure-keyvault/azure_keyvault.go | 2 +- .../azure-keyvault/azure_keyvault_test.go | 2 +- .../baiducloud-cert/baiducloud_cert.go | 2 +- .../baiducloud-cert/baiducloud_cert_test.go | 2 +- .../uploader/providers/dogecloud/dogecloud.go | 2 +- .../uploader/providers/gcore-cdn/gcore_cdn.go | 2 +- .../huaweicloud-elb/huaweicloud_elb.go | 2 +- .../huaweicloud-scm/huaweicloud_scm.go | 2 +- .../huaweicloud-waf/huaweicloud_waf.go | 2 +- .../providers/jdcloud-ssl/jdcloud_ssl.go | 2 +- .../providers/jdcloud-ssl/jdcloud_ssl_test.go | 2 +- .../providers/qiniu-sslcert/qiniu_sslcert.go | 2 +- .../rainyun_sslcenter_test.go | 2 +- .../tencentcloud-ssl/tencentcloud_ssl.go | 2 +- .../providers/ucloud-ussl/ucloud_ussl_test.go | 2 +- .../uploader/providers/upyun-ssl/upyun_ssl.go | 2 +- .../providers/upyun-ssl/upyun_ssl_test.go | 2 +- .../volcengine_certcenter_test.go | 2 +- internal/pkg/core/uploader/uploader.go | 2 +- internal/pkg/logging/handler.go | 2 +- internal/pkg/logging/level.go | 2 +- internal/pkg/logging/record.go | 2 +- internal/pkg/sdk3rd/azure/common/config.go | 2 +- .../model/create_record_body.go | 31 +++++++------- .../model/create_record_openapi_body.go | 25 ++++++------ .../model/create_record_openapi_request.go | 3 -- .../model/create_record_openapi_response.go | 10 ++--- .../create_record_openapi_response_body.go | 27 ++++++------- .../create_record_openapi_response_tags.go | 3 -- .../model/create_record_request.go | 3 -- .../model/create_record_response.go | 10 ++--- .../model/create_record_response_body.go | 40 +++++++++---------- .../model/create_record_response_tags.go | 3 -- .../model/delete_record_body.go | 4 +- .../model/delete_record_openapi_body.go | 4 +- .../model/delete_record_openapi_request.go | 3 -- .../model/delete_record_openapi_response.go | 10 ++--- .../delete_record_openapi_response_body.go | 6 +-- .../model/delete_record_request.go | 3 -- .../model/delete_record_response.go | 10 ++--- .../model/delete_record_response_body.go | 6 +-- .../model/list_record_body.go | 4 +- .../model/list_record_openapi_body.go | 4 +- .../model/list_record_openapi_query.go | 4 +- .../model/list_record_openapi_request.go | 3 -- .../model/list_record_openapi_response.go | 10 ++--- .../list_record_openapi_response_body.go | 3 -- .../list_record_openapi_response_data.go | 34 ++++++++-------- .../list_record_openapi_response_tags.go | 3 -- .../model/list_record_query.go | 4 +- .../model/list_record_request.go | 3 -- .../model/list_record_response.go | 10 ++--- .../model/list_record_response_body.go | 3 -- .../model/list_record_response_results.go | 40 +++++++++---------- .../model/modify_record_body.go | 31 +++++++------- .../model/modify_record_openapi_body.go | 25 ++++++------ .../model/modify_record_openapi_request.go | 3 -- .../model/modify_record_openapi_response.go | 10 ++--- .../modify_record_openapi_response_body.go | 34 ++++++++-------- .../modify_record_openapi_response_tags.go | 3 -- .../model/modify_record_request.go | 3 -- .../model/modify_record_response.go | 10 ++--- .../model/modify_record_response_body.go | 33 ++++++++------- .../cmcc/ecloudsdkcore@v1.0.0/api_client.go | 16 ++++---- .../cmcc/ecloudsdkcore@v1.0.0/api_response.go | 2 - .../position/http_position.go | 12 ++---- internal/pkg/sdk3rd/dogecloud/client.go | 2 +- internal/pkg/sdk3rd/dogecloud/models.go | 2 +- internal/pkg/sdk3rd/gcore/common/endpoint.go | 2 +- internal/pkg/sdk3rd/gcore/common/signer.go | 2 +- internal/pkg/sdk3rd/huaweicloud/cast.go | 2 +- internal/pkg/sdk3rd/qiniu/client.go | 2 +- internal/pkg/sdk3rd/qiniu/models.go | 2 +- internal/pkg/sdk3rd/ucloud/ufile/apis.go | 2 +- internal/pkg/sdk3rd/ucloud/ufile/client.go | 2 +- internal/pkg/sdk3rd/ucloud/ussl/apis.go | 2 +- internal/pkg/sdk3rd/ucloud/ussl/client.go | 2 +- internal/pkg/sdk3rd/ucloud/ussl/models.go | 2 +- .../certcenter/api_import_certificate.go | 2 +- .../sdk3rd/volcengine/certcenter/interface.go | 2 +- .../sdk3rd/volcengine/certcenter/service.go | 2 +- internal/pkg/sdk3rd/wangsu/cdn/api.go | 2 +- internal/pkg/sdk3rd/wangsu/cdn/client.go | 2 +- internal/pkg/utils/cert/common.go | 2 +- internal/pkg/utils/cert/converter.go | 2 +- internal/pkg/utils/cert/extractor.go | 2 +- internal/pkg/utils/cert/parser.go | 2 +- internal/pkg/utils/cert/transformer.go | 2 +- internal/pkg/utils/file/io.go | 2 +- internal/pkg/utils/map/getter.go | 2 +- internal/pkg/utils/map/marshal.go | 2 +- internal/pkg/utils/slice/slice.go | 2 +- internal/pkg/utils/type/type.go | 2 +- internal/workflow/dispatcher/dispatcher.go | 2 +- internal/workflow/dispatcher/singleton.go | 2 +- 284 files changed, 466 insertions(+), 527 deletions(-) diff --git a/.editorconfig b/.editorconfig index f0b25219..14d9f966 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,5 +10,7 @@ trim_trailing_whitespace = true insert_final_newline = true [*.go] +charset = utf-8 +end_of_line = lf indent_size = 2 indent_style = tab diff --git a/internal/applicant/acme_ca.go b/internal/applicant/acme_ca.go index 03d9dd65..3a066d08 100644 --- a/internal/applicant/acme_ca.go +++ b/internal/applicant/acme_ca.go @@ -1,4 +1,4 @@ -package applicant +package applicant import "github.com/usual2970/certimate/internal/domain" diff --git a/internal/applicant/acme_user.go b/internal/applicant/acme_user.go index b4768211..d4284a10 100644 --- a/internal/applicant/acme_user.go +++ b/internal/applicant/acme_user.go @@ -1,4 +1,4 @@ -package applicant +package applicant import ( "context" diff --git a/internal/domain/dtos/certificate.go b/internal/domain/dtos/certificate.go index a1853df0..ce6b7d5e 100644 --- a/internal/domain/dtos/certificate.go +++ b/internal/domain/dtos/certificate.go @@ -1,4 +1,4 @@ -package dtos +package dtos type CertificateArchiveFileReq struct { CertificateId string `json:"-"` diff --git a/internal/domain/dtos/notify.go b/internal/domain/dtos/notify.go index 72c6cc79..ab72fff1 100644 --- a/internal/domain/dtos/notify.go +++ b/internal/domain/dtos/notify.go @@ -1,4 +1,4 @@ -package dtos +package dtos import "github.com/usual2970/certimate/internal/domain" diff --git a/internal/domain/dtos/workflow.go b/internal/domain/dtos/workflow.go index 3988220b..b0f75f58 100644 --- a/internal/domain/dtos/workflow.go +++ b/internal/domain/dtos/workflow.go @@ -1,4 +1,4 @@ -package dtos +package dtos import "github.com/usual2970/certimate/internal/domain" diff --git a/internal/domain/provider.go b/internal/domain/provider.go index 5c000b3d..267adc12 100644 --- a/internal/domain/provider.go +++ b/internal/domain/provider.go @@ -1,4 +1,4 @@ -package domain +package domain type AccessProviderType string diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/acmehttpreq/acmehttpreq.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/acmehttpreq/acmehttpreq.go index ab2b11a6..bdd16234 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/acmehttpreq/acmehttpreq.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/acmehttpreq/acmehttpreq.go @@ -1,4 +1,4 @@ -package acmehttpreq +package acmehttpreq import ( "net/url" diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/baiducloud/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/baiducloud/internal/lego.go index da157bd0..5bf7b964 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/baiducloud/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/baiducloud/internal/lego.go @@ -1,4 +1,4 @@ -package lego_baiducloud +package lego_baiducloud import ( "errors" diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/bunny/bunny.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/bunny/bunny.go index 558f7773..1f4fdffe 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/bunny/bunny.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/bunny/bunny.go @@ -17,7 +17,7 @@ func NewChallengeProvider(config *ChallengeProviderConfig) (challenge.Provider, if config == nil { panic("config is nil") } - + providerConfig := bunny.NewDefaultConfig() providerConfig.APIKey = config.ApiKey if config.DnsPropagationTimeout != 0 { diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go index 88a76d01..a084f9fc 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dnsla/internal/lego.go @@ -1,4 +1,4 @@ -package lego_dnsla +package lego_dnsla import ( "errors" diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dynv6/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dynv6/internal/lego.go index f83949a2..f3028f0d 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/dynv6/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/dynv6/internal/lego.go @@ -1,4 +1,4 @@ -package lego_dynv6 +package lego_dynv6 import ( "context" diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go index 3d6d6e84..1a5ee975 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname/internal/lego.go @@ -1,4 +1,4 @@ -package lego_gname +package lego_gname import ( "errors" diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/jdcloud/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/jdcloud/internal/lego.go index d5b5277b..197cb542 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/jdcloud/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/jdcloud/internal/lego.go @@ -1,4 +1,4 @@ -package lego_jdcloud +package lego_jdcloud import ( "errors" diff --git a/internal/pkg/core/applicant/acme-dns-01/lego-providers/tencentcloud-eo/internal/lego.go b/internal/pkg/core/applicant/acme-dns-01/lego-providers/tencentcloud-eo/internal/lego.go index 57f74193..14d86a4d 100644 --- a/internal/pkg/core/applicant/acme-dns-01/lego-providers/tencentcloud-eo/internal/lego.go +++ b/internal/pkg/core/applicant/acme-dns-01/lego-providers/tencentcloud-eo/internal/lego.go @@ -1,4 +1,4 @@ -package lego_tencentcloudeo +package lego_tencentcloudeo import ( "errors" diff --git a/internal/pkg/core/deployer/deployer.go b/internal/pkg/core/deployer/deployer.go index 40fdc501..67ce7ef7 100644 --- a/internal/pkg/core/deployer/deployer.go +++ b/internal/pkg/core/deployer/deployer.go @@ -1,4 +1,4 @@ -package deployer +package deployer import ( "context" diff --git a/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go b/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go index 8c4b8248..c44cb09c 100644 --- a/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go +++ b/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go @@ -1,4 +1,4 @@ -package onepanelconsole +package onepanelconsole import ( "context" diff --git a/internal/pkg/core/deployer/providers/1panel-console/1panel_console_test.go b/internal/pkg/core/deployer/providers/1panel-console/1panel_console_test.go index d4b7cfa9..abec586c 100644 --- a/internal/pkg/core/deployer/providers/1panel-console/1panel_console_test.go +++ b/internal/pkg/core/deployer/providers/1panel-console/1panel_console_test.go @@ -1,4 +1,4 @@ -package onepanelconsole_test +package onepanelconsole_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go b/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go index 95916013..5d4561e0 100644 --- a/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go +++ b/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go @@ -1,4 +1,4 @@ -package onepanelsite +package onepanelsite import ( "context" diff --git a/internal/pkg/core/deployer/providers/1panel-site/1panel_site_test.go b/internal/pkg/core/deployer/providers/1panel-site/1panel_site_test.go index 5815fd5e..702584e3 100644 --- a/internal/pkg/core/deployer/providers/1panel-site/1panel_site_test.go +++ b/internal/pkg/core/deployer/providers/1panel-site/1panel_site_test.go @@ -1,4 +1,4 @@ -package onepanelsite_test +package onepanelsite_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/1panel-site/consts.go b/internal/pkg/core/deployer/providers/1panel-site/consts.go index caba1d5c..85f85a0d 100644 --- a/internal/pkg/core/deployer/providers/1panel-site/consts.go +++ b/internal/pkg/core/deployer/providers/1panel-site/consts.go @@ -1,4 +1,4 @@ -package onepanelsite +package onepanelsite type ResourceType string diff --git a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go index a9290ad1..e14f04ce 100644 --- a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go +++ b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go @@ -1,4 +1,4 @@ -package aliyunalb +package aliyunalb import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb_test.go b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb_test.go index b5ae776a..c75119e9 100644 --- a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb_test.go @@ -1,4 +1,4 @@ -package aliyunalb_test +package aliyunalb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-alb/consts.go b/internal/pkg/core/deployer/providers/aliyun-alb/consts.go index a2d1aacc..286aef00 100644 --- a/internal/pkg/core/deployer/providers/aliyun-alb/consts.go +++ b/internal/pkg/core/deployer/providers/aliyun-alb/consts.go @@ -1,4 +1,4 @@ -package aliyunalb +package aliyunalb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go index 1b0d575f..b9995c10 100644 --- a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go +++ b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go @@ -1,4 +1,4 @@ -package aliyunapigw +package aliyunapigw import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw_test.go b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw_test.go index dab028e2..7807a927 100644 --- a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw_test.go @@ -1,4 +1,4 @@ -package aliyunapigw_test +package aliyunapigw_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-apigw/consts.go b/internal/pkg/core/deployer/providers/aliyun-apigw/consts.go index b53c7645..1abe97e3 100644 --- a/internal/pkg/core/deployer/providers/aliyun-apigw/consts.go +++ b/internal/pkg/core/deployer/providers/aliyun-apigw/consts.go @@ -1,4 +1,4 @@ -package aliyunapigw +package aliyunapigw type ServiceType string diff --git a/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go b/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go index cf4b2305..223a30db 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go +++ b/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go @@ -1,4 +1,4 @@ -package aliyuncasdeploy +package aliyuncasdeploy import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go b/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go index 201b0d23..9eeff2c1 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go +++ b/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go @@ -1,4 +1,4 @@ -package aliyuncas +package aliyuncas import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go b/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go index a0499e84..3035f3f2 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go +++ b/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go @@ -1,4 +1,4 @@ -package aliyuncdn +package aliyuncdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn_test.go b/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn_test.go index 1f92947f..b07611da 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn_test.go @@ -1,4 +1,4 @@ -package aliyuncdn_test +package aliyuncdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go index 0609b5c8..82e35911 100644 --- a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go +++ b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go @@ -1,4 +1,4 @@ -package aliyunclb +package aliyunclb import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb_test.go b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb_test.go index f688edf9..3b8ce12d 100644 --- a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb_test.go @@ -1,4 +1,4 @@ -package aliyunclb_test +package aliyunclb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-clb/consts.go b/internal/pkg/core/deployer/providers/aliyun-clb/consts.go index ad4fb070..9d901095 100644 --- a/internal/pkg/core/deployer/providers/aliyun-clb/consts.go +++ b/internal/pkg/core/deployer/providers/aliyun-clb/consts.go @@ -1,4 +1,4 @@ -package aliyunclb +package aliyunclb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go b/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go index 251c5fb8..ad3a4824 100644 --- a/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go +++ b/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go @@ -1,4 +1,4 @@ -package aliyundcdn +package aliyundcdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn_test.go b/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn_test.go index 04ca4c48..deb489c6 100644 --- a/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn_test.go @@ -1,4 +1,4 @@ -package aliyundcdn_test +package aliyundcdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go b/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go index e30779af..bb2c810c 100644 --- a/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go +++ b/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go @@ -1,4 +1,4 @@ -package aliyunesa +package aliyunesa import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa_test.go b/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa_test.go index 0877d561..0b66d2fb 100644 --- a/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa_test.go @@ -1,4 +1,4 @@ -package aliyunesa_test +package aliyunesa_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go b/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go index 02fb472a..d69fd30d 100644 --- a/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go +++ b/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go @@ -1,4 +1,4 @@ -package aliyunfc +package aliyunfc import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc_test.go b/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc_test.go index d83f2591..215ec93b 100644 --- a/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc_test.go @@ -1,4 +1,4 @@ -package aliyunfc_test +package aliyunfc_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go b/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go index b148cdbb..c67bf495 100644 --- a/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go +++ b/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go @@ -1,4 +1,4 @@ -package aliyunlive +package aliyunlive import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live_test.go b/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live_test.go index fcf01147..46608e38 100644 --- a/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live_test.go @@ -1,4 +1,4 @@ -package aliyunlive_test +package aliyunlive_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go index 9eea4cdf..836a9d40 100644 --- a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go +++ b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go @@ -1,4 +1,4 @@ -package aliyunnlb +package aliyunnlb import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb_test.go b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb_test.go index dfaf0916..f4d64219 100644 --- a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb_test.go @@ -1,4 +1,4 @@ -package aliyunnlb_test +package aliyunnlb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-nlb/consts.go b/internal/pkg/core/deployer/providers/aliyun-nlb/consts.go index 1fa071df..40724727 100644 --- a/internal/pkg/core/deployer/providers/aliyun-nlb/consts.go +++ b/internal/pkg/core/deployer/providers/aliyun-nlb/consts.go @@ -1,4 +1,4 @@ -package aliyunnlb +package aliyunnlb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go b/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go index eb0bd381..8d2a9ff3 100644 --- a/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go +++ b/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go @@ -1,4 +1,4 @@ -package aliyunoss +package aliyunoss import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss_test.go b/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss_test.go index 7613a003..412f7d16 100644 --- a/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss_test.go @@ -1,4 +1,4 @@ -package aliyunoss_test +package aliyunoss_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go b/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go index 68715d57..a1934429 100644 --- a/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go +++ b/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go @@ -1,4 +1,4 @@ -package aliyunvod +package aliyunvod import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod_test.go b/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod_test.go index 552ddc0f..4d523d98 100644 --- a/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod_test.go @@ -1,4 +1,4 @@ -package aliyunvod_test +package aliyunvod_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go b/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go index 2b69a3db..5057b4b1 100644 --- a/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go +++ b/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go @@ -1,4 +1,4 @@ -package aliyunwaf +package aliyunwaf import ( "context" diff --git a/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf_test.go b/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf_test.go index 2668db47..e1b92613 100644 --- a/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf_test.go +++ b/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf_test.go @@ -1,4 +1,4 @@ -package aliyunwaf_test +package aliyunwaf_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go b/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go index 2dc61e6b..92eed06a 100644 --- a/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go +++ b/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go @@ -1,4 +1,4 @@ -package awsacm +package awsacm import ( "context" diff --git a/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go b/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go index c4fa5228..355e8aff 100644 --- a/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go +++ b/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go @@ -1,4 +1,4 @@ -package awscloudfront +package awscloudfront import ( "context" diff --git a/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront_test.go b/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront_test.go index 5b4c75db..78228645 100644 --- a/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront_test.go +++ b/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront_test.go @@ -1,4 +1,4 @@ -package awscloudfront_test +package awscloudfront_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go b/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go index 2c9b2670..928784da 100644 --- a/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go +++ b/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go @@ -1,4 +1,4 @@ -package azurekeyvault +package azurekeyvault import ( "context" diff --git a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go index 31e09e38..d3a8e3a2 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go +++ b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go @@ -1,4 +1,4 @@ -package baiducloudappblb +package baiducloudappblb import ( "context" diff --git a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb_test.go b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb_test.go index 6753475c..1e60d5f0 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb_test.go +++ b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb_test.go @@ -1,4 +1,4 @@ -package baiducloudappblb_test +package baiducloudappblb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/baiducloud-appblb/consts.go b/internal/pkg/core/deployer/providers/baiducloud-appblb/consts.go index 3955f9a0..8e49730b 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-appblb/consts.go +++ b/internal/pkg/core/deployer/providers/baiducloud-appblb/consts.go @@ -1,4 +1,4 @@ -package baiducloudappblb +package baiducloudappblb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go index f34fc14e..fe6a4cd8 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go +++ b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go @@ -1,4 +1,4 @@ -package baiducloudblb +package baiducloudblb import ( "context" diff --git a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb_test.go b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb_test.go index 756e6f8f..c96e4f0c 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb_test.go +++ b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb_test.go @@ -1,4 +1,4 @@ -package baiducloudblb_test +package baiducloudblb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/baiducloud-blb/consts.go b/internal/pkg/core/deployer/providers/baiducloud-blb/consts.go index 52cb8804..7af2d812 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-blb/consts.go +++ b/internal/pkg/core/deployer/providers/baiducloud-blb/consts.go @@ -1,4 +1,4 @@ -package baiducloudblb +package baiducloudblb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go b/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go index 59140c9b..35eb084e 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go +++ b/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go @@ -1,4 +1,4 @@ -package baiducloudcdn +package baiducloudcdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn_test.go b/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn_test.go index ecb9a9d4..cef03392 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn_test.go +++ b/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn_test.go @@ -1,4 +1,4 @@ -package baiducloudcdn_test +package baiducloudcdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go b/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go index bfd7f089..5b754a8a 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go +++ b/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go @@ -1,4 +1,4 @@ -package baiducloudcert +package baiducloudcert import ( "context" diff --git a/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go b/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go index fcdaa7cd..cdf1e8df 100644 --- a/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go +++ b/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go @@ -1,4 +1,4 @@ -package baishancdn +package baishancdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn_test.go b/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn_test.go index 5534a232..8e3a16b8 100644 --- a/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn_test.go +++ b/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn_test.go @@ -1,4 +1,4 @@ -package baishancdn_test +package baishancdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go b/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go index 655429be..f6f7aa19 100644 --- a/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go +++ b/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go @@ -1,4 +1,4 @@ -package baotapanelconsole +package baotapanelconsole import ( "context" diff --git a/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console_test.go b/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console_test.go index a10afb37..5f3845e4 100644 --- a/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console_test.go +++ b/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console_test.go @@ -1,4 +1,4 @@ -package baotapanelconsole_test +package baotapanelconsole_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go index 4423394e..bd806a95 100644 --- a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go +++ b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go @@ -1,4 +1,4 @@ -package baotapanelsite +package baotapanelsite import ( "context" diff --git a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go index f36605fe..5fece978 100644 --- a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go +++ b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site_test.go @@ -1,4 +1,4 @@ -package baotapanelsite_test +package baotapanelsite_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go index cee7c191..f60b7db8 100644 --- a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go +++ b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go @@ -1,4 +1,4 @@ -package bunnycdn +package bunnycdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn_test.go b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn_test.go index e958e244..83fbb0f6 100644 --- a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn_test.go +++ b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn_test.go @@ -1,4 +1,4 @@ -package bunnycdn_test +package bunnycdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go index e7cba491..8ffe1236 100644 --- a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go +++ b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go @@ -1,4 +1,4 @@ -package bytepluscdn +package bytepluscdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn_test.go b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn_test.go index ee09e8ee..34e657cb 100644 --- a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn_test.go +++ b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn_test.go @@ -1,4 +1,4 @@ -package bytepluscdn_test +package bytepluscdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/cachefly/cachefly.go b/internal/pkg/core/deployer/providers/cachefly/cachefly.go index d5433453..ff10166a 100644 --- a/internal/pkg/core/deployer/providers/cachefly/cachefly.go +++ b/internal/pkg/core/deployer/providers/cachefly/cachefly.go @@ -1,4 +1,4 @@ -package cachefly +package cachefly import ( "context" diff --git a/internal/pkg/core/deployer/providers/cachefly/cachefly_test.go b/internal/pkg/core/deployer/providers/cachefly/cachefly_test.go index 1de6047e..802d8b49 100644 --- a/internal/pkg/core/deployer/providers/cachefly/cachefly_test.go +++ b/internal/pkg/core/deployer/providers/cachefly/cachefly_test.go @@ -1,4 +1,4 @@ -package cachefly_test +package cachefly_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go b/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go index 8a8efa86..3c5f2b72 100644 --- a/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go +++ b/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go @@ -1,4 +1,4 @@ -package cdnfly +package cdnfly import ( "context" diff --git a/internal/pkg/core/deployer/providers/cdnfly/cdnfly_test.go b/internal/pkg/core/deployer/providers/cdnfly/cdnfly_test.go index fd17df9c..5356e023 100644 --- a/internal/pkg/core/deployer/providers/cdnfly/cdnfly_test.go +++ b/internal/pkg/core/deployer/providers/cdnfly/cdnfly_test.go @@ -1,4 +1,4 @@ -package cdnfly_test +package cdnfly_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/cdnfly/consts.go b/internal/pkg/core/deployer/providers/cdnfly/consts.go index 3f6c6db0..07d896b8 100644 --- a/internal/pkg/core/deployer/providers/cdnfly/consts.go +++ b/internal/pkg/core/deployer/providers/cdnfly/consts.go @@ -1,4 +1,4 @@ -package cdnfly +package cdnfly type ResourceType string diff --git a/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go b/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go index cab362d2..aba4e697 100644 --- a/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go +++ b/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go @@ -1,4 +1,4 @@ -package dogecloudcdn +package dogecloudcdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn_test.go b/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn_test.go index f9c1e7c9..b2484b0b 100644 --- a/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn_test.go +++ b/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn_test.go @@ -1,4 +1,4 @@ -package dogecloudcdn_test +package dogecloudcdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go b/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go index caaf6b08..8a02e6fc 100644 --- a/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go +++ b/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go @@ -1,4 +1,4 @@ -package edgioapplications +package edgioapplications import ( "context" diff --git a/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications_test.go b/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications_test.go index bd05b16c..23f9c56e 100644 --- a/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications_test.go +++ b/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications_test.go @@ -1,4 +1,4 @@ -package edgioapplications_test +package edgioapplications_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go b/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go index 820c8e71..ee921de9 100644 --- a/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go +++ b/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go @@ -1,4 +1,4 @@ -package gcorecdn +package gcorecdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn_test.go b/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn_test.go index 34d4a9d6..808d724d 100644 --- a/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn_test.go +++ b/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn_test.go @@ -1,4 +1,4 @@ -package gcorecdn_test +package gcorecdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go index 9955db61..ce07f9ee 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go @@ -1,4 +1,4 @@ -package huaweicloudcdn +package huaweicloudcdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn_test.go b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn_test.go index aaf8d6c7..cb4ab1a4 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn_test.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn_test.go @@ -1,4 +1,4 @@ -package huaweicloudcdn_test +package huaweicloudcdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/huaweicloud-elb/consts.go b/internal/pkg/core/deployer/providers/huaweicloud-elb/consts.go index b097a958..ecd3987d 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-elb/consts.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-elb/consts.go @@ -1,4 +1,4 @@ -package huaweicloudelb +package huaweicloudelb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go index 551688b5..6cdb63d1 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go @@ -1,4 +1,4 @@ -package huaweicloudelb +package huaweicloudelb import ( "context" diff --git a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb_test.go b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb_test.go index 4325ba40..42fee652 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb_test.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb_test.go @@ -1,4 +1,4 @@ -package huaweicloudelb_test +package huaweicloudelb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go b/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go index 1e6a61c9..a514eb20 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go @@ -1,4 +1,4 @@ -package huaweicloudscm +package huaweicloudscm import ( "context" diff --git a/internal/pkg/core/deployer/providers/huaweicloud-waf/consts.go b/internal/pkg/core/deployer/providers/huaweicloud-waf/consts.go index fc574c32..8f1b59c4 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-waf/consts.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-waf/consts.go @@ -1,4 +1,4 @@ -package huaweicloudwaf +package huaweicloudwaf type ResourceType string diff --git a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go index 8dc03144..1d1d3164 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go @@ -1,4 +1,4 @@ -package huaweicloudwaf +package huaweicloudwaf import ( "context" diff --git a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf_test.go b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf_test.go index 83142325..4f6b5654 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf_test.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf_test.go @@ -1,4 +1,4 @@ -package huaweicloudwaf_test +package huaweicloudwaf_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/jdcloud-alb/consts.go b/internal/pkg/core/deployer/providers/jdcloud-alb/consts.go index 13525c20..de6e4ef0 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-alb/consts.go +++ b/internal/pkg/core/deployer/providers/jdcloud-alb/consts.go @@ -1,4 +1,4 @@ -package jdcloudalb +package jdcloudalb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go index 7d11333d..5541c779 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go +++ b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go @@ -1,4 +1,4 @@ -package jdcloudalb +package jdcloudalb import ( "context" diff --git a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb_test.go b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb_test.go index 9c9cc9cc..b6c063e2 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb_test.go +++ b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb_test.go @@ -1,4 +1,4 @@ -package jdcloudalb_test +package jdcloudalb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go b/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go index e8367ba4..767153b7 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go +++ b/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go @@ -1,4 +1,4 @@ -package jdcloudcdn +package jdcloudcdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn_test.go b/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn_test.go index 2d2f7ed0..1bed5d15 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn_test.go +++ b/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn_test.go @@ -1,4 +1,4 @@ -package jdcloudcdn_test +package jdcloudcdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go b/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go index db936f25..3c9d3dc7 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go +++ b/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go @@ -1,4 +1,4 @@ -package jdcloudlive +package jdcloudlive import ( "context" diff --git a/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live_test.go b/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live_test.go index 076202b5..d544690d 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live_test.go +++ b/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live_test.go @@ -1,4 +1,4 @@ -package jdcloudlive_test +package jdcloudlive_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go index cfd94f86..54e8fd63 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go +++ b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go @@ -1,4 +1,4 @@ -package jdcloudvod +package jdcloudvod import ( "context" diff --git a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod_test.go b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod_test.go index 6046982b..b8c38b1d 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod_test.go +++ b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod_test.go @@ -1,4 +1,4 @@ -package jdcloudvod_test +package jdcloudvod_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go b/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go index d43a8c79..e01062a6 100644 --- a/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go +++ b/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go @@ -1,4 +1,4 @@ -package k8ssecret +package k8ssecret import ( "context" diff --git a/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret_test.go b/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret_test.go index 75f15502..90bdf4ab 100644 --- a/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret_test.go +++ b/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret_test.go @@ -1,4 +1,4 @@ -package k8ssecret_test +package k8ssecret_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/local/defines.go b/internal/pkg/core/deployer/providers/local/defines.go index 5b3118d8..2021f1ea 100644 --- a/internal/pkg/core/deployer/providers/local/defines.go +++ b/internal/pkg/core/deployer/providers/local/defines.go @@ -1,4 +1,4 @@ -package local +package local type OutputFormatType string diff --git a/internal/pkg/core/deployer/providers/local/local.go b/internal/pkg/core/deployer/providers/local/local.go index 4b970c0d..c4e2b115 100644 --- a/internal/pkg/core/deployer/providers/local/local.go +++ b/internal/pkg/core/deployer/providers/local/local.go @@ -1,4 +1,4 @@ -package local +package local import ( "bytes" diff --git a/internal/pkg/core/deployer/providers/local/local_test.go b/internal/pkg/core/deployer/providers/local/local_test.go index e86ba7e0..4225864b 100644 --- a/internal/pkg/core/deployer/providers/local/local_test.go +++ b/internal/pkg/core/deployer/providers/local/local_test.go @@ -1,4 +1,4 @@ -package local_test +package local_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go b/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go index ecb1268d..5ee74597 100644 --- a/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go +++ b/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go @@ -1,4 +1,4 @@ -package qiniucdn +package qiniucdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn_test.go b/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn_test.go index fffbfca5..51c1201c 100644 --- a/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn_test.go +++ b/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn_test.go @@ -1,4 +1,4 @@ -package qiniucdn_test +package qiniucdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go b/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go index 803af2f6..d739c858 100644 --- a/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go +++ b/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go @@ -1,4 +1,4 @@ -package qiniupili +package qiniupili import ( "context" diff --git a/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili_test.go b/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili_test.go index 73e69855..1c165e0e 100644 --- a/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili_test.go +++ b/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili_test.go @@ -1,4 +1,4 @@ -package qiniupili_test +package qiniupili_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go b/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go index 219bbb48..226b6010 100644 --- a/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go +++ b/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go @@ -1,4 +1,4 @@ -package rainyunrcdn +package rainyunrcdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn_test.go b/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn_test.go index 7c3e90f7..fd81bffa 100644 --- a/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn_test.go +++ b/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn_test.go @@ -1,4 +1,4 @@ -package rainyunrcdn_test +package rainyunrcdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/safeline/consts.go b/internal/pkg/core/deployer/providers/safeline/consts.go index a19e3866..1777a32e 100644 --- a/internal/pkg/core/deployer/providers/safeline/consts.go +++ b/internal/pkg/core/deployer/providers/safeline/consts.go @@ -1,4 +1,4 @@ -package safeline +package safeline type ResourceType string diff --git a/internal/pkg/core/deployer/providers/safeline/safeline.go b/internal/pkg/core/deployer/providers/safeline/safeline.go index 95efbd36..83e6a649 100644 --- a/internal/pkg/core/deployer/providers/safeline/safeline.go +++ b/internal/pkg/core/deployer/providers/safeline/safeline.go @@ -1,4 +1,4 @@ -package safeline +package safeline import ( "context" diff --git a/internal/pkg/core/deployer/providers/safeline/safeline_test.go b/internal/pkg/core/deployer/providers/safeline/safeline_test.go index 42c6313f..b3bac993 100644 --- a/internal/pkg/core/deployer/providers/safeline/safeline_test.go +++ b/internal/pkg/core/deployer/providers/safeline/safeline_test.go @@ -1,4 +1,4 @@ -package safeline_test +package safeline_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/ssh/defines.go b/internal/pkg/core/deployer/providers/ssh/defines.go index 6f30871b..de1b255f 100644 --- a/internal/pkg/core/deployer/providers/ssh/defines.go +++ b/internal/pkg/core/deployer/providers/ssh/defines.go @@ -1,4 +1,4 @@ -package ssh +package ssh type OutputFormatType string diff --git a/internal/pkg/core/deployer/providers/ssh/ssh.go b/internal/pkg/core/deployer/providers/ssh/ssh.go index 179fe7b9..a26eb05e 100644 --- a/internal/pkg/core/deployer/providers/ssh/ssh.go +++ b/internal/pkg/core/deployer/providers/ssh/ssh.go @@ -1,4 +1,4 @@ -package ssh +package ssh import ( "bytes" diff --git a/internal/pkg/core/deployer/providers/ssh/ssh_test.go b/internal/pkg/core/deployer/providers/ssh/ssh_test.go index 8312d680..b63471d1 100644 --- a/internal/pkg/core/deployer/providers/ssh/ssh_test.go +++ b/internal/pkg/core/deployer/providers/ssh/ssh_test.go @@ -1,4 +1,4 @@ -package ssh_test +package ssh_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go b/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go index 97bc72f7..d6aa5bde 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go @@ -1,4 +1,4 @@ -package tencentcloudcdn +package tencentcloudcdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn_test.go b/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn_test.go index 0361e17b..95285930 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn_test.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn_test.go @@ -1,4 +1,4 @@ -package tencentcloudcdn_test +package tencentcloudcdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-clb/consts.go b/internal/pkg/core/deployer/providers/tencentcloud-clb/consts.go index 7d72d5d3..2728e730 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-clb/consts.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-clb/consts.go @@ -1,4 +1,4 @@ -package tencentcloudclb +package tencentcloudclb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go index 459c03ce..24357e5f 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go @@ -1,4 +1,4 @@ -package tencentcloudclb +package tencentcloudclb import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb_test.go b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb_test.go index 0aeb1e7c..59cd9b8d 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb_test.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb_test.go @@ -1,4 +1,4 @@ -package tencentcloudclb_test +package tencentcloudclb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go b/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go index 182206f9..58513712 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go @@ -1,4 +1,4 @@ -package tencentcloudcos +package tencentcloudcos import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos_test.go b/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos_test.go index ab29a893..24e41d47 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos_test.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos_test.go @@ -1,4 +1,4 @@ -package tencentcloudcos_test +package tencentcloudcos_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go b/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go index 172d2071..d35f7b3c 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go @@ -1,4 +1,4 @@ -package tencentcloudcss +package tencentcloudcss import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css_test.go b/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css_test.go index 92127b3b..4aaa344a 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css_test.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css_test.go @@ -1,4 +1,4 @@ -package tencentcloudcss_test +package tencentcloudcss_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go b/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go index e5ba3db4..43896e77 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go @@ -1,4 +1,4 @@ -package tencentcloudecdn +package tencentcloudecdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn_test.go b/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn_test.go index da03a7ab..1cffd10d 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn_test.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn_test.go @@ -1,4 +1,4 @@ -package tencentcloudecdn_test +package tencentcloudecdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go b/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go index 4ebedc82..ec1dc86d 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go @@ -1,4 +1,4 @@ -package tencentcloudeo +package tencentcloudeo import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo_test.go b/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo_test.go index 8e5b70fe..81c3b9da 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo_test.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo_test.go @@ -1,4 +1,4 @@ -package tencentcloudeo_test +package tencentcloudeo_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go b/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go index c1ad150a..d9eb8080 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go @@ -1,4 +1,4 @@ -package tencentcloudscf +package tencentcloudscf import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf_test.go b/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf_test.go index 84a1ad79..f0aa0cfe 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf_test.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf_test.go @@ -1,4 +1,4 @@ -package tencentcloudscf_test +package tencentcloudscf_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go b/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go index e91eb7f5..0f2a0d29 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go @@ -1,4 +1,4 @@ -package tencentcloudssldeploy +package tencentcloudssldeploy import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go b/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go index 68ff24da..0378f567 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go @@ -1,4 +1,4 @@ -package tencentcloudssl +package tencentcloudssl import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go b/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go index 3b9fc5dc..f9374b7d 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go @@ -1,4 +1,4 @@ -package tencentcloudvod +package tencentcloudvod import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod_test.go b/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod_test.go index ffd085cd..52382808 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod_test.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod_test.go @@ -1,4 +1,4 @@ -package tencentcloudvod_test +package tencentcloudvod_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go b/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go index f3aba6fb..015f693a 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go @@ -1,4 +1,4 @@ -package tencentcloudwaf +package tencentcloudwaf import ( "context" diff --git a/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf_test.go b/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf_test.go index 42ba1ffe..8cb63b7d 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf_test.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf_test.go @@ -1,4 +1,4 @@ -package tencentcloudwaf_test +package tencentcloudwaf_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go b/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go index 737d70c2..10552363 100644 --- a/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go +++ b/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go @@ -1,4 +1,4 @@ -package uclouducdn +package uclouducdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn_test.go b/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn_test.go index fc952da1..f49a026a 100644 --- a/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn_test.go +++ b/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn_test.go @@ -1,4 +1,4 @@ -package uclouducdn_test +package uclouducdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go b/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go index d51e893b..cd5db4b3 100644 --- a/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go +++ b/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go @@ -1,4 +1,4 @@ -package ucloudus3 +package ucloudus3 import ( "context" diff --git a/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3_test.go b/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3_test.go index 52f78664..9977ee42 100644 --- a/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3_test.go +++ b/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3_test.go @@ -1,4 +1,4 @@ -package ucloudus3_test +package ucloudus3_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go b/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go index d43e3c15..d2487204 100644 --- a/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go +++ b/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go @@ -1,4 +1,4 @@ -package upyuncdn +package upyuncdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn_test.go b/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn_test.go index 7e9e16ff..9fd32fd4 100644 --- a/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn_test.go +++ b/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn_test.go @@ -1,4 +1,4 @@ -package upyuncdn_test +package upyuncdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-alb/consts.go b/internal/pkg/core/deployer/providers/volcengine-alb/consts.go index aba1182c..11944379 100644 --- a/internal/pkg/core/deployer/providers/volcengine-alb/consts.go +++ b/internal/pkg/core/deployer/providers/volcengine-alb/consts.go @@ -1,4 +1,4 @@ -package volcenginealb +package volcenginealb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go index 93f36ec5..28017d20 100644 --- a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go +++ b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go @@ -1,4 +1,4 @@ -package volcenginealb +package volcenginealb import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb_test.go b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb_test.go index 23a79200..18999397 100644 --- a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb_test.go +++ b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb_test.go @@ -1,4 +1,4 @@ -package volcenginealb_test +package volcenginealb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go index cd88f400..20ecbfdb 100644 --- a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go +++ b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go @@ -1,4 +1,4 @@ -package volcenginecdn +package volcenginecdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn_test.go b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn_test.go index c94b9828..1535deae 100644 --- a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn_test.go +++ b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn_test.go @@ -1,4 +1,4 @@ -package volcenginecdn_test +package volcenginecdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go b/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go index c1ed456a..5a889f99 100644 --- a/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go +++ b/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go @@ -1,4 +1,4 @@ -package volcenginecertcenter +package volcenginecertcenter import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-clb/consts.go b/internal/pkg/core/deployer/providers/volcengine-clb/consts.go index 4d9ab1e3..3dc0f557 100644 --- a/internal/pkg/core/deployer/providers/volcengine-clb/consts.go +++ b/internal/pkg/core/deployer/providers/volcengine-clb/consts.go @@ -1,4 +1,4 @@ -package volcengineclb +package volcengineclb type ResourceType string diff --git a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go index f22b415e..4a389a6a 100644 --- a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go +++ b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go @@ -1,4 +1,4 @@ -package volcengineclb +package volcengineclb import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb_test.go b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb_test.go index 9e9e63e2..fb78eba5 100644 --- a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb_test.go +++ b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb_test.go @@ -1,4 +1,4 @@ -package volcengineclb_test +package volcengineclb_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go b/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go index 7779c02b..4b1eda7a 100644 --- a/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go +++ b/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go @@ -1,4 +1,4 @@ -package volcenginedcdn +package volcenginedcdn import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn_test.go b/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn_test.go index 1d34a295..27bd02ce 100644 --- a/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn_test.go +++ b/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn_test.go @@ -1,4 +1,4 @@ -package volcenginedcdn_test +package volcenginedcdn_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go b/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go index b1e1cfc2..7de39b6d 100644 --- a/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go +++ b/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go @@ -1,4 +1,4 @@ -package volcengineimagex +package volcengineimagex import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex_test.go b/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex_test.go index f2acb8f2..32a43555 100644 --- a/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex_test.go +++ b/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex_test.go @@ -1,4 +1,4 @@ -package volcengineimagex_test +package volcengineimagex_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go index 7f01b6f8..cd75bed9 100644 --- a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go +++ b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go @@ -1,4 +1,4 @@ -package volcenginelive +package volcenginelive import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live_test.go b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live_test.go index 2222e7b9..57891eea 100644 --- a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live_test.go +++ b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live_test.go @@ -1,4 +1,4 @@ -package volcenginelive_test +package volcenginelive_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go b/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go index 8e619ba0..9b7f6d08 100644 --- a/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go +++ b/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go @@ -1,4 +1,4 @@ -package volcenginetos +package volcenginetos import ( "context" diff --git a/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos_test.go b/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos_test.go index 0c9b398a..8dc1cf3d 100644 --- a/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos_test.go +++ b/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos_test.go @@ -1,4 +1,4 @@ -package volcenginetos_test +package volcenginetos_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go index 6b09bf5e..582c76a0 100644 --- a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go +++ b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go @@ -1,4 +1,4 @@ -package wangsucdnpro +package wangsucdnpro import ( "bytes" diff --git a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro_test.go b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro_test.go index 2a868fab..51018fe4 100644 --- a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro_test.go +++ b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro_test.go @@ -1,4 +1,4 @@ -package wangsucdnpro_test +package wangsucdnpro_test import ( "context" diff --git a/internal/pkg/core/deployer/providers/webhook/webhook_test.go b/internal/pkg/core/deployer/providers/webhook/webhook_test.go index a31ef913..0bd670b3 100644 --- a/internal/pkg/core/deployer/providers/webhook/webhook_test.go +++ b/internal/pkg/core/deployer/providers/webhook/webhook_test.go @@ -1,4 +1,4 @@ -package webhook_test +package webhook_test import ( "context" diff --git a/internal/pkg/core/notifier/providers/bark/bark.go b/internal/pkg/core/notifier/providers/bark/bark.go index a6833ae1..c25ae3f9 100644 --- a/internal/pkg/core/notifier/providers/bark/bark.go +++ b/internal/pkg/core/notifier/providers/bark/bark.go @@ -1,4 +1,4 @@ -package bark +package bark import ( "context" diff --git a/internal/pkg/core/notifier/providers/bark/bark_test.go b/internal/pkg/core/notifier/providers/bark/bark_test.go index bd0441b4..f90448a9 100644 --- a/internal/pkg/core/notifier/providers/bark/bark_test.go +++ b/internal/pkg/core/notifier/providers/bark/bark_test.go @@ -1,4 +1,4 @@ -package bark_test +package bark_test import ( "context" diff --git a/internal/pkg/core/notifier/providers/dingtalk/dingtalk.go b/internal/pkg/core/notifier/providers/dingtalk/dingtalk.go index f0ab4741..4f9964e9 100644 --- a/internal/pkg/core/notifier/providers/dingtalk/dingtalk.go +++ b/internal/pkg/core/notifier/providers/dingtalk/dingtalk.go @@ -1,4 +1,4 @@ -package dingtalk +package dingtalk import ( "context" diff --git a/internal/pkg/core/notifier/providers/dingtalk/dingtalk_test.go b/internal/pkg/core/notifier/providers/dingtalk/dingtalk_test.go index 836cf498..086e3a94 100644 --- a/internal/pkg/core/notifier/providers/dingtalk/dingtalk_test.go +++ b/internal/pkg/core/notifier/providers/dingtalk/dingtalk_test.go @@ -1,4 +1,4 @@ -package dingtalk_test +package dingtalk_test import ( "context" diff --git a/internal/pkg/core/notifier/providers/email/email.go b/internal/pkg/core/notifier/providers/email/email.go index ebf2d150..d16603fa 100644 --- a/internal/pkg/core/notifier/providers/email/email.go +++ b/internal/pkg/core/notifier/providers/email/email.go @@ -1,4 +1,4 @@ -package email +package email import ( "context" diff --git a/internal/pkg/core/notifier/providers/email/email_test.go b/internal/pkg/core/notifier/providers/email/email_test.go index df006c24..1828a674 100644 --- a/internal/pkg/core/notifier/providers/email/email_test.go +++ b/internal/pkg/core/notifier/providers/email/email_test.go @@ -1,4 +1,4 @@ -package email_test +package email_test import ( "context" diff --git a/internal/pkg/core/notifier/providers/lark/lark.go b/internal/pkg/core/notifier/providers/lark/lark.go index 150f4e04..09cc6444 100644 --- a/internal/pkg/core/notifier/providers/lark/lark.go +++ b/internal/pkg/core/notifier/providers/lark/lark.go @@ -1,4 +1,4 @@ -package lark +package lark import ( "context" diff --git a/internal/pkg/core/notifier/providers/lark/lark_test.go b/internal/pkg/core/notifier/providers/lark/lark_test.go index 2b04a7a6..f72ca443 100644 --- a/internal/pkg/core/notifier/providers/lark/lark_test.go +++ b/internal/pkg/core/notifier/providers/lark/lark_test.go @@ -1,4 +1,4 @@ -package lark_test +package lark_test import ( "context" diff --git a/internal/pkg/core/notifier/providers/mattermost/mattermost.go b/internal/pkg/core/notifier/providers/mattermost/mattermost.go index 24890794..c6ed748d 100644 --- a/internal/pkg/core/notifier/providers/mattermost/mattermost.go +++ b/internal/pkg/core/notifier/providers/mattermost/mattermost.go @@ -4,11 +4,12 @@ import ( "bytes" "context" "encoding/json" - "github.com/nikoksr/notify/service/mattermost" - "github.com/usual2970/certimate/internal/pkg/core/notifier" "io" "log/slog" "net/http" + + "github.com/nikoksr/notify/service/mattermost" + "github.com/usual2970/certimate/internal/pkg/core/notifier" ) type NotifierConfig struct { diff --git a/internal/pkg/core/notifier/providers/serverchan/serverchan.go b/internal/pkg/core/notifier/providers/serverchan/serverchan.go index ac4d9fe6..9cf45431 100644 --- a/internal/pkg/core/notifier/providers/serverchan/serverchan.go +++ b/internal/pkg/core/notifier/providers/serverchan/serverchan.go @@ -1,4 +1,4 @@ -package serverchan +package serverchan import ( "context" diff --git a/internal/pkg/core/notifier/providers/serverchan/serverchan_test.go b/internal/pkg/core/notifier/providers/serverchan/serverchan_test.go index 6f9c61a3..991b4050 100644 --- a/internal/pkg/core/notifier/providers/serverchan/serverchan_test.go +++ b/internal/pkg/core/notifier/providers/serverchan/serverchan_test.go @@ -1,4 +1,4 @@ -package serverchan_test +package serverchan_test import ( "context" diff --git a/internal/pkg/core/notifier/providers/telegram/telegram.go b/internal/pkg/core/notifier/providers/telegram/telegram.go index c3a2e973..631369e6 100644 --- a/internal/pkg/core/notifier/providers/telegram/telegram.go +++ b/internal/pkg/core/notifier/providers/telegram/telegram.go @@ -1,4 +1,4 @@ -package telegram +package telegram import ( "context" diff --git a/internal/pkg/core/notifier/providers/telegram/telegram_test.go b/internal/pkg/core/notifier/providers/telegram/telegram_test.go index 10e93547..8a83fa4b 100644 --- a/internal/pkg/core/notifier/providers/telegram/telegram_test.go +++ b/internal/pkg/core/notifier/providers/telegram/telegram_test.go @@ -1,4 +1,4 @@ -package telegram_test +package telegram_test import ( "context" diff --git a/internal/pkg/core/notifier/providers/webhook/webhook.go b/internal/pkg/core/notifier/providers/webhook/webhook.go index e11e5487..f2dfb4b6 100644 --- a/internal/pkg/core/notifier/providers/webhook/webhook.go +++ b/internal/pkg/core/notifier/providers/webhook/webhook.go @@ -1,4 +1,4 @@ -package webhook +package webhook import ( "context" diff --git a/internal/pkg/core/notifier/providers/webhook/webhook_test.go b/internal/pkg/core/notifier/providers/webhook/webhook_test.go index 8210358b..ffe25593 100644 --- a/internal/pkg/core/notifier/providers/webhook/webhook_test.go +++ b/internal/pkg/core/notifier/providers/webhook/webhook_test.go @@ -1,4 +1,4 @@ -package webhook_test +package webhook_test import ( "context" diff --git a/internal/pkg/core/notifier/providers/wecom/wecom.go b/internal/pkg/core/notifier/providers/wecom/wecom.go index ef76e97f..413f0d8d 100644 --- a/internal/pkg/core/notifier/providers/wecom/wecom.go +++ b/internal/pkg/core/notifier/providers/wecom/wecom.go @@ -1,4 +1,4 @@ -package serverchan +package serverchan import ( "context" diff --git a/internal/pkg/core/notifier/providers/wecom/wecom_test.go b/internal/pkg/core/notifier/providers/wecom/wecom_test.go index b823adea..01646121 100644 --- a/internal/pkg/core/notifier/providers/wecom/wecom_test.go +++ b/internal/pkg/core/notifier/providers/wecom/wecom_test.go @@ -1,4 +1,4 @@ -package serverchan_test +package serverchan_test import ( "context" diff --git a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go index 644acb0f..d8fe51e0 100644 --- a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go +++ b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go @@ -1,4 +1,4 @@ -package onepanelssl +package onepanelssl import ( "context" diff --git a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl_test.go b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl_test.go index 5f146dd1..257030f5 100644 --- a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl_test.go +++ b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl_test.go @@ -1,4 +1,4 @@ -package onepanelssl_test +package onepanelssl_test import ( "context" diff --git a/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go b/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go index e689826b..3ed18447 100644 --- a/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go +++ b/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go @@ -1,4 +1,4 @@ -package aliyuncas +package aliyuncas import ( "context" diff --git a/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go b/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go index 87f8e289..f9e0131d 100644 --- a/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go +++ b/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go @@ -1,4 +1,4 @@ -package aliyunslb +package aliyunslb import ( "context" diff --git a/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go b/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go index 433117a9..ccc3b152 100644 --- a/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go +++ b/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go @@ -1,4 +1,4 @@ -package awsacm +package awsacm import ( "context" diff --git a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go index 701d682b..a0a24b3c 100644 --- a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go +++ b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go @@ -1,4 +1,4 @@ -package azurekeyvault +package azurekeyvault import ( "context" diff --git a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault_test.go b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault_test.go index 8ef63a80..492f7e5c 100644 --- a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault_test.go +++ b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault_test.go @@ -1,4 +1,4 @@ -package azurekeyvault_test +package azurekeyvault_test import ( "context" diff --git a/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go b/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go index 6637c196..9e4776dc 100644 --- a/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go +++ b/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go @@ -1,4 +1,4 @@ -package baiducloudcert +package baiducloudcert import ( "context" diff --git a/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert_test.go b/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert_test.go index 55de1576..80b2a7ca 100644 --- a/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert_test.go +++ b/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert_test.go @@ -1,4 +1,4 @@ -package baiducloudcert_test +package baiducloudcert_test import ( "context" diff --git a/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go b/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go index 65cf8787..78364908 100644 --- a/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go +++ b/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go @@ -1,4 +1,4 @@ -package dogecloud +package dogecloud import ( "context" diff --git a/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go b/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go index 6e252853..c941e9aa 100644 --- a/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go +++ b/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go @@ -1,4 +1,4 @@ -package gcorecdn +package gcorecdn import ( "context" diff --git a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go index 5e632da7..217b1d4c 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go @@ -1,4 +1,4 @@ -package huaweicloudelb +package huaweicloudelb import ( "context" diff --git a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go index 61cb75a3..d2f72a3b 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go @@ -1,4 +1,4 @@ -package huaweicloudscm +package huaweicloudscm import ( "context" diff --git a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go index 236cd113..3bd1fb31 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go @@ -1,4 +1,4 @@ -package huaweicloudwaf +package huaweicloudwaf import ( "context" diff --git a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go index 14378cde..c9389273 100644 --- a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go +++ b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go @@ -1,4 +1,4 @@ -package jdcloudssl +package jdcloudssl import ( "context" diff --git a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl_test.go b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl_test.go index ec02ce49..273310e0 100644 --- a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl_test.go +++ b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl_test.go @@ -1,4 +1,4 @@ -package jdcloudssl_test +package jdcloudssl_test import ( "context" diff --git a/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go b/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go index 0999ac93..594c8fd7 100644 --- a/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go +++ b/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go @@ -1,4 +1,4 @@ -package qiniusslcert +package qiniusslcert import ( "context" diff --git a/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter_test.go b/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter_test.go index 41619401..e6f801a1 100644 --- a/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter_test.go +++ b/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter_test.go @@ -1,4 +1,4 @@ -package rainyunsslcenter_test +package rainyunsslcenter_test import ( "context" diff --git a/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go b/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go index 25b3e112..a117607b 100644 --- a/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go +++ b/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go @@ -1,4 +1,4 @@ -package tencentcloudssl +package tencentcloudssl import ( "context" diff --git a/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl_test.go b/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl_test.go index b6324fd5..b459e005 100644 --- a/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl_test.go +++ b/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl_test.go @@ -1,4 +1,4 @@ -package ucloudussl_test +package ucloudussl_test import ( "context" diff --git a/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go b/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go index 5f3760bb..10eb5dbf 100644 --- a/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go +++ b/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go @@ -1,4 +1,4 @@ -package upyunssl +package upyunssl import ( "context" diff --git a/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl_test.go b/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl_test.go index 1e6d81ec..baf53d74 100644 --- a/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl_test.go +++ b/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl_test.go @@ -1,4 +1,4 @@ -package upyunssl_test +package upyunssl_test import ( "context" diff --git a/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter_test.go b/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter_test.go index 5c312707..1cfa15fe 100644 --- a/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter_test.go +++ b/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter_test.go @@ -1,4 +1,4 @@ -package volcenginecertcenter_test +package volcenginecertcenter_test import ( "context" diff --git a/internal/pkg/core/uploader/uploader.go b/internal/pkg/core/uploader/uploader.go index 902baa3b..34d2813a 100644 --- a/internal/pkg/core/uploader/uploader.go +++ b/internal/pkg/core/uploader/uploader.go @@ -1,4 +1,4 @@ -package uploader +package uploader import ( "context" diff --git a/internal/pkg/logging/handler.go b/internal/pkg/logging/handler.go index 36174b45..7cdacdd7 100644 --- a/internal/pkg/logging/handler.go +++ b/internal/pkg/logging/handler.go @@ -1,4 +1,4 @@ -package logging +package logging import ( "context" diff --git a/internal/pkg/logging/level.go b/internal/pkg/logging/level.go index 2af1c2f4..1aefe84d 100644 --- a/internal/pkg/logging/level.go +++ b/internal/pkg/logging/level.go @@ -1,4 +1,4 @@ -package logging +package logging import "log/slog" diff --git a/internal/pkg/logging/record.go b/internal/pkg/logging/record.go index 9980489b..38208535 100644 --- a/internal/pkg/logging/record.go +++ b/internal/pkg/logging/record.go @@ -1,4 +1,4 @@ -package logging +package logging import ( "time" diff --git a/internal/pkg/sdk3rd/azure/common/config.go b/internal/pkg/sdk3rd/azure/common/config.go index eca082f9..45a1e490 100644 --- a/internal/pkg/sdk3rd/azure/common/config.go +++ b/internal/pkg/sdk3rd/azure/common/config.go @@ -1,4 +1,4 @@ -package common +package common import ( "fmt" diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_body.go index 1175cde9..37d0457d 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_body.go @@ -5,29 +5,30 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) + type CreateRecordBodyTypeEnum string // List of Type const ( - CreateRecordBodyTypeEnumA CreateRecordBodyTypeEnum = "A" - CreateRecordBodyTypeEnumAaaa CreateRecordBodyTypeEnum = "AAAA" - CreateRecordBodyTypeEnumCaa CreateRecordBodyTypeEnum = "CAA" - CreateRecordBodyTypeEnumCmauth CreateRecordBodyTypeEnum = "CMAUTH" - CreateRecordBodyTypeEnumCname CreateRecordBodyTypeEnum = "CNAME" - CreateRecordBodyTypeEnumMx CreateRecordBodyTypeEnum = "MX" - CreateRecordBodyTypeEnumNs CreateRecordBodyTypeEnum = "NS" - CreateRecordBodyTypeEnumPtr CreateRecordBodyTypeEnum = "PTR" - CreateRecordBodyTypeEnumRp CreateRecordBodyTypeEnum = "RP" - CreateRecordBodyTypeEnumSpf CreateRecordBodyTypeEnum = "SPF" - CreateRecordBodyTypeEnumSrv CreateRecordBodyTypeEnum = "SRV" - CreateRecordBodyTypeEnumTxt CreateRecordBodyTypeEnum = "TXT" - CreateRecordBodyTypeEnumUrl CreateRecordBodyTypeEnum = "URL" + CreateRecordBodyTypeEnumA CreateRecordBodyTypeEnum = "A" + CreateRecordBodyTypeEnumAaaa CreateRecordBodyTypeEnum = "AAAA" + CreateRecordBodyTypeEnumCaa CreateRecordBodyTypeEnum = "CAA" + CreateRecordBodyTypeEnumCmauth CreateRecordBodyTypeEnum = "CMAUTH" + CreateRecordBodyTypeEnumCname CreateRecordBodyTypeEnum = "CNAME" + CreateRecordBodyTypeEnumMx CreateRecordBodyTypeEnum = "MX" + CreateRecordBodyTypeEnumNs CreateRecordBodyTypeEnum = "NS" + CreateRecordBodyTypeEnumPtr CreateRecordBodyTypeEnum = "PTR" + CreateRecordBodyTypeEnumRp CreateRecordBodyTypeEnum = "RP" + CreateRecordBodyTypeEnumSpf CreateRecordBodyTypeEnum = "SPF" + CreateRecordBodyTypeEnumSrv CreateRecordBodyTypeEnum = "SRV" + CreateRecordBodyTypeEnumTxt CreateRecordBodyTypeEnum = "TXT" + CreateRecordBodyTypeEnumUrl CreateRecordBodyTypeEnum = "URL" ) type CreateRecordBody struct { - position.Body + position.Body // 主机头 Rr string `json:"rr"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_body.go index 3db9f0f7..896d7dc3 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_body.go @@ -5,26 +5,27 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) + type CreateRecordOpenapiBodyTypeEnum string // List of Type const ( - CreateRecordOpenapiBodyTypeEnumA CreateRecordOpenapiBodyTypeEnum = "A" - CreateRecordOpenapiBodyTypeEnumAaaa CreateRecordOpenapiBodyTypeEnum = "AAAA" - CreateRecordOpenapiBodyTypeEnumCname CreateRecordOpenapiBodyTypeEnum = "CNAME" - CreateRecordOpenapiBodyTypeEnumMx CreateRecordOpenapiBodyTypeEnum = "MX" - CreateRecordOpenapiBodyTypeEnumTxt CreateRecordOpenapiBodyTypeEnum = "TXT" - CreateRecordOpenapiBodyTypeEnumNs CreateRecordOpenapiBodyTypeEnum = "NS" - CreateRecordOpenapiBodyTypeEnumSpf CreateRecordOpenapiBodyTypeEnum = "SPF" - CreateRecordOpenapiBodyTypeEnumSrv CreateRecordOpenapiBodyTypeEnum = "SRV" - CreateRecordOpenapiBodyTypeEnumCaa CreateRecordOpenapiBodyTypeEnum = "CAA" - CreateRecordOpenapiBodyTypeEnumCmauth CreateRecordOpenapiBodyTypeEnum = "CMAUTH" + CreateRecordOpenapiBodyTypeEnumA CreateRecordOpenapiBodyTypeEnum = "A" + CreateRecordOpenapiBodyTypeEnumAaaa CreateRecordOpenapiBodyTypeEnum = "AAAA" + CreateRecordOpenapiBodyTypeEnumCname CreateRecordOpenapiBodyTypeEnum = "CNAME" + CreateRecordOpenapiBodyTypeEnumMx CreateRecordOpenapiBodyTypeEnum = "MX" + CreateRecordOpenapiBodyTypeEnumTxt CreateRecordOpenapiBodyTypeEnum = "TXT" + CreateRecordOpenapiBodyTypeEnumNs CreateRecordOpenapiBodyTypeEnum = "NS" + CreateRecordOpenapiBodyTypeEnumSpf CreateRecordOpenapiBodyTypeEnum = "SPF" + CreateRecordOpenapiBodyTypeEnumSrv CreateRecordOpenapiBodyTypeEnum = "SRV" + CreateRecordOpenapiBodyTypeEnumCaa CreateRecordOpenapiBodyTypeEnum = "CAA" + CreateRecordOpenapiBodyTypeEnumCmauth CreateRecordOpenapiBodyTypeEnum = "CMAUTH" ) type CreateRecordOpenapiBody struct { - position.Body + position.Body // 主机头 Rr string `json:"rr"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_request.go index d43fded1..888a66aa 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_request.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_request.go @@ -4,9 +4,6 @@ package model - - type CreateRecordOpenapiRequest struct { - CreateRecordOpenapiBody *CreateRecordOpenapiBody `json:"createRecordOpenapiBody,omitempty"` } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response.go index a33b47c7..01c3294f 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response.go @@ -4,19 +4,17 @@ package model - type CreateRecordOpenapiResponseStateEnum string // List of State const ( - CreateRecordOpenapiResponseStateEnumError CreateRecordOpenapiResponseStateEnum = "ERROR" - CreateRecordOpenapiResponseStateEnumException CreateRecordOpenapiResponseStateEnum = "EXCEPTION" - CreateRecordOpenapiResponseStateEnumForbidden CreateRecordOpenapiResponseStateEnum = "FORBIDDEN" - CreateRecordOpenapiResponseStateEnumOk CreateRecordOpenapiResponseStateEnum = "OK" + CreateRecordOpenapiResponseStateEnumError CreateRecordOpenapiResponseStateEnum = "ERROR" + CreateRecordOpenapiResponseStateEnumException CreateRecordOpenapiResponseStateEnum = "EXCEPTION" + CreateRecordOpenapiResponseStateEnumForbidden CreateRecordOpenapiResponseStateEnum = "FORBIDDEN" + CreateRecordOpenapiResponseStateEnumOk CreateRecordOpenapiResponseStateEnum = "OK" ) type CreateRecordOpenapiResponse struct { - RequestId string `json:"requestId,omitempty"` ErrorMessage string `json:"errorMessage,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_body.go index e7c62769..5bbdb75e 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_body.go @@ -4,32 +4,31 @@ package model - type CreateRecordOpenapiResponseBodyTypeEnum string // List of Type const ( - CreateRecordOpenapiResponseBodyTypeEnumA CreateRecordOpenapiResponseBodyTypeEnum = "A" - CreateRecordOpenapiResponseBodyTypeEnumAaaa CreateRecordOpenapiResponseBodyTypeEnum = "AAAA" - CreateRecordOpenapiResponseBodyTypeEnumCname CreateRecordOpenapiResponseBodyTypeEnum = "CNAME" - CreateRecordOpenapiResponseBodyTypeEnumMx CreateRecordOpenapiResponseBodyTypeEnum = "MX" - CreateRecordOpenapiResponseBodyTypeEnumTxt CreateRecordOpenapiResponseBodyTypeEnum = "TXT" - CreateRecordOpenapiResponseBodyTypeEnumNs CreateRecordOpenapiResponseBodyTypeEnum = "NS" - CreateRecordOpenapiResponseBodyTypeEnumSpf CreateRecordOpenapiResponseBodyTypeEnum = "SPF" - CreateRecordOpenapiResponseBodyTypeEnumSrv CreateRecordOpenapiResponseBodyTypeEnum = "SRV" - CreateRecordOpenapiResponseBodyTypeEnumCaa CreateRecordOpenapiResponseBodyTypeEnum = "CAA" - CreateRecordOpenapiResponseBodyTypeEnumCmauth CreateRecordOpenapiResponseBodyTypeEnum = "CMAUTH" + CreateRecordOpenapiResponseBodyTypeEnumA CreateRecordOpenapiResponseBodyTypeEnum = "A" + CreateRecordOpenapiResponseBodyTypeEnumAaaa CreateRecordOpenapiResponseBodyTypeEnum = "AAAA" + CreateRecordOpenapiResponseBodyTypeEnumCname CreateRecordOpenapiResponseBodyTypeEnum = "CNAME" + CreateRecordOpenapiResponseBodyTypeEnumMx CreateRecordOpenapiResponseBodyTypeEnum = "MX" + CreateRecordOpenapiResponseBodyTypeEnumTxt CreateRecordOpenapiResponseBodyTypeEnum = "TXT" + CreateRecordOpenapiResponseBodyTypeEnumNs CreateRecordOpenapiResponseBodyTypeEnum = "NS" + CreateRecordOpenapiResponseBodyTypeEnumSpf CreateRecordOpenapiResponseBodyTypeEnum = "SPF" + CreateRecordOpenapiResponseBodyTypeEnumSrv CreateRecordOpenapiResponseBodyTypeEnum = "SRV" + CreateRecordOpenapiResponseBodyTypeEnumCaa CreateRecordOpenapiResponseBodyTypeEnum = "CAA" + CreateRecordOpenapiResponseBodyTypeEnumCmauth CreateRecordOpenapiResponseBodyTypeEnum = "CMAUTH" ) + type CreateRecordOpenapiResponseBodyStateEnum string // List of State const ( - CreateRecordOpenapiResponseBodyStateEnumDisabled CreateRecordOpenapiResponseBodyStateEnum = "DISABLED" - CreateRecordOpenapiResponseBodyStateEnumEnabled CreateRecordOpenapiResponseBodyStateEnum = "ENABLED" + CreateRecordOpenapiResponseBodyStateEnumDisabled CreateRecordOpenapiResponseBodyStateEnum = "DISABLED" + CreateRecordOpenapiResponseBodyStateEnumEnabled CreateRecordOpenapiResponseBodyStateEnum = "ENABLED" ) type CreateRecordOpenapiResponseBody struct { - // 主机头 Rr string `json:"rr,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_tags.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_tags.go index a4bda62c..6cc5a35b 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_tags.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_openapi_response_tags.go @@ -4,10 +4,7 @@ package model - - type CreateRecordOpenapiResponseTags struct { - // 标签ID TagId string `json:"tagId,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_request.go index 715f03ff..d73c37b2 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_request.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_request.go @@ -4,9 +4,6 @@ package model - - type CreateRecordRequest struct { - CreateRecordBody *CreateRecordBody `json:"createRecordBody,omitempty"` } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response.go index bd277c0c..017f02b1 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response.go @@ -4,19 +4,17 @@ package model - type CreateRecordResponseStateEnum string // List of State const ( - CreateRecordResponseStateEnumError CreateRecordResponseStateEnum = "ERROR" - CreateRecordResponseStateEnumException CreateRecordResponseStateEnum = "EXCEPTION" - CreateRecordResponseStateEnumForbidden CreateRecordResponseStateEnum = "FORBIDDEN" - CreateRecordResponseStateEnumOk CreateRecordResponseStateEnum = "OK" + CreateRecordResponseStateEnumError CreateRecordResponseStateEnum = "ERROR" + CreateRecordResponseStateEnumException CreateRecordResponseStateEnum = "EXCEPTION" + CreateRecordResponseStateEnumForbidden CreateRecordResponseStateEnum = "FORBIDDEN" + CreateRecordResponseStateEnumOk CreateRecordResponseStateEnum = "OK" ) type CreateRecordResponse struct { - RequestId string `json:"requestId,omitempty"` ErrorMessage string `json:"errorMessage,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_body.go index 64660b91..8e604bd4 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_body.go @@ -4,43 +4,43 @@ package model - type CreateRecordResponseBodyTypeEnum string // List of Type const ( - CreateRecordResponseBodyTypeEnumA CreateRecordResponseBodyTypeEnum = "A" - CreateRecordResponseBodyTypeEnumAaaa CreateRecordResponseBodyTypeEnum = "AAAA" - CreateRecordResponseBodyTypeEnumCaa CreateRecordResponseBodyTypeEnum = "CAA" - CreateRecordResponseBodyTypeEnumCmauth CreateRecordResponseBodyTypeEnum = "CMAUTH" - CreateRecordResponseBodyTypeEnumCname CreateRecordResponseBodyTypeEnum = "CNAME" - CreateRecordResponseBodyTypeEnumMx CreateRecordResponseBodyTypeEnum = "MX" - CreateRecordResponseBodyTypeEnumNs CreateRecordResponseBodyTypeEnum = "NS" - CreateRecordResponseBodyTypeEnumPtr CreateRecordResponseBodyTypeEnum = "PTR" - CreateRecordResponseBodyTypeEnumRp CreateRecordResponseBodyTypeEnum = "RP" - CreateRecordResponseBodyTypeEnumSpf CreateRecordResponseBodyTypeEnum = "SPF" - CreateRecordResponseBodyTypeEnumSrv CreateRecordResponseBodyTypeEnum = "SRV" - CreateRecordResponseBodyTypeEnumTxt CreateRecordResponseBodyTypeEnum = "TXT" - CreateRecordResponseBodyTypeEnumUrl CreateRecordResponseBodyTypeEnum = "URL" + CreateRecordResponseBodyTypeEnumA CreateRecordResponseBodyTypeEnum = "A" + CreateRecordResponseBodyTypeEnumAaaa CreateRecordResponseBodyTypeEnum = "AAAA" + CreateRecordResponseBodyTypeEnumCaa CreateRecordResponseBodyTypeEnum = "CAA" + CreateRecordResponseBodyTypeEnumCmauth CreateRecordResponseBodyTypeEnum = "CMAUTH" + CreateRecordResponseBodyTypeEnumCname CreateRecordResponseBodyTypeEnum = "CNAME" + CreateRecordResponseBodyTypeEnumMx CreateRecordResponseBodyTypeEnum = "MX" + CreateRecordResponseBodyTypeEnumNs CreateRecordResponseBodyTypeEnum = "NS" + CreateRecordResponseBodyTypeEnumPtr CreateRecordResponseBodyTypeEnum = "PTR" + CreateRecordResponseBodyTypeEnumRp CreateRecordResponseBodyTypeEnum = "RP" + CreateRecordResponseBodyTypeEnumSpf CreateRecordResponseBodyTypeEnum = "SPF" + CreateRecordResponseBodyTypeEnumSrv CreateRecordResponseBodyTypeEnum = "SRV" + CreateRecordResponseBodyTypeEnumTxt CreateRecordResponseBodyTypeEnum = "TXT" + CreateRecordResponseBodyTypeEnumUrl CreateRecordResponseBodyTypeEnum = "URL" ) + type CreateRecordResponseBodyTimedStatusEnum string // List of TimedStatus const ( - CreateRecordResponseBodyTimedStatusEnumDisabled CreateRecordResponseBodyTimedStatusEnum = "DISABLED" - CreateRecordResponseBodyTimedStatusEnumEnabled CreateRecordResponseBodyTimedStatusEnum = "ENABLED" - CreateRecordResponseBodyTimedStatusEnumTimed CreateRecordResponseBodyTimedStatusEnum = "TIMED" + CreateRecordResponseBodyTimedStatusEnumDisabled CreateRecordResponseBodyTimedStatusEnum = "DISABLED" + CreateRecordResponseBodyTimedStatusEnumEnabled CreateRecordResponseBodyTimedStatusEnum = "ENABLED" + CreateRecordResponseBodyTimedStatusEnumTimed CreateRecordResponseBodyTimedStatusEnum = "TIMED" ) + type CreateRecordResponseBodyStateEnum string // List of State const ( - CreateRecordResponseBodyStateEnumDisabled CreateRecordResponseBodyStateEnum = "DISABLED" - CreateRecordResponseBodyStateEnumEnabled CreateRecordResponseBodyStateEnum = "ENABLED" + CreateRecordResponseBodyStateEnumDisabled CreateRecordResponseBodyStateEnum = "DISABLED" + CreateRecordResponseBodyStateEnumEnabled CreateRecordResponseBodyStateEnum = "ENABLED" ) type CreateRecordResponseBody struct { - // 主机头 Rr string `json:"rr,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_tags.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_tags.go index 003680d5..d225dfaf 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_tags.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/create_record_response_tags.go @@ -4,10 +4,7 @@ package model - - type CreateRecordResponseTags struct { - // 标签ID TagId string `json:"tagId,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_body.go index 326b9abb..86974b24 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_body.go @@ -5,11 +5,11 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) type DeleteRecordBody struct { - position.Body + position.Body // 解析记录ID列表 RecordIdList []string `json:"recordIdList"` } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_body.go index e5614ac5..220b5929 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_body.go @@ -5,11 +5,11 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) type DeleteRecordOpenapiBody struct { - position.Body + position.Body // 待删除的解析记录ID请求体 RecordIdList []string `json:"recordIdList"` } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_request.go index 1cb684d6..33e89735 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_request.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_request.go @@ -4,9 +4,6 @@ package model - - type DeleteRecordOpenapiRequest struct { - DeleteRecordOpenapiBody *DeleteRecordOpenapiBody `json:"deleteRecordOpenapiBody,omitempty"` } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response.go index ca528148..469afa87 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response.go @@ -4,19 +4,17 @@ package model - type DeleteRecordOpenapiResponseStateEnum string // List of State const ( - DeleteRecordOpenapiResponseStateEnumError DeleteRecordOpenapiResponseStateEnum = "ERROR" - DeleteRecordOpenapiResponseStateEnumException DeleteRecordOpenapiResponseStateEnum = "EXCEPTION" - DeleteRecordOpenapiResponseStateEnumForbidden DeleteRecordOpenapiResponseStateEnum = "FORBIDDEN" - DeleteRecordOpenapiResponseStateEnumOk DeleteRecordOpenapiResponseStateEnum = "OK" + DeleteRecordOpenapiResponseStateEnumError DeleteRecordOpenapiResponseStateEnum = "ERROR" + DeleteRecordOpenapiResponseStateEnumException DeleteRecordOpenapiResponseStateEnum = "EXCEPTION" + DeleteRecordOpenapiResponseStateEnumForbidden DeleteRecordOpenapiResponseStateEnum = "FORBIDDEN" + DeleteRecordOpenapiResponseStateEnumOk DeleteRecordOpenapiResponseStateEnum = "OK" ) type DeleteRecordOpenapiResponse struct { - RequestId string `json:"requestId,omitempty"` ErrorMessage string `json:"errorMessage,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response_body.go index 67da3ab7..fb985000 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_openapi_response_body.go @@ -4,17 +4,15 @@ package model - type DeleteRecordOpenapiResponseBodyCodeEnum string // List of Code const ( - DeleteRecordOpenapiResponseBodyCodeEnumError DeleteRecordOpenapiResponseBodyCodeEnum = "ERROR" - DeleteRecordOpenapiResponseBodyCodeEnumSuccess DeleteRecordOpenapiResponseBodyCodeEnum = "SUCCESS" + DeleteRecordOpenapiResponseBodyCodeEnumError DeleteRecordOpenapiResponseBodyCodeEnum = "ERROR" + DeleteRecordOpenapiResponseBodyCodeEnumSuccess DeleteRecordOpenapiResponseBodyCodeEnum = "SUCCESS" ) type DeleteRecordOpenapiResponseBody struct { - // 结果说明 Msg string `json:"msg,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_request.go index 678fd8ef..93af08f4 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_request.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_request.go @@ -4,9 +4,6 @@ package model - - type DeleteRecordRequest struct { - DeleteRecordBody *DeleteRecordBody `json:"deleteRecordBody,omitempty"` } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response.go index 051d7105..7c14860d 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response.go @@ -4,19 +4,17 @@ package model - type DeleteRecordResponseStateEnum string // List of State const ( - DeleteRecordResponseStateEnumError DeleteRecordResponseStateEnum = "ERROR" - DeleteRecordResponseStateEnumException DeleteRecordResponseStateEnum = "EXCEPTION" - DeleteRecordResponseStateEnumForbidden DeleteRecordResponseStateEnum = "FORBIDDEN" - DeleteRecordResponseStateEnumOk DeleteRecordResponseStateEnum = "OK" + DeleteRecordResponseStateEnumError DeleteRecordResponseStateEnum = "ERROR" + DeleteRecordResponseStateEnumException DeleteRecordResponseStateEnum = "EXCEPTION" + DeleteRecordResponseStateEnumForbidden DeleteRecordResponseStateEnum = "FORBIDDEN" + DeleteRecordResponseStateEnumOk DeleteRecordResponseStateEnum = "OK" ) type DeleteRecordResponse struct { - RequestId string `json:"requestId,omitempty"` ErrorMessage string `json:"errorMessage,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response_body.go index 45320290..40bf0af8 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/delete_record_response_body.go @@ -4,17 +4,15 @@ package model - type DeleteRecordResponseBodyCodeEnum string // List of Code const ( - DeleteRecordResponseBodyCodeEnumError DeleteRecordResponseBodyCodeEnum = "ERROR" - DeleteRecordResponseBodyCodeEnumSuccess DeleteRecordResponseBodyCodeEnum = "SUCCESS" + DeleteRecordResponseBodyCodeEnumError DeleteRecordResponseBodyCodeEnum = "ERROR" + DeleteRecordResponseBodyCodeEnumSuccess DeleteRecordResponseBodyCodeEnum = "SUCCESS" ) type DeleteRecordResponseBody struct { - // 结果说明 Msg string `json:"msg,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_body.go index 5eadce7a..5509937c 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_body.go @@ -5,11 +5,11 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) type ListRecordBody struct { - position.Body + position.Body // 域名 DomainName string `json:"domainName"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_body.go index 63f5e13a..f33462ea 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_body.go @@ -5,11 +5,11 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) type ListRecordOpenapiBody struct { - position.Body + position.Body // 域名 DomainName string `json:"domainName"` } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_query.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_query.go index ee89a7f5..5e2a9162 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_query.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_query.go @@ -5,11 +5,11 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) type ListRecordOpenapiQuery struct { - position.Query + position.Query // 页大小 PageSize *int32 `json:"pageSize,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_request.go index 34540481..107e6b1f 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_request.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_request.go @@ -4,10 +4,7 @@ package model - - type ListRecordOpenapiRequest struct { - ListRecordOpenapiQuery *ListRecordOpenapiQuery `json:"listRecordOpenapiQuery,omitempty"` ListRecordOpenapiBody *ListRecordOpenapiBody `json:"listRecordOpenapiBody,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response.go index 36646938..a752b1b4 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response.go @@ -4,19 +4,17 @@ package model - type ListRecordOpenapiResponseStateEnum string // List of State const ( - ListRecordOpenapiResponseStateEnumError ListRecordOpenapiResponseStateEnum = "ERROR" - ListRecordOpenapiResponseStateEnumException ListRecordOpenapiResponseStateEnum = "EXCEPTION" - ListRecordOpenapiResponseStateEnumForbidden ListRecordOpenapiResponseStateEnum = "FORBIDDEN" - ListRecordOpenapiResponseStateEnumOk ListRecordOpenapiResponseStateEnum = "OK" + ListRecordOpenapiResponseStateEnumError ListRecordOpenapiResponseStateEnum = "ERROR" + ListRecordOpenapiResponseStateEnumException ListRecordOpenapiResponseStateEnum = "EXCEPTION" + ListRecordOpenapiResponseStateEnumForbidden ListRecordOpenapiResponseStateEnum = "FORBIDDEN" + ListRecordOpenapiResponseStateEnumOk ListRecordOpenapiResponseStateEnum = "OK" ) type ListRecordOpenapiResponse struct { - RequestId string `json:"requestId,omitempty"` ErrorMessage string `json:"errorMessage,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_body.go index 8c6f7302..e37fdbe4 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_body.go @@ -4,10 +4,7 @@ package model - - type ListRecordOpenapiResponseBody struct { - // 当前页的具体数据列表 Data *[]ListRecordOpenapiResponseData `json:"data,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_data.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_data.go index 19981aa9..2594d14c 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_data.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_data.go @@ -4,40 +4,40 @@ package model - type ListRecordOpenapiResponseDataTypeEnum string // List of Type const ( - ListRecordOpenapiResponseDataTypeEnumA ListRecordOpenapiResponseDataTypeEnum = "A" - ListRecordOpenapiResponseDataTypeEnumAaaa ListRecordOpenapiResponseDataTypeEnum = "AAAA" - ListRecordOpenapiResponseDataTypeEnumCname ListRecordOpenapiResponseDataTypeEnum = "CNAME" - ListRecordOpenapiResponseDataTypeEnumMx ListRecordOpenapiResponseDataTypeEnum = "MX" - ListRecordOpenapiResponseDataTypeEnumTxt ListRecordOpenapiResponseDataTypeEnum = "TXT" - ListRecordOpenapiResponseDataTypeEnumNs ListRecordOpenapiResponseDataTypeEnum = "NS" - ListRecordOpenapiResponseDataTypeEnumSpf ListRecordOpenapiResponseDataTypeEnum = "SPF" - ListRecordOpenapiResponseDataTypeEnumSrv ListRecordOpenapiResponseDataTypeEnum = "SRV" - ListRecordOpenapiResponseDataTypeEnumCaa ListRecordOpenapiResponseDataTypeEnum = "CAA" - ListRecordOpenapiResponseDataTypeEnumCmauth ListRecordOpenapiResponseDataTypeEnum = "CMAUTH" + ListRecordOpenapiResponseDataTypeEnumA ListRecordOpenapiResponseDataTypeEnum = "A" + ListRecordOpenapiResponseDataTypeEnumAaaa ListRecordOpenapiResponseDataTypeEnum = "AAAA" + ListRecordOpenapiResponseDataTypeEnumCname ListRecordOpenapiResponseDataTypeEnum = "CNAME" + ListRecordOpenapiResponseDataTypeEnumMx ListRecordOpenapiResponseDataTypeEnum = "MX" + ListRecordOpenapiResponseDataTypeEnumTxt ListRecordOpenapiResponseDataTypeEnum = "TXT" + ListRecordOpenapiResponseDataTypeEnumNs ListRecordOpenapiResponseDataTypeEnum = "NS" + ListRecordOpenapiResponseDataTypeEnumSpf ListRecordOpenapiResponseDataTypeEnum = "SPF" + ListRecordOpenapiResponseDataTypeEnumSrv ListRecordOpenapiResponseDataTypeEnum = "SRV" + ListRecordOpenapiResponseDataTypeEnumCaa ListRecordOpenapiResponseDataTypeEnum = "CAA" + ListRecordOpenapiResponseDataTypeEnumCmauth ListRecordOpenapiResponseDataTypeEnum = "CMAUTH" ) + type ListRecordOpenapiResponseDataTimedStatusEnum string // List of TimedStatus const ( - ListRecordOpenapiResponseDataTimedStatusEnumDisabled ListRecordOpenapiResponseDataTimedStatusEnum = "DISABLED" - ListRecordOpenapiResponseDataTimedStatusEnumEnabled ListRecordOpenapiResponseDataTimedStatusEnum = "ENABLED" - ListRecordOpenapiResponseDataTimedStatusEnumTimed ListRecordOpenapiResponseDataTimedStatusEnum = "TIMED" + ListRecordOpenapiResponseDataTimedStatusEnumDisabled ListRecordOpenapiResponseDataTimedStatusEnum = "DISABLED" + ListRecordOpenapiResponseDataTimedStatusEnumEnabled ListRecordOpenapiResponseDataTimedStatusEnum = "ENABLED" + ListRecordOpenapiResponseDataTimedStatusEnumTimed ListRecordOpenapiResponseDataTimedStatusEnum = "TIMED" ) + type ListRecordOpenapiResponseDataStateEnum string // List of State const ( - ListRecordOpenapiResponseDataStateEnumDisabled ListRecordOpenapiResponseDataStateEnum = "DISABLED" - ListRecordOpenapiResponseDataStateEnumEnabled ListRecordOpenapiResponseDataStateEnum = "ENABLED" + ListRecordOpenapiResponseDataStateEnumDisabled ListRecordOpenapiResponseDataStateEnum = "DISABLED" + ListRecordOpenapiResponseDataStateEnumEnabled ListRecordOpenapiResponseDataStateEnum = "ENABLED" ) type ListRecordOpenapiResponseData struct { - // 主机头 Rr string `json:"rr,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_tags.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_tags.go index 867f667f..43230238 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_tags.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_openapi_response_tags.go @@ -4,10 +4,7 @@ package model - - type ListRecordOpenapiResponseTags struct { - // 标签ID TagId string `json:"tagId,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_query.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_query.go index df871a76..dca4b67c 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_query.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_query.go @@ -5,11 +5,11 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) type ListRecordQuery struct { - position.Query + position.Query // 页大小 PageSize *int32 `json:"pageSize,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_request.go index 5ff9df08..37e9512e 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_request.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_request.go @@ -4,10 +4,7 @@ package model - - type ListRecordRequest struct { - ListRecordBody *ListRecordBody `json:"listRecordBody,omitempty"` ListRecordQuery *ListRecordQuery `json:"listRecordQuery,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response.go index b11f3d21..dde07b61 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response.go @@ -4,19 +4,17 @@ package model - type ListRecordResponseStateEnum string // List of State const ( - ListRecordResponseStateEnumError ListRecordResponseStateEnum = "ERROR" - ListRecordResponseStateEnumException ListRecordResponseStateEnum = "EXCEPTION" - ListRecordResponseStateEnumForbidden ListRecordResponseStateEnum = "FORBIDDEN" - ListRecordResponseStateEnumOk ListRecordResponseStateEnum = "OK" + ListRecordResponseStateEnumError ListRecordResponseStateEnum = "ERROR" + ListRecordResponseStateEnumException ListRecordResponseStateEnum = "EXCEPTION" + ListRecordResponseStateEnumForbidden ListRecordResponseStateEnum = "FORBIDDEN" + ListRecordResponseStateEnumOk ListRecordResponseStateEnum = "OK" ) type ListRecordResponse struct { - RequestId string `json:"requestId,omitempty"` ErrorMessage string `json:"errorMessage,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_body.go index 0acf543d..3753d1aa 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_body.go @@ -4,10 +4,7 @@ package model - - type ListRecordResponseBody struct { - // 总页数 TotalPages *int32 `json:"totalPages,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_results.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_results.go index 7498fca3..1020dd56 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_results.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/list_record_response_results.go @@ -4,43 +4,43 @@ package model - type ListRecordResponseResultsTypeEnum string // List of Type const ( - ListRecordResponseResultsTypeEnumA ListRecordResponseResultsTypeEnum = "A" - ListRecordResponseResultsTypeEnumAaaa ListRecordResponseResultsTypeEnum = "AAAA" - ListRecordResponseResultsTypeEnumCaa ListRecordResponseResultsTypeEnum = "CAA" - ListRecordResponseResultsTypeEnumCmauth ListRecordResponseResultsTypeEnum = "CMAUTH" - ListRecordResponseResultsTypeEnumCname ListRecordResponseResultsTypeEnum = "CNAME" - ListRecordResponseResultsTypeEnumMx ListRecordResponseResultsTypeEnum = "MX" - ListRecordResponseResultsTypeEnumNs ListRecordResponseResultsTypeEnum = "NS" - ListRecordResponseResultsTypeEnumPtr ListRecordResponseResultsTypeEnum = "PTR" - ListRecordResponseResultsTypeEnumRp ListRecordResponseResultsTypeEnum = "RP" - ListRecordResponseResultsTypeEnumSpf ListRecordResponseResultsTypeEnum = "SPF" - ListRecordResponseResultsTypeEnumSrv ListRecordResponseResultsTypeEnum = "SRV" - ListRecordResponseResultsTypeEnumTxt ListRecordResponseResultsTypeEnum = "TXT" - ListRecordResponseResultsTypeEnumUrl ListRecordResponseResultsTypeEnum = "URL" + ListRecordResponseResultsTypeEnumA ListRecordResponseResultsTypeEnum = "A" + ListRecordResponseResultsTypeEnumAaaa ListRecordResponseResultsTypeEnum = "AAAA" + ListRecordResponseResultsTypeEnumCaa ListRecordResponseResultsTypeEnum = "CAA" + ListRecordResponseResultsTypeEnumCmauth ListRecordResponseResultsTypeEnum = "CMAUTH" + ListRecordResponseResultsTypeEnumCname ListRecordResponseResultsTypeEnum = "CNAME" + ListRecordResponseResultsTypeEnumMx ListRecordResponseResultsTypeEnum = "MX" + ListRecordResponseResultsTypeEnumNs ListRecordResponseResultsTypeEnum = "NS" + ListRecordResponseResultsTypeEnumPtr ListRecordResponseResultsTypeEnum = "PTR" + ListRecordResponseResultsTypeEnumRp ListRecordResponseResultsTypeEnum = "RP" + ListRecordResponseResultsTypeEnumSpf ListRecordResponseResultsTypeEnum = "SPF" + ListRecordResponseResultsTypeEnumSrv ListRecordResponseResultsTypeEnum = "SRV" + ListRecordResponseResultsTypeEnumTxt ListRecordResponseResultsTypeEnum = "TXT" + ListRecordResponseResultsTypeEnumUrl ListRecordResponseResultsTypeEnum = "URL" ) + type ListRecordResponseResultsTimedStatusEnum string // List of TimedStatus const ( - ListRecordResponseResultsTimedStatusEnumDisabled ListRecordResponseResultsTimedStatusEnum = "DISABLED" - ListRecordResponseResultsTimedStatusEnumEnabled ListRecordResponseResultsTimedStatusEnum = "ENABLED" - ListRecordResponseResultsTimedStatusEnumTimed ListRecordResponseResultsTimedStatusEnum = "TIMED" + ListRecordResponseResultsTimedStatusEnumDisabled ListRecordResponseResultsTimedStatusEnum = "DISABLED" + ListRecordResponseResultsTimedStatusEnumEnabled ListRecordResponseResultsTimedStatusEnum = "ENABLED" + ListRecordResponseResultsTimedStatusEnumTimed ListRecordResponseResultsTimedStatusEnum = "TIMED" ) + type ListRecordResponseResultsStateEnum string // List of State const ( - ListRecordResponseResultsStateEnumDisabled ListRecordResponseResultsStateEnum = "DISABLED" - ListRecordResponseResultsStateEnumEnabled ListRecordResponseResultsStateEnum = "ENABLED" + ListRecordResponseResultsStateEnumDisabled ListRecordResponseResultsStateEnum = "DISABLED" + ListRecordResponseResultsStateEnumEnabled ListRecordResponseResultsStateEnum = "ENABLED" ) type ListRecordResponseResults struct { - // 主机头 Rr string `json:"rr,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_body.go index ab772c09..7db497b4 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_body.go @@ -5,29 +5,30 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) + type ModifyRecordBodyTypeEnum string // List of Type const ( - ModifyRecordBodyTypeEnumA ModifyRecordBodyTypeEnum = "A" - ModifyRecordBodyTypeEnumAaaa ModifyRecordBodyTypeEnum = "AAAA" - ModifyRecordBodyTypeEnumCaa ModifyRecordBodyTypeEnum = "CAA" - ModifyRecordBodyTypeEnumCmauth ModifyRecordBodyTypeEnum = "CMAUTH" - ModifyRecordBodyTypeEnumCname ModifyRecordBodyTypeEnum = "CNAME" - ModifyRecordBodyTypeEnumMx ModifyRecordBodyTypeEnum = "MX" - ModifyRecordBodyTypeEnumNs ModifyRecordBodyTypeEnum = "NS" - ModifyRecordBodyTypeEnumPtr ModifyRecordBodyTypeEnum = "PTR" - ModifyRecordBodyTypeEnumRp ModifyRecordBodyTypeEnum = "RP" - ModifyRecordBodyTypeEnumSpf ModifyRecordBodyTypeEnum = "SPF" - ModifyRecordBodyTypeEnumSrv ModifyRecordBodyTypeEnum = "SRV" - ModifyRecordBodyTypeEnumTxt ModifyRecordBodyTypeEnum = "TXT" - ModifyRecordBodyTypeEnumUrl ModifyRecordBodyTypeEnum = "URL" + ModifyRecordBodyTypeEnumA ModifyRecordBodyTypeEnum = "A" + ModifyRecordBodyTypeEnumAaaa ModifyRecordBodyTypeEnum = "AAAA" + ModifyRecordBodyTypeEnumCaa ModifyRecordBodyTypeEnum = "CAA" + ModifyRecordBodyTypeEnumCmauth ModifyRecordBodyTypeEnum = "CMAUTH" + ModifyRecordBodyTypeEnumCname ModifyRecordBodyTypeEnum = "CNAME" + ModifyRecordBodyTypeEnumMx ModifyRecordBodyTypeEnum = "MX" + ModifyRecordBodyTypeEnumNs ModifyRecordBodyTypeEnum = "NS" + ModifyRecordBodyTypeEnumPtr ModifyRecordBodyTypeEnum = "PTR" + ModifyRecordBodyTypeEnumRp ModifyRecordBodyTypeEnum = "RP" + ModifyRecordBodyTypeEnumSpf ModifyRecordBodyTypeEnum = "SPF" + ModifyRecordBodyTypeEnumSrv ModifyRecordBodyTypeEnum = "SRV" + ModifyRecordBodyTypeEnumTxt ModifyRecordBodyTypeEnum = "TXT" + ModifyRecordBodyTypeEnumUrl ModifyRecordBodyTypeEnum = "URL" ) type ModifyRecordBody struct { - position.Body + position.Body // 解析记录ID RecordId string `json:"recordId"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_body.go index 3bde8919..e7ef4cff 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_body.go @@ -5,26 +5,27 @@ package model import ( - "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" + "gitlab.ecloud.com/ecloud/ecloudsdkcore/position" ) + type ModifyRecordOpenapiBodyTypeEnum string // List of Type const ( - ModifyRecordOpenapiBodyTypeEnumA ModifyRecordOpenapiBodyTypeEnum = "A" - ModifyRecordOpenapiBodyTypeEnumAaaa ModifyRecordOpenapiBodyTypeEnum = "AAAA" - ModifyRecordOpenapiBodyTypeEnumCname ModifyRecordOpenapiBodyTypeEnum = "CNAME" - ModifyRecordOpenapiBodyTypeEnumMx ModifyRecordOpenapiBodyTypeEnum = "MX" - ModifyRecordOpenapiBodyTypeEnumTxt ModifyRecordOpenapiBodyTypeEnum = "TXT" - ModifyRecordOpenapiBodyTypeEnumNs ModifyRecordOpenapiBodyTypeEnum = "NS" - ModifyRecordOpenapiBodyTypeEnumSpf ModifyRecordOpenapiBodyTypeEnum = "SPF" - ModifyRecordOpenapiBodyTypeEnumSrv ModifyRecordOpenapiBodyTypeEnum = "SRV" - ModifyRecordOpenapiBodyTypeEnumCaa ModifyRecordOpenapiBodyTypeEnum = "CAA" - ModifyRecordOpenapiBodyTypeEnumCmauth ModifyRecordOpenapiBodyTypeEnum = "CMAUTH" + ModifyRecordOpenapiBodyTypeEnumA ModifyRecordOpenapiBodyTypeEnum = "A" + ModifyRecordOpenapiBodyTypeEnumAaaa ModifyRecordOpenapiBodyTypeEnum = "AAAA" + ModifyRecordOpenapiBodyTypeEnumCname ModifyRecordOpenapiBodyTypeEnum = "CNAME" + ModifyRecordOpenapiBodyTypeEnumMx ModifyRecordOpenapiBodyTypeEnum = "MX" + ModifyRecordOpenapiBodyTypeEnumTxt ModifyRecordOpenapiBodyTypeEnum = "TXT" + ModifyRecordOpenapiBodyTypeEnumNs ModifyRecordOpenapiBodyTypeEnum = "NS" + ModifyRecordOpenapiBodyTypeEnumSpf ModifyRecordOpenapiBodyTypeEnum = "SPF" + ModifyRecordOpenapiBodyTypeEnumSrv ModifyRecordOpenapiBodyTypeEnum = "SRV" + ModifyRecordOpenapiBodyTypeEnumCaa ModifyRecordOpenapiBodyTypeEnum = "CAA" + ModifyRecordOpenapiBodyTypeEnumCmauth ModifyRecordOpenapiBodyTypeEnum = "CMAUTH" ) type ModifyRecordOpenapiBody struct { - position.Body + position.Body // 解析记录ID RecordId string `json:"recordId"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_request.go index fd1ffe00..ee118695 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_request.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_request.go @@ -4,9 +4,6 @@ package model - - type ModifyRecordOpenapiRequest struct { - ModifyRecordOpenapiBody *ModifyRecordOpenapiBody `json:"modifyRecordOpenapiBody,omitempty"` } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response.go index 97d7552f..1c248f9c 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response.go @@ -4,19 +4,17 @@ package model - type ModifyRecordOpenapiResponseStateEnum string // List of State const ( - ModifyRecordOpenapiResponseStateEnumError ModifyRecordOpenapiResponseStateEnum = "ERROR" - ModifyRecordOpenapiResponseStateEnumException ModifyRecordOpenapiResponseStateEnum = "EXCEPTION" - ModifyRecordOpenapiResponseStateEnumForbidden ModifyRecordOpenapiResponseStateEnum = "FORBIDDEN" - ModifyRecordOpenapiResponseStateEnumOk ModifyRecordOpenapiResponseStateEnum = "OK" + ModifyRecordOpenapiResponseStateEnumError ModifyRecordOpenapiResponseStateEnum = "ERROR" + ModifyRecordOpenapiResponseStateEnumException ModifyRecordOpenapiResponseStateEnum = "EXCEPTION" + ModifyRecordOpenapiResponseStateEnumForbidden ModifyRecordOpenapiResponseStateEnum = "FORBIDDEN" + ModifyRecordOpenapiResponseStateEnumOk ModifyRecordOpenapiResponseStateEnum = "OK" ) type ModifyRecordOpenapiResponse struct { - RequestId string `json:"requestId,omitempty"` ErrorMessage string `json:"errorMessage,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_body.go index 6dfcec71..0ba12f70 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_body.go @@ -4,40 +4,40 @@ package model - type ModifyRecordOpenapiResponseBodyTypeEnum string // List of Type const ( - ModifyRecordOpenapiResponseBodyTypeEnumA ModifyRecordOpenapiResponseBodyTypeEnum = "A" - ModifyRecordOpenapiResponseBodyTypeEnumAaaa ModifyRecordOpenapiResponseBodyTypeEnum = "AAAA" - ModifyRecordOpenapiResponseBodyTypeEnumCname ModifyRecordOpenapiResponseBodyTypeEnum = "CNAME" - ModifyRecordOpenapiResponseBodyTypeEnumMx ModifyRecordOpenapiResponseBodyTypeEnum = "MX" - ModifyRecordOpenapiResponseBodyTypeEnumTxt ModifyRecordOpenapiResponseBodyTypeEnum = "TXT" - ModifyRecordOpenapiResponseBodyTypeEnumNs ModifyRecordOpenapiResponseBodyTypeEnum = "NS" - ModifyRecordOpenapiResponseBodyTypeEnumSpf ModifyRecordOpenapiResponseBodyTypeEnum = "SPF" - ModifyRecordOpenapiResponseBodyTypeEnumSrv ModifyRecordOpenapiResponseBodyTypeEnum = "SRV" - ModifyRecordOpenapiResponseBodyTypeEnumCaa ModifyRecordOpenapiResponseBodyTypeEnum = "CAA" - ModifyRecordOpenapiResponseBodyTypeEnumCmauth ModifyRecordOpenapiResponseBodyTypeEnum = "CMAUTH" + ModifyRecordOpenapiResponseBodyTypeEnumA ModifyRecordOpenapiResponseBodyTypeEnum = "A" + ModifyRecordOpenapiResponseBodyTypeEnumAaaa ModifyRecordOpenapiResponseBodyTypeEnum = "AAAA" + ModifyRecordOpenapiResponseBodyTypeEnumCname ModifyRecordOpenapiResponseBodyTypeEnum = "CNAME" + ModifyRecordOpenapiResponseBodyTypeEnumMx ModifyRecordOpenapiResponseBodyTypeEnum = "MX" + ModifyRecordOpenapiResponseBodyTypeEnumTxt ModifyRecordOpenapiResponseBodyTypeEnum = "TXT" + ModifyRecordOpenapiResponseBodyTypeEnumNs ModifyRecordOpenapiResponseBodyTypeEnum = "NS" + ModifyRecordOpenapiResponseBodyTypeEnumSpf ModifyRecordOpenapiResponseBodyTypeEnum = "SPF" + ModifyRecordOpenapiResponseBodyTypeEnumSrv ModifyRecordOpenapiResponseBodyTypeEnum = "SRV" + ModifyRecordOpenapiResponseBodyTypeEnumCaa ModifyRecordOpenapiResponseBodyTypeEnum = "CAA" + ModifyRecordOpenapiResponseBodyTypeEnumCmauth ModifyRecordOpenapiResponseBodyTypeEnum = "CMAUTH" ) + type ModifyRecordOpenapiResponseBodyTimedStatusEnum string // List of TimedStatus const ( - ModifyRecordOpenapiResponseBodyTimedStatusEnumDisabled ModifyRecordOpenapiResponseBodyTimedStatusEnum = "DISABLED" - ModifyRecordOpenapiResponseBodyTimedStatusEnumEnabled ModifyRecordOpenapiResponseBodyTimedStatusEnum = "ENABLED" - ModifyRecordOpenapiResponseBodyTimedStatusEnumTimed ModifyRecordOpenapiResponseBodyTimedStatusEnum = "TIMED" + ModifyRecordOpenapiResponseBodyTimedStatusEnumDisabled ModifyRecordOpenapiResponseBodyTimedStatusEnum = "DISABLED" + ModifyRecordOpenapiResponseBodyTimedStatusEnumEnabled ModifyRecordOpenapiResponseBodyTimedStatusEnum = "ENABLED" + ModifyRecordOpenapiResponseBodyTimedStatusEnumTimed ModifyRecordOpenapiResponseBodyTimedStatusEnum = "TIMED" ) + type ModifyRecordOpenapiResponseBodyStateEnum string // List of State const ( - ModifyRecordOpenapiResponseBodyStateEnumDisabled ModifyRecordOpenapiResponseBodyStateEnum = "DISABLED" - ModifyRecordOpenapiResponseBodyStateEnumEnabled ModifyRecordOpenapiResponseBodyStateEnum = "ENABLED" + ModifyRecordOpenapiResponseBodyStateEnumDisabled ModifyRecordOpenapiResponseBodyStateEnum = "DISABLED" + ModifyRecordOpenapiResponseBodyStateEnumEnabled ModifyRecordOpenapiResponseBodyStateEnum = "ENABLED" ) type ModifyRecordOpenapiResponseBody struct { - // 主机头 Rr string `json:"rr,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_tags.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_tags.go index 62c2e780..f3e75774 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_tags.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_openapi_response_tags.go @@ -4,10 +4,7 @@ package model - - type ModifyRecordOpenapiResponseTags struct { - // 标签ID TagId string `json:"tagId,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_request.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_request.go index d92abb44..486f596b 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_request.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_request.go @@ -4,9 +4,6 @@ package model - - type ModifyRecordRequest struct { - ModifyRecordBody *ModifyRecordBody `json:"modifyRecordBody,omitempty"` } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response.go index 45b1ae0f..cec7d420 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response.go @@ -4,19 +4,17 @@ package model - type ModifyRecordResponseStateEnum string // List of State const ( - ModifyRecordResponseStateEnumError ModifyRecordResponseStateEnum = "ERROR" - ModifyRecordResponseStateEnumException ModifyRecordResponseStateEnum = "EXCEPTION" - ModifyRecordResponseStateEnumForbidden ModifyRecordResponseStateEnum = "FORBIDDEN" - ModifyRecordResponseStateEnumOk ModifyRecordResponseStateEnum = "OK" + ModifyRecordResponseStateEnumError ModifyRecordResponseStateEnum = "ERROR" + ModifyRecordResponseStateEnumException ModifyRecordResponseStateEnum = "EXCEPTION" + ModifyRecordResponseStateEnumForbidden ModifyRecordResponseStateEnum = "FORBIDDEN" + ModifyRecordResponseStateEnumOk ModifyRecordResponseStateEnum = "OK" ) type ModifyRecordResponse struct { - RequestId string `json:"requestId,omitempty"` ErrorMessage string `json:"errorMessage,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response_body.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response_body.go index 3df09342..eb373895 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response_body.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1/model/modify_record_response_body.go @@ -4,35 +4,34 @@ package model - type ModifyRecordResponseBodyTypeEnum string // List of Type const ( - ModifyRecordResponseBodyTypeEnumA ModifyRecordResponseBodyTypeEnum = "A" - ModifyRecordResponseBodyTypeEnumAaaa ModifyRecordResponseBodyTypeEnum = "AAAA" - ModifyRecordResponseBodyTypeEnumCaa ModifyRecordResponseBodyTypeEnum = "CAA" - ModifyRecordResponseBodyTypeEnumCmauth ModifyRecordResponseBodyTypeEnum = "CMAUTH" - ModifyRecordResponseBodyTypeEnumCname ModifyRecordResponseBodyTypeEnum = "CNAME" - ModifyRecordResponseBodyTypeEnumMx ModifyRecordResponseBodyTypeEnum = "MX" - ModifyRecordResponseBodyTypeEnumNs ModifyRecordResponseBodyTypeEnum = "NS" - ModifyRecordResponseBodyTypeEnumPtr ModifyRecordResponseBodyTypeEnum = "PTR" - ModifyRecordResponseBodyTypeEnumRp ModifyRecordResponseBodyTypeEnum = "RP" - ModifyRecordResponseBodyTypeEnumSpf ModifyRecordResponseBodyTypeEnum = "SPF" - ModifyRecordResponseBodyTypeEnumSrv ModifyRecordResponseBodyTypeEnum = "SRV" - ModifyRecordResponseBodyTypeEnumTxt ModifyRecordResponseBodyTypeEnum = "TXT" - ModifyRecordResponseBodyTypeEnumUrl ModifyRecordResponseBodyTypeEnum = "URL" + ModifyRecordResponseBodyTypeEnumA ModifyRecordResponseBodyTypeEnum = "A" + ModifyRecordResponseBodyTypeEnumAaaa ModifyRecordResponseBodyTypeEnum = "AAAA" + ModifyRecordResponseBodyTypeEnumCaa ModifyRecordResponseBodyTypeEnum = "CAA" + ModifyRecordResponseBodyTypeEnumCmauth ModifyRecordResponseBodyTypeEnum = "CMAUTH" + ModifyRecordResponseBodyTypeEnumCname ModifyRecordResponseBodyTypeEnum = "CNAME" + ModifyRecordResponseBodyTypeEnumMx ModifyRecordResponseBodyTypeEnum = "MX" + ModifyRecordResponseBodyTypeEnumNs ModifyRecordResponseBodyTypeEnum = "NS" + ModifyRecordResponseBodyTypeEnumPtr ModifyRecordResponseBodyTypeEnum = "PTR" + ModifyRecordResponseBodyTypeEnumRp ModifyRecordResponseBodyTypeEnum = "RP" + ModifyRecordResponseBodyTypeEnumSpf ModifyRecordResponseBodyTypeEnum = "SPF" + ModifyRecordResponseBodyTypeEnumSrv ModifyRecordResponseBodyTypeEnum = "SRV" + ModifyRecordResponseBodyTypeEnumTxt ModifyRecordResponseBodyTypeEnum = "TXT" + ModifyRecordResponseBodyTypeEnumUrl ModifyRecordResponseBodyTypeEnum = "URL" ) + type ModifyRecordResponseBodyStateEnum string // List of State const ( - ModifyRecordResponseBodyStateEnumDisabled ModifyRecordResponseBodyStateEnum = "DISABLED" - ModifyRecordResponseBodyStateEnumEnabled ModifyRecordResponseBodyStateEnum = "ENABLED" + ModifyRecordResponseBodyStateEnumDisabled ModifyRecordResponseBodyStateEnum = "DISABLED" + ModifyRecordResponseBodyStateEnumEnabled ModifyRecordResponseBodyStateEnum = "ENABLED" ) type ModifyRecordResponseBody struct { - // 主机头 Rr string `json:"rr,omitempty"` diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_client.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_client.go index 8f73b499..af08cfd1 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_client.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_client.go @@ -6,7 +6,6 @@ import ( "encoding/xml" "errors" "fmt" - "gitlab.ecloud.com/ecloud/ecloudsdkcore/config" "io" "io/ioutil" "mime/multipart" @@ -20,6 +19,8 @@ import ( "strings" "time" "unicode/utf8" + + "gitlab.ecloud.com/ecloud/ecloudsdkcore/config" ) var ( @@ -47,8 +48,10 @@ const ( HEADER HttpRequestPosition = "Header" ) -const SdkPortalUrl = "/op-apim-portal/apim/request/sdk" -const SdkPortalGatewayUrl = "/api/query/openapi/apim/request/sdk" +const ( + SdkPortalUrl = "/op-apim-portal/apim/request/sdk" + SdkPortalGatewayUrl = "/api/query/openapi/apim/request/sdk" +) // NewAPIClient creates a new API client. func NewAPIClient() *APIClient { @@ -199,7 +202,7 @@ func buildHttpRequest(httpRequest *HttpRequest, config *config.Config) *HttpRequ if v.Kind() == reflect.Ptr { v = v.Elem() } - var flag = false + flag := false for i := 0; i < reqType.NumField(); i++ { fieldType := reqType.Field(i) value := v.FieldByName(fieldType.Name) @@ -270,7 +273,7 @@ func structToMap(value interface{}) map[string]interface{} { } func buildCall(httpRequest *HttpRequest) (request *http.Request) { - var url = "" + url := "" if len(httpRequest.Url) > 0 { url = httpRequest.Url + SdkPortalUrl } else { @@ -284,12 +287,11 @@ func buildCall(httpRequest *HttpRequest) (request *http.Request) { func prepareRequest(path string, method string, postBody interface{}, ) (httpRequest *http.Request, err error) { - var body *bytes.Buffer // Detect postBody type and post. if postBody != nil { - var contentType = detectContentType(postBody) + contentType := detectContentType(postBody) body, err = setBody(postBody, contentType) if err != nil { return nil, err diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_response.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_response.go index 89110877..eef07f5c 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_response.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/api_response.go @@ -52,13 +52,11 @@ type APIPlatformResponseBody struct { } func NewAPIResponse(r *http.Response) *APIResponse { - response := &APIResponse{Response: r} return response } func NewAPIResponseWithError(errorMessage string) *APIResponse { - response := &APIResponse{Message: errorMessage} return response } diff --git a/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/position/http_position.go b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/position/http_position.go index 7c2eec1c..041b8e85 100644 --- a/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/position/http_position.go +++ b/internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0/position/http_position.go @@ -1,13 +1,9 @@ package position -type Body struct { -} +type Body struct{} -type Query struct { -} +type Query struct{} -type Path struct { -} +type Path struct{} -type Header struct { -} +type Header struct{} diff --git a/internal/pkg/sdk3rd/dogecloud/client.go b/internal/pkg/sdk3rd/dogecloud/client.go index dcca0b1d..965580c2 100644 --- a/internal/pkg/sdk3rd/dogecloud/client.go +++ b/internal/pkg/sdk3rd/dogecloud/client.go @@ -1,4 +1,4 @@ -package dogecloudsdk +package dogecloudsdk import ( "crypto/hmac" diff --git a/internal/pkg/sdk3rd/dogecloud/models.go b/internal/pkg/sdk3rd/dogecloud/models.go index 06507e0d..1642ad2d 100644 --- a/internal/pkg/sdk3rd/dogecloud/models.go +++ b/internal/pkg/sdk3rd/dogecloud/models.go @@ -1,4 +1,4 @@ -package dogecloudsdk +package dogecloudsdk type BaseResponse struct { Code *int `json:"code,omitempty"` diff --git a/internal/pkg/sdk3rd/gcore/common/endpoint.go b/internal/pkg/sdk3rd/gcore/common/endpoint.go index d4032da3..5e027951 100644 --- a/internal/pkg/sdk3rd/gcore/common/endpoint.go +++ b/internal/pkg/sdk3rd/gcore/common/endpoint.go @@ -1,3 +1,3 @@ -package common +package common const BASE_URL = "https://api.gcore.com" diff --git a/internal/pkg/sdk3rd/gcore/common/signer.go b/internal/pkg/sdk3rd/gcore/common/signer.go index bc66ee09..b0aff7e6 100644 --- a/internal/pkg/sdk3rd/gcore/common/signer.go +++ b/internal/pkg/sdk3rd/gcore/common/signer.go @@ -1,4 +1,4 @@ -package common +package common import ( "net/http" diff --git a/internal/pkg/sdk3rd/huaweicloud/cast.go b/internal/pkg/sdk3rd/huaweicloud/cast.go index 2abb9c87..e02a2753 100644 --- a/internal/pkg/sdk3rd/huaweicloud/cast.go +++ b/internal/pkg/sdk3rd/huaweicloud/cast.go @@ -1,4 +1,4 @@ -package huaweicloudsdk +package huaweicloudsdk func Int32Ptr(i int32) *int32 { return &i diff --git a/internal/pkg/sdk3rd/qiniu/client.go b/internal/pkg/sdk3rd/qiniu/client.go index 8f9d10e9..ece26b9a 100644 --- a/internal/pkg/sdk3rd/qiniu/client.go +++ b/internal/pkg/sdk3rd/qiniu/client.go @@ -1,4 +1,4 @@ -package qiniusdk +package qiniusdk import ( "context" diff --git a/internal/pkg/sdk3rd/qiniu/models.go b/internal/pkg/sdk3rd/qiniu/models.go index dceca028..1f643c35 100644 --- a/internal/pkg/sdk3rd/qiniu/models.go +++ b/internal/pkg/sdk3rd/qiniu/models.go @@ -1,4 +1,4 @@ -package qiniusdk +package qiniusdk type BaseResponse struct { Code *int `json:"code,omitempty"` diff --git a/internal/pkg/sdk3rd/ucloud/ufile/apis.go b/internal/pkg/sdk3rd/ucloud/ufile/apis.go index 009405fa..350b23a2 100644 --- a/internal/pkg/sdk3rd/ucloud/ufile/apis.go +++ b/internal/pkg/sdk3rd/ucloud/ufile/apis.go @@ -1,4 +1,4 @@ -package ufile +package ufile import ( "github.com/ucloud/ucloud-sdk-go/ucloud/request" diff --git a/internal/pkg/sdk3rd/ucloud/ufile/client.go b/internal/pkg/sdk3rd/ucloud/ufile/client.go index ab1f4d2e..aee06624 100644 --- a/internal/pkg/sdk3rd/ucloud/ufile/client.go +++ b/internal/pkg/sdk3rd/ucloud/ufile/client.go @@ -1,4 +1,4 @@ -package ufile +package ufile import ( "github.com/ucloud/ucloud-sdk-go/ucloud" diff --git a/internal/pkg/sdk3rd/ucloud/ussl/apis.go b/internal/pkg/sdk3rd/ucloud/ussl/apis.go index 5d0c6e32..d9ec7674 100644 --- a/internal/pkg/sdk3rd/ucloud/ussl/apis.go +++ b/internal/pkg/sdk3rd/ucloud/ussl/apis.go @@ -1,4 +1,4 @@ -package ussl +package ussl import ( "github.com/ucloud/ucloud-sdk-go/ucloud/request" diff --git a/internal/pkg/sdk3rd/ucloud/ussl/client.go b/internal/pkg/sdk3rd/ucloud/ussl/client.go index 6d92a204..95876543 100644 --- a/internal/pkg/sdk3rd/ucloud/ussl/client.go +++ b/internal/pkg/sdk3rd/ucloud/ussl/client.go @@ -1,4 +1,4 @@ -package ussl +package ussl import ( "github.com/ucloud/ucloud-sdk-go/ucloud" diff --git a/internal/pkg/sdk3rd/ucloud/ussl/models.go b/internal/pkg/sdk3rd/ucloud/ussl/models.go index 50343d9f..2826f2cb 100644 --- a/internal/pkg/sdk3rd/ucloud/ussl/models.go +++ b/internal/pkg/sdk3rd/ucloud/ussl/models.go @@ -1,4 +1,4 @@ -package ussl +package ussl type CertificateListItem struct { CertificateID int diff --git a/internal/pkg/sdk3rd/volcengine/certcenter/api_import_certificate.go b/internal/pkg/sdk3rd/volcengine/certcenter/api_import_certificate.go index ece842ed..6212508a 100644 --- a/internal/pkg/sdk3rd/volcengine/certcenter/api_import_certificate.go +++ b/internal/pkg/sdk3rd/volcengine/certcenter/api_import_certificate.go @@ -1,4 +1,4 @@ -package certcenter +package certcenter import ( "github.com/volcengine/volcengine-go-sdk/volcengine" diff --git a/internal/pkg/sdk3rd/volcengine/certcenter/interface.go b/internal/pkg/sdk3rd/volcengine/certcenter/interface.go index cebe2b73..75ba3729 100644 --- a/internal/pkg/sdk3rd/volcengine/certcenter/interface.go +++ b/internal/pkg/sdk3rd/volcengine/certcenter/interface.go @@ -1,4 +1,4 @@ -package certcenter +package certcenter import ( "github.com/volcengine/volcengine-go-sdk/volcengine" diff --git a/internal/pkg/sdk3rd/volcengine/certcenter/service.go b/internal/pkg/sdk3rd/volcengine/certcenter/service.go index 2feb8c28..494e2995 100644 --- a/internal/pkg/sdk3rd/volcengine/certcenter/service.go +++ b/internal/pkg/sdk3rd/volcengine/certcenter/service.go @@ -1,4 +1,4 @@ -package certcenter +package certcenter import ( "github.com/volcengine/volcengine-go-sdk/volcengine" diff --git a/internal/pkg/sdk3rd/wangsu/cdn/api.go b/internal/pkg/sdk3rd/wangsu/cdn/api.go index 9736f24d..0da647c8 100644 --- a/internal/pkg/sdk3rd/wangsu/cdn/api.go +++ b/internal/pkg/sdk3rd/wangsu/cdn/api.go @@ -1,4 +1,4 @@ -package cdn +package cdn import ( "fmt" diff --git a/internal/pkg/sdk3rd/wangsu/cdn/client.go b/internal/pkg/sdk3rd/wangsu/cdn/client.go index ca66559b..ac53e171 100644 --- a/internal/pkg/sdk3rd/wangsu/cdn/client.go +++ b/internal/pkg/sdk3rd/wangsu/cdn/client.go @@ -1,4 +1,4 @@ -package cdn +package cdn import ( "time" diff --git a/internal/pkg/utils/cert/common.go b/internal/pkg/utils/cert/common.go index 409233b6..08a7cea2 100644 --- a/internal/pkg/utils/cert/common.go +++ b/internal/pkg/utils/cert/common.go @@ -1,4 +1,4 @@ -package certutil +package certutil import ( "crypto/x509" diff --git a/internal/pkg/utils/cert/converter.go b/internal/pkg/utils/cert/converter.go index 8fe51d88..86c3c3d8 100644 --- a/internal/pkg/utils/cert/converter.go +++ b/internal/pkg/utils/cert/converter.go @@ -1,4 +1,4 @@ -package certutil +package certutil import ( "crypto/ecdsa" diff --git a/internal/pkg/utils/cert/extractor.go b/internal/pkg/utils/cert/extractor.go index 97336d6d..110f4772 100644 --- a/internal/pkg/utils/cert/extractor.go +++ b/internal/pkg/utils/cert/extractor.go @@ -1,4 +1,4 @@ -package certutil +package certutil import ( "encoding/pem" diff --git a/internal/pkg/utils/cert/parser.go b/internal/pkg/utils/cert/parser.go index 33a89165..e8281b12 100644 --- a/internal/pkg/utils/cert/parser.go +++ b/internal/pkg/utils/cert/parser.go @@ -1,4 +1,4 @@ -package certutil +package certutil import ( "crypto" diff --git a/internal/pkg/utils/cert/transformer.go b/internal/pkg/utils/cert/transformer.go index 66681d97..74690013 100644 --- a/internal/pkg/utils/cert/transformer.go +++ b/internal/pkg/utils/cert/transformer.go @@ -1,4 +1,4 @@ -package certutil +package certutil import ( "bytes" diff --git a/internal/pkg/utils/file/io.go b/internal/pkg/utils/file/io.go index 336f524d..12844b58 100644 --- a/internal/pkg/utils/file/io.go +++ b/internal/pkg/utils/file/io.go @@ -1,4 +1,4 @@ -package fileutil +package fileutil import ( "os" diff --git a/internal/pkg/utils/map/getter.go b/internal/pkg/utils/map/getter.go index c1126496..c4e6fbe1 100644 --- a/internal/pkg/utils/map/getter.go +++ b/internal/pkg/utils/map/getter.go @@ -1,4 +1,4 @@ -package maputil +package maputil import ( "strconv" diff --git a/internal/pkg/utils/map/marshal.go b/internal/pkg/utils/map/marshal.go index 64bd97e6..236b32e2 100644 --- a/internal/pkg/utils/map/marshal.go +++ b/internal/pkg/utils/map/marshal.go @@ -1,4 +1,4 @@ -package maputil +package maputil import ( mapstructure "github.com/go-viper/mapstructure/v2" diff --git a/internal/pkg/utils/slice/slice.go b/internal/pkg/utils/slice/slice.go index ba63b82a..f1c7fc0f 100644 --- a/internal/pkg/utils/slice/slice.go +++ b/internal/pkg/utils/slice/slice.go @@ -1,4 +1,4 @@ -package sliceutil +package sliceutil // 创建给定切片一部分的浅拷贝,其包含通过所提供函数实现的测试的所有元素。 // diff --git a/internal/pkg/utils/type/type.go b/internal/pkg/utils/type/type.go index 4e5d3711..7262eec2 100644 --- a/internal/pkg/utils/type/type.go +++ b/internal/pkg/utils/type/type.go @@ -1,4 +1,4 @@ -package typeutil +package typeutil import "reflect" diff --git a/internal/workflow/dispatcher/dispatcher.go b/internal/workflow/dispatcher/dispatcher.go index 6c997ff4..33aa1e0d 100644 --- a/internal/workflow/dispatcher/dispatcher.go +++ b/internal/workflow/dispatcher/dispatcher.go @@ -1,4 +1,4 @@ -package dispatcher +package dispatcher import ( "context" diff --git a/internal/workflow/dispatcher/singleton.go b/internal/workflow/dispatcher/singleton.go index 20fdde97..e5a77655 100644 --- a/internal/workflow/dispatcher/singleton.go +++ b/internal/workflow/dispatcher/singleton.go @@ -1,4 +1,4 @@ -package dispatcher +package dispatcher import ( "context" From 4f512a6cdd7c7f1571776d5e42dfeeb8736452f4 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 22 Apr 2025 21:51:36 +0800 Subject: [PATCH 08/38] refactor: clean code --- .../huaweicloud-cdn/huaweicloud_cdn.go | 16 +++++------ .../huaweicloud-elb/huaweicloud_elb.go | 12 ++++---- .../huaweicloud-waf/huaweicloud_waf.go | 26 ++++++++--------- .../providers/wangsu-cdnpro/wangsu_cdnpro.go | 28 +++++++++---------- .../huaweicloud-elb/huaweicloud_elb.go | 12 ++++---- .../huaweicloud-scm/huaweicloud_scm.go | 10 +++---- .../huaweicloud-waf/huaweicloud_waf.go | 6 ++-- internal/pkg/sdk3rd/huaweicloud/cast.go | 9 ------ .../pkg/utils/type/{type.go => assert.go} | 26 ----------------- internal/pkg/utils/type/cast.go | 27 ++++++++++++++++++ 10 files changed, 82 insertions(+), 90 deletions(-) delete mode 100644 internal/pkg/sdk3rd/huaweicloud/cast.go rename internal/pkg/utils/type/{type.go => assert.go} (56%) create mode 100644 internal/pkg/utils/type/cast.go diff --git a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go index ce07f9ee..94df8cf9 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go @@ -13,7 +13,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-scm" - hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" + typeutil "github.com/usual2970/certimate/internal/pkg/utils/type" ) type DeployerConfig struct { @@ -102,9 +102,9 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateDomainMultiCertificatesReqBodyContent := &hccdnmodel.UpdateDomainMultiCertificatesRequestBodyContent{} updateDomainMultiCertificatesReqBodyContent.DomainName = d.config.Domain updateDomainMultiCertificatesReqBodyContent.HttpsSwitch = 1 - updateDomainMultiCertificatesReqBodyContent.CertificateType = hwsdk.Int32Ptr(2) - updateDomainMultiCertificatesReqBodyContent.ScmCertificateId = hwsdk.StringPtr(upres.CertId) - updateDomainMultiCertificatesReqBodyContent.CertName = hwsdk.StringPtr(upres.CertName) + updateDomainMultiCertificatesReqBodyContent.CertificateType = typeutil.ToPtr(int32(2)) + updateDomainMultiCertificatesReqBodyContent.ScmCertificateId = typeutil.ToPtr(upres.CertId) + updateDomainMultiCertificatesReqBodyContent.CertName = typeutil.ToPtr(upres.CertName) updateDomainMultiCertificatesReqBodyContent = assign(updateDomainMultiCertificatesReqBodyContent, showDomainFullConfigResp.Configs) updateDomainMultiCertificatesReq := &hccdnmodel.UpdateDomainMultiCertificatesRequest{ Body: &hccdnmodel.UpdateDomainMultiCertificatesRequestBody{ @@ -159,11 +159,11 @@ func assign(source *hccdnmodel.UpdateDomainMultiCertificatesRequestBodyContent, } if *target.OriginProtocol == "follow" { - source.AccessOriginWay = hwsdk.Int32Ptr(1) + source.AccessOriginWay = typeutil.ToPtr(int32(1)) } else if *target.OriginProtocol == "http" { - source.AccessOriginWay = hwsdk.Int32Ptr(2) + source.AccessOriginWay = typeutil.ToPtr(int32(2)) } else if *target.OriginProtocol == "https" { - source.AccessOriginWay = hwsdk.Int32Ptr(3) + source.AccessOriginWay = typeutil.ToPtr(int32(3)) } if target.ForceRedirect != nil { @@ -181,7 +181,7 @@ func assign(source *hccdnmodel.UpdateDomainMultiCertificatesRequestBodyContent, if target.Https != nil { if *target.Https.Http2Status == "on" { - source.Http2 = hwsdk.Int32Ptr(1) + source.Http2 = typeutil.ToPtr(int32(1)) } } diff --git a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go index 6cdb63d1..8a1f068c 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go @@ -20,7 +20,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-elb" - hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" + typeutil "github.com/usual2970/certimate/internal/pkg/utils/type" ) type DeployerConfig struct { @@ -125,8 +125,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri CertificateId: d.config.CertificateId, Body: &hcelbmodel.UpdateCertificateRequestBody{ Certificate: &hcelbmodel.UpdateCertificateOption{ - Certificate: hwsdk.StringPtr(certPEM), - PrivateKey: hwsdk.StringPtr(privkeyPEM), + Certificate: typeutil.ToPtr(certPEM), + PrivateKey: typeutil.ToPtr(privkeyPEM), }, }, } @@ -162,7 +162,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPEM str var listListenersMarker *string = nil for { listListenersReq := &hcelbmodel.ListListenersRequest{ - Limit: hwsdk.Int32Ptr(listListenersLimit), + Limit: typeutil.ToPtr(listListenersLimit), Marker: listListenersMarker, Protocol: &[]string{"HTTPS", "TERMINATED_HTTPS"}, LoadbalancerId: &[]string{showLoadBalancerResp.Loadbalancer.Id}, @@ -254,7 +254,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL ListenerId: cloudListenerId, Body: &hcelbmodel.UpdateListenerRequestBody{ Listener: &hcelbmodel.UpdateListenerOption{ - DefaultTlsContainerRef: hwsdk.StringPtr(cloudCertId), + DefaultTlsContainerRef: typeutil.ToPtr(cloudCertId), }, }, } @@ -303,7 +303,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL } if showListenerResp.Listener.SniMatchAlgo != "" { - updateListenerReq.Body.Listener.SniMatchAlgo = hwsdk.StringPtr(showListenerResp.Listener.SniMatchAlgo) + updateListenerReq.Body.Listener.SniMatchAlgo = typeutil.ToPtr(showListenerResp.Listener.SniMatchAlgo) } } updateListenerResp, err := d.sdkClient.UpdateListener(updateListenerReq) diff --git a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go index 1d1d3164..92fffa8d 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go @@ -20,7 +20,7 @@ import ( "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-waf" - hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" + typeutil "github.com/usual2970/certimate/internal/pkg/utils/type" ) type DeployerConfig struct { @@ -141,8 +141,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri CertificateId: d.config.CertificateId, Body: &hcwafmodel.UpdateCertificateRequestBody{ Name: *showCertificateResp.Name, - Content: hwsdk.StringPtr(certPEM), - Key: hwsdk.StringPtr(privkeyPEM), + Content: typeutil.ToPtr(certPEM), + Key: typeutil.ToPtr(privkeyPEM), }, } updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq) @@ -174,9 +174,9 @@ func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPEM stri listHostPageSize := int32(100) for { listHostReq := &hcwafmodel.ListHostRequest{ - Hostname: hwsdk.StringPtr(strings.TrimPrefix(d.config.Domain, "*")), - Page: hwsdk.Int32Ptr(listHostPage), - Pagesize: hwsdk.Int32Ptr(listHostPageSize), + Hostname: typeutil.ToPtr(strings.TrimPrefix(d.config.Domain, "*")), + Page: typeutil.ToPtr(listHostPage), + Pagesize: typeutil.ToPtr(listHostPageSize), } listHostResp, err := d.sdkClient.ListHost(listHostReq) d.logger.Debug("sdk request 'waf.ListHost'", slog.Any("request", listHostReq), slog.Any("response", listHostResp)) @@ -208,8 +208,8 @@ func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPEM stri updateHostReq := &hcwafmodel.UpdateHostRequest{ InstanceId: hostId, Body: &hcwafmodel.UpdateHostRequestBody{ - Certificateid: hwsdk.StringPtr(upres.CertId), - Certificatename: hwsdk.StringPtr(upres.CertName), + Certificateid: typeutil.ToPtr(upres.CertId), + Certificatename: typeutil.ToPtr(upres.CertName), }, } updateHostResp, err := d.sdkClient.UpdateHost(updateHostReq) @@ -241,9 +241,9 @@ func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPEM stri listPremiumHostPageSize := int32(100) for { listPremiumHostReq := &hcwafmodel.ListPremiumHostRequest{ - Hostname: hwsdk.StringPtr(strings.TrimPrefix(d.config.Domain, "*")), - Page: hwsdk.StringPtr(fmt.Sprintf("%d", listPremiumHostPage)), - Pagesize: hwsdk.StringPtr(fmt.Sprintf("%d", listPremiumHostPageSize)), + Hostname: typeutil.ToPtr(strings.TrimPrefix(d.config.Domain, "*")), + Page: typeutil.ToPtr(fmt.Sprintf("%d", listPremiumHostPage)), + Pagesize: typeutil.ToPtr(fmt.Sprintf("%d", listPremiumHostPageSize)), } listPremiumHostResp, err := d.sdkClient.ListPremiumHost(listPremiumHostReq) d.logger.Debug("sdk request 'waf.ListPremiumHost'", slog.Any("request", listPremiumHostReq), slog.Any("response", listPremiumHostResp)) @@ -275,8 +275,8 @@ func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPEM stri updatePremiumHostReq := &hcwafmodel.UpdatePremiumHostRequest{ HostId: hostId, Body: &hcwafmodel.UpdatePremiumHostRequestBody{ - Certificateid: hwsdk.StringPtr(upres.CertId), - Certificatename: hwsdk.StringPtr(upres.CertName), + Certificateid: typeutil.ToPtr(upres.CertId), + Certificatename: typeutil.ToPtr(upres.CertName), }, } updatePremiumHostResp, err := d.sdkClient.UpdatePremiumHost(updatePremiumHostReq) diff --git a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go index 582c76a0..ae80180c 100644 --- a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go +++ b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go @@ -16,12 +16,12 @@ import ( "strconv" "time" - "github.com/alibabacloud-go/tea/tea" xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" wangsucdn "github.com/usual2970/certimate/internal/pkg/sdk3rd/wangsu/cdn" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" + typeutil "github.com/usual2970/certimate/internal/pkg/utils/type" ) type DeployerConfig struct { @@ -101,10 +101,10 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE return nil, xerrors.Wrap(err, "failed to encrypt private key") } certificateNewVersionInfo := &wangsucdn.CertificateVersion{ - PrivateKey: tea.String(encryptedPrivateKey), - Certificate: tea.String(certPEM), + PrivateKey: typeutil.ToPtr(encryptedPrivateKey), + Certificate: typeutil.ToPtr(certPEM), IdentificationInfo: &wangsucdn.CertificateVersionIdentificationInfo{ - CommonName: tea.String(certX509.Subject.CommonName), + CommonName: typeutil.ToPtr(certX509.Subject.CommonName), SubjectAlternativeNames: &certX509.DNSNames, }, } @@ -123,8 +123,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 创建证书 createCertificateReq := &wangsucdn.CreateCertificateRequest{ Timestamp: timestamp, - Name: tea.String(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())), - AutoRenew: tea.String("Off"), + Name: typeutil.ToPtr(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())), + AutoRenew: typeutil.ToPtr("Off"), NewVersion: certificateNewVersionInfo, } createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) @@ -146,8 +146,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 更新证书 updateCertificateReq := &wangsucdn.UpdateCertificateRequest{ Timestamp: timestamp, - Name: tea.String(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())), - AutoRenew: tea.String("Off"), + Name: typeutil.ToPtr(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())), + AutoRenew: typeutil.ToPtr("Off"), NewVersion: certificateNewVersionInfo, } updateCertificateResp, err := d.sdkClient.UpdateCertificate(d.config.CertificateId, updateCertificateReq) @@ -174,18 +174,18 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 创建部署任务 // REF: https://www.wangsu.com/document/api-doc/27034 createDeploymentTaskReq := &wangsucdn.CreateDeploymentTaskRequest{ - Name: tea.String(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())), - Target: tea.String(d.config.Environment), + Name: typeutil.ToPtr(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())), + Target: typeutil.ToPtr(d.config.Environment), Actions: &[]wangsucdn.DeploymentTaskAction{ { - Action: tea.String("deploy_cert"), - CertificateId: tea.String(wangsuCertId), - Version: tea.Int32(wangsuCertVer), + Action: typeutil.ToPtr("deploy_cert"), + CertificateId: typeutil.ToPtr(wangsuCertId), + Version: typeutil.ToPtr(wangsuCertVer), }, }, } if d.config.WebhookId != "" { - createDeploymentTaskReq.Webhook = tea.String(d.config.WebhookId) + createDeploymentTaskReq.Webhook = typeutil.ToPtr(d.config.WebhookId) } createDeploymentTaskResp, err := d.sdkClient.CreateDeploymentTask(createDeploymentTaskReq) d.logger.Debug("sdk request 'cdn.CreateCertificate'", slog.Any("request", createDeploymentTaskReq), slog.Any("response", createDeploymentTaskResp)) diff --git a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go index 217b1d4c..59474b6d 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go @@ -18,8 +18,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" + typeutil "github.com/usual2970/certimate/internal/pkg/utils/type" ) type UploaderConfig struct { @@ -78,7 +78,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE var listCertificatesMarker *string = nil for { listCertificatesReq := &hcelbmodel.ListCertificatesRequest{ - Limit: hwsdk.Int32Ptr(listCertificatesLimit), + Limit: typeutil.ToPtr(listCertificatesLimit), Marker: listCertificatesMarker, Type: &[]string{"server"}, } @@ -136,10 +136,10 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE createCertificateReq := &hcelbmodel.CreateCertificateRequest{ Body: &hcelbmodel.CreateCertificateRequestBody{ Certificate: &hcelbmodel.CreateCertificateOption{ - ProjectId: hwsdk.StringPtr(projectId), - Name: hwsdk.StringPtr(certName), - Certificate: hwsdk.StringPtr(certPEM), - PrivateKey: hwsdk.StringPtr(privkeyPEM), + ProjectId: typeutil.ToPtr(projectId), + Name: typeutil.ToPtr(certName), + Certificate: typeutil.ToPtr(certPEM), + PrivateKey: typeutil.ToPtr(privkeyPEM), }, }, } diff --git a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go index d2f72a3b..e49f7dd5 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go @@ -13,8 +13,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" + typeutil "github.com/usual2970/certimate/internal/pkg/utils/type" ) type UploaderConfig struct { @@ -74,10 +74,10 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertificatesOffset := int32(0) for { listCertificatesReq := &hcscmmodel.ListCertificatesRequest{ - Limit: hwsdk.Int32Ptr(listCertificatesLimit), - Offset: hwsdk.Int32Ptr(listCertificatesOffset), - SortDir: hwsdk.StringPtr("DESC"), - SortKey: hwsdk.StringPtr("certExpiredTime"), + Limit: typeutil.ToPtr(listCertificatesLimit), + Offset: typeutil.ToPtr(listCertificatesOffset), + SortDir: typeutil.ToPtr("DESC"), + SortKey: typeutil.ToPtr("certExpiredTime"), } listCertificatesResp, err := u.sdkClient.ListCertificates(listCertificatesReq) u.logger.Debug("sdk request 'scm.ListCertificates'", slog.Any("request", listCertificatesReq), slog.Any("response", listCertificatesResp)) diff --git a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go index 3bd1fb31..4998a072 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go @@ -18,8 +18,8 @@ import ( xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" - hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" + typeutil "github.com/usual2970/certimate/internal/pkg/utils/type" ) type UploaderConfig struct { @@ -79,8 +79,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertificatesPageSize := int32(100) for { listCertificatesReq := &hcwafmodel.ListCertificatesRequest{ - Page: hwsdk.Int32Ptr(listCertificatesPage), - Pagesize: hwsdk.Int32Ptr(listCertificatesPageSize), + Page: typeutil.ToPtr(listCertificatesPage), + Pagesize: typeutil.ToPtr(listCertificatesPageSize), } listCertificatesResp, err := u.sdkClient.ListCertificates(listCertificatesReq) u.logger.Debug("sdk request 'waf.ShowCertificate'", slog.Any("request", listCertificatesReq), slog.Any("response", listCertificatesResp)) diff --git a/internal/pkg/sdk3rd/huaweicloud/cast.go b/internal/pkg/sdk3rd/huaweicloud/cast.go deleted file mode 100644 index e02a2753..00000000 --- a/internal/pkg/sdk3rd/huaweicloud/cast.go +++ /dev/null @@ -1,9 +0,0 @@ -package huaweicloudsdk - -func Int32Ptr(i int32) *int32 { - return &i -} - -func StringPtr(s string) *string { - return &s -} diff --git a/internal/pkg/utils/type/type.go b/internal/pkg/utils/type/assert.go similarity index 56% rename from internal/pkg/utils/type/type.go rename to internal/pkg/utils/type/assert.go index 7262eec2..509a77cc 100644 --- a/internal/pkg/utils/type/type.go +++ b/internal/pkg/utils/type/assert.go @@ -24,29 +24,3 @@ func IsNil(obj any) bool { return false } - -// 将对象转换为指针。 -// -// 入参: -// - 待转换的对象。 -// -// 出参: -// - 返回对象的指针。 -func ToPtr[T any](v T) (p *T) { - return &v -} - -// 将指针转换为对象。 -// -// 入参: -// - 待转换的指针。 -// -// 出参: -// - 返回指针指向的对象。如果指针为空,则返回对象的零值。 -func ToObj[T any](p *T) (v T) { - if p == nil { - return v - } - - return *p -} diff --git a/internal/pkg/utils/type/cast.go b/internal/pkg/utils/type/cast.go new file mode 100644 index 00000000..684e262e --- /dev/null +++ b/internal/pkg/utils/type/cast.go @@ -0,0 +1,27 @@ +package typeutil + +// 将对象转换为指针。 +// +// 入参: +// - 待转换的对象。 +// +// 出参: +// - 返回对象的指针。 +func ToPtr[T any](v T) (p *T) { + return &v +} + +// 将指针转换为对象。 +// +// 入参: +// - 待转换的指针。 +// +// 出参: +// - 返回指针指向的对象。如果指针为空,则返回对象的零值。 +func ToVal[T any](p *T) (v T) { + if IsNil(p) { + return v + } + + return *p +} From 6dac89e9a133ee7e2c2fc64ccbd451154907a23b Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 22 Apr 2025 22:12:58 +0800 Subject: [PATCH 09/38] refactor: remove pkg/errors --- go.mod | 4 +-- internal/applicant/acme_user.go | 2 +- internal/applicant/applicant.go | 4 +-- internal/applicant/providers.go | 2 +- internal/deployer/deployer.go | 2 +- internal/deployer/providers.go | 2 +- internal/notify/providers.go | 2 +- .../1panel-console/1panel_console.go | 7 ++-- .../providers/1panel-site/1panel_site.go | 18 +++++----- .../providers/aliyun-alb/aliyun_alb.go | 27 +++++++------- .../providers/aliyun-apigw/aliyun_apigw.go | 17 +++++---- .../aliyun-cas-deploy/aliyun_cas_deploy.go | 13 ++++--- .../providers/aliyun-cas/aliyun_cas.go | 7 ++-- .../providers/aliyun-cdn/aliyun_cdn.go | 5 ++- .../providers/aliyun-clb/aliyun_clb.go | 21 ++++++----- .../providers/aliyun-dcdn/aliyun_dcdn.go | 5 ++- .../providers/aliyun-esa/aliyun_esa.go | 9 +++-- .../deployer/providers/aliyun-fc/aliyun_fc.go | 13 ++++--- .../providers/aliyun-live/aliyun_live.go | 5 ++- .../providers/aliyun-nlb/aliyun_nlb.go | 17 +++++---- .../providers/aliyun-oss/aliyun_oss.go | 5 ++- .../providers/aliyun-vod/aliyun_vod.go | 5 ++- .../providers/aliyun-waf/aliyun_waf.go | 17 +++++---- .../deployer/providers/aws-acm/aws_acm.go | 7 ++-- .../aws-cloudfront/aws_cloudfront.go | 12 +++---- .../azure-keyvault/azure_keyvault.go | 13 ++++--- .../baiducloud-appblb/baiducloud_appblb.go | 23 ++++++------ .../baiducloud-blb/baiducloud_blb.go | 23 ++++++------ .../baiducloud-cdn/baiducloud_cdn.go | 5 ++- .../baiducloud-cert/baiducloud_cert.go | 7 ++-- .../providers/baishan-cdn/baishan_cdn.go | 12 +++---- .../baotapanel-console/baotapanel_console.go | 7 ++-- .../baotapanel-site/baotapanel_site.go | 12 +++---- .../deployer/providers/bunny-cdn/bunny_cdn.go | 5 ++- .../providers/byteplus-cdn/byteplus_cdn.go | 8 ++--- .../deployer/providers/cachefly/cachefly.go | 7 ++-- .../core/deployer/providers/cdnfly/cdnfly.go | 14 ++++---- .../providers/dogecloud-cdn/dogecloud_cdn.go | 9 +++-- .../edgio-applications/edgio_applications.go | 6 ++-- .../deployer/providers/gcore-cdn/gcore_cdn.go | 12 +++---- .../huaweicloud-cdn/huaweicloud_cdn.go | 12 +++---- .../huaweicloud-elb/huaweicloud_elb.go | 25 +++++++------ .../huaweicloud-scm/huaweicloud_scm.go | 7 ++-- .../huaweicloud-waf/huaweicloud_waf.go | 25 +++++++------ .../providers/jdcloud-alb/jdcloud_alb.go | 19 +++++----- .../providers/jdcloud-cdn/jdcloud_cdn.go | 12 +++---- .../providers/jdcloud-live/jdcloud_live.go | 6 ++-- .../providers/jdcloud-vod/jdcloud_vod.go | 12 +++---- .../providers/k8s-secret/k8s_secret.go | 8 ++--- .../core/deployer/providers/local/local.go | 24 ++++++------- .../deployer/providers/qiniu-cdn/qiniu_cdn.go | 12 +++---- .../providers/qiniu-pili/qiniu_pili.go | 8 ++--- .../providers/rainyun-rcdn/rainyun_rcdn.go | 11 +++--- .../deployer/providers/safeline/safeline.go | 8 ++--- .../pkg/core/deployer/providers/ssh/ssh.go | 35 +++++++++---------- .../tencentcloud-cdn/tencentcloud_cdn.go | 14 ++++---- .../tencentcloud-clb/tencentcloud_clb.go | 19 +++++----- .../tencentcloud-cos/tencentcloud_cos.go | 9 +++-- .../tencentcloud-css/tencentcloud_css.go | 10 +++--- .../tencentcloud-ecdn/tencentcloud_ecdn.go | 12 +++---- .../tencentcloud-eo/tencentcloud_eo.go | 10 +++--- .../tencentcloud-scf/tencentcloud_scf.go | 12 +++---- .../tencentcloud_ssl_deploy.go | 11 +++--- .../tencentcloud-ssl/tencentcloud_ssl.go | 7 ++-- .../tencentcloud-vod/tencentcloud_vod.go | 10 +++--- .../tencentcloud-waf/tencentcloud_waf.go | 12 +++---- .../providers/ucloud-ucdn/ucloud_ucdn.go | 12 +++---- .../providers/ucloud-us3/ucloud_us3.go | 10 +++--- .../deployer/providers/upyun-cdn/upyun_cdn.go | 14 ++++---- .../volcengine-alb/volcengine_alb.go | 19 +++++----- .../volcengine-cdn/volcengine_cdn.go | 8 ++--- .../volcengine_certcenter.go | 7 ++-- .../volcengine-clb/volcengine_clb.go | 15 ++++---- .../volcengine-dcdn/volcengine_dcdn.go | 10 +++--- .../volcengine-imagex/volcengine_imagex.go | 12 +++---- .../volcengine-live/volcengine_live.go | 8 ++--- .../volcengine-tos/volcengine_tos.go | 9 +++-- .../providers/wangsu-cdnpro/wangsu_cdnpro.go | 15 ++++---- .../deployer/providers/webhook/webhook.go | 10 +++--- .../providers/1panel-ssl/1panel_ssl.go | 8 ++--- .../providers/aliyun-cas/aliyun_cas.go | 11 +++--- .../providers/aliyun-slb/aliyun_slb.go | 7 ++-- .../uploader/providers/aws-acm/aws_acm.go | 10 +++--- .../azure-keyvault/azure_keyvault.go | 11 +++--- .../baiducloud-cert/baiducloud_cert.go | 10 +++--- .../providers/byteplus-cdn/byteplus_cdn.go | 5 ++- .../uploader/providers/dogecloud/dogecloud.go | 6 ++-- .../uploader/providers/gcore-cdn/gcore_cdn.go | 5 ++- .../huaweicloud-elb/huaweicloud_elb.go | 9 +++-- .../huaweicloud-scm/huaweicloud_scm.go | 9 +++-- .../huaweicloud-waf/huaweicloud_waf.go | 9 +++-- .../providers/jdcloud-ssl/jdcloud_ssl.go | 7 ++-- .../providers/qiniu-sslcert/qiniu_sslcert.go | 5 ++- .../rainyun-sslcenter/rainyun_sslcenter.go | 10 +++--- .../tencentcloud-ssl/tencentcloud_ssl.go | 6 ++-- .../providers/ucloud-ussl/ucloud_ussl.go | 9 +++-- .../uploader/providers/upyun-ssl/upyun_ssl.go | 7 ++-- .../volcengine-cdn/volcengine_cdn.go | 5 ++- .../volcengine_certcenter.go | 9 ++--- .../volcengine-live/volcengine_live.go | 5 ++- internal/pkg/utils/cert/converter.go | 5 ++- internal/pkg/utils/cert/parser.go | 8 ++--- internal/pkg/utils/file/io.go | 9 +++-- 103 files changed, 500 insertions(+), 575 deletions(-) diff --git a/go.mod b/go.mod index a6e15309..ec8b6cf9 100644 --- a/go.mod +++ b/go.mod @@ -11,8 +11,10 @@ require ( github.com/Edgio/edgio-api v0.0.0-workspace github.com/G-Core/gcorelabscdn-go v1.0.28 github.com/alibabacloud-go/alb-20200616/v2 v2.2.8 + github.com/alibabacloud-go/apig-20240327/v3 v3.2.2 github.com/alibabacloud-go/cas-20200407/v3 v3.0.4 github.com/alibabacloud-go/cdn-20180510/v5 v5.2.2 + github.com/alibabacloud-go/cloudapi-20160714/v5 v5.7.2 github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.4 github.com/alibabacloud-go/esa-20240910/v2 v2.23.0 github.com/alibabacloud-go/fc-20230330/v4 v4.1.7 @@ -73,8 +75,6 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3 // indirect github.com/alibabacloud-go/alibabacloud-gateway-fc-util v0.0.7 // indirect - github.com/alibabacloud-go/apig-20240327/v3 v3.2.2 // indirect - github.com/alibabacloud-go/cloudapi-20160714/v5 v5.7.2 // indirect github.com/alibabacloud-go/openplatform-20191219/v2 v2.0.1 // indirect github.com/alibabacloud-go/tea-fileform v1.1.1 // indirect github.com/alibabacloud-go/tea-oss-sdk v1.1.3 // indirect diff --git a/internal/applicant/acme_user.go b/internal/applicant/acme_user.go index d4284a10..29ac80cd 100644 --- a/internal/applicant/acme_user.go +++ b/internal/applicant/acme_user.go @@ -146,7 +146,7 @@ func registerAcmeUser(client *lego.Client, user *acmeUser, userRegisterOptions m } default: - err = fmt.Errorf("unsupported ca provider: %s", user.CA) + err = fmt.Errorf("unsupported ca provider '%s'", user.CA) } if err != nil { return nil, err diff --git a/internal/applicant/applicant.go b/internal/applicant/applicant.go index 216ff789..7b8b94f9 100644 --- a/internal/applicant/applicant.go +++ b/internal/applicant/applicant.go @@ -56,7 +56,7 @@ type applicantOptions struct { func NewWithApplyNode(node *domain.WorkflowNode) (Applicant, error) { if node.Type != domain.WorkflowNodeTypeApply { - return nil, fmt.Errorf("node type is not apply") + return nil, fmt.Errorf("node type is not '%s'", string(domain.WorkflowNodeTypeApply)) } nodeConfig := node.GetConfigForApply() @@ -181,7 +181,7 @@ func apply(challengeProvider challenge.Provider, options *applicantOptions) (*Ap if !user.hasRegistration() { reg, err := registerAcmeUserWithSingleFlight(client, user, options.CAProviderAccessConfig) if err != nil { - return nil, fmt.Errorf("failed to register: %w", err) + return nil, fmt.Errorf("failed to register acme user: %w", err) } user.Registration = reg } diff --git a/internal/applicant/providers.go b/internal/applicant/providers.go index 7f9d8a9d..d4ad473f 100644 --- a/internal/applicant/providers.go +++ b/internal/applicant/providers.go @@ -509,5 +509,5 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) { } } - return nil, fmt.Errorf("unsupported applicant provider: %s", string(options.Provider)) + return nil, fmt.Errorf("unsupported applicant provider '%s'", string(options.Provider)) } diff --git a/internal/deployer/deployer.go b/internal/deployer/deployer.go index c023a236..972e7aa3 100644 --- a/internal/deployer/deployer.go +++ b/internal/deployer/deployer.go @@ -28,7 +28,7 @@ func NewWithDeployNode(node *domain.WorkflowNode, certdata struct { }, ) (Deployer, error) { if node.Type != domain.WorkflowNodeTypeDeploy { - return nil, fmt.Errorf("node type is not deploy") + return nil, fmt.Errorf("node type is not '%s'", string(domain.WorkflowNodeTypeDeploy)) } nodeConfig := node.GetConfigForDeploy() diff --git a/internal/deployer/providers.go b/internal/deployer/providers.go index cdf53b1d..6b6daea1 100644 --- a/internal/deployer/providers.go +++ b/internal/deployer/providers.go @@ -1077,5 +1077,5 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, error) { } } - return nil, fmt.Errorf("unsupported deployer provider: %s", string(options.Provider)) + return nil, fmt.Errorf("unsupported deployer provider '%s'", string(options.Provider)) } diff --git a/internal/notify/providers.go b/internal/notify/providers.go index 8c8b99bc..bae9ba72 100644 --- a/internal/notify/providers.go +++ b/internal/notify/providers.go @@ -102,5 +102,5 @@ func createNotifier(channel domain.NotifyChannelType, channelConfig map[string]a }) } - return nil, fmt.Errorf("unsupported notifier channel: %s", channelConfig) + return nil, fmt.Errorf("unsupported notifier channel '%s'", channelConfig) } diff --git a/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go b/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go index c44cb09c..55a48035 100644 --- a/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go +++ b/internal/pkg/core/deployer/providers/1panel-console/1panel_console.go @@ -4,11 +4,10 @@ import ( "context" "crypto/tls" "errors" + "fmt" "log/slog" "net/url" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" opsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/1panel" ) @@ -39,7 +38,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiUrl, config.ApiKey, config.AllowInsecureConnections) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -74,7 +73,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateSystemSSLResp, err := d.sdkClient.UpdateSystemSSL(updateSystemSSLReq) d.logger.Debug("sdk request '1panel.UpdateSystemSSL'", slog.Any("request", updateSystemSSLReq), slog.Any("response", updateSystemSSLResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request '1panel.UpdateSystemSSL'") + return nil, fmt.Errorf("failed to execute sdk request '1panel.UpdateSystemSSL': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go b/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go index 5d4561e0..aa5fa507 100644 --- a/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go +++ b/internal/pkg/core/deployer/providers/1panel-site/1panel_site.go @@ -9,8 +9,6 @@ import ( "net/url" "strconv" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/1panel-ssl" @@ -50,7 +48,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiUrl, config.ApiKey, config.AllowInsecureConnections) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -58,7 +56,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { ApiKey: config.ApiKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -93,7 +91,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -111,13 +109,13 @@ func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPEM string, getHttpsConfResp, err := d.sdkClient.GetHttpsConf(getHttpsConfReq) d.logger.Debug("sdk request '1panel.GetHttpsConf'", slog.Any("request", getHttpsConfReq), slog.Any("response", getHttpsConfResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request '1panel.GetHttpsConf'") + return fmt.Errorf("failed to execute sdk request '1panel.GetHttpsConf': %w", err) } // 上传证书到面板 upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return xerrors.Wrap(err, "failed to upload certificate file") + return fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -137,7 +135,7 @@ func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPEM string, updateHttpsConfResp, err := d.sdkClient.UpdateHttpsConf(updateHttpsConfReq) d.logger.Debug("sdk request '1panel.UpdateHttpsConf'", slog.Any("request", updateHttpsConfReq), slog.Any("response", updateHttpsConfResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request '1panel.UpdateHttpsConf'") + return fmt.Errorf("failed to execute sdk request '1panel.UpdateHttpsConf': %w", err) } return nil @@ -155,7 +153,7 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri getWebsiteSSLResp, err := d.sdkClient.GetWebsiteSSL(getWebsiteSSLReq) d.logger.Debug("sdk request '1panel.GetWebsiteSSL'", slog.Any("request", getWebsiteSSLReq), slog.Any("response", getWebsiteSSLResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request '1panel.GetWebsiteSSL'") + return fmt.Errorf("failed to execute sdk request '1panel.GetWebsiteSSL': %w", err) } // 更新证书 @@ -169,7 +167,7 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri uploadWebsiteSSLResp, err := d.sdkClient.UploadWebsiteSSL(uploadWebsiteSSLReq) d.logger.Debug("sdk request '1panel.UploadWebsiteSSL'", slog.Any("request", uploadWebsiteSSLReq), slog.Any("response", uploadWebsiteSSLResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request '1panel.UploadWebsiteSSL'") + return fmt.Errorf("failed to execute sdk request '1panel.UploadWebsiteSSL': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go index e14f04ce..ddf49218 100644 --- a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go +++ b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go @@ -13,7 +13,6 @@ import ( alicas "github.com/alibabacloud-go/cas-20200407/v3/client" aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "golang.org/x/exp/slices" "github.com/usual2970/certimate/internal/pkg/core/deployer" @@ -62,12 +61,12 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { clients, err := createSdkClients(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk clients") + return nil, fmt.Errorf("failed to create sdk clients: %w", err) } uploader, err := createSslUploader(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -92,7 +91,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -110,7 +109,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -129,7 +128,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId getLoadBalancerAttributeResp, err := d.sdkClients.ALB.GetLoadBalancerAttribute(getLoadBalancerAttributeReq) d.logger.Debug("sdk request 'alb.GetLoadBalancerAttribute'", slog.Any("request", getLoadBalancerAttributeReq), slog.Any("response", getLoadBalancerAttributeResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.GetLoadBalancerAttribute'") + return fmt.Errorf("failed to execute sdk request 'alb.GetLoadBalancerAttribute': %w", err) } // 查询 HTTPS 监听列表 @@ -147,7 +146,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId listListenersResp, err := d.sdkClients.ALB.ListListeners(listListenersReq) d.logger.Debug("sdk request 'alb.ListListeners'", slog.Any("request", listListenersReq), slog.Any("response", listListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.ListListeners'") + return fmt.Errorf("failed to execute sdk request 'alb.ListListeners': %w", err) } if listListenersResp.Body.Listeners != nil { @@ -176,7 +175,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId listListenersResp, err := d.sdkClients.ALB.ListListeners(listListenersReq) d.logger.Debug("sdk request 'alb.ListListeners'", slog.Any("request", listListenersReq), slog.Any("response", listListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.ListListeners'") + return fmt.Errorf("failed to execute sdk request 'alb.ListListeners': %w", err) } if listListenersResp.Body.Listeners != nil { @@ -235,7 +234,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL getListenerAttributeResp, err := d.sdkClients.ALB.GetListenerAttribute(getListenerAttributeReq) d.logger.Debug("sdk request 'alb.GetListenerAttribute'", slog.Any("request", getListenerAttributeReq), slog.Any("response", getListenerAttributeResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.GetListenerAttribute'") + return fmt.Errorf("failed to execute sdk request 'alb.GetListenerAttribute': %w", err) } if d.config.Domain == "" { @@ -252,7 +251,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL updateListenerAttributeResp, err := d.sdkClients.ALB.UpdateListenerAttribute(updateListenerAttributeReq) d.logger.Debug("sdk request 'alb.UpdateListenerAttribute'", slog.Any("request", updateListenerAttributeReq), slog.Any("response", updateListenerAttributeResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.UpdateListenerAttribute'") + return fmt.Errorf("failed to execute sdk request 'alb.UpdateListenerAttribute': %w", err) } } else { // 指定 SNI,需部署到扩展域名 @@ -272,7 +271,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL listListenerCertificatesResp, err := d.sdkClients.ALB.ListListenerCertificates(listListenerCertificatesReq) d.logger.Debug("sdk request 'alb.ListListenerCertificates'", slog.Any("request", listListenerCertificatesReq), slog.Any("response", listListenerCertificatesResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.ListListenerCertificates'") + return fmt.Errorf("failed to execute sdk request 'alb.ListListenerCertificates': %w", err) } if listListenerCertificatesResp.Body.Certificates != nil { @@ -331,7 +330,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL } } - errs = append(errs, xerrors.Wrap(err, "failed to execute sdk request 'cas.GetUserCertificateDetail'")) + errs = append(errs, fmt.Errorf("failed to execute sdk request 'cas.GetUserCertificateDetail': %w", err)) continue } else { certCNMatched := tea.StringValue(getUserCertificateDetailResp.Body.Common) == d.config.Domain @@ -368,7 +367,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL associateAdditionalCertificatesFromListenerResp, err := d.sdkClients.ALB.AssociateAdditionalCertificatesWithListener(associateAdditionalCertificatesFromListenerReq) d.logger.Debug("sdk request 'alb.AssociateAdditionalCertificatesWithListener'", slog.Any("request", associateAdditionalCertificatesFromListenerReq), slog.Any("response", associateAdditionalCertificatesFromListenerResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.AssociateAdditionalCertificatesWithListener'") + return fmt.Errorf("failed to execute sdk request 'alb.AssociateAdditionalCertificatesWithListener': %w", err) } } @@ -389,7 +388,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL dissociateAdditionalCertificatesFromListenerResp, err := d.sdkClients.ALB.DissociateAdditionalCertificatesFromListener(dissociateAdditionalCertificatesFromListenerReq) d.logger.Debug("sdk request 'alb.DissociateAdditionalCertificatesFromListener'", slog.Any("request", dissociateAdditionalCertificatesFromListenerReq), slog.Any("response", dissociateAdditionalCertificatesFromListenerResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.DissociateAdditionalCertificatesFromListener'") + return fmt.Errorf("failed to execute sdk request 'alb.DissociateAdditionalCertificatesFromListener': %w", err) } } } diff --git a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go index b9995c10..2d85be7a 100644 --- a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go +++ b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go @@ -12,7 +12,6 @@ import ( alicloudapi "github.com/alibabacloud-go/cloudapi-20160714/v5/client" aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -59,12 +58,12 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { clients, err := createSdkClients(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk clients") + return nil, fmt.Errorf("failed to create sdk clients: %w", err) } uploader, err := createSslUploader(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -97,7 +96,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, xerrors.Errorf("unsupported service type: %s", string(d.config.ServiceType)) + return nil, fmt.Errorf("unsupported service type '%s'", string(d.config.ServiceType)) } return &deployer.DeployResult{}, nil @@ -123,7 +122,7 @@ func (d *DeployerProvider) deployToTraditional(ctx context.Context, certPEM stri setDomainCertificateResp, err := d.sdkClients.TraditionalAPIGateway.SetDomainCertificate(setDomainCertificateReq) d.logger.Debug("sdk request 'apigateway.SetDomainCertificate'", slog.Any("request", setDomainCertificateReq), slog.Any("response", setDomainCertificateResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'apigateway.SetDomainCertificate'") + return fmt.Errorf("failed to execute sdk request 'apigateway.SetDomainCertificate': %w", err) } return nil @@ -152,7 +151,7 @@ func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPEM stri listDomainsResp, err := d.sdkClients.CloudNativeAPIGateway.ListDomains(listDomainsReq) d.logger.Debug("sdk request 'apig.ListDomains'", slog.Any("request", listDomainsReq), slog.Any("response", listDomainsResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'apig.ListDomains'") + return fmt.Errorf("failed to execute sdk request 'apig.ListDomains': %w", err) } if listDomainsResp.Body.Data.Items != nil { @@ -184,13 +183,13 @@ func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPEM stri getDomainResp, err := d.sdkClients.CloudNativeAPIGateway.GetDomain(tea.String(domainId), getDomainReq) d.logger.Debug("sdk request 'apig.GetDomain'", slog.Any("domainId", domainId), slog.Any("request", getDomainReq), slog.Any("response", getDomainResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'apig.GetDomain'") + return fmt.Errorf("failed to execute sdk request 'apig.GetDomain': %w", err) } // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return xerrors.Wrap(err, "failed to upload certificate file") + return fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -210,7 +209,7 @@ func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPEM stri updateDomainResp, err := d.sdkClients.CloudNativeAPIGateway.UpdateDomain(tea.String(domainId), updateDomainReq) d.logger.Debug("sdk request 'apig.UpdateDomain'", slog.Any("domainId", domainId), slog.Any("request", updateDomainReq), slog.Any("response", updateDomainResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'apig.UpdateDomain'") + return fmt.Errorf("failed to execute sdk request 'apig.UpdateDomain': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go b/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go index 223a30db..a819de13 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go +++ b/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go @@ -11,7 +11,6 @@ import ( alicas "github.com/alibabacloud-go/cas-20200407/v3/client" aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -48,7 +47,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -57,7 +56,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -86,7 +85,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -101,7 +100,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE listContactResp, err := d.sdkClient.ListContact(listContactReq) d.logger.Debug("sdk request 'cas.ListContact'", slog.Any("request", listContactReq), slog.Any("response", listContactResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cas.ListContact'") + return nil, fmt.Errorf("failed to execute sdk request 'cas.ListContact': %w", err) } if len(listContactResp.Body.ContactList) > 0 { @@ -121,7 +120,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE createDeploymentJobResp, err := d.sdkClient.CreateDeploymentJob(createDeploymentJobReq) d.logger.Debug("sdk request 'cas.CreateDeploymentJob'", slog.Any("request", createDeploymentJobReq), slog.Any("response", createDeploymentJobResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cas.CreateDeploymentJob'") + return nil, fmt.Errorf("failed to execute sdk request 'cas.CreateDeploymentJob': %w", err) } // 循环获取部署任务详情,等待任务状态变更 @@ -137,7 +136,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE describeDeploymentJobResp, err := d.sdkClient.DescribeDeploymentJob(describeDeploymentJobReq) d.logger.Debug("sdk request 'cas.DescribeDeploymentJob'", slog.Any("request", describeDeploymentJobReq), slog.Any("response", describeDeploymentJobResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cas.DescribeDeploymentJob'") + return nil, fmt.Errorf("failed to execute sdk request 'cas.DescribeDeploymentJob': %w", err) } if describeDeploymentJobResp.Body.Status == nil || *describeDeploymentJobResp.Body.Status == "editing" { diff --git a/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go b/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go index 9eeff2c1..56681e57 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go +++ b/internal/pkg/core/deployer/providers/aliyun-cas/aliyun_cas.go @@ -2,10 +2,9 @@ package aliyuncas import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/aliyun-cas" @@ -39,7 +38,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -63,7 +62,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } diff --git a/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go b/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go index 3035f3f2..ce5f9fd8 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go +++ b/internal/pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go @@ -10,7 +10,6 @@ import ( alicdn "github.com/alibabacloud-go/cdn-20180510/v5/client" aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" ) @@ -39,7 +38,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -75,7 +74,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setCdnDomainSSLCertificateResp, err := d.sdkClient.SetCdnDomainSSLCertificate(setCdnDomainSSLCertificateReq) d.logger.Debug("sdk request 'cdn.SetCdnDomainSSLCertificate'", slog.Any("request", setCdnDomainSSLCertificateReq), slog.Any("response", setCdnDomainSSLCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.SetCdnDomainSSLCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.SetCdnDomainSSLCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go index 82e35911..583eeabd 100644 --- a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go +++ b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go @@ -9,7 +9,6 @@ import ( aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" alislb "github.com/alibabacloud-go/slb-20140515/v4/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -52,7 +51,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -61,7 +60,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -86,7 +85,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SLB upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -104,7 +103,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -124,7 +123,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeLoadBalancerAttributeResp, err := d.sdkClient.DescribeLoadBalancerAttribute(describeLoadBalancerAttributeReq) d.logger.Debug("sdk request 'slb.DescribeLoadBalancerAttribute'", slog.Any("request", describeLoadBalancerAttributeReq), slog.Any("response", describeLoadBalancerAttributeResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'slb.DescribeLoadBalancerAttribute'") + return fmt.Errorf("failed to execute sdk request 'slb.DescribeLoadBalancerAttribute': %w", err) } // 查询 HTTPS 监听列表 @@ -143,7 +142,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeLoadBalancerListenersResp, err := d.sdkClient.DescribeLoadBalancerListeners(describeLoadBalancerListenersReq) d.logger.Debug("sdk request 'slb.DescribeLoadBalancerListeners'", slog.Any("request", describeLoadBalancerListenersReq), slog.Any("response", describeLoadBalancerListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'slb.DescribeLoadBalancerListeners'") + return fmt.Errorf("failed to execute sdk request 'slb.DescribeLoadBalancerListeners': %w", err) } if describeLoadBalancerListenersResp.Body.Listeners != nil { @@ -206,7 +205,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL describeLoadBalancerHTTPSListenerAttributeResp, err := d.sdkClient.DescribeLoadBalancerHTTPSListenerAttribute(describeLoadBalancerHTTPSListenerAttributeReq) d.logger.Debug("sdk request 'slb.DescribeLoadBalancerHTTPSListenerAttribute'", slog.Any("request", describeLoadBalancerHTTPSListenerAttributeReq), slog.Any("response", describeLoadBalancerHTTPSListenerAttributeResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'slb.DescribeLoadBalancerHTTPSListenerAttribute'") + return fmt.Errorf("failed to execute sdk request 'slb.DescribeLoadBalancerHTTPSListenerAttribute': %w", err) } if d.config.Domain == "" { @@ -223,7 +222,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL setLoadBalancerHTTPSListenerAttributeResp, err := d.sdkClient.SetLoadBalancerHTTPSListenerAttribute(setLoadBalancerHTTPSListenerAttributeReq) d.logger.Debug("sdk request 'slb.SetLoadBalancerHTTPSListenerAttribute'", slog.Any("request", setLoadBalancerHTTPSListenerAttributeReq), slog.Any("response", setLoadBalancerHTTPSListenerAttributeResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'slb.SetLoadBalancerHTTPSListenerAttribute'") + return fmt.Errorf("failed to execute sdk request 'slb.SetLoadBalancerHTTPSListenerAttribute': %w", err) } } else { // 指定 SNI,需部署到扩展域名 @@ -238,7 +237,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL describeDomainExtensionsResp, err := d.sdkClient.DescribeDomainExtensions(describeDomainExtensionsReq) d.logger.Debug("sdk request 'slb.DescribeDomainExtensions'", slog.Any("request", describeDomainExtensionsReq), slog.Any("response", describeDomainExtensionsResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'slb.DescribeDomainExtensions'") + return fmt.Errorf("failed to execute sdk request 'slb.DescribeDomainExtensions': %w", err) } // 遍历修改扩展域名 @@ -259,7 +258,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL setDomainExtensionAttributeResp, err := d.sdkClient.SetDomainExtensionAttribute(setDomainExtensionAttributeReq) d.logger.Debug("sdk request 'slb.SetDomainExtensionAttribute'", slog.Any("request", setDomainExtensionAttributeReq), slog.Any("response", setDomainExtensionAttributeResp)) if err != nil { - errs = append(errs, xerrors.Wrap(err, "failed to execute sdk request 'slb.SetDomainExtensionAttribute'")) + errs = append(errs, fmt.Errorf("failed to execute sdk request 'slb.SetDomainExtensionAttribute': %w", err)) continue } } diff --git a/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go b/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go index ad3a4824..4eb411fd 100644 --- a/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go +++ b/internal/pkg/core/deployer/providers/aliyun-dcdn/aliyun_dcdn.go @@ -10,7 +10,6 @@ import ( aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" alidcdn "github.com/alibabacloud-go/dcdn-20180115/v3/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" ) @@ -39,7 +38,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -75,7 +74,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setDcdnDomainSSLCertificateResp, err := d.sdkClient.SetDcdnDomainSSLCertificate(setDcdnDomainSSLCertificateReq) d.logger.Debug("sdk request 'dcdn.SetDcdnDomainSSLCertificate'", slog.Any("request", setDcdnDomainSSLCertificateReq), slog.Any("response", setDcdnDomainSSLCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'dcdn.SetDcdnDomainSSLCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'dcdn.SetDcdnDomainSSLCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go b/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go index bb2c810c..6052eee2 100644 --- a/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go +++ b/internal/pkg/core/deployer/providers/aliyun-esa/aliyun_esa.go @@ -11,7 +11,6 @@ import ( aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" aliesa "github.com/alibabacloud-go/esa-20240910/v2/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -45,12 +44,12 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := createSslUploader(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -79,7 +78,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -95,7 +94,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setCertificateResp, err := d.sdkClient.SetCertificate(setCertificateReq) d.logger.Debug("sdk request 'esa.SetCertificate'", slog.Any("request", setCertificateReq), slog.Any("response", setCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'esa.SetCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'esa.SetCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go b/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go index d69fd30d..8557068c 100644 --- a/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go +++ b/internal/pkg/core/deployer/providers/aliyun-fc/aliyun_fc.go @@ -10,7 +10,6 @@ import ( alifc3 "github.com/alibabacloud-go/fc-20230330/v4/client" alifc2 "github.com/alibabacloud-go/fc-open-20210406/v2/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" ) @@ -48,7 +47,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { clients, err := createSdkClients(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk clients") + return nil, fmt.Errorf("failed to create sdk clients: %w", err) } return &DeployerProvider{ @@ -80,7 +79,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, xerrors.Errorf("unsupported service version: %s", d.config.ServiceVersion) + return nil, fmt.Errorf("unsupported service version '%s'", d.config.ServiceVersion) } return &deployer.DeployResult{}, nil @@ -92,7 +91,7 @@ func (d *DeployerProvider) deployToFC3(ctx context.Context, certPEM string, priv getCustomDomainResp, err := d.sdkClients.FC3.GetCustomDomain(tea.String(d.config.Domain)) d.logger.Debug("sdk request 'fc.GetCustomDomain'", slog.Any("response", getCustomDomainResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'fc.GetCustomDomain'") + return fmt.Errorf("failed to execute sdk request 'fc.GetCustomDomain': %w", err) } // 更新自定义域名 @@ -111,7 +110,7 @@ func (d *DeployerProvider) deployToFC3(ctx context.Context, certPEM string, priv updateCustomDomainResp, err := d.sdkClients.FC3.UpdateCustomDomain(tea.String(d.config.Domain), updateCustomDomainReq) d.logger.Debug("sdk request 'fc.UpdateCustomDomain'", slog.Any("request", updateCustomDomainReq), slog.Any("response", updateCustomDomainResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'fc.UpdateCustomDomain'") + return fmt.Errorf("failed to execute sdk request 'fc.UpdateCustomDomain': %w", err) } return nil @@ -123,7 +122,7 @@ func (d *DeployerProvider) deployToFC2(ctx context.Context, certPEM string, priv getCustomDomainResp, err := d.sdkClients.FC2.GetCustomDomain(tea.String(d.config.Domain)) d.logger.Debug("sdk request 'fc.GetCustomDomain'", slog.Any("response", getCustomDomainResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'fc.GetCustomDomain'") + return fmt.Errorf("failed to execute sdk request 'fc.GetCustomDomain': %w", err) } // 更新自定义域名 @@ -140,7 +139,7 @@ func (d *DeployerProvider) deployToFC2(ctx context.Context, certPEM string, priv updateCustomDomainResp, err := d.sdkClients.FC2.UpdateCustomDomain(tea.String(d.config.Domain), updateCustomDomainReq) d.logger.Debug("sdk request 'fc.UpdateCustomDomain'", slog.Any("request", updateCustomDomainReq), slog.Any("response", updateCustomDomainResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'fc.UpdateCustomDomain'") + return fmt.Errorf("failed to execute sdk request 'fc.UpdateCustomDomain': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go b/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go index c67bf495..354c9601 100644 --- a/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go +++ b/internal/pkg/core/deployer/providers/aliyun-live/aliyun_live.go @@ -10,7 +10,6 @@ import ( aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" alilive "github.com/alibabacloud-go/live-20161101/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" ) @@ -41,7 +40,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -77,7 +76,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setLiveDomainSSLCertificateResp, err := d.sdkClient.SetLiveDomainCertificate(setLiveDomainSSLCertificateReq) d.logger.Debug("sdk request 'live.SetLiveDomainCertificate'", slog.Any("request", setLiveDomainSSLCertificateReq), slog.Any("response", setLiveDomainSSLCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'live.SetLiveDomainCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'live.SetLiveDomainCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go index 836a9d40..326273f8 100644 --- a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go +++ b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go @@ -10,7 +10,6 @@ import ( aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" alinlb "github.com/alibabacloud-go/nlb-20220430/v2/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -50,12 +49,12 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := createSslUploader(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -80,7 +79,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -98,7 +97,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -117,7 +116,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId getLoadBalancerAttributeResp, err := d.sdkClient.GetLoadBalancerAttribute(getLoadBalancerAttributeReq) d.logger.Debug("sdk request 'nlb.GetLoadBalancerAttribute'", slog.Any("request", getLoadBalancerAttributeReq), slog.Any("response", getLoadBalancerAttributeResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'nlb.GetLoadBalancerAttribute'") + return fmt.Errorf("failed to execute sdk request 'nlb.GetLoadBalancerAttribute': %w", err) } // 查询 TCPSSL 监听列表 @@ -135,7 +134,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId listListenersResp, err := d.sdkClient.ListListeners(listListenersReq) d.logger.Debug("sdk request 'nlb.ListListeners'", slog.Any("request", listListenersReq), slog.Any("response", listListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'nlb.ListListeners'") + return fmt.Errorf("failed to execute sdk request 'nlb.ListListeners': %w", err) } if listListenersResp.Body.Listeners != nil { @@ -194,7 +193,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL getListenerAttributeResp, err := d.sdkClient.GetListenerAttribute(getListenerAttributeReq) d.logger.Debug("sdk request 'nlb.GetListenerAttribute'", slog.Any("request", getListenerAttributeReq), slog.Any("response", getListenerAttributeResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'nlb.GetListenerAttribute'") + return fmt.Errorf("failed to execute sdk request 'nlb.GetListenerAttribute': %w", err) } // 修改监听的属性 @@ -206,7 +205,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL updateListenerAttributeResp, err := d.sdkClient.UpdateListenerAttribute(updateListenerAttributeReq) d.logger.Debug("sdk request 'nlb.UpdateListenerAttribute'", slog.Any("request", updateListenerAttributeReq), slog.Any("response", updateListenerAttributeResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'nlb.UpdateListenerAttribute'") + return fmt.Errorf("failed to execute sdk request 'nlb.UpdateListenerAttribute': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go b/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go index 8d2a9ff3..474fe5b3 100644 --- a/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go +++ b/internal/pkg/core/deployer/providers/aliyun-oss/aliyun_oss.go @@ -7,7 +7,6 @@ import ( "log/slog" "github.com/aliyun/aliyun-oss-go-sdk/oss" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" ) @@ -40,7 +39,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -80,7 +79,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE err := d.sdkClient.PutBucketCnameWithCertificate(d.config.Bucket, putBucketCnameWithCertificateReq) d.logger.Debug("sdk request 'oss.PutBucketCnameWithCertificate'", slog.Any("bucket", d.config.Bucket), slog.Any("request", putBucketCnameWithCertificateReq)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'oss.PutBucketCnameWithCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'oss.PutBucketCnameWithCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go b/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go index a1934429..48e52c26 100644 --- a/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go +++ b/internal/pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go @@ -9,7 +9,6 @@ import ( aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" alivod "github.com/alibabacloud-go/vod-20170321/v4/client" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" ) @@ -40,7 +39,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -73,7 +72,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setVodDomainSSLCertificateResp, err := d.sdkClient.SetVodDomainSSLCertificate(setVodDomainSSLCertificateReq) d.logger.Debug("sdk request 'live.SetVodDomainSSLCertificate'", slog.Any("request", setVodDomainSSLCertificateReq), slog.Any("response", setVodDomainSSLCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'live.SetVodDomainSSLCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'live.SetVodDomainSSLCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go b/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go index 5057b4b1..dfe2f27c 100644 --- a/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go +++ b/internal/pkg/core/deployer/providers/aliyun-waf/aliyun_waf.go @@ -10,7 +10,6 @@ import ( aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" aliwaf "github.com/alibabacloud-go/waf-openapi-20211001/v5/client" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -49,12 +48,12 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := createSslUploader(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -87,7 +86,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, xerrors.Errorf("unsupported service version: %s", d.config.ServiceVersion) + return nil, fmt.Errorf("unsupported service version '%s'", d.config.ServiceVersion) } return &deployer.DeployResult{}, nil @@ -97,7 +96,7 @@ func (d *DeployerProvider) deployToWAF3(ctx context.Context, certPEM string, pri // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return xerrors.Wrap(err, "failed to upload certificate file") + return fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -114,7 +113,7 @@ func (d *DeployerProvider) deployToWAF3(ctx context.Context, certPEM string, pri describeDefaultHttpsResp, err := d.sdkClient.DescribeDefaultHttps(describeDefaultHttpsReq) d.logger.Debug("sdk request 'waf.DescribeDefaultHttps'", slog.Any("request", describeDefaultHttpsReq), slog.Any("response", describeDefaultHttpsResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.DescribeDefaultHttps'") + return fmt.Errorf("failed to execute sdk request 'waf.DescribeDefaultHttps': %w", err) } // 修改默认 SSL/TLS 设置 @@ -133,7 +132,7 @@ func (d *DeployerProvider) deployToWAF3(ctx context.Context, certPEM string, pri modifyDefaultHttpsResp, err := d.sdkClient.ModifyDefaultHttps(modifyDefaultHttpsReq) d.logger.Debug("sdk request 'waf.ModifyDefaultHttps'", slog.Any("request", modifyDefaultHttpsReq), slog.Any("response", modifyDefaultHttpsResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.ModifyDefaultHttps'") + return fmt.Errorf("failed to execute sdk request 'waf.ModifyDefaultHttps': %w", err) } } else { // 指定接入域名 @@ -148,7 +147,7 @@ func (d *DeployerProvider) deployToWAF3(ctx context.Context, certPEM string, pri describeDomainDetailResp, err := d.sdkClient.DescribeDomainDetail(describeDomainDetailReq) d.logger.Debug("sdk request 'waf.DescribeDomainDetail'", slog.Any("request", describeDomainDetailReq), slog.Any("response", describeDomainDetailResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.DescribeDomainDetail'") + return fmt.Errorf("failed to execute sdk request 'waf.DescribeDomainDetail': %w", err) } // 修改 CNAME 接入资源 @@ -164,7 +163,7 @@ func (d *DeployerProvider) deployToWAF3(ctx context.Context, certPEM string, pri modifyDomainResp, err := d.sdkClient.ModifyDomain(modifyDomainReq) d.logger.Debug("sdk request 'waf.ModifyDomain'", slog.Any("request", modifyDomainReq), slog.Any("response", modifyDomainResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.ModifyDomain'") + return fmt.Errorf("failed to execute sdk request 'waf.ModifyDomain': %w", err) } } diff --git a/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go b/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go index 92eed06a..3e817dcf 100644 --- a/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go +++ b/internal/pkg/core/deployer/providers/aws-acm/aws_acm.go @@ -2,10 +2,9 @@ package awsacm import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/aws-acm" @@ -39,7 +38,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -63,7 +62,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 ACM upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } diff --git a/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go b/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go index 355e8aff..0808a4fb 100644 --- a/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go +++ b/internal/pkg/core/deployer/providers/aws-cloudfront/aws_cloudfront.go @@ -3,6 +3,7 @@ package awscloudfront import ( "context" "errors" + "fmt" "log/slog" aws "github.com/aws/aws-sdk-go-v2/aws" @@ -10,7 +11,6 @@ import ( awscred "github.com/aws/aws-sdk-go-v2/credentials" "github.com/aws/aws-sdk-go-v2/service/cloudfront" "github.com/aws/aws-sdk-go-v2/service/cloudfront/types" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -44,7 +44,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -53,7 +53,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -82,7 +82,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 ACM upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -95,7 +95,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getDistributionConfigResp, err := d.sdkClient.GetDistributionConfig(context.TODO(), getDistributionConfigReq) d.logger.Debug("sdk request 'cloudfront.GetDistributionConfig'", slog.Any("request", getDistributionConfigReq), slog.Any("response", getDistributionConfigResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cloudfront.GetDistributionConfig'") + return nil, fmt.Errorf("failed to execute sdk request 'cloudfront.GetDistributionConfig': %w", err) } // 更新分配配置 @@ -113,7 +113,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateDistributionResp, err := d.sdkClient.UpdateDistribution(context.TODO(), updateDistributionReq) d.logger.Debug("sdk request 'cloudfront.UpdateDistribution'", slog.Any("request", updateDistributionReq), slog.Any("response", updateDistributionResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cloudfront.UpdateDistribution'") + return nil, fmt.Errorf("failed to execute sdk request 'cloudfront.UpdateDistribution': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go b/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go index 928784da..16663f33 100644 --- a/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go +++ b/internal/pkg/core/deployer/providers/azure-keyvault/azure_keyvault.go @@ -12,7 +12,6 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -53,7 +52,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.TenantId, config.ClientId, config.ClientSecret, config.CloudName, config.KeyVaultName) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -64,7 +63,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { KeyVaultName: config.KeyVaultName, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -95,14 +94,14 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 转换证书格式 certPFX, err := certutil.TransformCertificateFromPEMToPFX(certPEM, privkeyPEM, "") if err != nil { - return nil, xerrors.Wrap(err, "failed to transform certificate from PEM to PFX") + return nil, fmt.Errorf("failed to transform certificate from PEM to PFX: %w", err) } if d.config.CertificateName == "" { // 上传证书到 KeyVault upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -114,7 +113,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE if err != nil { var respErr *azcore.ResponseError if !errors.As(err, &respErr) || (respErr.ErrorCode != "ResourceNotFound" && respErr.ErrorCode != "CertificateNotFound") { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'keyvault.GetCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'keyvault.GetCertificate': %w", err) } } else { oldCertX509, err := x509.ParseCertificate(getCertificateResp.CER) @@ -142,7 +141,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE importCertificateResp, err := d.sdkClient.ImportCertificate(context.TODO(), d.config.CertificateName, importCertificateParams, nil) d.logger.Debug("sdk request 'keyvault.ImportCertificate'", slog.String("request.certificateName", d.config.CertificateName), slog.Any("request.parameters", importCertificateParams), slog.Any("response", importCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'keyvault.ImportCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'keyvault.ImportCertificate': %w", err) } } diff --git a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go index d3a8e3a2..90084f6b 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go +++ b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go @@ -10,7 +10,6 @@ import ( bceappblb "github.com/baidubce/bce-sdk-go/services/appblb" "github.com/google/uuid" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -54,7 +53,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -62,7 +61,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretAccessKey: config.SecretAccessKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -86,7 +85,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -104,7 +103,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -120,7 +119,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeLoadBalancerDetailResp, err := d.sdkClient.DescribeLoadBalancerDetail(d.config.LoadbalancerId) d.logger.Debug("sdk request 'appblb.DescribeLoadBalancerAttribute'", slog.String("blbId", d.config.LoadbalancerId), slog.Any("response", describeLoadBalancerDetailResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'appblb.DescribeLoadBalancerDetail'") + return fmt.Errorf("failed to execute sdk request 'appblb.DescribeLoadBalancerDetail': %w", err) } // 获取全部 HTTPS/SSL 监听端口 @@ -182,7 +181,7 @@ func (d *DeployerProvider) deployToListener(ctx context.Context, cloudCertId str describeAppAllListenersResp, err := d.sdkClient.DescribeAppAllListeners(d.config.LoadbalancerId, describeAppAllListenersRequest) d.logger.Debug("sdk request 'appblb.DescribeAppAllListeners'", slog.String("blbId", d.config.LoadbalancerId), slog.Any("request", describeAppAllListenersRequest), slog.Any("response", describeAppAllListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'appblb.DescribeAppAllListeners'") + return fmt.Errorf("failed to execute sdk request 'appblb.DescribeAppAllListeners': %w", err) } // 获取全部 HTTPS/SSL 监听端口 @@ -230,7 +229,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL case "SSL": return d.updateSslListenerCertificate(ctx, cloudLoadbalancerId, cloudListenerPort, cloudCertId) default: - return fmt.Errorf("unsupported listener type: %s", cloudListenerType) + return fmt.Errorf("unsupported listener type '%s'", cloudListenerType) } } @@ -244,7 +243,7 @@ func (d *DeployerProvider) updateHttpsListenerCertificate(ctx context.Context, c describeAppHTTPSListenersResp, err := d.sdkClient.DescribeAppHTTPSListeners(cloudLoadbalancerId, describeAppHTTPSListenersReq) d.logger.Debug("sdk request 'appblb.DescribeAppHTTPSListeners'", slog.String("blbId", cloudLoadbalancerId), slog.Any("request", describeAppHTTPSListenersReq), slog.Any("response", describeAppHTTPSListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'appblb.DescribeAppHTTPSListeners'") + return fmt.Errorf("failed to execute sdk request 'appblb.DescribeAppHTTPSListeners': %w", err) } else if len(describeAppHTTPSListenersResp.ListenerList) == 0 { return fmt.Errorf("listener %s:%d not found", cloudLoadbalancerId, cloudHttpsListenerPort) } @@ -262,7 +261,7 @@ func (d *DeployerProvider) updateHttpsListenerCertificate(ctx context.Context, c err := d.sdkClient.UpdateAppHTTPSListener(cloudLoadbalancerId, updateAppHTTPSListenerReq) d.logger.Debug("sdk request 'appblb.UpdateAppHTTPSListener'", slog.Any("request", updateAppHTTPSListenerReq)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'appblb.UpdateAppHTTPSListener'") + return fmt.Errorf("failed to execute sdk request 'appblb.UpdateAppHTTPSListener': %w", err) } } else { // 指定 SNI,需部署到扩展域名 @@ -289,7 +288,7 @@ func (d *DeployerProvider) updateHttpsListenerCertificate(ctx context.Context, c err := d.sdkClient.UpdateAppHTTPSListener(cloudLoadbalancerId, updateAppHTTPSListenerReq) d.logger.Debug("sdk request 'appblb.UpdateAppHTTPSListener'", slog.Any("request", updateAppHTTPSListenerReq)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'appblb.UpdateAppHTTPSListener'") + return fmt.Errorf("failed to execute sdk request 'appblb.UpdateAppHTTPSListener': %w", err) } } @@ -307,7 +306,7 @@ func (d *DeployerProvider) updateSslListenerCertificate(ctx context.Context, clo err := d.sdkClient.UpdateAppSSLListener(cloudLoadbalancerId, updateAppSSLListenerReq) d.logger.Debug("sdk request 'appblb.UpdateAppSSLListener'", slog.Any("request", updateAppSSLListenerReq)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'appblb.UpdateAppSSLListener'") + return fmt.Errorf("failed to execute sdk request 'appblb.UpdateAppSSLListener': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go index fe6a4cd8..8c350492 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go +++ b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go @@ -10,7 +10,6 @@ import ( bceblb "github.com/baidubce/bce-sdk-go/services/blb" "github.com/google/uuid" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -54,7 +53,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -62,7 +61,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretAccessKey: config.SecretAccessKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -86,7 +85,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -104,7 +103,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -120,7 +119,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeLoadBalancerDetailResp, err := d.sdkClient.DescribeLoadBalancerDetail(d.config.LoadbalancerId) d.logger.Debug("sdk request 'blb.DescribeLoadBalancerAttribute'", slog.String("blbId", d.config.LoadbalancerId), slog.Any("response", describeLoadBalancerDetailResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'blb.DescribeLoadBalancerDetail'") + return fmt.Errorf("failed to execute sdk request 'blb.DescribeLoadBalancerDetail': %w", err) } // 获取全部 HTTPS/SSL 监听端口 @@ -182,7 +181,7 @@ func (d *DeployerProvider) deployToListener(ctx context.Context, cloudCertId str describeAllListenersResp, err := d.sdkClient.DescribeAllListeners(d.config.LoadbalancerId, describeAllListenersRequest) d.logger.Debug("sdk request 'blb.DescribeAllListeners'", slog.String("blbId", d.config.LoadbalancerId), slog.Any("request", describeAllListenersRequest), slog.Any("response", describeAllListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'blb.DescribeAllListeners'") + return fmt.Errorf("failed to execute sdk request 'blb.DescribeAllListeners': %w", err) } // 获取全部 HTTPS/SSL 监听端口 @@ -230,7 +229,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL case "SSL": return d.updateSslListenerCertificate(ctx, cloudLoadbalancerId, cloudListenerPort, cloudCertId) default: - return fmt.Errorf("unsupported listener type: %s", cloudListenerType) + return fmt.Errorf("unsupported listener type '%s'", cloudListenerType) } } @@ -244,7 +243,7 @@ func (d *DeployerProvider) updateHttpsListenerCertificate(ctx context.Context, c describeHTTPSListenersResp, err := d.sdkClient.DescribeHTTPSListeners(cloudLoadbalancerId, describeHTTPSListenersReq) d.logger.Debug("sdk request 'blb.DescribeHTTPSListeners'", slog.String("blbId", cloudLoadbalancerId), slog.Any("request", describeHTTPSListenersReq), slog.Any("response", describeHTTPSListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'blb.DescribeHTTPSListeners'") + return fmt.Errorf("failed to execute sdk request 'blb.DescribeHTTPSListeners': %w", err) } else if len(describeHTTPSListenersResp.ListenerList) == 0 { return fmt.Errorf("listener %s:%d not found", cloudLoadbalancerId, cloudHttpsListenerPort) } @@ -262,7 +261,7 @@ func (d *DeployerProvider) updateHttpsListenerCertificate(ctx context.Context, c err := d.sdkClient.UpdateHTTPSListener(cloudLoadbalancerId, updateHTTPSListenerReq) d.logger.Debug("sdk request 'blb.UpdateHTTPSListener'", slog.Any("request", updateHTTPSListenerReq)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'blb.UpdateHTTPSListener'") + return fmt.Errorf("failed to execute sdk request 'blb.UpdateHTTPSListener': %w", err) } } else { // 指定 SNI,需部署到扩展域名 @@ -289,7 +288,7 @@ func (d *DeployerProvider) updateHttpsListenerCertificate(ctx context.Context, c err := d.sdkClient.UpdateHTTPSListener(cloudLoadbalancerId, updateHTTPSListenerReq) d.logger.Debug("sdk request 'blb.UpdateHTTPSListener'", slog.Any("request", updateHTTPSListenerReq)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'blb.UpdateHTTPSListener'") + return fmt.Errorf("failed to execute sdk request 'blb.UpdateHTTPSListener': %w", err) } } @@ -307,7 +306,7 @@ func (d *DeployerProvider) updateSslListenerCertificate(ctx context.Context, clo err := d.sdkClient.UpdateSSLListener(cloudLoadbalancerId, updateSSLListenerReq) d.logger.Debug("sdk request 'blb.UpdateSSLListener'", slog.Any("request", updateSSLListenerReq)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'blb.UpdateSSLListener'") + return fmt.Errorf("failed to execute sdk request 'blb.UpdateSSLListener': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go b/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go index 35eb084e..7ef78fb1 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go +++ b/internal/pkg/core/deployer/providers/baiducloud-cdn/baiducloud_cdn.go @@ -8,7 +8,6 @@ import ( bcecdn "github.com/baidubce/bce-sdk-go/services/cdn" bcecdnapi "github.com/baidubce/bce-sdk-go/services/cdn/api" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" ) @@ -37,7 +36,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -70,7 +69,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE ) d.logger.Debug("sdk request 'cdn.PutCert'", slog.String("request.domain", d.config.Domain), slog.Any("response", putCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.PutCert'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.PutCert': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go b/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go index 5b754a8a..200d34ec 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go +++ b/internal/pkg/core/deployer/providers/baiducloud-cert/baiducloud_cert.go @@ -2,10 +2,9 @@ package baiducloudcert import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/baiducloud-cert" @@ -36,7 +35,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretAccessKey: config.SecretAccessKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -59,7 +58,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CAS upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } diff --git a/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go b/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go index cdf1e8df..95c0f9f4 100644 --- a/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go +++ b/internal/pkg/core/deployer/providers/baishan-cdn/baishan_cdn.go @@ -10,8 +10,6 @@ import ( "strings" "time" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" bssdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/baishan" ) @@ -41,7 +39,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiToken) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -86,7 +84,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } if certificateId == "" { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'baishan.CreateCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'baishan.CreateCertificate': %w", err) } } else { certificateId = createCertificateResp.Data.CertId.String() @@ -101,7 +99,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getDomainConfigResp, err := d.sdkClient.GetDomainConfig(getDomainConfigReq) d.logger.Debug("sdk request 'baishan.GetDomainConfig'", slog.Any("request", getDomainConfigReq), slog.Any("response", getDomainConfigResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'baishan.GetDomainConfig'") + return nil, fmt.Errorf("failed to execute sdk request 'baishan.GetDomainConfig': %w", err) } else if len(getDomainConfigResp.Data) == 0 { return nil, errors.New("domain config not found") } @@ -122,7 +120,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setDomainConfigResp, err := d.sdkClient.SetDomainConfig(setDomainConfigReq) d.logger.Debug("sdk request 'baishan.SetDomainConfig'", slog.Any("request", setDomainConfigReq), slog.Any("response", setDomainConfigResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'baishan.SetDomainConfig'") + return nil, fmt.Errorf("failed to execute sdk request 'baishan.SetDomainConfig': %w", err) } } else { // 替换证书 @@ -136,7 +134,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) d.logger.Debug("sdk request 'baishan.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'baishan.CreateCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'baishan.CreateCertificate': %w", err) } } diff --git a/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go b/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go index f6f7aa19..34df198f 100644 --- a/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go +++ b/internal/pkg/core/deployer/providers/baotapanel-console/baotapanel_console.go @@ -4,11 +4,10 @@ import ( "context" "crypto/tls" "errors" + "fmt" "log/slog" "net/url" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" btsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/btpanel" ) @@ -39,7 +38,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiUrl, config.ApiKey, config.AllowInsecureConnections) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -67,7 +66,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE configSavePanelSSLResp, err := d.sdkClient.ConfigSavePanelSSL(configSavePanelSSLReq) d.logger.Debug("sdk request 'bt.ConfigSavePanelSSL'", slog.Any("request", configSavePanelSSLReq), slog.Any("response", configSavePanelSSLResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'bt.ConfigSavePanelSSL'") + return nil, fmt.Errorf("failed to execute sdk request 'bt.ConfigSavePanelSSL': %w", err) } if d.config.AutoRestart { diff --git a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go index bd806a95..a06d32fe 100644 --- a/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go +++ b/internal/pkg/core/deployer/providers/baotapanel-site/baotapanel_site.go @@ -8,8 +8,6 @@ import ( "log/slog" "net/url" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" btsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/btpanel" sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" @@ -45,7 +43,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiUrl, config.ApiKey, config.AllowInsecureConnections) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -82,7 +80,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE siteSetSSLResp, err := d.sdkClient.SiteSetSSL(siteSetSSLReq) d.logger.Debug("sdk request 'bt.SiteSetSSL'", slog.Any("request", siteSetSSLReq), slog.Any("response", siteSetSSLResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'bt.SiteSetSSL'") + return nil, fmt.Errorf("failed to execute sdk request 'bt.SiteSetSSL': %w", err) } } @@ -100,7 +98,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE sslCertSaveCertResp, err := d.sdkClient.SSLCertSaveCert(sslCertSaveCertReq) d.logger.Debug("sdk request 'bt.SSLCertSaveCert'", slog.Any("request", sslCertSaveCertReq), slog.Any("response", sslCertSaveCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'bt.SSLCertSaveCert'") + return nil, fmt.Errorf("failed to execute sdk request 'bt.SSLCertSaveCert': %w", err) } // 设置站点证书 @@ -115,12 +113,12 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE sslSetBatchCertToSiteResp, err := d.sdkClient.SSLSetBatchCertToSite(sslSetBatchCertToSiteReq) d.logger.Debug("sdk request 'bt.SSLSetBatchCertToSite'", slog.Any("request", sslSetBatchCertToSiteReq), slog.Any("response", sslSetBatchCertToSiteResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'bt.SSLSetBatchCertToSite'") + return nil, fmt.Errorf("failed to execute sdk request 'bt.SSLSetBatchCertToSite': %w", err) } } default: - return nil, fmt.Errorf("unsupported site type: %s", d.config.SiteType) + return nil, fmt.Errorf("unsupported site type '%s'", d.config.SiteType) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go index f60b7db8..e2bfd696 100644 --- a/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go +++ b/internal/pkg/core/deployer/providers/bunny-cdn/bunny_cdn.go @@ -3,10 +3,9 @@ package bunnycdn import ( "context" "encoding/base64" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" bunnysdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/bunny" ) @@ -60,7 +59,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE createCertificateResp, err := d.sdkClient.AddCustomCertificate(createCertificateReq) d.logger.Debug("sdk request 'bunny.AddCustomCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'bunny.AddCustomCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'bunny.AddCustomCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go index 8ffe1236..d74f6c60 100644 --- a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go +++ b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go @@ -3,11 +3,11 @@ package bytepluscdn import ( "context" "errors" + "fmt" "log/slog" "strings" bpcdn "github.com/byteplus-sdk/byteplus-sdk-golang/service/cdn" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -46,7 +46,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -71,7 +71,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CDN upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -86,7 +86,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE describeCertConfigResp, err := d.sdkClient.DescribeCertConfig(describeCertConfigReq) d.logger.Debug("sdk request 'cdn.DescribeCertConfig'", slog.Any("request", describeCertConfigReq), slog.Any("response", describeCertConfigResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.DescribeCertConfig'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.DescribeCertConfig': %w", err) } if describeCertConfigResp.Result.CertNotConfig != nil { diff --git a/internal/pkg/core/deployer/providers/cachefly/cachefly.go b/internal/pkg/core/deployer/providers/cachefly/cachefly.go index ff10166a..e3e819d7 100644 --- a/internal/pkg/core/deployer/providers/cachefly/cachefly.go +++ b/internal/pkg/core/deployer/providers/cachefly/cachefly.go @@ -3,10 +3,9 @@ package cachefly import ( "context" "errors" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" cfsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/cachefly" ) @@ -31,7 +30,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiToken) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -59,7 +58,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) d.logger.Debug("sdk request 'cachefly.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cachefly.CreateCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'cachefly.CreateCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go b/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go index 3c5f2b72..788d18d5 100644 --- a/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go +++ b/internal/pkg/core/deployer/providers/cdnfly/cdnfly.go @@ -9,8 +9,6 @@ import ( "net/url" "time" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" cfsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/cdnfly" ) @@ -47,7 +45,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiUrl, config.ApiKey, config.ApiSecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -80,7 +78,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -99,7 +97,7 @@ func (d *DeployerProvider) deployToSite(ctx context.Context, certPEM string, pri getSiteResp, err := d.sdkClient.GetSite(getSiteReq) d.logger.Debug("sdk request 'cdnfly.GetSite'", slog.Any("request", getSiteReq), slog.Any("response", getSiteResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'cdnfly.GetSite'") + return fmt.Errorf("failed to execute sdk request 'cdnfly.GetSite': %w", err) } // 添加单个证书 @@ -113,7 +111,7 @@ func (d *DeployerProvider) deployToSite(ctx context.Context, certPEM string, pri createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) d.logger.Debug("sdk request 'cdnfly.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'cdnfly.CreateCertificate'") + return fmt.Errorf("failed to execute sdk request 'cdnfly.CreateCertificate': %w", err) } // 修改单个网站 @@ -130,7 +128,7 @@ func (d *DeployerProvider) deployToSite(ctx context.Context, certPEM string, pri updateSiteResp, err := d.sdkClient.UpdateSite(updateSiteReq) d.logger.Debug("sdk request 'cdnfly.UpdateSite'", slog.Any("request", updateSiteReq), slog.Any("response", updateSiteResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'cdnfly.UpdateSite'") + return fmt.Errorf("failed to execute sdk request 'cdnfly.UpdateSite': %w", err) } return nil @@ -153,7 +151,7 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq) d.logger.Debug("sdk request 'cdnfly.UpdateCertificate'", slog.Any("request", updateCertificateReq), slog.Any("response", updateCertificateResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'cdnfly.UpdateCertificate'") + return fmt.Errorf("failed to execute sdk request 'cdnfly.UpdateCertificate': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go b/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go index aba4e697..efcf4b7c 100644 --- a/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go +++ b/internal/pkg/core/deployer/providers/dogecloud-cdn/dogecloud_cdn.go @@ -2,11 +2,10 @@ package dogecloudcdn import ( "context" + "fmt" "log/slog" "strconv" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/dogecloud" @@ -43,7 +42,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -68,7 +67,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CDN upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -79,7 +78,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE bindCdnCertResp, err := d.sdkClient.BindCdnCertWithDomain(bindCdnCertId, d.config.Domain) d.logger.Debug("sdk request 'cdn.BindCdnCert'", slog.Int64("request.certId", bindCdnCertId), slog.String("request.domain", d.config.Domain), slog.Any("response", bindCdnCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.BindCdnCert'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.BindCdnCert': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go b/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go index 8a02e6fc..3dd202a3 100644 --- a/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go +++ b/internal/pkg/core/deployer/providers/edgio-applications/edgio_applications.go @@ -2,11 +2,11 @@ package edgioapplications import ( "context" + "fmt" "log/slog" edgio "github.com/Edgio/edgio-api/applications/v7" edgiodtos "github.com/Edgio/edgio-api/applications/v7/dtos" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" @@ -36,7 +36,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ClientId, config.ClientSecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -73,7 +73,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE uploadTlsCertResp, err := d.sdkClient.UploadTlsCert(uploadTlsCertReq) d.logger.Debug("sdk request 'edgio.UploadTlsCert'", slog.Any("request", uploadTlsCertReq), slog.Any("response", uploadTlsCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'edgio.UploadTlsCert'") + return nil, fmt.Errorf("failed to execute sdk request 'edgio.UploadTlsCert': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go b/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go index ee921de9..2f36c35a 100644 --- a/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go +++ b/internal/pkg/core/deployer/providers/gcore-cdn/gcore_cdn.go @@ -3,12 +3,12 @@ package gcorecdn import ( "context" "errors" + "fmt" "log/slog" "strconv" gprovider "github.com/G-Core/gcorelabscdn-go/gcore/provider" gresources "github.com/G-Core/gcorelabscdn-go/resources" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -39,14 +39,14 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiToken) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ ApiToken: config.ApiToken, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -75,7 +75,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CDN upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -85,7 +85,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getResourceResp, err := d.sdkClient.Get(context.TODO(), d.config.ResourceId) d.logger.Debug("sdk request 'resources.Get'", slog.Any("resourceId", d.config.ResourceId), slog.Any("response", getResourceResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'resources.Get'") + return nil, fmt.Errorf("failed to execute sdk request 'resources.Get': %w", err) } // 更新 CDN 资源详情 @@ -113,7 +113,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateResourceResp, err := d.sdkClient.Update(context.TODO(), d.config.ResourceId, updateResourceReq) d.logger.Debug("sdk request 'resources.Update'", slog.Int64("resourceId", d.config.ResourceId), slog.Any("request", updateResourceReq), slog.Any("response", updateResourceResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'resources.Update'") + return nil, fmt.Errorf("failed to execute sdk request 'resources.Update': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go index ce07f9ee..54dc0d58 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-cdn/huaweicloud_cdn.go @@ -2,13 +2,13 @@ package huaweicloudcdn import ( "context" + "fmt" "log/slog" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" hccdn "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cdn/v2" hccdnmodel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cdn/v2/model" hccdnregion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cdn/v2/region" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -47,7 +47,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { config.Region, ) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -55,7 +55,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretAccessKey: config.SecretAccessKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -80,7 +80,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SCM upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -93,7 +93,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE showDomainFullConfigResp, err := d.sdkClient.ShowDomainFullConfig(showDomainFullConfigReq) d.logger.Debug("sdk request 'cdn.ShowDomainFullConfig'", slog.Any("request", showDomainFullConfigReq), slog.Any("response", showDomainFullConfigResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.ShowDomainFullConfig'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.ShowDomainFullConfig': %w", err) } // 更新加速域名配置 @@ -114,7 +114,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateDomainMultiCertificatesResp, err := d.sdkClient.UpdateDomainMultiCertificates(updateDomainMultiCertificatesReq) d.logger.Debug("sdk request 'cdn.UploadDomainMultiCertificates'", slog.Any("request", updateDomainMultiCertificatesReq), slog.Any("response", updateDomainMultiCertificatesResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.UploadDomainMultiCertificates'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.UploadDomainMultiCertificates': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go index 6cdb63d1..fb7fdc18 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go @@ -14,7 +14,6 @@ import ( hciam "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iam/v3" hciammodel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iam/v3/model" hciamregion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iam/v3/region" - xerrors "github.com/pkg/errors" "golang.org/x/exp/slices" "github.com/usual2970/certimate/internal/pkg/core/deployer" @@ -59,7 +58,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -68,7 +67,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -108,7 +107,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -133,7 +132,7 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq) d.logger.Debug("sdk request 'elb.UpdateCertificate'", slog.Any("request", updateCertificateReq), slog.Any("response", updateCertificateResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'elb.UpdateCertificate'") + return fmt.Errorf("failed to execute sdk request 'elb.UpdateCertificate': %w", err) } return nil @@ -152,7 +151,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPEM str showLoadBalancerResp, err := d.sdkClient.ShowLoadBalancer(showLoadBalancerReq) d.logger.Debug("sdk request 'elb.ShowLoadBalancer'", slog.Any("request", showLoadBalancerReq), slog.Any("response", showLoadBalancerResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'elb.ShowLoadBalancer'") + return fmt.Errorf("failed to execute sdk request 'elb.ShowLoadBalancer': %w", err) } // 查询监听器列表 @@ -170,7 +169,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPEM str listListenersResp, err := d.sdkClient.ListListeners(listListenersReq) d.logger.Debug("sdk request 'elb.ListListeners'", slog.Any("request", listListenersReq), slog.Any("response", listListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'elb.ListListeners'") + return fmt.Errorf("failed to execute sdk request 'elb.ListListeners': %w", err) } if listListenersResp.Listeners != nil { @@ -189,7 +188,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPEM str // 上传证书到 SCM upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return xerrors.Wrap(err, "failed to upload certificate file") + return fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -223,7 +222,7 @@ func (d *DeployerProvider) deployToListener(ctx context.Context, certPEM string, // 上传证书到 SCM upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return xerrors.Wrap(err, "failed to upload certificate file") + return fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -245,7 +244,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL showListenerResp, err := d.sdkClient.ShowListener(showListenerReq) d.logger.Debug("sdk request 'elb.ShowListener'", slog.Any("request", showListenerReq), slog.Any("response", showListenerResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'elb.ShowListener'") + return fmt.Errorf("failed to execute sdk request 'elb.ShowListener': %w", err) } // 更新监听器 @@ -270,7 +269,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL listOldCertificateResp, err := d.sdkClient.ListCertificates(listOldCertificateReq) d.logger.Debug("sdk request 'elb.ListCertificates'", slog.Any("request", listOldCertificateReq), slog.Any("response", listOldCertificateResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'elb.ListCertificates'") + return fmt.Errorf("failed to execute sdk request 'elb.ListCertificates': %w", err) } showNewCertificateReq := &hcelbmodel.ShowCertificateRequest{ @@ -279,7 +278,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL showNewCertificateResp, err := d.sdkClient.ShowCertificate(showNewCertificateReq) d.logger.Debug("sdk request 'elb.ShowCertificate'", slog.Any("request", showNewCertificateReq), slog.Any("response", showNewCertificateResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'elb.ShowCertificate'") + return fmt.Errorf("failed to execute sdk request 'elb.ShowCertificate': %w", err) } for _, certificate := range *listOldCertificateResp.Certificates { @@ -309,7 +308,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL updateListenerResp, err := d.sdkClient.UpdateListener(updateListenerReq) d.logger.Debug("sdk request 'elb.UpdateListener'", slog.Any("request", updateListenerReq), slog.Any("response", updateListenerResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'elb.UpdateListener'") + return fmt.Errorf("failed to execute sdk request 'elb.UpdateListener': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go b/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go index a514eb20..c8c208ad 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-scm/huaweicloud_scm.go @@ -2,10 +2,9 @@ package huaweicloudscm import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-scm" @@ -36,7 +35,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretAccessKey: config.SecretAccessKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -60,7 +59,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SCM upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } diff --git a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go index 1d1d3164..3191a4e7 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go @@ -15,7 +15,6 @@ import ( hcwaf "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1" hcwafmodel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1/model" hcwafregion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1/region" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -56,7 +55,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -65,7 +64,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -90,7 +89,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 WAF upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -113,7 +112,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -132,7 +131,7 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri showCertificateResp, err := d.sdkClient.ShowCertificate(showCertificateReq) d.logger.Debug("sdk request 'waf.ShowCertificate'", slog.Any("request", showCertificateReq), slog.Any("response", showCertificateResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.ShowCertificate'") + return fmt.Errorf("failed to execute sdk request 'waf.ShowCertificate': %w", err) } // 更新证书 @@ -148,7 +147,7 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq) d.logger.Debug("sdk request 'waf.UpdateCertificate'", slog.Any("request", updateCertificateReq), slog.Any("response", updateCertificateResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.UpdateCertificate'") + return fmt.Errorf("failed to execute sdk request 'waf.UpdateCertificate': %w", err) } return nil @@ -162,7 +161,7 @@ func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPEM stri // 上传证书到 WAF upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return xerrors.Wrap(err, "failed to upload certificate file") + return fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -181,7 +180,7 @@ func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPEM stri listHostResp, err := d.sdkClient.ListHost(listHostReq) d.logger.Debug("sdk request 'waf.ListHost'", slog.Any("request", listHostReq), slog.Any("response", listHostResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.ListHost'") + return fmt.Errorf("failed to execute sdk request 'waf.ListHost': %w", err) } if listHostResp.Items != nil { @@ -215,7 +214,7 @@ func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPEM stri updateHostResp, err := d.sdkClient.UpdateHost(updateHostReq) d.logger.Debug("sdk request 'waf.UpdateHost'", slog.Any("request", updateHostReq), slog.Any("response", updateHostResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.UpdateHost'") + return fmt.Errorf("failed to execute sdk request 'waf.UpdateHost': %w", err) } return nil @@ -229,7 +228,7 @@ func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPEM stri // 上传证书到 WAF upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return xerrors.Wrap(err, "failed to upload certificate file") + return fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -248,7 +247,7 @@ func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPEM stri listPremiumHostResp, err := d.sdkClient.ListPremiumHost(listPremiumHostReq) d.logger.Debug("sdk request 'waf.ListPremiumHost'", slog.Any("request", listPremiumHostReq), slog.Any("response", listPremiumHostResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.ListPremiumHost'") + return fmt.Errorf("failed to execute sdk request 'waf.ListPremiumHost': %w", err) } if listPremiumHostResp.Items != nil { @@ -282,7 +281,7 @@ func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPEM stri updatePremiumHostResp, err := d.sdkClient.UpdatePremiumHost(updatePremiumHostReq) d.logger.Debug("sdk request 'waf.UpdatePremiumHost'", slog.Any("request", updatePremiumHostReq), slog.Any("response", updatePremiumHostResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'waf.UpdatePremiumHost'") + return fmt.Errorf("failed to execute sdk request 'waf.UpdatePremiumHost': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go index 5541c779..339bacc8 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go +++ b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go @@ -12,7 +12,6 @@ import ( jdlbapi "github.com/jdcloud-api/jdcloud-sdk-go/services/lb/apis" jdlbclient "github.com/jdcloud-api/jdcloud-sdk-go/services/lb/client" jdlbmodel "github.com/jdcloud-api/jdcloud-sdk-go/services/lb/models" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -56,7 +55,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -64,7 +63,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { AccessKeySecret: config.AccessKeySecret, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -89,7 +88,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -107,7 +106,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -124,7 +123,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeLoadBalancerResp, err := d.sdkClient.DescribeLoadBalancer(describeLoadBalancerReq) d.logger.Debug("sdk request 'lb.DescribeLoadBalancer'", slog.Any("request", describeLoadBalancerReq), slog.Any("response", describeLoadBalancerResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'lb.DescribeLoadBalancer'") + return fmt.Errorf("failed to execute sdk request 'lb.DescribeLoadBalancer': %w", err) } // 查询监听器列表 @@ -140,7 +139,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeListenersResp, err := d.sdkClient.DescribeListeners(describeListenersReq) d.logger.Debug("sdk request 'lb.DescribeListeners'", slog.Any("request", describeListenersReq), slog.Any("response", describeListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'lb.DescribeListeners'") + return fmt.Errorf("failed to execute sdk request 'lb.DescribeListeners': %w", err) } for _, listener := range describeListenersResp.Result.Listeners { @@ -198,7 +197,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL describeListenerResp, err := d.sdkClient.DescribeListener(describeListenerReq) d.logger.Debug("sdk request 'lb.DescribeListener'", slog.Any("request", describeListenerReq), slog.Any("response", describeListenerResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'lb.DescribeListener'") + return fmt.Errorf("failed to execute sdk request 'lb.DescribeListener': %w", err) } if d.config.Domain == "" { @@ -211,7 +210,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL updateListenerResp, err := d.sdkClient.UpdateListener(updateListenerReq) d.logger.Debug("sdk request 'lb.UpdateListener'", slog.Any("request", updateListenerReq), slog.Any("response", updateListenerResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'lb.UpdateListener'") + return fmt.Errorf("failed to execute sdk request 'lb.UpdateListener': %w", err) } } else { // 指定 SNI,需部署到扩展证书 @@ -239,7 +238,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL updateListenerCertificatesResp, err := d.sdkClient.UpdateListenerCertificates(updateListenerCertificatesReq) d.logger.Debug("sdk request 'lb.UpdateListenerCertificates'", slog.Any("request", updateListenerCertificatesReq), slog.Any("response", updateListenerCertificatesResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'lb.UpdateListenerCertificates'") + return fmt.Errorf("failed to execute sdk request 'lb.UpdateListenerCertificates': %w", err) } } diff --git a/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go b/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go index 767153b7..10ccf19d 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go +++ b/internal/pkg/core/deployer/providers/jdcloud-cdn/jdcloud_cdn.go @@ -2,12 +2,12 @@ package jdcloudcdn import ( "context" + "fmt" "log/slog" jdcore "github.com/jdcloud-api/jdcloud-sdk-go/core" jdcdnapi "github.com/jdcloud-api/jdcloud-sdk-go/services/cdn/apis" jdcdnclient "github.com/jdcloud-api/jdcloud-sdk-go/services/cdn/client" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -39,7 +39,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -47,7 +47,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { AccessKeySecret: config.AccessKeySecret, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -75,13 +75,13 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE queryDomainConfigResp, err := d.sdkClient.QueryDomainConfig(queryDomainConfigReq) d.logger.Debug("sdk request 'cdn.QueryDomainConfig'", slog.Any("request", queryDomainConfigReq), slog.Any("response", queryDomainConfigResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.QueryDomainConfig'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.QueryDomainConfig': %w", err) } // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -98,7 +98,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setHttpTypeResp, err := d.sdkClient.SetHttpType(setHttpTypeReq) d.logger.Debug("sdk request 'cdn.QueryDomainConfig'", slog.Any("request", setHttpTypeReq), slog.Any("response", setHttpTypeResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.SetHttpType'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.SetHttpType': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go b/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go index 3c9d3dc7..24e5bc7a 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go +++ b/internal/pkg/core/deployer/providers/jdcloud-live/jdcloud_live.go @@ -2,12 +2,12 @@ package jdcloudlive import ( "context" + "fmt" "log/slog" jdcore "github.com/jdcloud-api/jdcloud-sdk-go/core" jdliveapi "github.com/jdcloud-api/jdcloud-sdk-go/services/live/apis" jdliveclient "github.com/jdcloud-api/jdcloud-sdk-go/services/live/client" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" ) @@ -36,7 +36,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -64,7 +64,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setLiveDomainCertificateResp, err := d.sdkClient.SetLiveDomainCertificate(setLiveDomainCertificateReq) d.logger.Debug("sdk request 'live.SetLiveDomainCertificate'", slog.Any("request", setLiveDomainCertificateReq), slog.Any("response", setLiveDomainCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'live.SetLiveDomainCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'live.SetLiveDomainCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go index 54e8fd63..61c5a6f6 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go +++ b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go @@ -2,6 +2,7 @@ package jdcloudvod import ( "context" + "errors" "fmt" "log/slog" "strconv" @@ -10,7 +11,6 @@ import ( jdcore "github.com/jdcloud-api/jdcloud-sdk-go/core" jdvodapi "github.com/jdcloud-api/jdcloud-sdk-go/services/vod/apis" jdvodclient "github.com/jdcloud-api/jdcloud-sdk-go/services/vod/client" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" ) @@ -39,7 +39,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -71,7 +71,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE listDomainsResp, err := d.sdkClient.ListDomains(listDomainsReq) d.logger.Debug("sdk request 'vod.ListDomains'", slog.Any("request", listDomainsReq), slog.Any("response", listDomainsResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'vod.ListDomains'") + return nil, fmt.Errorf("failed to execute sdk request 'vod.ListDomains': %w", err) } for _, domain := range listDomainsResp.Result.Content { @@ -88,7 +88,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } } if domainId == 0 { - return nil, xerrors.New("domain not found") + return nil, errors.New("domain not found") } // 查询域名 SSL 配置 @@ -97,7 +97,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getHttpSslResp, err := d.sdkClient.GetHttpSsl(getHttpSslReq) d.logger.Debug("sdk request 'vod.GetHttpSsl'", slog.Any("request", getHttpSslReq), slog.Any("response", getHttpSslResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'vod.GetHttpSsl'") + return nil, fmt.Errorf("failed to execute sdk request 'vod.GetHttpSsl': %w", err) } // 设置域名 SSL 配置 @@ -112,7 +112,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setHttpSslResp, err := d.sdkClient.SetHttpSsl(setHttpSslReq) d.logger.Debug("sdk request 'vod.SetHttpSsl'", slog.Any("request", setHttpSslReq), slog.Any("response", setHttpSslResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'vod.SetHttpSsl'") + return nil, fmt.Errorf("failed to execute sdk request 'vod.SetHttpSsl': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go b/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go index e01062a6..de2e62be 100644 --- a/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go +++ b/internal/pkg/core/deployer/providers/k8s-secret/k8s_secret.go @@ -3,10 +3,10 @@ package k8ssecret import ( "context" "errors" + "fmt" "log/slog" "strings" - xerrors "github.com/pkg/errors" k8score "k8s.io/api/core/v1" k8smeta "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" @@ -84,7 +84,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 连接 client, err := createK8sClient(d.config.KubeConfig) if err != nil { - return nil, xerrors.Wrap(err, "failed to create k8s client") + return nil, fmt.Errorf("failed to create k8s client: %w", err) } var secretPayload *k8score.Secret @@ -117,7 +117,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE secretPayload, err = client.CoreV1().Secrets(d.config.Namespace).Create(context.TODO(), secretPayload, k8smeta.CreateOptions{}) d.logger.Debug("k8s operate 'Secrets.Create'", slog.String("namespace", d.config.Namespace), slog.Any("secret", secretPayload)) if err != nil { - return nil, xerrors.Wrap(err, "failed to create k8s secret") + return nil, fmt.Errorf("failed to create k8s secret: %w", err) } else { return &deployer.DeployResult{}, nil } @@ -140,7 +140,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE secretPayload, err = client.CoreV1().Secrets(d.config.Namespace).Update(context.TODO(), secretPayload, k8smeta.UpdateOptions{}) d.logger.Debug("k8s operate 'Secrets.Update'", slog.String("namespace", d.config.Namespace), slog.Any("secret", secretPayload)) if err != nil { - return nil, xerrors.Wrap(err, "failed to update k8s secret") + return nil, fmt.Errorf("failed to update k8s secret: %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/local/local.go b/internal/pkg/core/deployer/providers/local/local.go index c4e2b115..77f96543 100644 --- a/internal/pkg/core/deployer/providers/local/local.go +++ b/internal/pkg/core/deployer/providers/local/local.go @@ -8,8 +8,6 @@ import ( "os/exec" "runtime" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" fileutil "github.com/usual2970/certimate/internal/pkg/utils/file" @@ -76,7 +74,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE stdout, stderr, err := execCommand(d.config.ShellEnv, d.config.PreCommand) d.logger.Debug("run pre-command", slog.String("stdout", stdout), slog.String("stderr", stderr)) if err != nil { - return nil, xerrors.Wrapf(err, "failed to execute pre-command, stdout: %s, stderr: %s", stdout, stderr) + return nil, fmt.Errorf("failed to execute pre-command (stdout: %s, stderr: %s): %w ", stdout, stderr, err) } } @@ -84,41 +82,41 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE switch d.config.OutputFormat { case OUTPUT_FORMAT_PEM: if err := fileutil.WriteString(d.config.OutputCertPath, certPEM); err != nil { - return nil, xerrors.Wrap(err, "failed to save certificate file") + return nil, fmt.Errorf("failed to save certificate file: %w", err) } d.logger.Info("ssl certificate file saved", slog.String("path", d.config.OutputCertPath)) if err := fileutil.WriteString(d.config.OutputKeyPath, privkeyPEM); err != nil { - return nil, xerrors.Wrap(err, "failed to save private key file") + return nil, fmt.Errorf("failed to save private key file: %w", err) } d.logger.Info("ssl private key file saved", slog.String("path", d.config.OutputKeyPath)) case OUTPUT_FORMAT_PFX: pfxData, err := certutil.TransformCertificateFromPEMToPFX(certPEM, privkeyPEM, d.config.PfxPassword) if err != nil { - return nil, xerrors.Wrap(err, "failed to transform certificate to PFX") + return nil, fmt.Errorf("failed to transform certificate to PFX: %w", err) } d.logger.Info("ssl certificate transformed to pfx") if err := fileutil.Write(d.config.OutputCertPath, pfxData); err != nil { - return nil, xerrors.Wrap(err, "failed to save certificate file") + return nil, fmt.Errorf("failed to save certificate file: %w", err) } d.logger.Info("ssl certificate file saved", slog.String("path", d.config.OutputCertPath)) case OUTPUT_FORMAT_JKS: jksData, err := certutil.TransformCertificateFromPEMToJKS(certPEM, privkeyPEM, d.config.JksAlias, d.config.JksKeypass, d.config.JksStorepass) if err != nil { - return nil, xerrors.Wrap(err, "failed to transform certificate to JKS") + return nil, fmt.Errorf("failed to transform certificate to JKS: %w", err) } d.logger.Info("ssl certificate transformed to jks") if err := fileutil.Write(d.config.OutputCertPath, jksData); err != nil { - return nil, xerrors.Wrap(err, "failed to save certificate file") + return nil, fmt.Errorf("failed to save certificate file: %w", err) } d.logger.Info("ssl certificate file saved", slog.String("path", d.config.OutputCertPath)) default: - return nil, fmt.Errorf("unsupported output format: %s", d.config.OutputFormat) + return nil, fmt.Errorf("unsupported output format '%s'", d.config.OutputFormat) } // 执行后置命令 @@ -126,7 +124,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE stdout, stderr, err := execCommand(d.config.ShellEnv, d.config.PostCommand) d.logger.Debug("run post-command", slog.String("stdout", stdout), slog.String("stderr", stderr)) if err != nil { - return nil, xerrors.Wrapf(err, "failed to execute post-command, stdout: %s, stderr: %s", stdout, stderr) + return nil, fmt.Errorf("failed to execute post-command (stdout: %s, stderr: %s): %w ", stdout, stderr, err) } } @@ -154,7 +152,7 @@ func execCommand(shellEnv ShellEnvType, command string) (string, string, error) } default: - return "", "", fmt.Errorf("unsupported shell env: %s", shellEnv) + return "", "", fmt.Errorf("unsupported shell env '%s'", shellEnv) } stdoutBuf := bytes.NewBuffer(nil) @@ -163,7 +161,7 @@ func execCommand(shellEnv ShellEnvType, command string) (string, string, error) cmd.Stderr = stderrBuf err := cmd.Run() if err != nil { - return stdoutBuf.String(), stderrBuf.String(), xerrors.Wrap(err, "failed to execute command") + return stdoutBuf.String(), stderrBuf.String(), fmt.Errorf("failed to execute command: %w", err) } return stdoutBuf.String(), stderrBuf.String(), nil diff --git a/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go b/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go index 5ee74597..573eeb94 100644 --- a/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go +++ b/internal/pkg/core/deployer/providers/qiniu-cdn/qiniu_cdn.go @@ -2,10 +2,10 @@ package qiniucdn import ( "context" + "fmt" "log/slog" "strings" - xerrors "github.com/pkg/errors" "github.com/qiniu/go-sdk/v7/auth" "github.com/usual2970/certimate/internal/pkg/core/deployer" @@ -44,7 +44,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -69,7 +69,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CDN upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -82,7 +82,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getDomainInfoResp, err := d.sdkClient.GetDomainInfo(context.TODO(), domain) d.logger.Debug("sdk request 'cdn.GetDomainInfo'", slog.String("request.domain", domain), slog.Any("response", getDomainInfoResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.GetDomainInfo'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.GetDomainInfo': %w", err) } // 判断域名是否已启用 HTTPS。如果已启用,修改域名证书;否则,启用 HTTPS @@ -91,13 +91,13 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE enableDomainHttpsResp, err := d.sdkClient.EnableDomainHttps(context.TODO(), domain, upres.CertId, true, true) d.logger.Debug("sdk request 'cdn.EnableDomainHttps'", slog.String("request.domain", domain), slog.String("request.certId", upres.CertId), slog.Any("response", enableDomainHttpsResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.EnableDomainHttps'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.EnableDomainHttps': %w", err) } } else if getDomainInfoResp.Https.CertID != upres.CertId { modifyDomainHttpsConfResp, err := d.sdkClient.ModifyDomainHttpsConf(context.TODO(), domain, upres.CertId, getDomainInfoResp.Https.ForceHttps, getDomainInfoResp.Https.Http2Enable) d.logger.Debug("sdk request 'cdn.ModifyDomainHttpsConf'", slog.String("request.domain", domain), slog.String("request.certId", upres.CertId), slog.Any("response", modifyDomainHttpsConfResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.ModifyDomainHttpsConf'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.ModifyDomainHttpsConf': %w", err) } } diff --git a/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go b/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go index d739c858..db8d899e 100644 --- a/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go +++ b/internal/pkg/core/deployer/providers/qiniu-pili/qiniu_pili.go @@ -2,9 +2,9 @@ package qiniupili import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/qiniu/go-sdk/v7/pili" "github.com/usual2970/certimate/internal/pkg/core/deployer" @@ -44,7 +44,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -69,7 +69,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CDN upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -84,7 +84,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE err = d.sdkClient.SetDomainCert(context.TODO(), setDomainCertReq) d.logger.Debug("sdk request 'pili.SetDomainCert'", slog.Any("request", setDomainCertReq)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'pili.SetDomainCert'") + return nil, fmt.Errorf("failed to execute sdk request 'pili.SetDomainCert': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go b/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go index 226b6010..0b003bee 100644 --- a/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go +++ b/internal/pkg/core/deployer/providers/rainyun-rcdn/rainyun_rcdn.go @@ -3,11 +3,10 @@ package rainyunrcdn import ( "context" "errors" + "fmt" "log/slog" "strconv" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/rainyun-sslcenter" @@ -39,14 +38,14 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ ApiKey: config.ApiKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -71,7 +70,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL 证书 upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -86,7 +85,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE rcdnInstanceSslBindResp, err := d.sdkClient.RcdnInstanceSslBind(d.config.InstanceId, rcdnInstanceSslBindReq) d.logger.Debug("sdk request 'rcdn.InstanceSslBind'", slog.Any("instanceId", d.config.InstanceId), slog.Any("request", rcdnInstanceSslBindReq), slog.Any("response", rcdnInstanceSslBindResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'rcdn.InstanceSslBind'") + return nil, fmt.Errorf("failed to execute sdk request 'rcdn.InstanceSslBind': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/safeline/safeline.go b/internal/pkg/core/deployer/providers/safeline/safeline.go index 83e6a649..a4621109 100644 --- a/internal/pkg/core/deployer/providers/safeline/safeline.go +++ b/internal/pkg/core/deployer/providers/safeline/safeline.go @@ -8,8 +8,6 @@ import ( "log/slog" "net/url" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" safelinesdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/safeline" ) @@ -43,7 +41,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.ApiUrl, config.ApiToken, config.AllowInsecureConnections) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -71,7 +69,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -94,7 +92,7 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq) d.logger.Debug("sdk request 'safeline.UpdateCertificate'", slog.Any("request", updateCertificateReq), slog.Any("response", updateCertificateResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'safeline.UpdateCertificate'") + return fmt.Errorf("failed to execute sdk request 'safeline.UpdateCertificate': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/ssh/ssh.go b/internal/pkg/core/deployer/providers/ssh/ssh.go index a26eb05e..4b8b433d 100644 --- a/internal/pkg/core/deployer/providers/ssh/ssh.go +++ b/internal/pkg/core/deployer/providers/ssh/ssh.go @@ -8,7 +8,6 @@ import ( "os" "path/filepath" - xerrors "github.com/pkg/errors" "github.com/pkg/sftp" "github.com/povsister/scp" "golang.org/x/crypto/ssh" @@ -96,7 +95,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE d.config.SshKeyPassphrase, ) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssh client") + return nil, fmt.Errorf("failed to create ssh client: %w", err) } defer client.Close() @@ -107,7 +106,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE stdout, stderr, err := execSshCommand(client, d.config.PreCommand) d.logger.Debug("run pre-command", slog.String("stdout", stdout), slog.String("stderr", stderr)) if err != nil { - return nil, xerrors.Wrapf(err, "failed to execute pre-command: stdout: %s, stderr: %s", stdout, stderr) + return nil, fmt.Errorf("failed to execute pre-command (stdout: %s, stderr: %s): %w ", stdout, stderr, err) } } @@ -115,41 +114,41 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE switch d.config.OutputFormat { case OUTPUT_FORMAT_PEM: if err := writeFileString(client, d.config.UseSCP, d.config.OutputCertPath, certPEM); err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } d.logger.Info("ssl certificate file uploaded", slog.String("path", d.config.OutputCertPath)) if err := writeFileString(client, d.config.UseSCP, d.config.OutputKeyPath, privkeyPEM); err != nil { - return nil, xerrors.Wrap(err, "failed to upload private key file") + return nil, fmt.Errorf("failed to upload private key file: %w", err) } d.logger.Info("ssl private key file uploaded", slog.String("path", d.config.OutputKeyPath)) case OUTPUT_FORMAT_PFX: pfxData, err := certutil.TransformCertificateFromPEMToPFX(certPEM, privkeyPEM, d.config.PfxPassword) if err != nil { - return nil, xerrors.Wrap(err, "failed to transform certificate to PFX") + return nil, fmt.Errorf("failed to transform certificate to PFX: %w", err) } d.logger.Info("ssl certificate transformed to pfx") if err := writeFile(client, d.config.UseSCP, d.config.OutputCertPath, pfxData); err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } d.logger.Info("ssl certificate file uploaded", slog.String("path", d.config.OutputCertPath)) case OUTPUT_FORMAT_JKS: jksData, err := certutil.TransformCertificateFromPEMToJKS(certPEM, privkeyPEM, d.config.JksAlias, d.config.JksKeypass, d.config.JksStorepass) if err != nil { - return nil, xerrors.Wrap(err, "failed to transform certificate to JKS") + return nil, fmt.Errorf("failed to transform certificate to JKS: %w", err) } d.logger.Info("ssl certificate transformed to jks") if err := writeFile(client, d.config.UseSCP, d.config.OutputCertPath, jksData); err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } d.logger.Info("ssl certificate file uploaded", slog.String("path", d.config.OutputCertPath)) default: - return nil, fmt.Errorf("unsupported output format: %s", d.config.OutputFormat) + return nil, fmt.Errorf("unsupported output format '%s'", d.config.OutputFormat) } // 执行后置命令 @@ -157,7 +156,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE stdout, stderr, err := execSshCommand(client, d.config.PostCommand) d.logger.Debug("run post-command", slog.String("stdout", stdout), slog.String("stderr", stderr)) if err != nil { - return nil, xerrors.Wrapf(err, "failed to execute post-command, stdout: %s, stderr: %s", stdout, stderr) + return nil, fmt.Errorf("failed to execute post-command (stdout: %s, stderr: %s): %w ", stdout, stderr, err) } } @@ -212,7 +211,7 @@ func execSshCommand(sshCli *ssh.Client, command string) (string, string, error) session.Stderr = stderrBuf err = session.Run(command) if err != nil { - return stdoutBuf.String(), stderrBuf.String(), xerrors.Wrap(err, "failed to execute ssh command") + return stdoutBuf.String(), stderrBuf.String(), fmt.Errorf("failed to execute ssh command: %w", err) } return stdoutBuf.String(), stderrBuf.String(), nil @@ -241,13 +240,13 @@ func writeFileStringWithSCP(sshCli *ssh.Client, path string, content string) err func writeFileWithSCP(sshCli *ssh.Client, path string, data []byte) error { scpCli, err := scp.NewClientFromExistingSSH(sshCli, &scp.ClientOption{}) if err != nil { - return xerrors.Wrap(err, "failed to create scp client") + return fmt.Errorf("failed to create scp client: %w", err) } reader := bytes.NewReader(data) err = scpCli.CopyToRemote(reader, path, &scp.FileTransferOption{}) if err != nil { - return xerrors.Wrap(err, "failed to write to remote file") + return fmt.Errorf("failed to write to remote file: %w", err) } return nil @@ -260,23 +259,23 @@ func writeFileStringWithSFTP(sshCli *ssh.Client, path string, content string) er func writeFileWithSFTP(sshCli *ssh.Client, path string, data []byte) error { sftpCli, err := sftp.NewClient(sshCli) if err != nil { - return xerrors.Wrap(err, "failed to create sftp client") + return fmt.Errorf("failed to create sftp client: %w", err) } defer sftpCli.Close() if err := sftpCli.MkdirAll(filepath.Dir(path)); err != nil { - return xerrors.Wrap(err, "failed to create remote directory") + return fmt.Errorf("failed to create remote directory: %w", err) } file, err := sftpCli.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC) if err != nil { - return xerrors.Wrap(err, "failed to open remote file") + return fmt.Errorf("failed to open remote file: %w", err) } defer file.Close() _, err = file.Write(data) if err != nil { - return xerrors.Wrap(err, "failed to write to remote file") + return fmt.Errorf("failed to write to remote file: %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go b/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go index d6aa5bde..01f71d9e 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-cdn/tencentcloud_cdn.go @@ -2,10 +2,10 @@ package tencentcloudcdn import ( "context" + "fmt" "log/slog" "strings" - xerrors "github.com/pkg/errors" tccdn "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" @@ -47,7 +47,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { clients, err := createSdkClients(config.SecretId, config.SecretKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk clients") + return nil, fmt.Errorf("failed to create sdk clients: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -55,7 +55,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -80,7 +80,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -130,7 +130,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE deployCertificateInstanceResp, err := d.sdkClients.SSL.DeployCertificateInstance(deployCertificateInstanceReq) d.logger.Debug("sdk request 'ssl.DeployCertificateInstance'", slog.Any("request", deployCertificateInstanceReq), slog.Any("response", deployCertificateInstanceResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ssl.DeployCertificateInstance'") + return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err) } } @@ -146,7 +146,7 @@ func (d *DeployerProvider) getDomainsByCertificateId(cloudCertId string) ([]stri describeCertDomainsResp, err := d.sdkClients.CDN.DescribeCertDomains(describeCertDomainsReq) d.logger.Debug("sdk request 'cdn.DescribeCertDomains'", slog.Any("request", describeCertDomainsReq), slog.Any("response", describeCertDomainsResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.DescribeCertDomains'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.DescribeCertDomains': %w", err) } domains := make([]string, 0) @@ -168,7 +168,7 @@ func (d *DeployerProvider) getDeployedDomainsByCertificateId(cloudCertId string) describeDeployedResourcesResp, err := d.sdkClients.SSL.DescribeDeployedResources(describeDeployedResourcesReq) d.logger.Debug("sdk request 'cdn.DescribeDeployedResources'", slog.Any("request", describeDeployedResourcesReq), slog.Any("response", describeDeployedResourcesResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.DescribeDeployedResources'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.DescribeDeployedResources': %w", err) } domains := make([]string, 0) diff --git a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go index 24357e5f..7625d6ae 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go @@ -6,7 +6,6 @@ import ( "fmt" "log/slog" - xerrors "github.com/pkg/errors" tcclb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" @@ -58,7 +57,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { clients, err := createSdkClients(config.SecretId, config.SecretKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk clients") + return nil, fmt.Errorf("failed to create sdk clients: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -66,7 +65,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -91,7 +90,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -119,7 +118,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -149,7 +148,7 @@ func (d *DeployerProvider) deployViaSslService(ctx context.Context, cloudCertId deployCertificateInstanceResp, err := d.sdkClients.SSL.DeployCertificateInstance(deployCertificateInstanceReq) d.logger.Debug("sdk request 'ssl.DeployCertificateInstance'", slog.Any("request", deployCertificateInstanceReq), slog.Any("response", deployCertificateInstanceResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'ssl.DeployCertificateInstance'") + return fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err) } return nil @@ -168,7 +167,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeListenersResp, err := d.sdkClients.CLB.DescribeListeners(describeListenersReq) d.logger.Debug("sdk request 'clb.DescribeListeners'", slog.Any("request", describeListenersReq), slog.Any("response", describeListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'clb.DescribeListeners'") + return fmt.Errorf("failed to execute sdk request 'clb.DescribeListeners': %w", err) } else { if describeListenersResp.Response.Listeners != nil { for _, listener := range describeListenersResp.Response.Listeners { @@ -242,7 +241,7 @@ func (d *DeployerProvider) deployToRuleDomain(ctx context.Context, cloudCertId s modifyDomainAttributesResp, err := d.sdkClients.CLB.ModifyDomainAttributes(modifyDomainAttributesReq) d.logger.Debug("sdk request 'clb.ModifyDomainAttributes'", slog.Any("request", modifyDomainAttributesReq), slog.Any("response", modifyDomainAttributesResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'clb.ModifyDomainAttributes'") + return fmt.Errorf("failed to execute sdk request 'clb.ModifyDomainAttributes': %w", err) } return nil @@ -257,7 +256,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL describeListenersResp, err := d.sdkClients.CLB.DescribeListeners(describeListenersReq) d.logger.Debug("sdk request 'clb.DescribeListeners'", slog.Any("request", describeListenersReq), slog.Any("response", describeListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'clb.DescribeListeners'") + return fmt.Errorf("failed to execute sdk request 'clb.DescribeListeners': %w", err) } else if len(describeListenersResp.Response.Listeners) == 0 { return errors.New("listener not found") } @@ -277,7 +276,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL modifyListenerResp, err := d.sdkClients.CLB.ModifyListener(modifyListenerReq) d.logger.Debug("sdk request 'clb.ModifyListener'", slog.Any("request", modifyListenerReq), slog.Any("response", modifyListenerResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'clb.ModifyListener'") + return fmt.Errorf("failed to execute sdk request 'clb.ModifyListener': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go b/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go index 58513712..0949c5a3 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-cos/tencentcloud_cos.go @@ -6,7 +6,6 @@ import ( "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tcssl "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl/v20191205" @@ -45,7 +44,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.SecretId, config.SecretKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -53,7 +52,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -85,7 +84,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -100,7 +99,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE deployCertificateInstanceResp, err := d.sdkClient.DeployCertificateInstance(deployCertificateInstanceReq) d.logger.Debug("sdk request 'ssl.DeployCertificateInstance'", slog.Any("request", deployCertificateInstanceReq), slog.Any("response", deployCertificateInstanceResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ssl.DeployCertificateInstance'") + return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go b/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go index d35f7b3c..7de626d9 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-css/tencentcloud_css.go @@ -2,9 +2,9 @@ package tencentcloudcss import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tclive "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live/v20180801" @@ -39,7 +39,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.SecretId, config.SecretKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -47,7 +47,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -72,7 +72,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -90,7 +90,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE modifyLiveDomainCertBindingsResp, err := d.sdkClient.ModifyLiveDomainCertBindings(modifyLiveDomainCertBindingsReq) d.logger.Debug("sdk request 'live.ModifyLiveDomainCertBindings'", slog.Any("request", modifyLiveDomainCertBindingsReq), slog.Any("response", modifyLiveDomainCertBindingsResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'live.ModifyLiveDomainCertBindings'") + return nil, fmt.Errorf("failed to execute sdk request 'live.ModifyLiveDomainCertBindings': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go b/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go index 43896e77..ebe87025 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ecdn/tencentcloud_ecdn.go @@ -2,10 +2,10 @@ package tencentcloudecdn import ( "context" + "fmt" "log/slog" "strings" - xerrors "github.com/pkg/errors" tccdn "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" @@ -46,7 +46,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { clients, err := createSdkClients(config.SecretId, config.SecretKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk clients") + return nil, fmt.Errorf("failed to create sdk clients: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -54,7 +54,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -79,7 +79,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -113,7 +113,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE deployCertificateInstanceResp, err := d.sdkClients.SSL.DeployCertificateInstance(deployCertificateInstanceReq) d.logger.Debug("sdk request 'ssl.DeployCertificateInstance'", slog.Any("request", deployCertificateInstanceReq), slog.Any("response", deployCertificateInstanceResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ssl.DeployCertificateInstance'") + return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err) } } @@ -129,7 +129,7 @@ func (d *DeployerProvider) getDomainsByCertificateId(cloudCertId string) ([]stri describeCertDomainsResp, err := d.sdkClients.CDN.DescribeCertDomains(describeCertDomainsReq) d.logger.Debug("sdk request 'cdn.DescribeCertDomains'", slog.Any("request", describeCertDomainsReq), slog.Any("response", describeCertDomainsResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.DescribeCertDomains'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.DescribeCertDomains': %w", err) } domains := make([]string, 0) diff --git a/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go b/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go index ec1dc86d..919339bb 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go @@ -3,9 +3,9 @@ package tencentcloudeo import ( "context" "errors" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tcssl "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl/v20191205" @@ -48,7 +48,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { clients, err := createSdkClients(config.SecretId, config.SecretKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk clients") + return nil, fmt.Errorf("failed to create sdk clients: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -56,7 +56,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -85,7 +85,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -100,7 +100,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE modifyHostsCertificateResp, err := d.sdkClients.TEO.ModifyHostsCertificate(modifyHostsCertificateReq) d.logger.Debug("sdk request 'teo.ModifyHostsCertificate'", slog.Any("request", modifyHostsCertificateReq), slog.Any("response", modifyHostsCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'teo.ModifyHostsCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'teo.ModifyHostsCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go b/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go index d9eb8080..bc8d8696 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-scf/tencentcloud_scf.go @@ -2,9 +2,9 @@ package tencentcloudscf import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tcscf "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf/v20180416" @@ -41,7 +41,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.SecretId, config.SecretKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -49,7 +49,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -78,13 +78,13 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getCustomDomainResp, err := d.sdkClient.GetCustomDomain(getCustomDomainReq) d.logger.Debug("sdk request 'scf.GetCustomDomain'", slog.Any("request", getCustomDomainReq), slog.Any("response", getCustomDomainResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'scf.GetCustomDomain'") + return nil, fmt.Errorf("failed to execute sdk request 'scf.GetCustomDomain': %w", err) } // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -100,7 +100,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateCustomDomainResp, err := d.sdkClient.UpdateCustomDomain(updateCustomDomainReq) d.logger.Debug("sdk request 'scf.UpdateCustomDomain'", slog.Any("request", updateCustomDomainReq), slog.Any("response", updateCustomDomainResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'scf.UpdateCustomDomain'") + return nil, fmt.Errorf("failed to execute sdk request 'scf.UpdateCustomDomain': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go b/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go index 0f2a0d29..f6090190 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go @@ -7,7 +7,6 @@ import ( "log/slog" "time" - xerrors "github.com/pkg/errors" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tcssl "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl/v20191205" @@ -46,7 +45,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.SecretId, config.SecretKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -54,7 +53,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -86,7 +85,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -101,7 +100,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE deployCertificateInstanceResp, err := d.sdkClient.DeployCertificateInstance(deployCertificateInstanceReq) d.logger.Debug("sdk request 'ssl.DeployCertificateInstance'", slog.Any("request", deployCertificateInstanceReq), slog.Any("response", deployCertificateInstanceResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ssl.DeployCertificateInstance'") + return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err) } else if deployCertificateInstanceResp.Response == nil || deployCertificateInstanceResp.Response.DeployRecordId == nil { return nil, errors.New("failed to create deploy record") } @@ -119,7 +118,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE describeHostDeployRecordDetailResp, err := d.sdkClient.DescribeHostDeployRecordDetail(describeHostDeployRecordDetailReq) d.logger.Debug("sdk request 'ssl.DescribeHostDeployRecordDetail'", slog.Any("request", describeHostDeployRecordDetailReq), slog.Any("response", describeHostDeployRecordDetailResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ssl.DescribeHostDeployRecordDetail'") + return nil, fmt.Errorf("failed to execute sdk request 'ssl.DescribeHostDeployRecordDetail': %w", err) } if describeHostDeployRecordDetailResp.Response.TotalCount == nil { diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go b/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go index 0378f567..5fbdb7c6 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ssl/tencentcloud_ssl.go @@ -2,10 +2,9 @@ package tencentcloudssl import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/tencentcloud-ssl" @@ -36,7 +35,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -60,7 +59,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } diff --git a/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go b/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go index f9374b7d..1b8553c5 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-vod/tencentcloud_vod.go @@ -2,9 +2,9 @@ package tencentcloudvod import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tcvod "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717" @@ -41,7 +41,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.SecretId, config.SecretKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -49,7 +49,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -74,7 +74,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -91,7 +91,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE setVodDomainCertificateResp, err := d.sdkClient.SetVodDomainCertificate(setVodDomainCertificateReq) d.logger.Debug("sdk request 'vod.SetVodDomainCertificate'", slog.Any("request", setVodDomainCertificateReq), slog.Any("response", setVodDomainCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'vod.SetVodDomainCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'vod.SetVodDomainCertificate': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go b/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go index 015f693a..18380289 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-waf/tencentcloud_waf.go @@ -3,9 +3,9 @@ package tencentcloudwaf import ( "context" "errors" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tcwaf "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125" @@ -46,7 +46,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.SecretId, config.SecretKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -54,7 +54,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { SecretKey: config.SecretKey, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -89,7 +89,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -103,7 +103,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE describeDomainDetailsSaasResp, err := d.sdkClient.DescribeDomainDetailsSaas(describeDomainDetailsSaasReq) d.logger.Debug("sdk request 'waf.DescribeDomainDetailsSaas'", slog.Any("request", describeDomainDetailsSaasReq), slog.Any("response", describeDomainDetailsSaasResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'waf.DescribeDomainDetailsSaas'") + return nil, fmt.Errorf("failed to execute sdk request 'waf.DescribeDomainDetailsSaas': %w", err) } // 编辑 SaaS 型 WAF 域名 @@ -117,7 +117,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE modifySpartaProtectionResp, err := d.sdkClient.ModifySpartaProtection(modifySpartaProtectionReq) d.logger.Debug("sdk request 'waf.ModifySpartaProtection'", slog.Any("request", modifySpartaProtectionReq), slog.Any("response", modifySpartaProtectionResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'waf.ModifySpartaProtection'") + return nil, fmt.Errorf("failed to execute sdk request 'waf.ModifySpartaProtection': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go b/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go index 10552363..5f90b943 100644 --- a/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go +++ b/internal/pkg/core/deployer/providers/ucloud-ucdn/ucloud_ucdn.go @@ -3,10 +3,10 @@ package uclouducdn import ( "context" "errors" + "fmt" "log/slog" "strconv" - xerrors "github.com/pkg/errors" "github.com/ucloud/ucloud-sdk-go/services/ucdn" "github.com/ucloud/ucloud-sdk-go/ucloud" "github.com/ucloud/ucloud-sdk-go/ucloud/auth" @@ -43,7 +43,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.PrivateKey, config.PublicKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -52,7 +52,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { ProjectId: config.ProjectId, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -77,7 +77,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 USSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -92,7 +92,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getUcdnDomainConfigResp, err := d.sdkClient.GetUcdnDomainConfig(getUcdnDomainConfigReq) d.logger.Debug("sdk request 'ucdn.GetUcdnDomainConfig'", slog.Any("request", getUcdnDomainConfigReq), slog.Any("response", getUcdnDomainConfigResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ucdn.GetUcdnDomainConfig'") + return nil, fmt.Errorf("failed to execute sdk request 'ucdn.GetUcdnDomainConfig': %w", err) } else if len(getUcdnDomainConfigResp.DomainList) == 0 { return nil, errors.New("no domain found") } @@ -114,7 +114,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateUcdnDomainHttpsConfigV2Resp, err := d.sdkClient.UpdateUcdnDomainHttpsConfigV2(updateUcdnDomainHttpsConfigV2Req) d.logger.Debug("sdk request 'ucdn.UpdateUcdnDomainHttpsConfigV2'", slog.Any("request", updateUcdnDomainHttpsConfigV2Req), slog.Any("response", updateUcdnDomainHttpsConfigV2Resp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ucdn.UpdateUcdnDomainHttpsConfigV2'") + return nil, fmt.Errorf("failed to execute sdk request 'ucdn.UpdateUcdnDomainHttpsConfigV2': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go b/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go index cd5db4b3..5564e6a8 100644 --- a/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go +++ b/internal/pkg/core/deployer/providers/ucloud-us3/ucloud_us3.go @@ -2,9 +2,9 @@ package ucloudus3 import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/ucloud/ucloud-sdk-go/ucloud" "github.com/ucloud/ucloud-sdk-go/ucloud/auth" @@ -45,7 +45,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.PrivateKey, config.PublicKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -54,7 +54,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { ProjectId: config.ProjectId, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -79,7 +79,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 USSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -97,7 +97,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE addUFileSSLCertResp, err := d.sdkClient.AddUFileSSLCert(addUFileSSLCertReq) d.logger.Debug("sdk request 'us3.AddUFileSSLCert'", slog.Any("request", addUFileSSLCertReq), slog.Any("response", addUFileSSLCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'us3.AddUFileSSLCert'") + return nil, fmt.Errorf("failed to execute sdk request 'us3.AddUFileSSLCert': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go b/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go index d2487204..4c9987a3 100644 --- a/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go +++ b/internal/pkg/core/deployer/providers/upyun-cdn/upyun_cdn.go @@ -3,9 +3,9 @@ package upyuncdn import ( "context" "errors" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" "golang.org/x/exp/slices" "github.com/usual2970/certimate/internal/pkg/core/deployer" @@ -39,7 +39,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.Username, config.Password) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -47,7 +47,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Password: config.Password, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -72,7 +72,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 SSL upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -81,7 +81,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getHttpsServiceManagerResp, err := d.sdkClient.GetHttpsServiceManager(d.config.Domain) d.logger.Debug("sdk request 'console.GetHttpsServiceManager'", slog.String("request.domain", d.config.Domain), slog.Any("response", getHttpsServiceManagerResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'console.GetHttpsServiceManager'") + return nil, fmt.Errorf("failed to execute sdk request 'console.GetHttpsServiceManager': %w", err) } // 判断域名是否已启用 HTTPS。如果已启用,迁移域名证书;否则,设置新证书 @@ -98,7 +98,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateHttpsCertificateManagerResp, err := d.sdkClient.UpdateHttpsCertificateManager(updateHttpsCertificateManagerReq) d.logger.Debug("sdk request 'console.EnableDomainHttps'", slog.Any("request", updateHttpsCertificateManagerReq), slog.Any("response", updateHttpsCertificateManagerResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'console.UpdateHttpsCertificateManager'") + return nil, fmt.Errorf("failed to execute sdk request 'console.UpdateHttpsCertificateManager': %w", err) } } else if getHttpsServiceManagerResp.Data.Domains[lastCertIndex].CertificateId != upres.CertId { migrateHttpsDomainReq := &upyunsdk.MigrateHttpsDomainRequest{ @@ -108,7 +108,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE migrateHttpsDomainResp, err := d.sdkClient.MigrateHttpsDomain(migrateHttpsDomainReq) d.logger.Debug("sdk request 'console.MigrateHttpsDomain'", slog.Any("request", migrateHttpsDomainReq), slog.Any("response", migrateHttpsDomainResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'console.MigrateHttpsDomain'") + return nil, fmt.Errorf("failed to execute sdk request 'console.MigrateHttpsDomain': %w", err) } } diff --git a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go index 28017d20..c3d0a2d6 100644 --- a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go +++ b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go @@ -6,7 +6,6 @@ import ( "fmt" "log/slog" - xerrors "github.com/pkg/errors" vealb "github.com/volcengine/volcengine-go-sdk/service/alb" ve "github.com/volcengine/volcengine-go-sdk/volcengine" vesession "github.com/volcengine/volcengine-go-sdk/volcengine/session" @@ -53,7 +52,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -62,7 +61,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -87,7 +86,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到证书中心 upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -105,7 +104,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -124,7 +123,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeLoadBalancerAttributesResp, err := d.sdkClient.DescribeLoadBalancerAttributes(describeLoadBalancerAttributesReq) d.logger.Debug("sdk request 'alb.DescribeLoadBalancerAttributes'", slog.Any("request", describeLoadBalancerAttributesReq), slog.Any("response", describeLoadBalancerAttributesResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.DescribeLoadBalancerAttributes'") + return fmt.Errorf("failed to execute sdk request 'alb.DescribeLoadBalancerAttributes': %w", err) } // 查询 HTTPS 监听器列表 @@ -142,7 +141,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeListenersResp, err := d.sdkClient.DescribeListeners(describeListenersReq) d.logger.Debug("sdk request 'alb.DescribeListeners'", slog.Any("request", describeListenersReq), slog.Any("response", describeListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.DescribeListeners'") + return fmt.Errorf("failed to execute sdk request 'alb.DescribeListeners': %w", err) } for _, listener := range describeListenersResp.Listeners { @@ -198,7 +197,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL describeListenerAttributesResp, err := d.sdkClient.DescribeListenerAttributes(describeListenerAttributesReq) d.logger.Debug("sdk request 'alb.DescribeListenerAttributes'", slog.Any("request", describeListenerAttributesReq), slog.Any("response", describeListenerAttributesResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.DescribeListenerAttributes'") + return fmt.Errorf("failed to execute sdk request 'alb.DescribeListenerAttributes': %w", err) } if d.config.Domain == "" { @@ -214,7 +213,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL modifyListenerAttributesResp, err := d.sdkClient.ModifyListenerAttributes(modifyListenerAttributesReq) d.logger.Debug("sdk request 'alb.ModifyListenerAttributes'", slog.Any("request", modifyListenerAttributesReq), slog.Any("response", modifyListenerAttributesResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.ModifyListenerAttributes'") + return fmt.Errorf("failed to execute sdk request 'alb.ModifyListenerAttributes': %w", err) } } else { // 指定 SNI,需部署到扩展域名 @@ -243,7 +242,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL modifyListenerAttributesResp, err := d.sdkClient.ModifyListenerAttributes(modifyListenerAttributesReq) d.logger.Debug("sdk request 'alb.ModifyListenerAttributes'", slog.Any("request", modifyListenerAttributesReq), slog.Any("response", modifyListenerAttributesResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'alb.ModifyListenerAttributes'") + return fmt.Errorf("failed to execute sdk request 'alb.ModifyListenerAttributes': %w", err) } } diff --git a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go index 20ecbfdb..f8642b7f 100644 --- a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go +++ b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go @@ -3,10 +3,10 @@ package volcenginecdn import ( "context" "errors" + "fmt" "log/slog" "strings" - xerrors "github.com/pkg/errors" vecdn "github.com/volcengine/volc-sdk-golang/service/cdn" "github.com/usual2970/certimate/internal/pkg/core/deployer" @@ -46,7 +46,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { AccessKeySecret: config.AccessKeySecret, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -71,7 +71,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 CDN upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -86,7 +86,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE describeCertConfigResp, err := d.sdkClient.DescribeCertConfig(describeCertConfigReq) d.logger.Debug("sdk request 'cdn.DescribeCertConfig'", slog.Any("request", describeCertConfigReq), slog.Any("response", describeCertConfigResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.DescribeCertConfig'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.DescribeCertConfig': %w", err) } if describeCertConfigResp.Result.CertNotConfig != nil { diff --git a/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go b/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go index 5a889f99..3989a000 100644 --- a/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go +++ b/internal/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go @@ -2,10 +2,9 @@ package volcenginecertcenter import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/uploader" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/volcengine-certcenter" @@ -39,7 +38,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -63,7 +62,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到证书中心 upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } diff --git a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go index 4a389a6a..e95aac0e 100644 --- a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go +++ b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go @@ -6,7 +6,6 @@ import ( "fmt" "log/slog" - xerrors "github.com/pkg/errors" veclb "github.com/volcengine/volcengine-go-sdk/service/clb" ve "github.com/volcengine/volcengine-go-sdk/volcengine" vesession "github.com/volcengine/volcengine-go-sdk/volcengine/session" @@ -49,7 +48,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -58,7 +57,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -83,7 +82,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到证书中心 upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -101,7 +100,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } default: - return nil, fmt.Errorf("unsupported resource type: %s", d.config.ResourceType) + return nil, fmt.Errorf("unsupported resource type '%s'", d.config.ResourceType) } return &deployer.DeployResult{}, nil @@ -120,7 +119,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeLoadBalancerAttributesResp, err := d.sdkClient.DescribeLoadBalancerAttributes(describeLoadBalancerAttributesReq) d.logger.Debug("sdk request 'clb.DescribeLoadBalancerAttributes'", slog.Any("request", describeLoadBalancerAttributesReq), slog.Any("response", describeLoadBalancerAttributesResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'clb.DescribeLoadBalancerAttributes'") + return fmt.Errorf("failed to execute sdk request 'clb.DescribeLoadBalancerAttributes': %w", err) } // 查询 HTTPS 监听器列表 @@ -138,7 +137,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeListenersResp, err := d.sdkClient.DescribeListeners(describeListenersReq) d.logger.Debug("sdk request 'clb.DescribeListeners'", slog.Any("request", describeListenersReq), slog.Any("response", describeListenersResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'clb.DescribeListeners'") + return fmt.Errorf("failed to execute sdk request 'clb.DescribeListeners': %w", err) } for _, listener := range describeListenersResp.Listeners { @@ -196,7 +195,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL modifyListenerAttributesResp, err := d.sdkClient.ModifyListenerAttributes(modifyListenerAttributesReq) d.logger.Debug("sdk request 'clb.ModifyListenerAttributes'", slog.Any("request", modifyListenerAttributesReq), slog.Any("response", modifyListenerAttributesResp)) if err != nil { - return xerrors.Wrap(err, "failed to execute sdk request 'clb.ModifyListenerAttributes'") + return fmt.Errorf("failed to execute sdk request 'clb.ModifyListenerAttributes': %w", err) } return nil diff --git a/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go b/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go index 4b1eda7a..707ccde3 100644 --- a/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go +++ b/internal/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go @@ -2,10 +2,10 @@ package volcenginedcdn import ( "context" + "fmt" "log/slog" "strings" - xerrors "github.com/pkg/errors" vedcdn "github.com/volcengine/volcengine-go-sdk/service/dcdn" ve "github.com/volcengine/volcengine-go-sdk/volcengine" vesession "github.com/volcengine/volcengine-go-sdk/volcengine/session" @@ -42,7 +42,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -51,7 +51,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -76,7 +76,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到证书中心 upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -94,7 +94,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE createCertBindResp, err := d.sdkClient.CreateCertBind(createCertBindReq) d.logger.Debug("sdk request 'dcdn.CreateCertBind'", slog.Any("request", createCertBindReq), slog.Any("response", createCertBindResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'dcdn.CreateCertBind'") + return nil, fmt.Errorf("failed to execute sdk request 'dcdn.CreateCertBind': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go b/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go index 7de39b6d..2f419752 100644 --- a/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go +++ b/internal/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go @@ -3,9 +3,9 @@ package volcengineimagex import ( "context" "errors" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" vebase "github.com/volcengine/volc-sdk-golang/base" veimagex "github.com/volcengine/volc-sdk-golang/service/imagex/v2" @@ -43,7 +43,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -52,7 +52,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -84,7 +84,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到证书中心 upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -98,7 +98,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getDomainConfigResp, err := d.sdkClient.GetDomainConfig(context.TODO(), getDomainConfigReq) d.logger.Debug("sdk request 'imagex.GetDomainConfig'", slog.Any("request", getDomainConfigReq), slog.Any("response", getDomainConfigResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'imagex.GetDomainConfig'") + return nil, fmt.Errorf("failed to execute sdk request 'imagex.GetDomainConfig': %w", err) } // 更新 HTTPS 配置 @@ -127,7 +127,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateHttpsResp, err := d.sdkClient.UpdateHTTPS(context.TODO(), updateHttpsReq) d.logger.Debug("sdk request 'imagex.UpdateHttps'", slog.Any("request", updateHttpsReq), slog.Any("response", updateHttpsResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'imagex.UpdateHttps'") + return nil, fmt.Errorf("failed to execute sdk request 'imagex.UpdateHttps': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go index cd75bed9..1b1336b6 100644 --- a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go +++ b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go @@ -3,10 +3,10 @@ package volcenginelive import ( "context" "errors" + "fmt" "log/slog" "strings" - xerrors "github.com/pkg/errors" velive "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ve "github.com/volcengine/volcengine-go-sdk/volcengine" @@ -47,7 +47,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { AccessKeySecret: config.AccessKeySecret, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -72,7 +72,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到 Live upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -92,7 +92,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE listDomainDetailResp, err := d.sdkClient.ListDomainDetail(ctx, listDomainDetailReq) d.logger.Debug("sdk request 'live.ListDomainDetail'", slog.Any("request", listDomainDetailReq), slog.Any("response", listDomainDetailResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'live.ListDomainDetail'") + return nil, fmt.Errorf("failed to execute sdk request 'live.ListDomainDetail': %w", err) } if listDomainDetailResp.Result.DomainList != nil { diff --git a/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go b/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go index 9b7f6d08..365d95f2 100644 --- a/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go +++ b/internal/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go @@ -6,7 +6,6 @@ import ( "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/volcengine/ve-tos-golang-sdk/v2/tos" "github.com/usual2970/certimate/internal/pkg/core/deployer" @@ -43,7 +42,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } uploader, err := uploadersp.NewUploader(&uploadersp.UploaderConfig{ @@ -52,7 +51,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { Region: config.Region, }) if err != nil { - return nil, xerrors.Wrap(err, "failed to create ssl uploader") + return nil, fmt.Errorf("failed to create ssl uploader: %w", err) } return &DeployerProvider{ @@ -84,7 +83,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 上传证书到证书中心 upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to upload certificate file") + return nil, fmt.Errorf("failed to upload certificate file: %w", err) } else { d.logger.Info("ssl certificate uploaded", slog.Any("result", upres)) } @@ -101,7 +100,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE putBucketCustomDomainResp, err := d.sdkClient.PutBucketCustomDomain(context.TODO(), putBucketCustomDomainReq) d.logger.Debug("sdk request 'tos.PutBucketCustomDomain'", slog.Any("request", putBucketCustomDomainReq), slog.Any("response", putBucketCustomDomainResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'tos.PutBucketCustomDomain'") + return nil, fmt.Errorf("failed to execute sdk request 'tos.PutBucketCustomDomain': %w", err) } return &deployer.DeployResult{}, nil diff --git a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go index 582c76a0..fe31b34c 100644 --- a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go +++ b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go @@ -17,7 +17,6 @@ import ( "time" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" wangsucdn "github.com/usual2970/certimate/internal/pkg/sdk3rd/wangsu/cdn" @@ -58,7 +57,7 @@ func NewDeployer(config *DeployerConfig) (*DeployerProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &DeployerProvider{ @@ -92,13 +91,13 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getHostnameDetailResp, err := d.sdkClient.GetHostnameDetail(d.config.Domain) d.logger.Debug("sdk request 'cdn.GetHostnameDetail'", slog.String("hostname", d.config.Domain), slog.Any("response", getHostnameDetailResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.GetHostnameDetail'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.GetHostnameDetail': %w", err) } // 生成网宿云证书参数 encryptedPrivateKey, err := encryptPrivateKey(privkeyPEM, d.config.ApiKey, time.Now().Unix()) if err != nil { - return nil, xerrors.Wrap(err, "failed to encrypt private key") + return nil, fmt.Errorf("failed to encrypt private key: %w", err) } certificateNewVersionInfo := &wangsucdn.CertificateVersion{ PrivateKey: tea.String(encryptedPrivateKey), @@ -130,7 +129,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) d.logger.Debug("sdk request 'cdn.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.CreateCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.CreateCertificate': %w", err) } wangsuCertUrl = createCertificateResp.CertificateUrl @@ -153,7 +152,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE updateCertificateResp, err := d.sdkClient.UpdateCertificate(d.config.CertificateId, updateCertificateReq) d.logger.Debug("sdk request 'cdn.CreateCertificate'", slog.Any("certificateId", d.config.CertificateId), slog.Any("request", updateCertificateReq), slog.Any("response", updateCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.UpdateCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.UpdateCertificate': %w", err) } wangsuCertUrl = updateCertificateResp.CertificateUrl @@ -190,7 +189,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE createDeploymentTaskResp, err := d.sdkClient.CreateDeploymentTask(createDeploymentTaskReq) d.logger.Debug("sdk request 'cdn.CreateCertificate'", slog.Any("request", createDeploymentTaskReq), slog.Any("response", createDeploymentTaskResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.CreateDeploymentTask'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.CreateDeploymentTask': %w", err) } // 循环获取部署任务详细信息,等待任务状态变更 @@ -208,7 +207,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE getDeploymentTaskDetailResp, err := d.sdkClient.GetDeploymentTaskDetail(wangsuTaskId) d.logger.Info("sdk request 'cdn.GetDeploymentTaskDetail'", slog.Any("taskId", wangsuTaskId), slog.Any("response", getDeploymentTaskDetailResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.GetDeploymentTaskDetail'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.GetDeploymentTaskDetail': %w", err) } if getDeploymentTaskDetailResp.Status == "failed" { diff --git a/internal/pkg/core/deployer/providers/webhook/webhook.go b/internal/pkg/core/deployer/providers/webhook/webhook.go index ae7648dc..28e0bd7d 100644 --- a/internal/pkg/core/deployer/providers/webhook/webhook.go +++ b/internal/pkg/core/deployer/providers/webhook/webhook.go @@ -4,12 +4,12 @@ import ( "context" "crypto/tls" "encoding/json" + "fmt" "log/slog" "strings" "time" "github.com/go-resty/resty/v2" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/deployer" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" @@ -64,13 +64,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) { certX509, err := certutil.ParseCertificateFromPEM(certPEM) if err != nil { - return nil, xerrors.Wrap(err, "failed to parse x509") + return nil, fmt.Errorf("failed to parse x509: %w", err) } var webhookData interface{} err = json.Unmarshal([]byte(d.config.WebhookData), &webhookData) if err != nil { - return nil, xerrors.Wrap(err, "failed to unmarshall webhook data") + return nil, fmt.Errorf("failed to unmarshall webhook data: %w", err) } replaceJsonValueRecursively(webhookData, "${DOMAIN}", certX509.Subject.CommonName) @@ -85,9 +85,9 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE SetBody(webhookData). Post(d.config.WebhookUrl) if err != nil { - return nil, xerrors.Wrap(err, "failed to send webhook request") + return nil, fmt.Errorf("failed to send webhook request: %w", err) } else if resp.StatusCode() != 200 { - return nil, xerrors.Errorf("unexpected webhook response status code: %d", resp.StatusCode()) + return nil, fmt.Errorf("unexpected webhook response status code: %d", resp.StatusCode()) } d.logger.Debug("webhook responded", slog.Any("response", resp.String())) diff --git a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go index d8fe51e0..e4817ff8 100644 --- a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go +++ b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go @@ -9,8 +9,6 @@ import ( "strings" "time" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/uploader" opsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/1panel" ) @@ -37,7 +35,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.ApiUrl, config.ApiKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -78,7 +76,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE uploadWebsiteSSLResp, err := u.sdkClient.UploadWebsiteSSL(uploadWebsiteSSLReq) u.logger.Debug("sdk request '1panel.UploadWebsiteSSL'", slog.Any("request", uploadWebsiteSSLReq), slog.Any("response", uploadWebsiteSSLResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request '1panel.UploadWebsiteSSL'") + return nil, fmt.Errorf("failed to execute sdk request '1panel.UploadWebsiteSSL': %w", err) } // 遍历证书列表,获取刚刚上传证书 ID @@ -102,7 +100,7 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string, searchWebsiteSSLResp, err := u.sdkClient.SearchWebsiteSSL(searchWebsiteSSLReq) u.logger.Debug("sdk request '1panel.SearchWebsiteSSL'", slog.Any("request", searchWebsiteSSLReq), slog.Any("response", searchWebsiteSSLResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request '1panel.SearchWebsiteSSL'") + return nil, fmt.Errorf("failed to execute sdk request '1panel.SearchWebsiteSSL': %w", err) } for _, sslItem := range searchWebsiteSSLResp.Data.Items { diff --git a/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go b/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go index 3ed18447..487ee8b5 100644 --- a/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go +++ b/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go @@ -10,7 +10,6 @@ import ( alicas "github.com/alibabacloud-go/cas-20200407/v3/client" aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" @@ -40,7 +39,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -80,7 +79,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listUserCertificateOrderResp, err := u.sdkClient.ListUserCertificateOrder(listUserCertificateOrderReq) u.logger.Debug("sdk request 'cas.ListUserCertificateOrder'", slog.Any("request", listUserCertificateOrderReq), slog.Any("response", listUserCertificateOrderResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cas.ListUserCertificateOrder'") + return nil, fmt.Errorf("failed to execute sdk request 'cas.ListUserCertificateOrder': %w", err) } if listUserCertificateOrderResp.Body.CertificateOrderList != nil { @@ -95,7 +94,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE getUserCertificateDetailResp, err := u.sdkClient.GetUserCertificateDetail(getUserCertificateDetailReq) u.logger.Debug("sdk request 'cas.GetUserCertificateDetail'", slog.Any("request", getUserCertificateDetailReq), slog.Any("response", getUserCertificateDetailResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cas.GetUserCertificateDetail'") + return nil, fmt.Errorf("failed to execute sdk request 'cas.GetUserCertificateDetail': %w", err) } var isSameCert bool @@ -145,7 +144,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE uploadUserCertificateResp, err := u.sdkClient.UploadUserCertificate(uploadUserCertificateReq) u.logger.Debug("sdk request 'cas.UploadUserCertificate'", slog.Any("request", uploadUserCertificateReq), slog.Any("response", uploadUserCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cas.UploadUserCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'cas.UploadUserCertificate': %w", err) } // 获取证书详情 @@ -157,7 +156,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE getUserCertificateDetailResp, err := u.sdkClient.GetUserCertificateDetail(getUserCertificateDetailReq) u.logger.Debug("sdk request 'cas.GetUserCertificateDetail'", slog.Any("request", getUserCertificateDetailReq), slog.Any("response", getUserCertificateDetailResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cas.GetUserCertificateDetail'") + return nil, fmt.Errorf("failed to execute sdk request 'cas.GetUserCertificateDetail': %w", err) } return &uploader.UploadResult{ diff --git a/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go b/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go index f9e0131d..cc1544c1 100644 --- a/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go +++ b/internal/pkg/core/uploader/providers/aliyun-slb/aliyun_slb.go @@ -13,7 +13,6 @@ import ( aliopen "github.com/alibabacloud-go/darabonba-openapi/v2/client" alislb "github.com/alibabacloud-go/slb-20140515/v4/client" "github.com/alibabacloud-go/tea/tea" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" @@ -43,7 +42,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -77,7 +76,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE describeServerCertificatesResp, err := u.sdkClient.DescribeServerCertificates(describeServerCertificatesReq) u.logger.Debug("sdk request 'slb.DescribeServerCertificates'", slog.Any("request", describeServerCertificatesReq), slog.Any("response", describeServerCertificatesResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'slb.DescribeServerCertificates'") + return nil, fmt.Errorf("failed to execute sdk request 'slb.DescribeServerCertificates': %w", err) } if describeServerCertificatesResp.Body.ServerCertificates != nil && describeServerCertificatesResp.Body.ServerCertificates.ServerCertificate != nil { @@ -119,7 +118,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE uploadServerCertificateResp, err := u.sdkClient.UploadServerCertificate(uploadServerCertificateReq) u.logger.Debug("sdk request 'slb.UploadServerCertificate'", slog.Any("request", uploadServerCertificateReq), slog.Any("response", uploadServerCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'slb.UploadServerCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'slb.UploadServerCertificate': %w", err) } certId = *uploadServerCertificateResp.Body.ServerCertificateId diff --git a/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go b/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go index ccc3b152..8babb671 100644 --- a/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go +++ b/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go @@ -2,13 +2,13 @@ package awsacm import ( "context" + "fmt" "log/slog" aws "github.com/aws/aws-sdk-go-v2/aws" awscfg "github.com/aws/aws-sdk-go-v2/config" awscred "github.com/aws/aws-sdk-go-v2/credentials" awsacm "github.com/aws/aws-sdk-go-v2/service/acm" - xerrors "github.com/pkg/errors" "golang.org/x/exp/slices" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -39,7 +39,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -81,7 +81,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertificatesResp, err := u.sdkClient.ListCertificates(context.TODO(), listCertificatesReq) u.logger.Debug("sdk request 'acm.ListCertificates'", slog.Any("request", listCertificatesReq), slog.Any("response", listCertificatesResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'acm.ListCertificates'") + return nil, fmt.Errorf("failed to execute sdk request 'acm.ListCertificates': %w", err) } for _, certSummary := range listCertificatesResp.CertificateSummaryList { @@ -105,7 +105,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE } getCertificateResp, err := u.sdkClient.GetCertificate(context.TODO(), getCertificateReq) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'acm.GetCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'acm.GetCertificate': %w", err) } else { oldCertPEM := aws.ToString(getCertificateResp.CertificateChain) if oldCertPEM == "" { @@ -146,7 +146,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE importCertificateResp, err := u.sdkClient.ImportCertificate(context.TODO(), importCertificateReq) u.logger.Debug("sdk request 'acm.ImportCertificate'", slog.Any("request", importCertificateReq), slog.Any("response", importCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'acm.ImportCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'acm.ImportCertificate': %w", err) } return &uploader.UploadResult{ diff --git a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go index a0a24b3c..1aeb6517 100644 --- a/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go +++ b/internal/pkg/core/uploader/providers/azure-keyvault/azure_keyvault.go @@ -12,7 +12,6 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" azcommon "github.com/usual2970/certimate/internal/pkg/sdk3rd/azure/common" @@ -47,7 +46,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.TenantId, config.ClientId, config.ClientSecret, config.CloudName, config.KeyVaultName) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -85,7 +84,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE for listCertificatesPager.More() { page, err := listCertificatesPager.NextPage(context.TODO()) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'keyvault.GetCertificates'") + return nil, fmt.Errorf("failed to execute sdk request 'keyvault.GetCertificates': %w", err) } for _, certItem := range page.Value { @@ -118,7 +117,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE getCertificateResp, err := u.sdkClient.GetCertificate(context.TODO(), certItem.ID.Name(), certItem.ID.Version(), nil) u.logger.Debug("sdk request 'keyvault.GetCertificate'", slog.String("request.certificateName", certItem.ID.Name()), slog.String("request.certificateVersion", certItem.ID.Version()), slog.Any("response", getCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'keyvault.GetCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'keyvault.GetCertificate': %w", err) } else { oldCertX509, err := x509.ParseCertificate(getCertificateResp.CER) if err != nil { @@ -147,7 +146,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE // 暂时的解决方法是,将 PEM 证书转换成 PFX 格式,然后再导入。 certPFX, err := certutil.TransformCertificateFromPEMToPFX(certPEM, privkeyPEM, "") if err != nil { - return nil, xerrors.Wrap(err, "failed to transform certificate from PEM to PFX") + return nil, fmt.Errorf("failed to transform certificate from PEM to PFX: %w", err) } // 导入证书 @@ -167,7 +166,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE importCertificateResp, err := u.sdkClient.ImportCertificate(context.TODO(), certName, importCertificateParams, nil) u.logger.Debug("sdk request 'keyvault.ImportCertificate'", slog.String("request.certificateName", certName), slog.Any("request.parameters", importCertificateParams), slog.Any("response", importCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'keyvault.ImportCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'keyvault.ImportCertificate': %w", err) } return &uploader.UploadResult{ diff --git a/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go b/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go index 9e4776dc..727aa03f 100644 --- a/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go +++ b/internal/pkg/core/uploader/providers/baiducloud-cert/baiducloud_cert.go @@ -7,8 +7,6 @@ import ( "strings" "time" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/uploader" bdsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/baiducloud/cert" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" @@ -36,7 +34,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -67,7 +65,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertDetail, err := u.sdkClient.ListCertDetail() u.logger.Debug("sdk request 'cert.ListCertDetail'", slog.Any("response", listCertDetail)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cert.ListCertDetail'") + return nil, fmt.Errorf("failed to execute sdk request 'cert.ListCertDetail': %w", err) } else { for _, certDetail := range listCertDetail.Certs { // 先对比证书通用名称 @@ -91,7 +89,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE getCertDetailResp, err := u.sdkClient.GetCertRawData(certDetail.CertId) u.logger.Debug("sdk request 'cert.GetCertRawData'", slog.Any("certId", certDetail.CertId), slog.Any("response", getCertDetailResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cert.GetCertRawData'") + return nil, fmt.Errorf("failed to execute sdk request 'cert.GetCertRawData': %w", err) } else { oldCertX509, err := certutil.ParseCertificateFromPEM(getCertDetailResp.CertServerData) if err != nil { @@ -120,7 +118,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE createCertResp, err := u.sdkClient.CreateCert(createCertReq) u.logger.Debug("sdk request 'cert.CreateCert'", slog.Any("request", createCertReq), slog.Any("response", createCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cert.CreateCert'") + return nil, fmt.Errorf("failed to execute sdk request 'cert.CreateCert': %w", err) } return &uploader.UploadResult{ diff --git a/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go b/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go index d69bcc15..e94655df 100644 --- a/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go +++ b/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go @@ -11,7 +11,6 @@ import ( "time" bytepluscdn "github.com/byteplus-sdk/byteplus-sdk-golang/service/cdn" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" @@ -78,7 +77,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertInfoResp, err := u.sdkClient.ListCertInfo(listCertInfoReq) u.logger.Debug("sdk request 'cdn.ListCertInfo'", slog.Any("request", listCertInfoReq), slog.Any("response", listCertInfoResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.ListCertInfo'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.ListCertInfo': %w", err) } if listCertInfoResp.Result.CertInfo != nil { @@ -122,7 +121,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE addCertificateResp, err := u.sdkClient.AddCertificate(addCertificateReq) u.logger.Debug("sdk request 'cdn.AddCertificate'", slog.Any("request", addCertificateReq), slog.Any("response", addCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.AddCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.AddCertificate': %w", err) } certId = addCertificateResp.Result.CertId diff --git a/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go b/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go index 78364908..ca98fc90 100644 --- a/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go +++ b/internal/pkg/core/uploader/providers/dogecloud/dogecloud.go @@ -6,8 +6,6 @@ import ( "log/slog" "time" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/uploader" dogesdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/dogecloud" ) @@ -34,7 +32,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKey, config.SecretKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -63,7 +61,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE uploadSslCertResp, err := u.sdkClient.UploadCdnCert(certName, certPEM, privkeyPEM) u.logger.Debug("sdk request 'cdn.UploadCdnCert'", slog.Any("response", uploadSslCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.UploadCdnCert'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.UploadCdnCert': %w", err) } certId = fmt.Sprintf("%d", uploadSslCertResp.Data.Id) diff --git a/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go b/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go index c941e9aa..c5dc5296 100644 --- a/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go +++ b/internal/pkg/core/uploader/providers/gcore-cdn/gcore_cdn.go @@ -9,7 +9,6 @@ import ( gprovider "github.com/G-Core/gcorelabscdn-go/gcore/provider" gsslcerts "github.com/G-Core/gcorelabscdn-go/sslcerts" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" gcoresdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/gcore/common" @@ -35,7 +34,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.ApiToken) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -71,7 +70,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE createCertificateResp, err := u.sdkClient.Create(context.TODO(), createCertificateReq) u.logger.Debug("sdk request 'sslcerts.Create'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'sslcerts.Create'") + return nil, fmt.Errorf("failed to execute sdk request 'sslcerts.Create': %w", err) } certId = fmt.Sprintf("%d", createCertificateResp.ID) diff --git a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go index 217b1d4c..f9dd6f52 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go @@ -15,7 +15,6 @@ import ( hciam "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iam/v3" hciammodel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iam/v3/model" hciamregion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iam/v3/region" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" @@ -46,7 +45,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -85,7 +84,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertificatesResp, err := u.sdkClient.ListCertificates(listCertificatesReq) u.logger.Debug("sdk request 'elb.ListCertificates'", slog.Any("request", listCertificatesReq), slog.Any("response", listCertificatesResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'elb.ListCertificates'") + return nil, fmt.Errorf("failed to execute sdk request 'elb.ListCertificates': %w", err) } if listCertificatesResp.Certificates != nil { @@ -124,7 +123,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE // REF: https://support.huaweicloud.com/api-iam/iam_06_0001.html projectId, err := getSdkProjectId(u.config.AccessKeyId, u.config.SecretAccessKey, u.config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to get SDK project id") + return nil, fmt.Errorf("failed to get SDK project id: %w", err) } // 生成新证书名(需符合华为云命名规则) @@ -146,7 +145,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE createCertificateResp, err := u.sdkClient.CreateCertificate(createCertificateReq) u.logger.Debug("sdk request 'elb.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'elb.CreateCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'elb.CreateCertificate': %w", err) } certId = createCertificateResp.Certificate.Id diff --git a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go index d2f72a3b..7a09aa05 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go @@ -10,7 +10,6 @@ import ( hcscm "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/scm/v3" hcscmmodel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/scm/v3/model" hcscmregion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/scm/v3/region" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" @@ -41,7 +40,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -82,7 +81,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertificatesResp, err := u.sdkClient.ListCertificates(listCertificatesReq) u.logger.Debug("sdk request 'scm.ListCertificates'", slog.Any("request", listCertificatesReq), slog.Any("response", listCertificatesResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'scm.ListCertificates'") + return nil, fmt.Errorf("failed to execute sdk request 'scm.ListCertificates': %w", err) } if listCertificatesResp.Certificates != nil { @@ -96,7 +95,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE if exportCertificateResp != nil && exportCertificateResp.HttpStatusCode == 404 { continue } - return nil, xerrors.Wrap(err, "failed to execute sdk request 'scm.ExportCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'scm.ExportCertificate': %w", err) } var isSameCert bool @@ -145,7 +144,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE importCertificateResp, err := u.sdkClient.ImportCertificate(importCertificateReq) u.logger.Debug("sdk request 'scm.ImportCertificate'", slog.Any("request", importCertificateReq), slog.Any("response", importCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'scm.ImportCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'scm.ImportCertificate': %w", err) } certId = *importCertificateResp.CertificateId diff --git a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go index 3bd1fb31..56067f8b 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go @@ -15,7 +15,6 @@ import ( hcwaf "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1" hcwafmodel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1/model" hcwafregion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1/region" - xerrors "github.com/pkg/errors" "github.com/usual2970/certimate/internal/pkg/core/uploader" hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud" @@ -46,7 +45,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.SecretAccessKey, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -85,7 +84,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertificatesResp, err := u.sdkClient.ListCertificates(listCertificatesReq) u.logger.Debug("sdk request 'waf.ShowCertificate'", slog.Any("request", listCertificatesReq), slog.Any("response", listCertificatesResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'waf.ListCertificates'") + return nil, fmt.Errorf("failed to execute sdk request 'waf.ListCertificates': %w", err) } if listCertificatesResp.Items != nil { @@ -96,7 +95,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE showCertificateResp, err := u.sdkClient.ShowCertificate(showCertificateReq) u.logger.Debug("sdk request 'waf.ShowCertificate'", slog.Any("request", showCertificateReq), slog.Any("response", showCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'waf.ShowCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'waf.ShowCertificate': %w", err) } var isSameCert bool @@ -145,7 +144,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE createCertificateResp, err := u.sdkClient.CreateCertificate(createCertificateReq) u.logger.Debug("sdk request 'waf.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'waf.CreateCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'waf.CreateCertificate': %w", err) } certId = *createCertificateResp.Id diff --git a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go index c9389273..a0cbb1d9 100644 --- a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go +++ b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go @@ -12,7 +12,6 @@ import ( jdcore "github.com/jdcloud-api/jdcloud-sdk-go/core" jdsslapi "github.com/jdcloud-api/jdcloud-sdk-go/services/ssl/apis" jdsslclient "github.com/jdcloud-api/jdcloud-sdk-go/services/ssl/client" - xerrors "github.com/pkg/errors" "golang.org/x/exp/slices" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -41,7 +40,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -85,7 +84,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE describeCertsResp, err := u.sdkClient.DescribeCerts(describeCertsReq) u.logger.Debug("sdk request 'ssl.DescribeCerts'", slog.Any("request", describeCertsReq), slog.Any("response", describeCertsResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ssl.DescribeCerts'") + return nil, fmt.Errorf("failed to execute sdk request 'ssl.DescribeCerts': %w", err) } for _, certDetail := range describeCertsResp.Result.CertListDetails { @@ -137,7 +136,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE uploadCertResp, err := u.sdkClient.UploadCert(uploadCertReq) u.logger.Debug("sdk request 'ssl.UploadCertificate'", slog.Any("request", uploadCertReq), slog.Any("response", uploadCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ssl.UploadCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'ssl.UploadCertificate': %w", err) } return &uploader.UploadResult{ diff --git a/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go b/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go index 594c8fd7..8dc2fefe 100644 --- a/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go +++ b/internal/pkg/core/uploader/providers/qiniu-sslcert/qiniu_sslcert.go @@ -7,7 +7,6 @@ import ( "log/slog" "time" - xerrors "github.com/pkg/errors" "github.com/qiniu/go-sdk/v7/auth" "github.com/usual2970/certimate/internal/pkg/core/uploader" @@ -37,7 +36,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKey, config.SecretKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -72,7 +71,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE uploadSslCertResp, err := u.sdkClient.UploadSslCert(context.TODO(), certName, certX509.Subject.CommonName, certPEM, privkeyPEM) u.logger.Debug("sdk request 'cdn.UploadSslCert'", slog.Any("response", uploadSslCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.UploadSslCert'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.UploadSslCert': %w", err) } certId = uploadSslCertResp.CertID diff --git a/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go b/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go index 3991d07f..1cfdecc7 100644 --- a/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go +++ b/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go @@ -7,8 +7,6 @@ import ( "log/slog" "strings" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/uploader" rainyunsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/rainyun" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert" @@ -34,7 +32,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.ApiKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -70,7 +68,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE sslCenterCreateResp, err := u.sdkClient.SslCenterCreate(sslCenterCreateReq) u.logger.Debug("sdk request 'sslcenter.Create'", slog.Any("request", sslCenterCreateReq), slog.Any("response", sslCenterCreateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'sslcenter.Create'") + return nil, fmt.Errorf("failed to execute sdk request 'sslcenter.Create': %w", err) } if res, err := u.getCertIfExists(ctx, certPEM); err != nil { @@ -105,7 +103,7 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string) sslCenterListResp, err := u.sdkClient.SslCenterList(sslCenterListReq) u.logger.Debug("sdk request 'sslcenter.List'", slog.Any("request", sslCenterListReq), slog.Any("response", sslCenterListResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'sslcenter.List'") + return nil, fmt.Errorf("failed to execute sdk request 'sslcenter.List': %w", err) } if sslCenterListResp.Data != nil && sslCenterListResp.Data.Records != nil { @@ -123,7 +121,7 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string) // 最后对比证书内容 sslCenterGetResp, err := u.sdkClient.SslCenterGet(sslItem.ID) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'sslcenter.Get'") + return nil, fmt.Errorf("failed to execute sdk request 'sslcenter.Get': %w", err) } var isSameCert bool diff --git a/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go b/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go index a117607b..59067de4 100644 --- a/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go +++ b/internal/pkg/core/uploader/providers/tencentcloud-ssl/tencentcloud_ssl.go @@ -2,9 +2,9 @@ package tencentcloudssl import ( "context" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" tcssl "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl/v20191205" @@ -34,7 +34,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.SecretId, config.SecretKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -63,7 +63,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE uploadCertificateResp, err := u.sdkClient.UploadCertificate(uploadCertificateReq) u.logger.Debug("sdk request 'ssl.UploadCertificate'", slog.Any("request", uploadCertificateReq), slog.Any("response", uploadCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ssl.UploadCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'ssl.UploadCertificate': %w", err) } certId := *uploadCertificateResp.Response.CertificateId diff --git a/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go b/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go index d74f9a38..eb4ce1bf 100644 --- a/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go +++ b/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go @@ -12,7 +12,6 @@ import ( "strings" "time" - xerrors "github.com/pkg/errors" "github.com/ucloud/ucloud-sdk-go/ucloud" ucloudauth "github.com/ucloud/ucloud-sdk-go/ucloud/auth" @@ -45,7 +44,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.PrivateKey, config.PublicKey) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -99,7 +98,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE } } - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ussl.UploadNormalCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'ussl.UploadNormalCertificate': %w", err) } certId = fmt.Sprintf("%d", uploadNormalCertificateResp.CertificateID) @@ -137,7 +136,7 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string) getCertificateListResp, err := u.sdkClient.GetCertificateList(getCertificateListReq) u.logger.Debug("sdk request 'ussl.GetCertificateList'", slog.Any("request", getCertificateListReq), slog.Any("response", getCertificateListResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ussl.GetCertificateList'") + return nil, fmt.Errorf("failed to execute sdk request 'ussl.GetCertificateList': %w", err) } if getCertificateListResp.CertificateList != nil { @@ -164,7 +163,7 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string) } getCertificateDetailInfoResp, err := u.sdkClient.GetCertificateDetailInfo(getCertificateDetailInfoReq) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'ussl.GetCertificateDetailInfo'") + return nil, fmt.Errorf("failed to execute sdk request 'ussl.GetCertificateDetailInfo': %w", err) } switch certX509.SignatureAlgorithm { diff --git a/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go b/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go index 10eb5dbf..7a8bd3a0 100644 --- a/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go +++ b/internal/pkg/core/uploader/providers/upyun-ssl/upyun_ssl.go @@ -3,10 +3,9 @@ package upyunssl import ( "context" "errors" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" - "github.com/usual2970/certimate/internal/pkg/core/uploader" upyunsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/upyun/console" ) @@ -33,7 +32,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.Username, config.Password) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -61,7 +60,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE uploadHttpsCertificateResp, err := u.sdkClient.UploadHttpsCertificate(uploadHttpsCertificateReq) u.logger.Debug("sdk request 'console.UploadHttpsCertificate'", slog.Any("response", uploadHttpsCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'console.UploadHttpsCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'console.UploadHttpsCertificate': %w", err) } return &uploader.UploadResult{ diff --git a/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go b/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go index 9fb0cd23..48e03722 100644 --- a/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go +++ b/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go @@ -10,7 +10,6 @@ import ( "strings" "time" - xerrors "github.com/pkg/errors" vecdn "github.com/volcengine/volc-sdk-golang/service/cdn" ve "github.com/volcengine/volcengine-go-sdk/volcengine" @@ -79,7 +78,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertInfoResp, err := u.sdkClient.ListCertInfo(listCertInfoReq) u.logger.Debug("sdk request 'cdn.ListCertInfo'", slog.Any("request", listCertInfoReq), slog.Any("response", listCertInfoResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.ListCertInfo'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.ListCertInfo': %w", err) } if listCertInfoResp.Result.CertInfo != nil { @@ -123,7 +122,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE addCertificateResp, err := u.sdkClient.AddCertificate(addCertificateReq) u.logger.Debug("sdk request 'cdn.AddCertificate'", slog.Any("request", addCertificateResp), slog.Any("response", addCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'cdn.AddCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'cdn.AddCertificate': %w", err) } certId = addCertificateResp.Result.CertId diff --git a/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter.go b/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter.go index f04e9e53..99511ebf 100644 --- a/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter.go +++ b/internal/pkg/core/uploader/providers/volcengine-certcenter/volcengine_certcenter.go @@ -2,9 +2,10 @@ package volcenginecertcenter import ( "context" + "errors" + "fmt" "log/slog" - xerrors "github.com/pkg/errors" ve "github.com/volcengine/volcengine-go-sdk/volcengine" vesession "github.com/volcengine/volcengine-go-sdk/volcengine/session" @@ -36,7 +37,7 @@ func NewUploader(config *UploaderConfig) (*UploaderProvider, error) { client, err := createSdkClient(config.AccessKeyId, config.AccessKeySecret, config.Region) if err != nil { - return nil, xerrors.Wrap(err, "failed to create sdk client") + return nil, fmt.Errorf("failed to create sdk client: %w", err) } return &UploaderProvider{ @@ -68,7 +69,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE importCertificateResp, err := u.sdkClient.ImportCertificate(importCertificateReq) u.logger.Debug("sdk request 'certcenter.ImportCertificate'", slog.Any("request", importCertificateReq), slog.Any("response", importCertificateResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'certcenter.ImportCertificate'") + return nil, fmt.Errorf("failed to execute sdk request 'certcenter.ImportCertificate': %w", err) } var certId string @@ -80,7 +81,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE } if certId == "" { - return nil, xerrors.New("failed to get certificate id, both `InstanceId` and `RepeatId` are empty") + return nil, errors.New("failed to get certificate id from response, both `InstanceId` and `RepeatId` are empty") } return &uploader.UploadResult{ diff --git a/internal/pkg/core/uploader/providers/volcengine-live/volcengine_live.go b/internal/pkg/core/uploader/providers/volcengine-live/volcengine_live.go index bd8d905e..de5ec27d 100644 --- a/internal/pkg/core/uploader/providers/volcengine-live/volcengine_live.go +++ b/internal/pkg/core/uploader/providers/volcengine-live/volcengine_live.go @@ -7,7 +7,6 @@ import ( "strings" "time" - xerrors "github.com/pkg/errors" velive "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ve "github.com/volcengine/volcengine-go-sdk/volcengine" @@ -68,7 +67,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertResp, err := u.sdkClient.ListCertV2(ctx, listCertReq) u.logger.Debug("sdk request 'live.ListCertV2'", slog.Any("request", listCertReq), slog.Any("response", listCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'live.ListCertV2'") + return nil, fmt.Errorf("failed to execute sdk request 'live.ListCertV2': %w", err) } if listCertResp.Result.CertList != nil { for _, certDetail := range listCertResp.Result.CertList { @@ -125,7 +124,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE createCertResp, err := u.sdkClient.CreateCert(ctx, createCertReq) u.logger.Debug("sdk request 'live.CreateCert'", slog.Any("request", createCertReq), slog.Any("response", createCertResp)) if err != nil { - return nil, xerrors.Wrap(err, "failed to execute sdk request 'live.CreateCert'") + return nil, fmt.Errorf("failed to execute sdk request 'live.CreateCert': %w", err) } certId = *createCertResp.Result.ChainID diff --git a/internal/pkg/utils/cert/converter.go b/internal/pkg/utils/cert/converter.go index 86c3c3d8..b726e86d 100644 --- a/internal/pkg/utils/cert/converter.go +++ b/internal/pkg/utils/cert/converter.go @@ -5,8 +5,7 @@ import ( "crypto/x509" "encoding/pem" "errors" - - xerrors "github.com/pkg/errors" + "fmt" ) // 将 x509.Certificate 对象转换为 PEM 编码的字符串。 @@ -45,7 +44,7 @@ func ConvertECPrivateKeyToPEM(privkey *ecdsa.PrivateKey) (privkeyPEM string, err data, err := x509.MarshalECPrivateKey(privkey) if err != nil { - return "", xerrors.Wrap(err, "failed to marshal EC private key") + return "", fmt.Errorf("failed to marshal EC private key: %w", err) } block := &pem.Block{ diff --git a/internal/pkg/utils/cert/parser.go b/internal/pkg/utils/cert/parser.go index e8281b12..eb743f78 100644 --- a/internal/pkg/utils/cert/parser.go +++ b/internal/pkg/utils/cert/parser.go @@ -7,9 +7,9 @@ import ( "crypto/x509" "encoding/pem" "errors" + "fmt" "github.com/go-acme/lego/v4/certcrypto" - xerrors "github.com/pkg/errors" ) // 从 PEM 编码的证书字符串解析并返回一个 x509.Certificate 对象。 @@ -31,7 +31,7 @@ func ParseCertificateFromPEM(certPEM string) (cert *x509.Certificate, err error) cert, err = x509.ParseCertificate(block.Bytes) if err != nil { - return nil, xerrors.Wrap(err, "failed to parse certificate") + return nil, fmt.Errorf("failed to parse certificate: %w", err) } return cert, nil @@ -68,7 +68,7 @@ func ParseECPrivateKeyFromPEM(privkeyPEM string) (privkey *ecdsa.PrivateKey, err privkey, err = x509.ParseECPrivateKey(block.Bytes) if err != nil { - return nil, xerrors.Wrap(err, "failed to parse private key") + return nil, fmt.Errorf("failed to parse private key: %w", err) } return privkey, nil @@ -92,7 +92,7 @@ func ParsePKCS1PrivateKeyFromPEM(privkeyPEM string) (privkey *rsa.PrivateKey, er privkey, err = x509.ParsePKCS1PrivateKey(block.Bytes) if err != nil { - return nil, xerrors.Wrap(err, "failed to parse private key") + return nil, fmt.Errorf("failed to parse private key: %w", err) } return privkey, nil diff --git a/internal/pkg/utils/file/io.go b/internal/pkg/utils/file/io.go index 12844b58..58b5b970 100644 --- a/internal/pkg/utils/file/io.go +++ b/internal/pkg/utils/file/io.go @@ -1,10 +1,9 @@ package fileutil import ( + "fmt" "os" "path/filepath" - - xerrors "github.com/pkg/errors" ) // 与 [Write] 类似,但写入的是字符串内容。 @@ -34,18 +33,18 @@ func Write(path string, data []byte) error { err := os.MkdirAll(dir, os.ModePerm) if err != nil { - return xerrors.Wrap(err, "failed to create directory") + return fmt.Errorf("failed to create directory: %w", err) } file, err := os.Create(path) if err != nil { - return xerrors.Wrap(err, "failed to create file") + return fmt.Errorf("failed to create file: %w", err) } defer file.Close() _, err = file.Write(data) if err != nil { - return xerrors.Wrap(err, "failed to write file") + return fmt.Errorf("failed to write file: %w", err) } return nil From 97f102533cd149d38fc0c5624854bbcb47ae9250 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Wed, 23 Apr 2025 19:32:21 +0800 Subject: [PATCH 10/38] feat: enhance context cancellation handling --- .../providers/aliyun-alb/aliyun_alb.go | 18 +++++++++++++ .../providers/aliyun-apigw/aliyun_apigw.go | 6 +++++ .../aliyun-cas-deploy/aliyun_cas_deploy.go | 4 ++- .../providers/aliyun-clb/aliyun_clb.go | 16 +++++++++-- .../providers/aliyun-nlb/aliyun_nlb.go | 16 +++++++++-- .../baiducloud-appblb/baiducloud_appblb.go | 20 +++++++++++--- .../baiducloud-blb/baiducloud_blb.go | 20 +++++++++++--- .../providers/byteplus-cdn/byteplus_cdn.go | 26 +++++++++++------- .../huaweicloud-elb/huaweicloud_elb.go | 16 +++++++++-- .../huaweicloud-waf/huaweicloud_waf.go | 12 +++++++++ .../providers/jdcloud-alb/jdcloud_alb.go | 15 +++++++++-- .../providers/jdcloud-vod/jdcloud_vod.go | 6 +++++ .../tencentcloud-clb/tencentcloud_clb.go | 9 +++++-- .../tencentcloud_ssl_deploy.go | 4 ++- .../volcengine-alb/volcengine_alb.go | 15 +++++++++-- .../volcengine-cdn/volcengine_cdn.go | 25 ++++++++++------- .../volcengine-clb/volcengine_clb.go | 15 +++++++++-- .../volcengine-live/volcengine_live.go | 27 +++++++++++-------- .../providers/wangsu-cdnpro/wangsu_cdnpro.go | 4 ++- .../providers/1panel-ssl/1panel_ssl.go | 6 +++++ .../providers/aliyun-cas/aliyun_cas.go | 6 +++++ .../uploader/providers/aws-acm/aws_acm.go | 6 +++++ .../providers/byteplus-cdn/byteplus_cdn.go | 6 +++++ .../huaweicloud-elb/huaweicloud_elb.go | 6 +++++ .../huaweicloud-scm/huaweicloud_scm.go | 6 +++++ .../huaweicloud-waf/huaweicloud_waf.go | 6 +++++ .../providers/jdcloud-ssl/jdcloud_ssl.go | 6 +++++ .../rainyun-sslcenter/rainyun_sslcenter.go | 6 +++++ .../providers/ucloud-ussl/ucloud_ussl.go | 6 +++++ .../volcengine-cdn/volcengine_cdn.go | 6 +++++ internal/workflow/dispatcher/invoker.go | 4 ++- 31 files changed, 287 insertions(+), 57 deletions(-) diff --git a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go index ddf49218..1d60d315 100644 --- a/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go +++ b/internal/pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go @@ -137,6 +137,12 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId listListenersLimit := int32(100) var listListenersToken *string = nil for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + listListenersReq := &alialb.ListListenersRequest{ MaxResults: tea.Int32(listListenersLimit), NextToken: listListenersToken, @@ -166,6 +172,12 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId // REF: https://help.aliyun.com/zh/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-listlisteners listListenersToken = nil for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + listListenersReq := &alialb.ListListenersRequest{ MaxResults: tea.Int32(listListenersLimit), NextToken: listListenersToken, @@ -262,6 +274,12 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudL listListenerCertificatesLimit := int32(100) var listListenerCertificatesToken *string = nil for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + listListenerCertificatesReq := &alialb.ListListenerCertificatesRequest{ NextToken: listListenerCertificatesToken, MaxResults: tea.Int32(listListenerCertificatesLimit), diff --git a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go index 2d85be7a..82a05c33 100644 --- a/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go +++ b/internal/pkg/core/deployer/providers/aliyun-apigw/aliyun_apigw.go @@ -142,6 +142,12 @@ func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPEM stri listDomainsPageNumber := int32(1) listDomainsPageSize := int32(10) for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + listDomainsReq := &aliapig.ListDomainsRequest{ GatewayId: tea.String(d.config.GatewayId), NameLike: tea.String(d.config.Domain), diff --git a/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go b/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go index a819de13..077dea5c 100644 --- a/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go +++ b/internal/pkg/core/deployer/providers/aliyun-cas-deploy/aliyun_cas_deploy.go @@ -126,8 +126,10 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 循环获取部署任务详情,等待任务状态变更 // REF: https://help.aliyun.com/zh/ssl-certificate/developer-reference/api-cas-2020-04-07-describedeploymentjob for { - if ctx.Err() != nil { + select { + case <-ctx.Done(): return nil, ctx.Err() + default: } describeDeploymentJobReq := &alicas.DescribeDeploymentJobRequest{ diff --git a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go index 583eeabd..6ff33049 100644 --- a/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go +++ b/internal/pkg/core/deployer/providers/aliyun-clb/aliyun_clb.go @@ -132,6 +132,12 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeLoadBalancerListenersLimit := int32(100) var describeLoadBalancerListenersToken *string = nil for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + describeLoadBalancerListenersReq := &alislb.DescribeLoadBalancerListenersRequest{ RegionId: tea.String(d.config.Region), MaxResults: tea.Int32(describeLoadBalancerListenersLimit), @@ -166,8 +172,14 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId var errs []error for _, listenerPort := range listenerPorts { - if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listenerPort, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + + default: + if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listenerPort, cloudCertId); err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go index 326273f8..d6879f61 100644 --- a/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go +++ b/internal/pkg/core/deployer/providers/aliyun-nlb/aliyun_nlb.go @@ -125,6 +125,12 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId listListenersLimit := int32(100) var listListenersToken *string = nil for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + listListenersReq := &alinlb.ListListenersRequest{ MaxResults: tea.Int32(listListenersLimit), NextToken: listListenersToken, @@ -158,8 +164,14 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId var errs []error for _, listenerId := range listenerIds { - if err := d.updateListenerCertificate(ctx, listenerId, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + + default: + if err := d.updateListenerCertificate(ctx, listenerId, cloudCertId); err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go index 90084f6b..aabce14c 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go +++ b/internal/pkg/core/deployer/providers/baiducloud-appblb/baiducloud_appblb.go @@ -152,8 +152,14 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId var errs []error for _, listener := range listeners { - if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listener.Type, listener.Port, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + + default: + if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listener.Type, listener.Port, cloudCertId); err != nil { + errs = append(errs, err) + } } } @@ -209,8 +215,14 @@ func (d *DeployerProvider) deployToListener(ctx context.Context, cloudCertId str var errs []error for _, listener := range listeners { - if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listener.Type, listener.Port, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + + default: + if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listener.Type, listener.Port, cloudCertId); err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go index 8c350492..a16ea102 100644 --- a/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go +++ b/internal/pkg/core/deployer/providers/baiducloud-blb/baiducloud_blb.go @@ -152,8 +152,14 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId var errs []error for _, listener := range listeners { - if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listener.Type, listener.Port, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + + default: + if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listener.Type, listener.Port, cloudCertId); err != nil { + errs = append(errs, err) + } } } @@ -209,8 +215,14 @@ func (d *DeployerProvider) deployToListener(ctx context.Context, cloudCertId str var errs []error for _, listener := range listeners { - if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listener.Type, listener.Port, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + + default: + if err := d.updateListenerCertificate(ctx, d.config.LoadbalancerId, listener.Type, listener.Port, cloudCertId); err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go index d74f6c60..e659c9a1 100644 --- a/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go +++ b/internal/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go @@ -117,16 +117,22 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE var errs []error for _, domain := range domains { - // 关联证书与加速域名 - // REF: https://docs.byteplus.com/en/docs/byteplus-cdn/reference-batchdeploycert - batchDeployCertReq := &bpcdn.BatchDeployCertRequest{ - CertId: upres.CertId, - Domain: domain, - } - batchDeployCertResp, err := d.sdkClient.BatchDeployCert(batchDeployCertReq) - d.logger.Debug("sdk request 'cdn.BatchDeployCert'", slog.Any("request", batchDeployCertReq), slog.Any("response", batchDeployCertResp)) - if err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return nil, ctx.Err() + + default: + // 关联证书与加速域名 + // REF: https://docs.byteplus.com/en/docs/byteplus-cdn/reference-batchdeploycert + batchDeployCertReq := &bpcdn.BatchDeployCertRequest{ + CertId: upres.CertId, + Domain: domain, + } + batchDeployCertResp, err := d.sdkClient.BatchDeployCert(batchDeployCertReq) + d.logger.Debug("sdk request 'cdn.BatchDeployCert'", slog.Any("request", batchDeployCertReq), slog.Any("response", batchDeployCertResp)) + if err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go index f0c8175e..748111dd 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-elb/huaweicloud_elb.go @@ -160,6 +160,12 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPEM str listListenersLimit := int32(2000) var listListenersMarker *string = nil for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + listListenersReq := &hcelbmodel.ListListenersRequest{ Limit: typeutil.ToPtr(listListenersLimit), Marker: listListenersMarker, @@ -201,8 +207,14 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPEM str var errs []error for _, listenerId := range listenerIds { - if err := d.modifyListenerCertificate(ctx, listenerId, upres.CertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + + default: + if err := d.modifyListenerCertificate(ctx, listenerId, upres.CertId); err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go index ff208fe0..8fe96ee0 100644 --- a/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/deployer/providers/huaweicloud-waf/huaweicloud_waf.go @@ -172,6 +172,12 @@ func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPEM stri listHostPage := int32(1) listHostPageSize := int32(100) for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + listHostReq := &hcwafmodel.ListHostRequest{ Hostname: typeutil.ToPtr(strings.TrimPrefix(d.config.Domain, "*")), Page: typeutil.ToPtr(listHostPage), @@ -239,6 +245,12 @@ func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPEM stri listPremiumHostPage := int32(1) listPremiumHostPageSize := int32(100) for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + listPremiumHostReq := &hcwafmodel.ListPremiumHostRequest{ Hostname: typeutil.ToPtr(strings.TrimPrefix(d.config.Domain, "*")), Page: typeutil.ToPtr(fmt.Sprintf("%d", listPremiumHostPage)), diff --git a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go index 339bacc8..ca42126e 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go +++ b/internal/pkg/core/deployer/providers/jdcloud-alb/jdcloud_alb.go @@ -132,6 +132,12 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeListenersPageNumber := 1 describeListenersPageSize := 100 for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + describeListenersReq := jdlbapi.NewDescribeListenersRequest(d.config.RegionId) describeListenersReq.SetFilters([]jdcommon.Filter{{Name: "loadBalancerId", Values: []string{d.config.LoadbalancerId}}}) describeListenersReq.SetPageSize(describeListenersPageNumber) @@ -164,8 +170,13 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId var errs []error for _, listenerId := range listenerIds { - if err := d.updateListenerCertificate(ctx, listenerId, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + default: + if err := d.updateListenerCertificate(ctx, listenerId, cloudCertId); err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go index 61c5a6f6..6f61625d 100644 --- a/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go +++ b/internal/pkg/core/deployer/providers/jdcloud-vod/jdcloud_vod.go @@ -65,6 +65,12 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE listDomainsPageNumber := 1 listDomainsPageSize := 100 for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + listDomainsReq := jdvodapi.NewListDomainsRequest() listDomainsReq.SetPageNumber(1) listDomainsReq.SetPageSize(100) diff --git a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go index 7625d6ae..0c2f8902 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-clb/tencentcloud_clb.go @@ -188,8 +188,13 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId var errs []error for _, listenerId := range listenerIds { - if err := d.modifyListenerCertificate(ctx, d.config.LoadbalancerId, listenerId, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + default: + if err := d.modifyListenerCertificate(ctx, d.config.LoadbalancerId, listenerId, cloudCertId); err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go b/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go index f6090190..5f13660d 100644 --- a/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go +++ b/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy/tencentcloud_ssl_deploy.go @@ -108,8 +108,10 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE // 循环获取部署任务详情,等待任务状态变更 // REF: https://cloud.tencent.com.cn/document/api/400/91658 for { - if ctx.Err() != nil { + select { + case <-ctx.Done(): return nil, ctx.Err() + default: } describeHostDeployRecordDetailReq := tcssl.NewDescribeHostDeployRecordDetailRequest() diff --git a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go index c3d0a2d6..b17ae729 100644 --- a/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go +++ b/internal/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go @@ -132,6 +132,12 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeListenersPageSize := int64(100) describeListenersPageNumber := int64(1) for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + describeListenersReq := &vealb.DescribeListenersInput{ LoadBalancerId: ve.String(d.config.LoadbalancerId), Protocol: ve.String("HTTPS"), @@ -163,8 +169,13 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId var errs []error for _, listenerId := range listenerIds { - if err := d.updateListenerCertificate(ctx, listenerId, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + default: + if err := d.updateListenerCertificate(ctx, listenerId, cloudCertId); err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go index f8642b7f..e9b2c325 100644 --- a/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go +++ b/internal/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go @@ -117,16 +117,21 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE var errs []error for _, domain := range domains { - // 关联证书与加速域名 - // REF: https://www.volcengine.com/docs/6454/125712 - batchDeployCertReq := &vecdn.BatchDeployCertRequest{ - CertId: upres.CertId, - Domain: domain, - } - batchDeployCertResp, err := d.sdkClient.BatchDeployCert(batchDeployCertReq) - d.logger.Debug("sdk request 'cdn.BatchDeployCert'", slog.Any("request", batchDeployCertReq), slog.Any("response", batchDeployCertResp)) - if err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + // 关联证书与加速域名 + // REF: https://www.volcengine.com/docs/6454/125712 + batchDeployCertReq := &vecdn.BatchDeployCertRequest{ + CertId: upres.CertId, + Domain: domain, + } + batchDeployCertResp, err := d.sdkClient.BatchDeployCert(batchDeployCertReq) + d.logger.Debug("sdk request 'cdn.BatchDeployCert'", slog.Any("request", batchDeployCertReq), slog.Any("response", batchDeployCertResp)) + if err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go index e95aac0e..3b6a37bf 100644 --- a/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go +++ b/internal/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go @@ -128,6 +128,12 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId describeListenersPageSize := int64(100) describeListenersPageNumber := int64(1) for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + describeListenersReq := &veclb.DescribeListenersInput{ LoadBalancerId: ve.String(d.config.LoadbalancerId), Protocol: ve.String("HTTPS"), @@ -159,8 +165,13 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, cloudCertId var errs []error for _, listenerId := range listenerIds { - if err := d.updateListenerCertificate(ctx, listenerId, cloudCertId); err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return ctx.Err() + default: + if err := d.updateListenerCertificate(ctx, listenerId, cloudCertId); err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go index 1b1336b6..46c0b9dc 100644 --- a/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go +++ b/internal/pkg/core/deployer/providers/volcengine-live/volcengine_live.go @@ -125,17 +125,22 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE var errs []error for _, domain := range domains { - // 绑定证书 - // REF: https://www.volcengine.com/docs/6469/1186278#%E7%BB%91%E5%AE%9A%E8%AF%81%E4%B9%A6 - bindCertReq := &velive.BindCertBody{ - ChainID: upres.CertId, - Domain: domain, - HTTPS: ve.Bool(true), - } - bindCertResp, err := d.sdkClient.BindCert(ctx, bindCertReq) - d.logger.Debug("sdk request 'live.BindCert'", slog.Any("request", bindCertReq), slog.Any("response", bindCertResp)) - if err != nil { - errs = append(errs, err) + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + // 绑定证书 + // REF: https://www.volcengine.com/docs/6469/1186278#%E7%BB%91%E5%AE%9A%E8%AF%81%E4%B9%A6 + bindCertReq := &velive.BindCertBody{ + ChainID: upres.CertId, + Domain: domain, + HTTPS: ve.Bool(true), + } + bindCertResp, err := d.sdkClient.BindCert(ctx, bindCertReq) + d.logger.Debug("sdk request 'live.BindCert'", slog.Any("request", bindCertReq), slog.Any("response", bindCertResp)) + if err != nil { + errs = append(errs, err) + } } } diff --git a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go index f09cfb92..2faf1b03 100644 --- a/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go +++ b/internal/pkg/core/deployer/providers/wangsu-cdnpro/wangsu_cdnpro.go @@ -199,8 +199,10 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE wangsuTaskId = wangsuTaskMatches[1] } for { - if ctx.Err() != nil { + select { + case <-ctx.Done(): return nil, ctx.Err() + default: } getDeploymentTaskDetailResp, err := d.sdkClient.GetDeploymentTaskDetail(wangsuTaskId) diff --git a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go index e4817ff8..e5a0b0ba 100644 --- a/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go +++ b/internal/pkg/core/uploader/providers/1panel-ssl/1panel_ssl.go @@ -93,6 +93,12 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string, searchWebsiteSSLPageNumber := int32(1) searchWebsiteSSLPageSize := int32(100) for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + searchWebsiteSSLReq := &opsdk.SearchWebsiteSSLRequest{ Page: searchWebsiteSSLPageNumber, PageSize: searchWebsiteSSLPageSize, diff --git a/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go b/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go index 487ee8b5..9d7be223 100644 --- a/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go +++ b/internal/pkg/core/uploader/providers/aliyun-cas/aliyun_cas.go @@ -71,6 +71,12 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listUserCertificateOrderPage := int64(1) listUserCertificateOrderLimit := int64(50) for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + listUserCertificateOrderReq := &alicas.ListUserCertificateOrderRequest{ CurrentPage: tea.Int64(listUserCertificateOrderPage), ShowSize: tea.Int64(listUserCertificateOrderLimit), diff --git a/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go b/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go index 8babb671..f808083c 100644 --- a/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go +++ b/internal/pkg/core/uploader/providers/aws-acm/aws_acm.go @@ -74,6 +74,12 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE var listCertificatesNextToken *string = nil listCertificatesMaxItems := int32(1000) for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + listCertificatesReq := &awsacm.ListCertificatesInput{ NextToken: listCertificatesNextToken, MaxItems: aws.Int32(listCertificatesMaxItems), diff --git a/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go b/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go index e94655df..1235893c 100644 --- a/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go +++ b/internal/pkg/core/uploader/providers/byteplus-cdn/byteplus_cdn.go @@ -74,6 +74,12 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE Source: bytepluscdn.GetStrPtr("cert_center"), } for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + listCertInfoResp, err := u.sdkClient.ListCertInfo(listCertInfoReq) u.logger.Debug("sdk request 'cdn.ListCertInfo'", slog.Any("request", listCertInfoReq), slog.Any("response", listCertInfoResp)) if err != nil { diff --git a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go index 9a7d74b1..9369144e 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-elb/huaweicloud_elb.go @@ -76,6 +76,12 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertificatesLimit := int32(2000) var listCertificatesMarker *string = nil for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + listCertificatesReq := &hcelbmodel.ListCertificatesRequest{ Limit: typeutil.ToPtr(listCertificatesLimit), Marker: listCertificatesMarker, diff --git a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go index a26b471a..f8435733 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-scm/huaweicloud_scm.go @@ -72,6 +72,12 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertificatesLimit := int32(50) listCertificatesOffset := int32(0) for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + listCertificatesReq := &hcscmmodel.ListCertificatesRequest{ Limit: typeutil.ToPtr(listCertificatesLimit), Offset: typeutil.ToPtr(listCertificatesOffset), diff --git a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go index 9e3bbd59..d0c61775 100644 --- a/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go +++ b/internal/pkg/core/uploader/providers/huaweicloud-waf/huaweicloud_waf.go @@ -77,6 +77,12 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE listCertificatesPage := int32(1) listCertificatesPageSize := int32(100) for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + listCertificatesReq := &hcwafmodel.ListCertificatesRequest{ Page: typeutil.ToPtr(listCertificatesPage), Pagesize: typeutil.ToPtr(listCertificatesPageSize), diff --git a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go index a0cbb1d9..b26755a6 100644 --- a/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go +++ b/internal/pkg/core/uploader/providers/jdcloud-ssl/jdcloud_ssl.go @@ -77,6 +77,12 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE describeCertsPageNumber := 1 describeCertsPageSize := 10 for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + describeCertsReq := jdsslapi.NewDescribeCertsRequest() describeCertsReq.SetDomainName(certX509.Subject.CommonName) describeCertsReq.SetPageNumber(describeCertsPageNumber) diff --git a/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go b/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go index 1cfdecc7..cb493110 100644 --- a/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go +++ b/internal/pkg/core/uploader/providers/rainyun-sslcenter/rainyun_sslcenter.go @@ -93,6 +93,12 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string) sslCenterListPage := int32(1) sslCenterListPerPage := int32(100) for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + sslCenterListReq := &rainyunsdk.SslCenterListRequest{ Filters: &rainyunsdk.SslCenterListFilters{ Domain: &certX509.Subject.CommonName, diff --git a/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go b/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go index eb4ce1bf..90eb1683 100644 --- a/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go +++ b/internal/pkg/core/uploader/providers/ucloud-ussl/ucloud_ussl.go @@ -124,6 +124,12 @@ func (u *UploaderProvider) getCertIfExists(ctx context.Context, certPEM string) getCertificateListPage := int(1) getCertificateListLimit := int(1000) for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + getCertificateListReq := u.sdkClient.NewGetCertificateListRequest() getCertificateListReq.Mode = ucloud.String("trust") getCertificateListReq.Domain = ucloud.String(certX509.Subject.CommonName) diff --git a/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go b/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go index 48e03722..b529e84a 100644 --- a/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go +++ b/internal/pkg/core/uploader/providers/volcengine-cdn/volcengine_cdn.go @@ -75,6 +75,12 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE Source: "volc_cert_center", } for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + listCertInfoResp, err := u.sdkClient.ListCertInfo(listCertInfoReq) u.logger.Debug("sdk request 'cdn.ListCertInfo'", slog.Any("request", listCertInfoReq), slog.Any("response", listCertInfoResp)) if err != nil { diff --git a/internal/workflow/dispatcher/invoker.go b/internal/workflow/dispatcher/invoker.go index 5f344458..c644b26b 100644 --- a/internal/workflow/dispatcher/invoker.go +++ b/internal/workflow/dispatcher/invoker.go @@ -47,8 +47,10 @@ func (w *workflowInvoker) GetLogs() domain.WorkflowLogs { func (w *workflowInvoker) processNode(ctx context.Context, node *domain.WorkflowNode) error { current := node for current != nil { - if ctx.Err() != nil { + select { + case <-ctx.Done(): return ctx.Err() + default: } if current.Type == domain.WorkflowNodeTypeBranch || current.Type == domain.WorkflowNodeTypeExecuteResultBranch { From 034bb71b10ca2620c5f267c12f99ceb87f3ccd8c Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 24 Apr 2025 09:13:49 +0800 Subject: [PATCH 11/38] feat(ui): show ca provider global settings button only when not specified ca provider --- .../components/provider/ApplyCAProviderSelect.tsx | 2 +- .../workflow/node/ApplyNodeConfigForm.tsx | 15 +++++++++------ ui/src/i18n/locales/zh/nls.workflow.nodes.json | 6 +++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/ui/src/components/provider/ApplyCAProviderSelect.tsx b/ui/src/components/provider/ApplyCAProviderSelect.tsx index fdedac9b..6c805bae 100644 --- a/ui/src/components/provider/ApplyCAProviderSelect.tsx +++ b/ui/src/components/provider/ApplyCAProviderSelect.tsx @@ -22,7 +22,7 @@ const ApplyCAProviderSelect = ({ filter, ...props }: ApplyCAProviderSelectProps) { key: "", value: "", - label: "provider.default_ca_provider.label", + label: t("provider.default_ca_provider.label"), data: {} as ApplyCAProvider, }, ...filteredItems.map((item) => ({ diff --git a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx index 6ea95979..98bfcef2 100644 --- a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx +++ b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx @@ -33,6 +33,7 @@ import ModalForm from "@/components/ModalForm"; import MultipleInput from "@/components/MultipleInput"; import ApplyCAProviderSelect from "@/components/provider/ApplyCAProviderSelect"; import ApplyDNSProviderSelect from "@/components/provider/ApplyDNSProviderSelect"; +import Show from "@/components/Show"; import { ACCESS_USAGES, APPLY_DNS_PROVIDERS, accessProvidersMap, applyCAProvidersMap, applyDNSProvidersMap } from "@/domain/provider"; import { type WorkflowNodeConfigForApply } from "@/domain/workflow"; import { useAntdForm, useAntdFormName, useZustandShallowSelector } from "@/hooks"; @@ -400,12 +401,14 @@ const ApplyNodeConfigForm = forwardRef
{t("workflow_node.apply.form.ca_provider.label")}
- - - + + + + +
diff --git a/ui/src/i18n/locales/zh/nls.workflow.nodes.json b/ui/src/i18n/locales/zh/nls.workflow.nodes.json index 1e1387f8..1db3a1d5 100644 --- a/ui/src/i18n/locales/zh/nls.workflow.nodes.json +++ b/ui/src/i18n/locales/zh/nls.workflow.nodes.json @@ -57,12 +57,12 @@ "workflow_node.apply.form.advanced_config.label": "高级设置", "workflow_node.apply.form.ca_provider.label": "证书颁发机构(可选)", "workflow_node.apply.form.ca_provider.placeholder": "请选择证书颁发机构", - "workflow_node.apply.form.ca_provider.button": "去配置", + "workflow_node.apply.form.ca_provider.button": "设置", "workflow_node.apply.form.ca_provider_access.label": "证书颁发机构授权", "workflow_node.apply.form.ca_provider_access.placeholder": "请选择证书颁发机构授权", "workflow_node.apply.form.ca_provider_access.button": "新建", - "workflow_node.apply.form.key_algorithm.label": "数字证书算法", - "workflow_node.apply.form.key_algorithm.placeholder": "请选择数字证书算法", + "workflow_node.apply.form.key_algorithm.label": "证书算法", + "workflow_node.apply.form.key_algorithm.placeholder": "请选择证书算法", "workflow_node.apply.form.nameservers.label": "DNS 递归服务器(可选)", "workflow_node.apply.form.nameservers.placeholder": "请输入 DNS 递归服务器(多个值请用半角分号隔开)", "workflow_node.apply.form.nameservers.tooltip": "在 ACME DNS-01 质询时使用自定义的 DNS 递归服务器。如果你不了解该选项的用途,保持默认即可。点此了解更多。", From 2d17501072ec590fc1fba8590ec4aa2a6ca9be58 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 24 Apr 2025 10:46:16 +0800 Subject: [PATCH 12/38] refactor: clean code --- internal/applicant/applicant.go | 130 +++++++++++++++----------------- internal/applicant/providers.go | 20 ++++- internal/deployer/deployer.go | 57 ++++++-------- internal/deployer/providers.go | 8 +- 4 files changed, 111 insertions(+), 104 deletions(-) diff --git a/internal/applicant/applicant.go b/internal/applicant/applicant.go index 7b8b94f9..9aeede3c 100644 --- a/internal/applicant/applicant.go +++ b/internal/applicant/applicant.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "log/slog" "os" "strconv" "strings" @@ -22,7 +23,7 @@ import ( "github.com/usual2970/certimate/internal/repository" ) -type ApplyCertResult struct { +type ApplyResult struct { CertificateFullChain string IssuerCertificate string PrivateKey string @@ -33,34 +34,24 @@ type ApplyCertResult struct { } type Applicant interface { - Apply() (*ApplyCertResult, error) + Apply(ctx context.Context) (*ApplyResult, error) } -type applicantOptions struct { - Domains []string - ContactEmail string - Provider domain.ApplyDNSProviderType - ProviderAccessConfig map[string]any - ProviderExtendedConfig map[string]any - CAProvider domain.ApplyCAProviderType - CAProviderAccessConfig map[string]any - CAProviderExtendedConfig map[string]any - KeyAlgorithm string - Nameservers []string - DnsPropagationTimeout int32 - DnsTTL int32 - DisableFollowCNAME bool - ReplacedARIAcct string - ReplacedARICert string +type ApplicantWithWorkflowNodeConfig struct { + Node *domain.WorkflowNode + Logger *slog.Logger } -func NewWithApplyNode(node *domain.WorkflowNode) (Applicant, error) { - if node.Type != domain.WorkflowNodeTypeApply { +func NewWithWorkflowNode(config ApplicantWithWorkflowNodeConfig) (Applicant, error) { + if config.Node == nil { + return nil, fmt.Errorf("node is nil") + } + if config.Node.Type != domain.WorkflowNodeTypeApply { return nil, fmt.Errorf("node type is not '%s'", string(domain.WorkflowNodeTypeApply)) } - nodeConfig := node.GetConfigForApply() - options := &applicantOptions{ + nodeConfig := config.Node.GetConfigForApply() + options := &applicantProviderOptions{ Domains: sliceutil.Filter(strings.Split(nodeConfig.Domains, ";"), func(s string) bool { return s != "" }), ContactEmail: nodeConfig.ContactEmail, Provider: domain.ApplyDNSProviderType(nodeConfig.Provider), @@ -113,7 +104,7 @@ func NewWithApplyNode(node *domain.WorkflowNode) (Applicant, error) { } certRepo := repository.NewCertificateRepository() - lastCertificate, _ := certRepo.GetByWorkflowNodeId(context.Background(), node.Id) + lastCertificate, _ := certRepo.GetByWorkflowNodeId(context.Background(), config.Node.Id) if lastCertificate != nil { newCertSan := slices.Clone(options.Domains) oldCertSan := strings.Split(lastCertificate.SubjectAltNames, ";") @@ -130,18 +121,46 @@ func NewWithApplyNode(node *domain.WorkflowNode) (Applicant, error) { } } - applicant, err := createApplicant(options) + applicant, err := createApplicantProvider(options) if err != nil { return nil, err } - return &proxyApplicant{ + return &applicantImpl{ applicant: applicant, options: options, }, nil } -func apply(challengeProvider challenge.Provider, options *applicantOptions) (*ApplyCertResult, error) { +type applicantImpl struct { + applicant challenge.Provider + options *applicantProviderOptions +} + +var _ Applicant = (*applicantImpl)(nil) + +func (d *applicantImpl) Apply(ctx context.Context) (*ApplyResult, error) { + limiter := getLimiter(fmt.Sprintf("apply_%s", d.options.ContactEmail)) + if err := limiter.Wait(ctx); err != nil { + return nil, err + } + + return applyUseLego(d.applicant, d.options) +} + +const ( + limitBurst = 300 + limitRate float64 = float64(1) / float64(36) +) + +var limiters sync.Map + +func getLimiter(key string) *rate.Limiter { + limiter, _ := limiters.LoadOrStore(key, rate.NewLimiter(rate.Limit(limitRate), 300)) + return limiter.(*rate.Limiter) +} + +func applyUseLego(legoProvider challenge.Provider, options *applicantProviderOptions) (*ApplyResult, error) { user, err := newAcmeUser(string(options.CAProvider), options.ContactEmail) if err != nil { return nil, err @@ -153,7 +172,7 @@ func apply(challengeProvider challenge.Provider, options *applicantOptions) (*Ap // Create an ACME client config config := lego.NewConfig(user) - config.Certificate.KeyType = parseKeyAlgorithm(domain.CertificateKeyAlgorithmType(options.KeyAlgorithm)) + config.Certificate.KeyType = parseLegoKeyAlgorithm(domain.CertificateKeyAlgorithmType(options.KeyAlgorithm)) config.CADirURL = sslProviderUrls[user.CA] if user.CA == sslProviderSSLCom { if strings.HasPrefix(options.KeyAlgorithm, "RSA") { @@ -175,7 +194,7 @@ func apply(challengeProvider challenge.Provider, options *applicantOptions) (*Ap challengeOptions = append(challengeOptions, dns01.AddRecursiveNameservers(dns01.ParseNameservers(options.Nameservers))) challengeOptions = append(challengeOptions, dns01.DisableAuthoritativeNssPropagationRequirement()) } - client.Challenge.SetDNS01Provider(challengeProvider, challengeOptions...) + client.Challenge.SetDNS01Provider(legoProvider, challengeOptions...) // New users need to register first if !user.hasRegistration() { @@ -199,7 +218,7 @@ func apply(challengeProvider challenge.Provider, options *applicantOptions) (*Ap return nil, err } - return &ApplyCertResult{ + return &ApplyResult{ CertificateFullChain: strings.TrimSpace(string(certResource.Certificate)), IssuerCertificate: strings.TrimSpace(string(certResource.IssuerCertificate)), PrivateKey: strings.TrimSpace(string(certResource.PrivateKey)), @@ -210,47 +229,20 @@ func apply(challengeProvider challenge.Provider, options *applicantOptions) (*Ap }, nil } -func parseKeyAlgorithm(algo domain.CertificateKeyAlgorithmType) certcrypto.KeyType { - switch algo { - case domain.CertificateKeyAlgorithmTypeRSA2048: - return certcrypto.RSA2048 - case domain.CertificateKeyAlgorithmTypeRSA3072: - return certcrypto.RSA3072 - case domain.CertificateKeyAlgorithmTypeRSA4096: - return certcrypto.RSA4096 - case domain.CertificateKeyAlgorithmTypeRSA8192: - return certcrypto.RSA8192 - case domain.CertificateKeyAlgorithmTypeEC256: - return certcrypto.EC256 - case domain.CertificateKeyAlgorithmTypeEC384: - return certcrypto.EC384 - case domain.CertificateKeyAlgorithmTypeEC512: - return certcrypto.KeyType("P512") +func parseLegoKeyAlgorithm(algo domain.CertificateKeyAlgorithmType) certcrypto.KeyType { + alogMap := map[domain.CertificateKeyAlgorithmType]certcrypto.KeyType{ + domain.CertificateKeyAlgorithmTypeRSA2048: certcrypto.RSA2048, + domain.CertificateKeyAlgorithmTypeRSA3072: certcrypto.RSA3072, + domain.CertificateKeyAlgorithmTypeRSA4096: certcrypto.RSA4096, + domain.CertificateKeyAlgorithmTypeRSA8192: certcrypto.RSA8192, + domain.CertificateKeyAlgorithmTypeEC256: certcrypto.EC256, + domain.CertificateKeyAlgorithmTypeEC384: certcrypto.EC384, + domain.CertificateKeyAlgorithmTypeEC512: certcrypto.KeyType("P512"), + } + + if keyType, ok := alogMap[algo]; ok { + return keyType } return certcrypto.RSA2048 } - -// TODO: 暂时使用代理模式以兼容之前版本代码,后续重新实现此处逻辑 -type proxyApplicant struct { - applicant challenge.Provider - options *applicantOptions -} - -var limiters sync.Map - -const ( - limitBurst = 300 - limitRate float64 = float64(1) / float64(36) -) - -func getLimiter(key string) *rate.Limiter { - limiter, _ := limiters.LoadOrStore(key, rate.NewLimiter(rate.Limit(limitRate), 300)) - return limiter.(*rate.Limiter) -} - -func (d *proxyApplicant) Apply() (*ApplyCertResult, error) { - limiter := getLimiter(fmt.Sprintf("apply_%s", d.options.ContactEmail)) - limiter.Wait(context.Background()) - return apply(d.applicant, d.options) -} diff --git a/internal/applicant/providers.go b/internal/applicant/providers.go index d4ad473f..9c90cba7 100644 --- a/internal/applicant/providers.go +++ b/internal/applicant/providers.go @@ -38,7 +38,25 @@ import ( maputil "github.com/usual2970/certimate/internal/pkg/utils/map" ) -func createApplicant(options *applicantOptions) (challenge.Provider, error) { +type applicantProviderOptions struct { + Domains []string + ContactEmail string + Provider domain.ApplyDNSProviderType + ProviderAccessConfig map[string]any + ProviderExtendedConfig map[string]any + CAProvider domain.ApplyCAProviderType + CAProviderAccessConfig map[string]any + CAProviderExtendedConfig map[string]any + KeyAlgorithm string + Nameservers []string + DnsPropagationTimeout int32 + DnsTTL int32 + DisableFollowCNAME bool + ReplacedARIAcct string + ReplacedARICert string +} + +func createApplicantProvider(options *applicantProviderOptions) (challenge.Provider, error) { /* 注意:如果追加新的常量值,请保持以 ASCII 排序。 NOTICE: If you add new constant, please keep ASCII order. diff --git a/internal/deployer/deployer.go b/internal/deployer/deployer.go index 972e7aa3..752bda4e 100644 --- a/internal/deployer/deployer.go +++ b/internal/deployer/deployer.go @@ -11,28 +11,26 @@ import ( ) type Deployer interface { - SetLogger(*slog.Logger) - Deploy(ctx context.Context) error } -type deployerOptions struct { - Provider domain.DeployProviderType - ProviderAccessConfig map[string]any - ProviderDeployConfig map[string]any +type DeployerWithWorkflowNodeConfig struct { + Node *domain.WorkflowNode + Logger *slog.Logger + CertificatePEM string + PrivateKeyPEM string } -func NewWithDeployNode(node *domain.WorkflowNode, certdata struct { - Certificate string - PrivateKey string -}, -) (Deployer, error) { - if node.Type != domain.WorkflowNodeTypeDeploy { +func NewWithWorkflowNode(config DeployerWithWorkflowNodeConfig) (Deployer, error) { + if config.Node == nil { + return nil, fmt.Errorf("node is nil") + } + if config.Node.Type != domain.WorkflowNodeTypeDeploy { return nil, fmt.Errorf("node type is not '%s'", string(domain.WorkflowNodeTypeDeploy)) } - nodeConfig := node.GetConfigForDeploy() - options := &deployerOptions{ + nodeConfig := config.Node.GetConfigForDeploy() + options := &deployerProviderOptions{ Provider: domain.DeployProviderType(nodeConfig.Provider), ProviderAccessConfig: make(map[string]any), ProviderDeployConfig: nodeConfig.ProviderConfig, @@ -48,34 +46,27 @@ func NewWithDeployNode(node *domain.WorkflowNode, certdata struct { } } - deployer, err := createDeployer(options) + deployerProvider, err := createDeployerProvider(options) if err != nil { return nil, err } - return &proxyDeployer{ - deployer: deployer, - deployCertificate: certdata.Certificate, - deployPrivateKey: certdata.PrivateKey, + return &deployerImpl{ + provider: deployerProvider.WithLogger(config.Logger), + certPEM: config.CertificatePEM, + privkeyPEM: config.PrivateKeyPEM, }, nil } -// TODO: 暂时使用代理模式以兼容之前版本代码,后续重新实现此处逻辑 -type proxyDeployer struct { - deployer deployer.Deployer - deployCertificate string - deployPrivateKey string +type deployerImpl struct { + provider deployer.Deployer + certPEM string + privkeyPEM string } -func (d *proxyDeployer) SetLogger(logger *slog.Logger) { - if logger == nil { - panic("logger is nil") - } +var _ Deployer = (*deployerImpl)(nil) - d.deployer.WithLogger(logger) -} - -func (d *proxyDeployer) Deploy(ctx context.Context) error { - _, err := d.deployer.Deploy(ctx, d.deployCertificate, d.deployPrivateKey) +func (d *deployerImpl) Deploy(ctx context.Context) error { + _, err := d.provider.Deploy(ctx, d.certPEM, d.privkeyPEM) return err } diff --git a/internal/deployer/providers.go b/internal/deployer/providers.go index 6b6daea1..e9868278 100644 --- a/internal/deployer/providers.go +++ b/internal/deployer/providers.go @@ -82,7 +82,13 @@ import ( sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) -func createDeployer(options *deployerOptions) (deployer.Deployer, error) { +type deployerProviderOptions struct { + Provider domain.DeployProviderType + ProviderAccessConfig map[string]any + ProviderDeployConfig map[string]any +} + +func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer, error) { /* 注意:如果追加新的常量值,请保持以 ASCII 排序。 NOTICE: If you add new constant, please keep ASCII order. From 7478dd7f471b69eeca0a3cd499389dd48473acb4 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 24 Apr 2025 20:27:20 +0800 Subject: [PATCH 13/38] feat: deprecate old notification module and introduce new notifier module --- internal/domain/notify.go | 1 + internal/domain/provider.go | 250 +++++++++--------- internal/domain/settings.go | 3 + internal/domain/workflow.go | 26 +- internal/notify/notifier.go | 72 +++++ internal/notify/notify.go | 7 +- internal/notify/providers.go | 98 +------ internal/notify/providers_deprecated.go | 108 ++++++++ internal/notify/service.go | 5 + internal/pkg/utils/map/getter.go | 2 +- .../workflow/node-processor/apply_node.go | 7 +- .../workflow/node-processor/deploy_node.go | 11 +- .../workflow/node-processor/notify_node.go | 51 +++- .../provider/NotifyProviderSelect.tsx | 67 +++++ .../components/workflow/WorkflowRunDetail.tsx | 6 +- .../components/workflow/node/NotifyNode.tsx | 7 +- .../workflow/node/NotifyNodeConfigForm.tsx | 118 ++++++++- ui/src/domain/provider.ts | 53 +++- ui/src/domain/settings.ts | 17 +- ui/src/domain/workflow.ts | 8 +- .../i18n/locales/en/nls.workflow.nodes.json | 7 +- .../i18n/locales/zh/nls.workflow.nodes.json | 9 +- ui/src/pages/accesses/AccessList.tsx | 10 +- ui/src/pages/certificates/CertificateList.tsx | 1 + .../pages/settings/SettingsNotification.tsx | 6 +- ui/src/pages/workflows/WorkflowList.tsx | 1 + ui/src/stores/notify/index.ts | 6 + 27 files changed, 692 insertions(+), 265 deletions(-) create mode 100644 internal/notify/notifier.go create mode 100644 internal/notify/providers_deprecated.go create mode 100644 ui/src/components/provider/NotifyProviderSelect.tsx diff --git a/internal/domain/notify.go b/internal/domain/notify.go index 6142dae5..1a244e9b 100644 --- a/internal/domain/notify.go +++ b/internal/domain/notify.go @@ -8,6 +8,7 @@ type NotifyChannelType string 注意:如果追加新的常量值,请保持以 ASCII 排序。 NOTICE: If you add new constant, please keep ASCII order. */ +// Deprecated: v0.4.x 将废弃 const ( NotifyChannelTypeBark = NotifyChannelType("bark") NotifyChannelTypeDingTalk = NotifyChannelType("dingtalk") diff --git a/internal/domain/provider.go b/internal/domain/provider.go index 267adc12..5345215a 100644 --- a/internal/domain/provider.go +++ b/internal/domain/provider.go @@ -19,6 +19,7 @@ const ( AccessProviderTypeBaishan = AccessProviderType("baishan") AccessProviderTypeBaotaPanel = AccessProviderType("baotapanel") AccessProviderTypeBytePlus = AccessProviderType("byteplus") + AccessProviderTypeBunny = AccessProviderType("bunny") AccessProviderTypeBuypass = AccessProviderType("buypass") AccessProviderTypeCacheFly = AccessProviderType("cachefly") AccessProviderTypeCdnfly = AccessProviderType("cdnfly") @@ -71,18 +72,18 @@ type ApplyCAProviderType string /* 申请证书 CA 提供商常量值。 -始终等于授权提供商类型。 +短横线前的部分始终等于授权提供商类型。 注意:如果追加新的常量值,请保持以 ASCII 排序。 NOTICE: If you add new constant, please keep ASCII order. */ const ( - ApplyCAProviderTypeBuypass = ApplyCAProviderType(string(AccessProviderTypeBuypass)) - ApplyCAProviderTypeGoogleTrustServices = ApplyCAProviderType(string(AccessProviderTypeGoogleTrustServices)) - ApplyCAProviderTypeLetsEncrypt = ApplyCAProviderType(string(AccessProviderTypeLetsEncrypt)) - ApplyCAProviderTypeLetsEncryptStaging = ApplyCAProviderType(string(AccessProviderTypeLetsEncryptStaging)) - ApplyCAProviderTypeSSLCom = ApplyCAProviderType(string(AccessProviderTypeSSLCOM)) - ApplyCAProviderTypeZeroSSL = ApplyCAProviderType(string(AccessProviderTypeZeroSSL)) + ApplyCAProviderTypeBuypass = ApplyCAProviderType(AccessProviderTypeBuypass) + ApplyCAProviderTypeGoogleTrustServices = ApplyCAProviderType(AccessProviderTypeGoogleTrustServices) + ApplyCAProviderTypeLetsEncrypt = ApplyCAProviderType(AccessProviderTypeLetsEncrypt) + ApplyCAProviderTypeLetsEncryptStaging = ApplyCAProviderType(AccessProviderTypeLetsEncryptStaging) + ApplyCAProviderTypeSSLCom = ApplyCAProviderType(AccessProviderTypeSSLCOM) + ApplyCAProviderTypeZeroSSL = ApplyCAProviderType(AccessProviderTypeZeroSSL) ) type ApplyDNSProviderType string @@ -95,43 +96,43 @@ type ApplyDNSProviderType string NOTICE: If you add new constant, please keep ASCII order. */ const ( - ApplyDNSProviderTypeACMEHttpReq = ApplyDNSProviderType("acmehttpreq") - ApplyDNSProviderTypeAliyun = ApplyDNSProviderType("aliyun") // 兼容旧值,等同于 [ApplyDNSProviderTypeAliyunDNS] - ApplyDNSProviderTypeAliyunDNS = ApplyDNSProviderType("aliyun-dns") - ApplyDNSProviderTypeAWS = ApplyDNSProviderType("aws") // 兼容旧值,等同于 [ApplyDNSProviderTypeAWSRoute53] - ApplyDNSProviderTypeAWSRoute53 = ApplyDNSProviderType("aws-route53") - ApplyDNSProviderTypeAzure = ApplyDNSProviderType("azure") // 兼容旧值,等同于 [ApplyDNSProviderTypeAzure] - ApplyDNSProviderTypeAzureDNS = ApplyDNSProviderType("azure-dns") - ApplyDNSProviderTypeBaiduCloud = ApplyDNSProviderType("baiducloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeBaiduCloudDNS] - ApplyDNSProviderTypeBaiduCloudDNS = ApplyDNSProviderType("baiducloud-dns") - ApplyDNSProviderTypeBunny = ApplyDNSProviderType("bunny") - ApplyDNSProviderTypeCloudflare = ApplyDNSProviderType("cloudflare") - ApplyDNSProviderTypeClouDNS = ApplyDNSProviderType("cloudns") - ApplyDNSProviderTypeCMCCCloud = ApplyDNSProviderType("cmcccloud") - ApplyDNSProviderTypeDeSEC = ApplyDNSProviderType("desec") - ApplyDNSProviderTypeDNSLA = ApplyDNSProviderType("dnsla") - ApplyDNSProviderTypeDynv6 = ApplyDNSProviderType("dynv6") - ApplyDNSProviderTypeGcore = ApplyDNSProviderType("gcore") - ApplyDNSProviderTypeGname = ApplyDNSProviderType("gname") - ApplyDNSProviderTypeGoDaddy = ApplyDNSProviderType("godaddy") - ApplyDNSProviderTypeHuaweiCloud = ApplyDNSProviderType("huaweicloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeHuaweiCloudDNS] - ApplyDNSProviderTypeHuaweiCloudDNS = ApplyDNSProviderType("huaweicloud-dns") - ApplyDNSProviderTypeJDCloud = ApplyDNSProviderType("jdcloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeJDCloudDNS] - ApplyDNSProviderTypeJDCloudDNS = ApplyDNSProviderType("jdcloud-dns") - ApplyDNSProviderTypeNamecheap = ApplyDNSProviderType("namecheap") - ApplyDNSProviderTypeNameDotCom = ApplyDNSProviderType("namedotcom") - ApplyDNSProviderTypeNameSilo = ApplyDNSProviderType("namesilo") - ApplyDNSProviderTypeNS1 = ApplyDNSProviderType("ns1") - ApplyDNSProviderTypePorkbun = ApplyDNSProviderType("porkbun") - ApplyDNSProviderTypePowerDNS = ApplyDNSProviderType("powerdns") - ApplyDNSProviderTypeRainYun = ApplyDNSProviderType("rainyun") - ApplyDNSProviderTypeTencentCloud = ApplyDNSProviderType("tencentcloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeTencentCloudDNS] - ApplyDNSProviderTypeTencentCloudDNS = ApplyDNSProviderType("tencentcloud-dns") - ApplyDNSProviderTypeTencentCloudEO = ApplyDNSProviderType("tencentcloud-eo") - ApplyDNSProviderTypeVercel = ApplyDNSProviderType("vercel") - ApplyDNSProviderTypeVolcEngine = ApplyDNSProviderType("volcengine") // 兼容旧值,等同于 [ApplyDNSProviderTypeVolcEngineDNS] - ApplyDNSProviderTypeVolcEngineDNS = ApplyDNSProviderType("volcengine-dns") - ApplyDNSProviderTypeWestcn = ApplyDNSProviderType("westcn") + ApplyDNSProviderTypeACMEHttpReq = ApplyDNSProviderType(AccessProviderTypeACMEHttpReq) + ApplyDNSProviderTypeAliyun = ApplyDNSProviderType(AccessProviderTypeAliyun) // 兼容旧值,等同于 [ApplyDNSProviderTypeAliyunDNS] + ApplyDNSProviderTypeAliyunDNS = ApplyDNSProviderType(AccessProviderTypeAliyun + "-dns") + ApplyDNSProviderTypeAWS = ApplyDNSProviderType(AccessProviderTypeAWS) // 兼容旧值,等同于 [ApplyDNSProviderTypeAWSRoute53] + ApplyDNSProviderTypeAWSRoute53 = ApplyDNSProviderType(AccessProviderTypeAWS + "-route53") + ApplyDNSProviderTypeAzure = ApplyDNSProviderType(AccessProviderTypeAzure) // 兼容旧值,等同于 [ApplyDNSProviderTypeAzure] + ApplyDNSProviderTypeAzureDNS = ApplyDNSProviderType(AccessProviderTypeAzure + "-dns") + ApplyDNSProviderTypeBaiduCloud = ApplyDNSProviderType(AccessProviderTypeBaiduCloud) // 兼容旧值,等同于 [ApplyDNSProviderTypeBaiduCloudDNS] + ApplyDNSProviderTypeBaiduCloudDNS = ApplyDNSProviderType(AccessProviderTypeBaiduCloud + "-dns") + ApplyDNSProviderTypeBunny = ApplyDNSProviderType(AccessProviderTypeBunny) + ApplyDNSProviderTypeCloudflare = ApplyDNSProviderType(AccessProviderTypeCloudflare) + ApplyDNSProviderTypeClouDNS = ApplyDNSProviderType(AccessProviderTypeClouDNS) + ApplyDNSProviderTypeCMCCCloud = ApplyDNSProviderType(AccessProviderTypeCMCCCloud) + ApplyDNSProviderTypeDeSEC = ApplyDNSProviderType(AccessProviderTypeDeSEC) + ApplyDNSProviderTypeDNSLA = ApplyDNSProviderType(AccessProviderTypeDNSLA) + ApplyDNSProviderTypeDynv6 = ApplyDNSProviderType(AccessProviderTypeDynv6) + ApplyDNSProviderTypeGcore = ApplyDNSProviderType(AccessProviderTypeGcore) + ApplyDNSProviderTypeGname = ApplyDNSProviderType(AccessProviderTypeGname) + ApplyDNSProviderTypeGoDaddy = ApplyDNSProviderType(AccessProviderTypeGoDaddy) + ApplyDNSProviderTypeHuaweiCloud = ApplyDNSProviderType(AccessProviderTypeHuaweiCloud) // 兼容旧值,等同于 [ApplyDNSProviderTypeHuaweiCloudDNS] + ApplyDNSProviderTypeHuaweiCloudDNS = ApplyDNSProviderType(AccessProviderTypeHuaweiCloud + "-dns") + ApplyDNSProviderTypeJDCloud = ApplyDNSProviderType(AccessProviderTypeJDCloud) // 兼容旧值,等同于 [ApplyDNSProviderTypeJDCloudDNS] + ApplyDNSProviderTypeJDCloudDNS = ApplyDNSProviderType(AccessProviderTypeJDCloud + "-dns") + ApplyDNSProviderTypeNamecheap = ApplyDNSProviderType(AccessProviderTypeNamecheap) + ApplyDNSProviderTypeNameDotCom = ApplyDNSProviderType(AccessProviderTypeNameDotCom) + ApplyDNSProviderTypeNameSilo = ApplyDNSProviderType(AccessProviderTypeNameSilo) + ApplyDNSProviderTypeNS1 = ApplyDNSProviderType(AccessProviderTypeNS1) + ApplyDNSProviderTypePorkbun = ApplyDNSProviderType(AccessProviderTypePorkbun) + ApplyDNSProviderTypePowerDNS = ApplyDNSProviderType(AccessProviderTypePowerDNS) + ApplyDNSProviderTypeRainYun = ApplyDNSProviderType(AccessProviderTypeRainYun) + ApplyDNSProviderTypeTencentCloud = ApplyDNSProviderType(AccessProviderTypeTencentCloud) // 兼容旧值,等同于 [ApplyDNSProviderTypeTencentCloudDNS] + ApplyDNSProviderTypeTencentCloudDNS = ApplyDNSProviderType(AccessProviderTypeTencentCloud + "-dns") + ApplyDNSProviderTypeTencentCloudEO = ApplyDNSProviderType(AccessProviderTypeTencentCloud + "-eo") + ApplyDNSProviderTypeVercel = ApplyDNSProviderType(AccessProviderTypeVercel) + ApplyDNSProviderTypeVolcEngine = ApplyDNSProviderType(AccessProviderTypeVolcEngine) // 兼容旧值,等同于 [ApplyDNSProviderTypeVolcEngineDNS] + ApplyDNSProviderTypeVolcEngineDNS = ApplyDNSProviderType(AccessProviderTypeVolcEngine + "-dns") + ApplyDNSProviderTypeWestcn = ApplyDNSProviderType(AccessProviderTypeWestcn) ) type DeployProviderType string @@ -144,78 +145,91 @@ type DeployProviderType string NOTICE: If you add new constant, please keep ASCII order. */ const ( - DeployProviderType1PanelConsole = DeployProviderType("1panel-console") - DeployProviderType1PanelSite = DeployProviderType("1panel-site") - DeployProviderTypeAliyunALB = DeployProviderType("aliyun-alb") - DeployProviderTypeAliyunAPIGW = DeployProviderType("aliyun-apigw") - DeployProviderTypeAliyunCAS = DeployProviderType("aliyun-cas") - DeployProviderTypeAliyunCASDeploy = DeployProviderType("aliyun-casdeploy") - DeployProviderTypeAliyunCDN = DeployProviderType("aliyun-cdn") - DeployProviderTypeAliyunCLB = DeployProviderType("aliyun-clb") - DeployProviderTypeAliyunDCDN = DeployProviderType("aliyun-dcdn") - DeployProviderTypeAliyunESA = DeployProviderType("aliyun-esa") - DeployProviderTypeAliyunFC = DeployProviderType("aliyun-fc") - DeployProviderTypeAliyunLive = DeployProviderType("aliyun-live") - DeployProviderTypeAliyunNLB = DeployProviderType("aliyun-nlb") - DeployProviderTypeAliyunOSS = DeployProviderType("aliyun-oss") - DeployProviderTypeAliyunVOD = DeployProviderType("aliyun-vod") - DeployProviderTypeAliyunWAF = DeployProviderType("aliyun-waf") - DeployProviderTypeAWSACM = DeployProviderType("aws-acm") - DeployProviderTypeAWSCloudFront = DeployProviderType("aws-cloudfront") - DeployProviderTypeAzureKeyVault = DeployProviderType("azure-keyvault") - DeployProviderTypeBaiduCloudAppBLB = DeployProviderType("baiducloud-appblb") - DeployProviderTypeBaiduCloudBLB = DeployProviderType("baiducloud-blb") - DeployProviderTypeBaiduCloudCDN = DeployProviderType("baiducloud-cdn") - DeployProviderTypeBaiduCloudCert = DeployProviderType("baiducloud-cert") - DeployProviderTypeBaishanCDN = DeployProviderType("baishan-cdn") - DeployProviderTypeBaotaPanelConsole = DeployProviderType("baotapanel-console") - DeployProviderTypeBaotaPanelSite = DeployProviderType("baotapanel-site") - DeployProviderTypeBunnyCDN = DeployProviderType("bunny-cdn") - DeployProviderTypeBytePlusCDN = DeployProviderType("byteplus-cdn") - DeployProviderTypeCacheFly = DeployProviderType("cachefly") - DeployProviderTypeCdnfly = DeployProviderType("cdnfly") - DeployProviderTypeDogeCloudCDN = DeployProviderType("dogecloud-cdn") - DeployProviderTypeEdgioApplications = DeployProviderType("edgio-applications") - DeployProviderTypeGcoreCDN = DeployProviderType("gcore-cdn") - DeployProviderTypeHuaweiCloudCDN = DeployProviderType("huaweicloud-cdn") - DeployProviderTypeHuaweiCloudELB = DeployProviderType("huaweicloud-elb") - DeployProviderTypeHuaweiCloudSCM = DeployProviderType("huaweicloud-scm") - DeployProviderTypeHuaweiCloudWAF = DeployProviderType("huaweicloud-waf") - DeployProviderTypeJDCloudALB = DeployProviderType("jdcloud-alb") - DeployProviderTypeJDCloudCDN = DeployProviderType("jdcloud-cdn") - DeployProviderTypeJDCloudLive = DeployProviderType("jdcloud-live") - DeployProviderTypeJDCloudVOD = DeployProviderType("jdcloud-vod") - DeployProviderTypeKubernetesSecret = DeployProviderType("k8s-secret") - DeployProviderTypeLocal = DeployProviderType("local") - DeployProviderTypeQiniuCDN = DeployProviderType("qiniu-cdn") - DeployProviderTypeQiniuKodo = DeployProviderType("qiniu-kodo") - DeployProviderTypeQiniuPili = DeployProviderType("qiniu-pili") - DeployProviderTypeRainYunRCDN = DeployProviderType("rainyun-rcdn") - DeployProviderTypeSafeLine = DeployProviderType("safeline") - DeployProviderTypeSSH = DeployProviderType("ssh") - DeployProviderTypeTencentCloudCDN = DeployProviderType("tencentcloud-cdn") - DeployProviderTypeTencentCloudCLB = DeployProviderType("tencentcloud-clb") - DeployProviderTypeTencentCloudCOS = DeployProviderType("tencentcloud-cos") - DeployProviderTypeTencentCloudCSS = DeployProviderType("tencentcloud-css") - DeployProviderTypeTencentCloudECDN = DeployProviderType("tencentcloud-ecdn") - DeployProviderTypeTencentCloudEO = DeployProviderType("tencentcloud-eo") - DeployProviderTypeTencentCloudSCF = DeployProviderType("tencentcloud-scf") - DeployProviderTypeTencentCloudSSL = DeployProviderType("tencentcloud-ssl") - DeployProviderTypeTencentCloudSSLDeploy = DeployProviderType("tencentcloud-ssldeploy") - DeployProviderTypeTencentCloudVOD = DeployProviderType("tencentcloud-vod") - DeployProviderTypeTencentCloudWAF = DeployProviderType("tencentcloud-waf") - DeployProviderTypeUCloudUCDN = DeployProviderType("ucloud-ucdn") - DeployProviderTypeUCloudUS3 = DeployProviderType("ucloud-us3") - DeployProviderTypeUpyunCDN = DeployProviderType("upyun-cdn") - DeployProviderTypeUpyunFile = DeployProviderType("upyun-file") - DeployProviderTypeVolcEngineALB = DeployProviderType("volcengine-alb") - DeployProviderTypeVolcEngineCDN = DeployProviderType("volcengine-cdn") - DeployProviderTypeVolcEngineCertCenter = DeployProviderType("volcengine-certcenter") - DeployProviderTypeVolcEngineCLB = DeployProviderType("volcengine-clb") - DeployProviderTypeVolcEngineDCDN = DeployProviderType("volcengine-dcdn") - DeployProviderTypeVolcEngineImageX = DeployProviderType("volcengine-imagex") - DeployProviderTypeVolcEngineLive = DeployProviderType("volcengine-live") - DeployProviderTypeVolcEngineTOS = DeployProviderType("volcengine-tos") - DeployProviderTypeWangsuCDNPro = DeployProviderType("wangsu-cdnpro") - DeployProviderTypeWebhook = DeployProviderType("webhook") + DeployProviderType1PanelConsole = DeployProviderType(AccessProviderType1Panel + "-console") + DeployProviderType1PanelSite = DeployProviderType(AccessProviderType1Panel + "-site") + DeployProviderTypeAliyunALB = DeployProviderType(AccessProviderTypeAliyun + "-alb") + DeployProviderTypeAliyunAPIGW = DeployProviderType(AccessProviderTypeAliyun + "-apigw") + DeployProviderTypeAliyunCAS = DeployProviderType(AccessProviderTypeAliyun + "-cas") + DeployProviderTypeAliyunCASDeploy = DeployProviderType(AccessProviderTypeAliyun + "-casdeploy") + DeployProviderTypeAliyunCDN = DeployProviderType(AccessProviderTypeAliyun + "-cdn") + DeployProviderTypeAliyunCLB = DeployProviderType(AccessProviderTypeAliyun + "-clb") + DeployProviderTypeAliyunDCDN = DeployProviderType(AccessProviderTypeAliyun + "-dcdn") + DeployProviderTypeAliyunESA = DeployProviderType(AccessProviderTypeAliyun + "-esa") + DeployProviderTypeAliyunFC = DeployProviderType(AccessProviderTypeAliyun + "-fc") + DeployProviderTypeAliyunLive = DeployProviderType(AccessProviderTypeAliyun + "-live") + DeployProviderTypeAliyunNLB = DeployProviderType(AccessProviderTypeAliyun + "-nlb") + DeployProviderTypeAliyunOSS = DeployProviderType(AccessProviderTypeAliyun + "-oss") + DeployProviderTypeAliyunVOD = DeployProviderType(AccessProviderTypeAliyun + "-vod") + DeployProviderTypeAliyunWAF = DeployProviderType(AccessProviderTypeAliyun + "-waf") + DeployProviderTypeAWSACM = DeployProviderType(AccessProviderTypeAWS + "-acm") + DeployProviderTypeAWSCloudFront = DeployProviderType(AccessProviderTypeAWS + "-cloudfront") + DeployProviderTypeAzureKeyVault = DeployProviderType(AccessProviderTypeAzure + "-keyvault") + DeployProviderTypeBaiduCloudAppBLB = DeployProviderType(AccessProviderTypeBaiduCloud + "-appblb") + DeployProviderTypeBaiduCloudBLB = DeployProviderType(AccessProviderTypeBaiduCloud + "-blb") + DeployProviderTypeBaiduCloudCDN = DeployProviderType(AccessProviderTypeBaiduCloud + "-cdn") + DeployProviderTypeBaiduCloudCert = DeployProviderType(AccessProviderTypeBaiduCloud + "-cert") + DeployProviderTypeBaishanCDN = DeployProviderType(AccessProviderTypeBaishan + "-cdn") + DeployProviderTypeBaotaPanelConsole = DeployProviderType(AccessProviderTypeBaotaPanel + "-console") + DeployProviderTypeBaotaPanelSite = DeployProviderType(AccessProviderTypeBaotaPanel + "-site") + DeployProviderTypeBunnyCDN = DeployProviderType(AccessProviderTypeBunny + "-cdn") + DeployProviderTypeBytePlusCDN = DeployProviderType(AccessProviderTypeBytePlus + "-cdn") + DeployProviderTypeCacheFly = DeployProviderType(AccessProviderTypeCacheFly) + DeployProviderTypeCdnfly = DeployProviderType(AccessProviderTypeCdnfly) + DeployProviderTypeDogeCloudCDN = DeployProviderType(AccessProviderTypeDogeCloud + "-cdn") + DeployProviderTypeEdgioApplications = DeployProviderType(AccessProviderTypeEdgio + "-applications") + DeployProviderTypeGcoreCDN = DeployProviderType(AccessProviderTypeGcore + "-cdn") + DeployProviderTypeHuaweiCloudCDN = DeployProviderType(AccessProviderTypeHuaweiCloud + "-cdn") + DeployProviderTypeHuaweiCloudELB = DeployProviderType(AccessProviderTypeHuaweiCloud + "-elb") + DeployProviderTypeHuaweiCloudSCM = DeployProviderType(AccessProviderTypeHuaweiCloud + "-scm") + DeployProviderTypeHuaweiCloudWAF = DeployProviderType(AccessProviderTypeHuaweiCloud + "-waf") + DeployProviderTypeJDCloudALB = DeployProviderType(AccessProviderTypeJDCloud + "-alb") + DeployProviderTypeJDCloudCDN = DeployProviderType(AccessProviderTypeJDCloud + "-cdn") + DeployProviderTypeJDCloudLive = DeployProviderType(AccessProviderTypeJDCloud + "-live") + DeployProviderTypeJDCloudVOD = DeployProviderType(AccessProviderTypeJDCloud + "-vod") + DeployProviderTypeKubernetesSecret = DeployProviderType(AccessProviderTypeKubernetes + "-secret") + DeployProviderTypeLocal = DeployProviderType(AccessProviderTypeLocal) + DeployProviderTypeQiniuCDN = DeployProviderType(AccessProviderTypeQiniu + "-cdn") + DeployProviderTypeQiniuKodo = DeployProviderType(AccessProviderTypeQiniu + "-kodo") + DeployProviderTypeQiniuPili = DeployProviderType(AccessProviderTypeQiniu + "-pili") + DeployProviderTypeRainYunRCDN = DeployProviderType(AccessProviderTypeRainYun + "-rcdn") + DeployProviderTypeSafeLine = DeployProviderType(AccessProviderTypeSafeLine) + DeployProviderTypeSSH = DeployProviderType(AccessProviderTypeSSH) + DeployProviderTypeTencentCloudCDN = DeployProviderType(AccessProviderTypeTencentCloud + "-cdn") + DeployProviderTypeTencentCloudCLB = DeployProviderType(AccessProviderTypeTencentCloud + "-clb") + DeployProviderTypeTencentCloudCOS = DeployProviderType(AccessProviderTypeTencentCloud + "-cos") + DeployProviderTypeTencentCloudCSS = DeployProviderType(AccessProviderTypeTencentCloud + "-css") + DeployProviderTypeTencentCloudECDN = DeployProviderType(AccessProviderTypeTencentCloud + "-ecdn") + DeployProviderTypeTencentCloudEO = DeployProviderType(AccessProviderTypeTencentCloud + "-eo") + DeployProviderTypeTencentCloudSCF = DeployProviderType(AccessProviderTypeTencentCloud + "-scf") + DeployProviderTypeTencentCloudSSL = DeployProviderType(AccessProviderTypeTencentCloud + "-ssl") + DeployProviderTypeTencentCloudSSLDeploy = DeployProviderType(AccessProviderTypeTencentCloud + "-ssldeploy") + DeployProviderTypeTencentCloudVOD = DeployProviderType(AccessProviderTypeTencentCloud + "-vod") + DeployProviderTypeTencentCloudWAF = DeployProviderType(AccessProviderTypeTencentCloud + "-waf") + DeployProviderTypeUCloudUCDN = DeployProviderType(AccessProviderTypeUCloud + "-ucdn") + DeployProviderTypeUCloudUS3 = DeployProviderType(AccessProviderTypeUCloud + "-us3") + DeployProviderTypeUpyunCDN = DeployProviderType(AccessProviderTypeUpyun + "-cdn") + DeployProviderTypeUpyunFile = DeployProviderType(AccessProviderTypeUpyun + "-file") + DeployProviderTypeVolcEngineALB = DeployProviderType(AccessProviderTypeVolcEngine + "-alb") + DeployProviderTypeVolcEngineCDN = DeployProviderType(AccessProviderTypeVolcEngine + "-cdn") + DeployProviderTypeVolcEngineCertCenter = DeployProviderType(AccessProviderTypeVolcEngine + "-certcenter") + DeployProviderTypeVolcEngineCLB = DeployProviderType(AccessProviderTypeVolcEngine + "-clb") + DeployProviderTypeVolcEngineDCDN = DeployProviderType(AccessProviderTypeVolcEngine + "-dcdn") + DeployProviderTypeVolcEngineImageX = DeployProviderType(AccessProviderTypeVolcEngine + "-imagex") + DeployProviderTypeVolcEngineLive = DeployProviderType(AccessProviderTypeVolcEngine + "-live") + DeployProviderTypeVolcEngineTOS = DeployProviderType(AccessProviderTypeVolcEngine + "-tos") + DeployProviderTypeWangsuCDNPro = DeployProviderType(AccessProviderTypeWangsu + "-cdnpro") + DeployProviderTypeWebhook = DeployProviderType(AccessProviderTypeWebhook) +) + +type NotifyProviderType string + +/* +消息通知提供商常量值。 +短横线前的部分始终等于授权提供商类型。 + + 注意:如果追加新的常量值,请保持以 ASCII 排序。 + NOTICE: If you add new constant, please keep ASCII order. +*/ +const ( + NotifyProviderTypeWebhook = NotifyProviderType(AccessProviderTypeWebhook) ) diff --git a/internal/domain/settings.go b/internal/domain/settings.go index ebe6b9d7..7063ed83 100644 --- a/internal/domain/settings.go +++ b/internal/domain/settings.go @@ -13,6 +13,7 @@ type Settings struct { Content string `json:"content" db:"content"` } +// Deprecated: v0.4.x 将废弃 type NotifyTemplatesSettingsContent struct { NotifyTemplates []struct { Subject string `json:"subject"` @@ -20,8 +21,10 @@ type NotifyTemplatesSettingsContent struct { } `json:"notifyTemplates"` } +// Deprecated: v0.4.x 将废弃 type NotifyChannelsSettingsContent map[string]map[string]any +// Deprecated: v0.4.x 将废弃 func (s *Settings) GetNotifyChannelConfig(channel string) (map[string]any, error) { conf := &NotifyChannelsSettingsContent{} if err := json.Unmarshal([]byte(s.Content), conf); err != nil { diff --git a/internal/domain/workflow.go b/internal/domain/workflow.go index cfa1c8cc..639a31ca 100644 --- a/internal/domain/workflow.go +++ b/internal/domain/workflow.go @@ -71,7 +71,7 @@ type WorkflowNodeConfigForApply struct { CAProvider string `json:"caProvider,omitempty"` // CA 提供商(零值将使用全局配置) CAProviderAccessId string `json:"caProviderAccessId,omitempty"` // CA 提供商授权记录 ID CAProviderConfig map[string]any `json:"caProviderConfig,omitempty"` // CA 提供商额外配置 - KeyAlgorithm string `json:"keyAlgorithm"` // 密钥算法 + KeyAlgorithm string `json:"keyAlgorithm"` // 证书算法 Nameservers string `json:"nameservers,omitempty"` // DNS 服务器列表,以半角分号分隔 DnsPropagationTimeout int32 `json:"dnsPropagationTimeout,omitempty"` // DNS 传播超时时间(零值取决于提供商的默认值) DnsTTL int32 `json:"dnsTTL,omitempty"` // DNS TTL(零值取决于提供商的默认值) @@ -95,9 +95,12 @@ type WorkflowNodeConfigForDeploy struct { } type WorkflowNodeConfigForNotify struct { - Channel string `json:"channel"` // 通知渠道 - Subject string `json:"subject"` // 通知主题 - Message string `json:"message"` // 通知内容 + Channel string `json:"channel,omitempty"` // Deprecated: v0.4.x 将废弃 + Provider string `json:"provider"` // 通知提供商 + ProviderAccessId string `json:"providerAccessId"` // 通知提供商授权记录 ID + ProviderConfig map[string]any `json:"providerConfig,omitempty"` // 通知提供商额外配置 + Subject string `json:"subject"` // 通知主题 + Message string `json:"message"` // 通知内容 } func (n *WorkflowNode) GetConfigForApply() WorkflowNodeConfigForApply { @@ -111,10 +114,10 @@ func (n *WorkflowNode) GetConfigForApply() WorkflowNodeConfigForApply { ContactEmail: maputil.GetString(n.Config, "contactEmail"), Provider: maputil.GetString(n.Config, "provider"), ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"), - ProviderConfig: maputil.GetAnyMap(n.Config, "providerConfig"), + ProviderConfig: maputil.GetMap(n.Config, "providerConfig"), CAProvider: maputil.GetString(n.Config, "caProvider"), CAProviderAccessId: maputil.GetString(n.Config, "caProviderAccessId"), - CAProviderConfig: maputil.GetAnyMap(n.Config, "caProviderConfig"), + CAProviderConfig: maputil.GetMap(n.Config, "caProviderConfig"), KeyAlgorithm: maputil.GetString(n.Config, "keyAlgorithm"), Nameservers: maputil.GetString(n.Config, "nameservers"), DnsPropagationTimeout: maputil.GetInt32(n.Config, "dnsPropagationTimeout"), @@ -138,16 +141,19 @@ func (n *WorkflowNode) GetConfigForDeploy() WorkflowNodeConfigForDeploy { Certificate: maputil.GetString(n.Config, "certificate"), Provider: maputil.GetString(n.Config, "provider"), ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"), - ProviderConfig: maputil.GetAnyMap(n.Config, "providerConfig"), + ProviderConfig: maputil.GetMap(n.Config, "providerConfig"), SkipOnLastSucceeded: maputil.GetBool(n.Config, "skipOnLastSucceeded"), } } func (n *WorkflowNode) GetConfigForNotify() WorkflowNodeConfigForNotify { return WorkflowNodeConfigForNotify{ - Channel: maputil.GetString(n.Config, "channel"), - Subject: maputil.GetString(n.Config, "subject"), - Message: maputil.GetString(n.Config, "message"), + Channel: maputil.GetString(n.Config, "channel"), + Provider: maputil.GetString(n.Config, "provider"), + ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"), + ProviderConfig: maputil.GetMap(n.Config, "providerConfig"), + Subject: maputil.GetString(n.Config, "subject"), + Message: maputil.GetString(n.Config, "message"), } } diff --git a/internal/notify/notifier.go b/internal/notify/notifier.go new file mode 100644 index 00000000..b8547e94 --- /dev/null +++ b/internal/notify/notifier.go @@ -0,0 +1,72 @@ +package notify + +import ( + "context" + "fmt" + "log/slog" + + "github.com/usual2970/certimate/internal/domain" + "github.com/usual2970/certimate/internal/pkg/core/notifier" + "github.com/usual2970/certimate/internal/repository" +) + +type Notifier interface { + Notify(ctx context.Context) error +} + +type NotifierWithWorkflowNodeConfig struct { + Node *domain.WorkflowNode + Logger *slog.Logger + Subject string + Message string +} + +func NewWithWorkflowNode(config NotifierWithWorkflowNodeConfig) (Notifier, error) { + if config.Node == nil { + return nil, fmt.Errorf("node is nil") + } + if config.Node.Type != domain.WorkflowNodeTypeNotify { + return nil, fmt.Errorf("node type is not '%s'", string(domain.WorkflowNodeTypeNotify)) + } + + nodeConfig := config.Node.GetConfigForNotify() + options := ¬ifierProviderOptions{ + Provider: domain.NotifyProviderType(nodeConfig.Provider), + ProviderAccessConfig: make(map[string]any), + ProviderNotifyConfig: nodeConfig.ProviderConfig, + } + + accessRepo := repository.NewAccessRepository() + if nodeConfig.ProviderAccessId != "" { + access, err := accessRepo.GetById(context.Background(), nodeConfig.ProviderAccessId) + if err != nil { + return nil, fmt.Errorf("failed to get access #%s record: %w", nodeConfig.ProviderAccessId, err) + } else { + options.ProviderAccessConfig = access.Config + } + } + + notifierProvider, err := createNotifierProvider(options) + if err != nil { + return nil, err + } + + return ¬ifierImpl{ + provider: notifierProvider.WithLogger(config.Logger), + subject: config.Subject, + message: config.Message, + }, nil +} + +type notifierImpl struct { + provider notifier.Notifier + subject string + message string +} + +var _ Notifier = (*notifierImpl)(nil) + +func (n *notifierImpl) Notify(ctx context.Context) error { + _, err := n.provider.Notify(ctx, n.subject, n.message) + return err +} diff --git a/internal/notify/notify.go b/internal/notify/notify.go index 3d447c05..92970341 100644 --- a/internal/notify/notify.go +++ b/internal/notify/notify.go @@ -13,6 +13,7 @@ import ( "github.com/usual2970/certimate/internal/repository" ) +// Deprecated: v0.4.x 将废弃 func SendToAllChannels(subject, message string) error { notifiers, err := getEnabledNotifiers() if err != nil { @@ -38,8 +39,9 @@ func SendToAllChannels(subject, message string) error { return err } +// Deprecated: v0.4.x 将废弃 func SendToChannel(subject, message string, channel string, channelConfig map[string]any) error { - notifier, err := createNotifier(domain.NotifyChannelType(channel), channelConfig) + notifier, err := createNotifierProviderUseGlobalSettings(domain.NotifyChannelType(channel), channelConfig) if err != nil { return err } @@ -48,6 +50,7 @@ func SendToChannel(subject, message string, channel string, channelConfig map[st return err } +// Deprecated: v0.4.x 将废弃 func getEnabledNotifiers() ([]notifier.Notifier, error) { settingsRepo := repository.NewSettingsRepository() settings, err := settingsRepo.GetByName(context.Background(), "notifyChannels") @@ -66,7 +69,7 @@ func getEnabledNotifiers() ([]notifier.Notifier, error) { continue } - notifier, err := createNotifier(domain.NotifyChannelType(k), v) + notifier, err := createNotifierProviderUseGlobalSettings(domain.NotifyChannelType(k), v) if err != nil { continue } diff --git a/internal/notify/providers.go b/internal/notify/providers.go index bae9ba72..dde87587 100644 --- a/internal/notify/providers.go +++ b/internal/notify/providers.go @@ -5,102 +5,28 @@ import ( "github.com/usual2970/certimate/internal/domain" "github.com/usual2970/certimate/internal/pkg/core/notifier" - pBark "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/bark" - pDingTalk "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/dingtalk" - pEmail "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/email" - pGotify "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/gotify" - pLark "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/lark" - pMattermost "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/mattermost" - pPushover "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/pushover" - pPushPlus "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/pushplus" - pServerChan "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/serverchan" - pTelegram "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/telegram" pWebhook "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/webhook" - pWeCom "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/wecom" maputil "github.com/usual2970/certimate/internal/pkg/utils/map" ) -func createNotifier(channel domain.NotifyChannelType, channelConfig map[string]any) (notifier.Notifier, error) { +type notifierProviderOptions struct { + Provider domain.NotifyProviderType + ProviderAccessConfig map[string]any + ProviderNotifyConfig map[string]any +} + +func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier, error) { /* 注意:如果追加新的常量值,请保持以 ASCII 排序。 NOTICE: If you add new constant, please keep ASCII order. */ - switch channel { - case domain.NotifyChannelTypeBark: - return pBark.NewNotifier(&pBark.NotifierConfig{ - DeviceKey: maputil.GetString(channelConfig, "deviceKey"), - ServerUrl: maputil.GetString(channelConfig, "serverUrl"), - }) - - case domain.NotifyChannelTypeDingTalk: - return pDingTalk.NewNotifier(&pDingTalk.NotifierConfig{ - AccessToken: maputil.GetString(channelConfig, "accessToken"), - Secret: maputil.GetString(channelConfig, "secret"), - }) - - case domain.NotifyChannelTypeEmail: - return pEmail.NewNotifier(&pEmail.NotifierConfig{ - SmtpHost: maputil.GetString(channelConfig, "smtpHost"), - SmtpPort: maputil.GetInt32(channelConfig, "smtpPort"), - SmtpTLS: maputil.GetOrDefaultBool(channelConfig, "smtpTLS", true), - Username: maputil.GetOrDefaultString(channelConfig, "username", maputil.GetString(channelConfig, "senderAddress")), - Password: maputil.GetString(channelConfig, "password"), - SenderAddress: maputil.GetString(channelConfig, "senderAddress"), - ReceiverAddress: maputil.GetString(channelConfig, "receiverAddress"), - }) - - case domain.NotifyChannelTypeGotify: - return pGotify.NewNotifier(&pGotify.NotifierConfig{ - Url: maputil.GetString(channelConfig, "url"), - Token: maputil.GetString(channelConfig, "token"), - Priority: maputil.GetOrDefaultInt64(channelConfig, "priority", 1), - }) - - case domain.NotifyChannelTypeLark: - return pLark.NewNotifier(&pLark.NotifierConfig{ - WebhookUrl: maputil.GetString(channelConfig, "webhookUrl"), - }) - - case domain.NotifyChannelTypeMattermost: - return pMattermost.NewNotifier(&pMattermost.NotifierConfig{ - ServerUrl: maputil.GetString(channelConfig, "serverUrl"), - ChannelId: maputil.GetString(channelConfig, "channelId"), - Username: maputil.GetString(channelConfig, "username"), - Password: maputil.GetString(channelConfig, "password"), - }) - case domain.NotifyChannelTypePushover: - return pPushover.NewNotifier(&pPushover.NotifierConfig{ - Token: maputil.GetString(channelConfig, "token"), - User: maputil.GetString(channelConfig, "user"), - }) - - case domain.NotifyChannelTypePushPlus: - return pPushPlus.NewNotifier(&pPushPlus.NotifierConfig{ - Token: maputil.GetString(channelConfig, "token"), - }) - - case domain.NotifyChannelTypeServerChan: - return pServerChan.NewNotifier(&pServerChan.NotifierConfig{ - Url: maputil.GetString(channelConfig, "url"), - }) - - case domain.NotifyChannelTypeTelegram: - return pTelegram.NewNotifier(&pTelegram.NotifierConfig{ - ApiToken: maputil.GetString(channelConfig, "apiToken"), - ChatId: maputil.GetInt64(channelConfig, "chatId"), - }) - - case domain.NotifyChannelTypeWebhook: + switch options.Provider { + case domain.NotifyProviderTypeWebhook: return pWebhook.NewNotifier(&pWebhook.NotifierConfig{ - Url: maputil.GetString(channelConfig, "url"), - AllowInsecureConnections: maputil.GetBool(channelConfig, "allowInsecureConnections"), - }) - - case domain.NotifyChannelTypeWeCom: - return pWeCom.NewNotifier(&pWeCom.NotifierConfig{ - WebhookUrl: maputil.GetString(channelConfig, "webhookUrl"), + Url: maputil.GetString(options.ProviderAccessConfig, "url"), + AllowInsecureConnections: maputil.GetBool(options.ProviderAccessConfig, "allowInsecureConnections"), }) } - return nil, fmt.Errorf("unsupported notifier channel '%s'", channelConfig) + return nil, fmt.Errorf("unsupported notifier provider '%s'", options.Provider) } diff --git a/internal/notify/providers_deprecated.go b/internal/notify/providers_deprecated.go new file mode 100644 index 00000000..31e0071b --- /dev/null +++ b/internal/notify/providers_deprecated.go @@ -0,0 +1,108 @@ +package notify + +import ( + "fmt" + + "github.com/usual2970/certimate/internal/domain" + "github.com/usual2970/certimate/internal/pkg/core/notifier" + pBark "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/bark" + pDingTalk "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/dingtalk" + pEmail "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/email" + pGotify "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/gotify" + pLark "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/lark" + pMattermost "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/mattermost" + pPushover "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/pushover" + pPushPlus "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/pushplus" + pServerChan "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/serverchan" + pTelegram "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/telegram" + pWebhook "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/webhook" + pWeCom "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/wecom" + maputil "github.com/usual2970/certimate/internal/pkg/utils/map" +) + +// Deprecated: v0.4.x 将废弃 +func createNotifierProviderUseGlobalSettings(channel domain.NotifyChannelType, channelConfig map[string]any) (notifier.Notifier, error) { + /* + 注意:如果追加新的常量值,请保持以 ASCII 排序。 + NOTICE: If you add new constant, please keep ASCII order. + */ + switch channel { + case domain.NotifyChannelTypeBark: + return pBark.NewNotifier(&pBark.NotifierConfig{ + DeviceKey: maputil.GetString(channelConfig, "deviceKey"), + ServerUrl: maputil.GetString(channelConfig, "serverUrl"), + }) + + case domain.NotifyChannelTypeDingTalk: + return pDingTalk.NewNotifier(&pDingTalk.NotifierConfig{ + AccessToken: maputil.GetString(channelConfig, "accessToken"), + Secret: maputil.GetString(channelConfig, "secret"), + }) + + case domain.NotifyChannelTypeEmail: + return pEmail.NewNotifier(&pEmail.NotifierConfig{ + SmtpHost: maputil.GetString(channelConfig, "smtpHost"), + SmtpPort: maputil.GetInt32(channelConfig, "smtpPort"), + SmtpTLS: maputil.GetOrDefaultBool(channelConfig, "smtpTLS", true), + Username: maputil.GetOrDefaultString(channelConfig, "username", maputil.GetString(channelConfig, "senderAddress")), + Password: maputil.GetString(channelConfig, "password"), + SenderAddress: maputil.GetString(channelConfig, "senderAddress"), + ReceiverAddress: maputil.GetString(channelConfig, "receiverAddress"), + }) + + case domain.NotifyChannelTypeGotify: + return pGotify.NewNotifier(&pGotify.NotifierConfig{ + Url: maputil.GetString(channelConfig, "url"), + Token: maputil.GetString(channelConfig, "token"), + Priority: maputil.GetOrDefaultInt64(channelConfig, "priority", 1), + }) + + case domain.NotifyChannelTypeLark: + return pLark.NewNotifier(&pLark.NotifierConfig{ + WebhookUrl: maputil.GetString(channelConfig, "webhookUrl"), + }) + + case domain.NotifyChannelTypeMattermost: + return pMattermost.NewNotifier(&pMattermost.NotifierConfig{ + ServerUrl: maputil.GetString(channelConfig, "serverUrl"), + ChannelId: maputil.GetString(channelConfig, "channelId"), + Username: maputil.GetString(channelConfig, "username"), + Password: maputil.GetString(channelConfig, "password"), + }) + + case domain.NotifyChannelTypePushover: + return pPushover.NewNotifier(&pPushover.NotifierConfig{ + Token: maputil.GetString(channelConfig, "token"), + User: maputil.GetString(channelConfig, "user"), + }) + + case domain.NotifyChannelTypePushPlus: + return pPushPlus.NewNotifier(&pPushPlus.NotifierConfig{ + Token: maputil.GetString(channelConfig, "token"), + }) + + case domain.NotifyChannelTypeServerChan: + return pServerChan.NewNotifier(&pServerChan.NotifierConfig{ + Url: maputil.GetString(channelConfig, "url"), + }) + + case domain.NotifyChannelTypeTelegram: + return pTelegram.NewNotifier(&pTelegram.NotifierConfig{ + ApiToken: maputil.GetString(channelConfig, "apiToken"), + ChatId: maputil.GetInt64(channelConfig, "chatId"), + }) + + case domain.NotifyChannelTypeWebhook: + return pWebhook.NewNotifier(&pWebhook.NotifierConfig{ + Url: maputil.GetString(channelConfig, "url"), + AllowInsecureConnections: maputil.GetBool(channelConfig, "allowInsecureConnections"), + }) + + case domain.NotifyChannelTypeWeCom: + return pWeCom.NewNotifier(&pWeCom.NotifierConfig{ + WebhookUrl: maputil.GetString(channelConfig, "webhookUrl"), + }) + } + + return nil, fmt.Errorf("unsupported notifier channel '%s'", channelConfig) +} diff --git a/internal/notify/service.go b/internal/notify/service.go index 9b7cc416..1d1f6c25 100644 --- a/internal/notify/service.go +++ b/internal/notify/service.go @@ -8,25 +8,30 @@ import ( "github.com/usual2970/certimate/internal/domain/dtos" ) +// Deprecated: v0.4.x 将废弃 const ( notifyTestTitle = "测试通知" notifyTestBody = "欢迎使用 Certimate ,这是一条测试通知。" ) +// Deprecated: v0.4.x 将废弃 type settingsRepository interface { GetByName(ctx context.Context, name string) (*domain.Settings, error) } +// Deprecated: v0.4.x 将废弃 type NotifyService struct { settingsRepo settingsRepository } +// Deprecated: v0.4.x 将废弃 func NewNotifyService(settingsRepo settingsRepository) *NotifyService { return &NotifyService{ settingsRepo: settingsRepo, } } +// Deprecated: v0.4.x 将废弃 func (n *NotifyService) Test(ctx context.Context, req *dtos.NotifyTestPushReq) error { settings, err := n.settingsRepo.GetByName(ctx, "notifyChannels") if err != nil { diff --git a/internal/pkg/utils/map/getter.go b/internal/pkg/utils/map/getter.go index c4e6fbe1..b4b654e3 100644 --- a/internal/pkg/utils/map/getter.go +++ b/internal/pkg/utils/map/getter.go @@ -207,7 +207,7 @@ func GetOrDefaultBool(dict map[string]any, key string, defaultValue bool) bool { // // 出参: // - 字典中键对应的 `map[string]any` 对象。 -func GetAnyMap(dict map[string]any, key string) map[string]any { +func GetMap(dict map[string]any, key string) map[string]any { if dict == nil { return make(map[string]any) } diff --git a/internal/workflow/node-processor/apply_node.go b/internal/workflow/node-processor/apply_node.go index d9415cb9..265437ea 100644 --- a/internal/workflow/node-processor/apply_node.go +++ b/internal/workflow/node-processor/apply_node.go @@ -49,14 +49,17 @@ func (n *applyNode) Process(ctx context.Context) error { } // 初始化申请器 - applicant, err := applicant.NewWithApplyNode(n.node) + applicant, err := applicant.NewWithWorkflowNode(applicant.ApplicantWithWorkflowNodeConfig{ + Node: n.node, + Logger: n.logger, + }) if err != nil { n.logger.Warn("failed to create applicant provider") return err } // 申请证书 - applyResult, err := applicant.Apply() + applyResult, err := applicant.Apply(ctx) if err != nil { n.logger.Warn("failed to apply") return err diff --git a/internal/workflow/node-processor/deploy_node.go b/internal/workflow/node-processor/deploy_node.go index edb3c53d..01d899a4 100644 --- a/internal/workflow/node-processor/deploy_node.go +++ b/internal/workflow/node-processor/deploy_node.go @@ -63,17 +63,18 @@ func (n *deployNode) Process(ctx context.Context) error { } // 初始化部署器 - deployer, err := deployer.NewWithDeployNode(n.node, struct { - Certificate string - PrivateKey string - }{Certificate: certificate.Certificate, PrivateKey: certificate.PrivateKey}) + deployer, err := deployer.NewWithWorkflowNode(deployer.DeployerWithWorkflowNodeConfig{ + Node: n.node, + Logger: n.logger, + CertificatePEM: certificate.Certificate, + PrivateKeyPEM: certificate.PrivateKey, + }) if err != nil { n.logger.Warn("failed to create deployer provider") return err } // 部署证书 - deployer.SetLogger(n.logger) if err := deployer.Deploy(ctx); err != nil { n.logger.Warn("failed to deploy") return err diff --git a/internal/workflow/node-processor/notify_node.go b/internal/workflow/node-processor/notify_node.go index 1c2b49d8..1840938b 100644 --- a/internal/workflow/node-processor/notify_node.go +++ b/internal/workflow/node-processor/notify_node.go @@ -30,25 +30,50 @@ func (n *notifyNode) Process(ctx context.Context) error { nodeConfig := n.node.GetConfigForNotify() - // 获取通知配置 - settings, err := n.settingsRepo.GetByName(ctx, "notifyChannels") + if nodeConfig.Provider == "" { + // Deprecated: v0.4.x 将废弃 + // 兼容旧版本的通知渠道 + n.logger.Warn("WARNING! you are using the notification channel from global settings, which will be deprecated in the future") + + // 获取通知配置 + settings, err := n.settingsRepo.GetByName(ctx, "notifyChannels") + if err != nil { + return err + } + + // 获取通知渠道 + channelConfig, err := settings.GetNotifyChannelConfig(nodeConfig.Channel) + if err != nil { + return err + } + + // 发送通知 + if err := notify.SendToChannel(nodeConfig.Subject, nodeConfig.Message, nodeConfig.Channel, channelConfig); err != nil { + n.logger.Warn("failed to notify", slog.String("channel", nodeConfig.Channel)) + return err + } + + n.logger.Info("notify completed") + return nil + } + + // 初始化通知器 + deployer, err := notify.NewWithWorkflowNode(notify.NotifierWithWorkflowNodeConfig{ + Node: n.node, + Logger: n.logger, + Subject: nodeConfig.Subject, + Message: nodeConfig.Message, + }) if err != nil { + n.logger.Warn("failed to create notifier provider") return err } - // 获取通知渠道 - channelConfig, err := settings.GetNotifyChannelConfig(nodeConfig.Channel) - if err != nil { + // 推送通知 + if err := deployer.Notify(ctx); err != nil { + n.logger.Warn("failed to notify") return err } - // 发送通知 - if err := notify.SendToChannel(nodeConfig.Subject, nodeConfig.Message, nodeConfig.Channel, channelConfig); err != nil { - n.logger.Warn("failed to notify", slog.String("channel", nodeConfig.Channel)) - return err - } - - n.logger.Info("notify completed") - return nil } diff --git a/ui/src/components/provider/NotifyProviderSelect.tsx b/ui/src/components/provider/NotifyProviderSelect.tsx new file mode 100644 index 00000000..409126f4 --- /dev/null +++ b/ui/src/components/provider/NotifyProviderSelect.tsx @@ -0,0 +1,67 @@ +import { memo, useEffect, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { Avatar, Select, type SelectProps, Space, Typography } from "antd"; + +import { type NotifyProvider, notifyProvidersMap } from "@/domain/provider"; + +export type NotifyProviderSelectProps = Omit< + SelectProps, + "filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender" +> & { + filter?: (record: NotifyProvider) => boolean; +}; + +const NotifyProviderSelect = ({ filter, ...props }: NotifyProviderSelectProps) => { + const { t } = useTranslation(); + + const [options, setOptions] = useState>([]); + useEffect(() => { + const allItems = Array.from(notifyProvidersMap.values()); + const filteredItems = filter != null ? allItems.filter(filter) : allItems; + setOptions( + filteredItems.map((item) => ({ + key: item.type, + value: item.type, + label: t(item.name), + data: item, + })) + ); + }, [filter]); + + const renderOption = (key: string) => { + const provider = notifyProvidersMap.get(key); + return ( + + + + {t(provider?.name ?? "")} + + + ); + }; + + return ( + + + + +
+ + + +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + ); +}; + +export default AccessFormEmailConfig; diff --git a/ui/src/components/access/AccessFormMattermostConfig.tsx b/ui/src/components/access/AccessFormMattermostConfig.tsx new file mode 100644 index 00000000..f4a99ece --- /dev/null +++ b/ui/src/components/access/AccessFormMattermostConfig.tsx @@ -0,0 +1,79 @@ +import { useTranslation } from "react-i18next"; +import { Form, type FormInstance, Input } from "antd"; +import { createSchemaFieldRule } from "antd-zod"; +import { z } from "zod"; + +import { type AccessConfigForMattermost } from "@/domain/access"; + +type AccessFormMattermostConfigFieldValues = Nullish; + +export type AccessFormMattermostConfigProps = { + form: FormInstance; + formName: string; + disabled?: boolean; + initialValues?: AccessFormMattermostConfigFieldValues; + onValuesChange?: (values: AccessFormMattermostConfigFieldValues) => void; +}; + +const initFormModel = (): AccessFormMattermostConfigFieldValues => { + return { + serverUrl: "http://:8065/", + username: "", + password: "", + }; +}; + +const AccessFormMattermostConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange }: AccessFormMattermostConfigProps) => { + const { t } = useTranslation(); + + const formSchema = z.object({ + serverUrl: z.string().url(t("common.errmsg.url_invalid")), + username: z.string().nonempty(t("access.form.mattermost_username.placeholder")), + password: z.string().nonempty(t("access.form.mattermost_password.placeholder")), + defaultChannelId: z.string().nullish(), + }); + const formRule = createSchemaFieldRule(formSchema); + + const handleFormChange = (_: unknown, values: z.infer) => { + onValuesChange?.(values); + }; + + return ( +
+ } + > + + + + + + + + + + + + } + > + + +
+ ); +}; + +export default AccessFormMattermostConfig; diff --git a/ui/src/components/access/AccessFormSSHConfig.tsx b/ui/src/components/access/AccessFormSSHConfig.tsx index 6d3615cf..ebaeba90 100644 --- a/ui/src/components/access/AccessFormSSHConfig.tsx +++ b/ui/src/components/access/AccessFormSSHConfig.tsx @@ -31,13 +31,11 @@ const AccessFormSSHConfig = ({ form: formInst, formName, disabled, initialValues const { t } = useTranslation(); const formSchema = z.object({ - host: z - .string({ message: t("access.form.ssh_host.placeholder") }) - .refine((v) => validDomainName(v) || validIPv4Address(v) || validIPv6Address(v), t("common.errmsg.host_invalid")), + host: z.string().refine((v) => validDomainName(v) || validIPv4Address(v) || validIPv6Address(v), t("common.errmsg.host_invalid")), port: z.preprocess( (v) => Number(v), z - .number({ message: t("access.form.ssh_port.placeholder") }) + .number() .int(t("access.form.ssh_port.placeholder")) .refine((v) => validPortNumber(v), t("common.errmsg.port_invalid")) ), diff --git a/ui/src/components/access/AccessFormTelegramConfig.tsx b/ui/src/components/access/AccessFormTelegramConfig.tsx new file mode 100644 index 00000000..19ceaee2 --- /dev/null +++ b/ui/src/components/access/AccessFormTelegramConfig.tsx @@ -0,0 +1,81 @@ +import { useTranslation } from "react-i18next"; +import { Form, type FormInstance, Input } from "antd"; +import { createSchemaFieldRule } from "antd-zod"; +import { z } from "zod"; + +import { type AccessConfigForTelegram } from "@/domain/access"; + +type AccessFormTelegramConfigFieldValues = Nullish; + +export type AccessFormTelegramConfigProps = { + form: FormInstance; + formName: string; + disabled?: boolean; + initialValues?: AccessFormTelegramConfigFieldValues; + onValuesChange?: (values: AccessFormTelegramConfigFieldValues) => void; +}; + +const initFormModel = (): AccessFormTelegramConfigFieldValues => { + return { + botToken: "", + }; +}; + +const AccessFormTelegramConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange }: AccessFormTelegramConfigProps) => { + const { t } = useTranslation(); + + const formSchema = z.object({ + botToken: z + .string({ message: t("access.form.telegram_bot_token.placeholder") }) + .min(1, t("access.form.telegram_bot_token.placeholder")) + .max(256, t("common.errmsg.string_max", { max: 256 })), + defaultChatId: z + .preprocess( + (v) => Number(v), + z + .number() + .nullish() + .refine((v) => { + if (v == null || v + "" === "") return true; + return /^\d+$/.test(v + "") && +v! > 0; + }, t("access.form.telegram_default_chat_id.placeholder")) + ) + .nullish(), + }); + const formRule = createSchemaFieldRule(formSchema); + + const handleFormChange = (_: unknown, values: z.infer) => { + onValuesChange?.(values); + }; + + return ( +
+ } + > + + + + } + > + + +
+ ); +}; + +export default AccessFormTelegramConfig; diff --git a/ui/src/components/access/AccessFormWebhookConfig.tsx b/ui/src/components/access/AccessFormWebhookConfig.tsx index 89280d79..f15fe221 100644 --- a/ui/src/components/access/AccessFormWebhookConfig.tsx +++ b/ui/src/components/access/AccessFormWebhookConfig.tsx @@ -25,7 +25,7 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa const { t } = useTranslation(); const formSchema = z.object({ - url: z.string({ message: t("access.form.webhook_url.placeholder") }).url(t("common.errmsg.url_invalid")), + url: z.string().url(t("common.errmsg.url_invalid")), allowInsecureConnections: z.boolean().nullish(), }); const formRule = createSchemaFieldRule(formSchema); diff --git a/ui/src/components/notification/NotifyChannelEditFormMattermostFields.tsx b/ui/src/components/notification/NotifyChannelEditFormMattermostFields.tsx index a847be75..829a2a0d 100644 --- a/ui/src/components/notification/NotifyChannelEditFormMattermostFields.tsx +++ b/ui/src/components/notification/NotifyChannelEditFormMattermostFields.tsx @@ -7,9 +7,7 @@ const NotifyChannelEditFormMattermostFields = () => { const { t } = useTranslation(); const formSchema = z.object({ - serverUrl: z - .string({ message: t("settings.notification.channel.form.mattermost_server_url.placeholder") }) - .url(t("common.errmsg.url_invalid")), + serverUrl: z.string({ message: t("settings.notification.channel.form.mattermost_server_url.placeholder") }).url(t("common.errmsg.url_invalid")), channelId: z .string({ message: t("settings.notification.channel.form.mattermost_channel_id.placeholder") }) .nonempty(t("settings.notification.channel.form.mattermost_channel_id.placeholder")), @@ -42,19 +40,11 @@ const NotifyChannelEditFormMattermostFields = () => { - + - + diff --git a/ui/src/i18n/locales/en/nls.access.json b/ui/src/i18n/locales/en/nls.access.json index 2959a9b6..49f9d8fb 100644 --- a/ui/src/i18n/locales/en/nls.access.json +++ b/ui/src/i18n/locales/en/nls.access.json @@ -166,6 +166,19 @@ "access.form.edgio_client_secret.label": "Edgio ClientSecret", "access.form.edgio_client_secret.placeholder": "Please enter Edgio ClientSecret", "access.form.edgio_client_secret.tooltip": "For more information, see https://docs.edg.io/applications/v7/rest_api/authentication#administering-api-clients", + "access.form.email_smtp_host.label": "SMTP host", + "access.form.email_smtp_host.placeholder": "Please enter SMTP host", + "access.form.email_smtp_port.label": "SMTP port", + "access.form.email_smtp_port.placeholder": "Please enter SMTP port", + "access.form.email_smtp_tls.label": "Use SSL/TLS", + "access.form.email_username.label": "Username", + "access.form.email_username.placeholder": "please enter username", + "access.form.email_password.label": "Password", + "access.form.email_password.placeholder": "please enter password", + "access.form.email_default_sender_address.label": "Default sender email address (Optional)", + "access.form.email_default_sender_address.placeholder": "Please enter default sender email address", + "access.form.email_default_receiver_address.label": "Default receiver email address (Optional)", + "access.form.email_default_receiver_address.placeholder": "Please enter default receiver email address", "access.form.gcore_api_token.label": "Gcore API token", "access.form.gcore_api_token.placeholder": "Please enter Gcore API token", "access.form.gcore_api_token.tooltip": "For more information, see https://api.gcore.com/docs/iam#section/Authentication", @@ -203,6 +216,15 @@ "access.form.k8s_kubeconfig.placeholder": "Please enter KubeConfig file", "access.form.k8s_kubeconfig.upload": "Choose File ...", "access.form.k8s_kubeconfig.tooltip": "For more information, see https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

Leave it blank to use the Pod's ServiceAccount.", + "access.form.mattermost_server_url.label": "Mattermost server URL", + "access.form.mattermost_server_url.placeholder": "Please enter Mattermost server URL", + "access.form.mattermost_username.label": "Mattermost username", + "access.form.mattermost_username.placeholder": "Please enter Mattermost username", + "access.form.mattermost_password.label": "Mattermost password", + "access.form.mattermost_password.placeholder": "Please enter Mattermost password", + "access.form.mattermost_default_channel_id.label": "Default Mattermost channel ID", + "access.form.mattermost_default_channel_id.placeholder": "Please enter default Mattermost channel ID", + "access.form.mattermost_default_channel_id.tooltip": "How to get the channel ID? Select the target channel from the left sidebar, click on the channel name at the top, and choose ”Channel Details.” You can directly see the channel ID on the pop-up page.", "access.form.namecheap_username.label": "Namecheap username", "access.form.namecheap_username.placeholder": "Please enter Namecheap username", "access.form.namecheap_username.tooltip": "For more information, see https://www.namecheap.com/support/api/intro/", @@ -274,6 +296,12 @@ "access.form.sslcom_eab_hmac_key.label": "ACME EAB HMAC key", "access.form.sslcom_eab_hmac_key.placeholder": "Please enter ACME EAB HMAC key", "access.form.sslcom_eab_hmac_key.tooltip": "For more information, see https://www.ssl.com/how-to/generate-acme-credentials-for-reseller-customers/", + "access.form.telegram_bot_token.label": "Telegram bot token", + "access.form.telegram_bot_token.placeholder": "Please enter Telegram bot token", + "access.form.telegram_bot_token.tooltip": "How to get the bot token? Please refer to https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a", + "access.form.telegram_default_chat_id.label": "Default Telegram chat ID (Optional)", + "access.form.telegram_default_chat_id.placeholder": "Please enter default Telegram chat ID", + "access.form.telegram_default_chat_id.tooltip": "How to get the chat ID? Please refer to https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a", "access.form.tencentcloud_secret_id.label": "Tencent Cloud SecretId", "access.form.tencentcloud_secret_id.placeholder": "Please enter Tencent Cloud SecretId", "access.form.tencentcloud_secret_id.tooltip": "For more information, see https://cloud.tencent.com/document/product/598/40488?lang=en", diff --git a/ui/src/i18n/locales/zh/nls.access.json b/ui/src/i18n/locales/zh/nls.access.json index ce6ad588..85eb0645 100644 --- a/ui/src/i18n/locales/zh/nls.access.json +++ b/ui/src/i18n/locales/zh/nls.access.json @@ -160,6 +160,19 @@ "access.form.edgio_client_secret.label": "Edgio 客户端密码", "access.form.edgio_client_secret.placeholder": "请输入 Edgio 客户端密码", "access.form.edgio_client_secret.tooltip": "这是什么?请参阅 https://docs.edg.io/applications/v7/rest_api/authentication#administering-api-clients", + "access.form.email_smtp_host.label": "SMTP 服务器地址", + "access.form.email_smtp_host.placeholder": "请输入 SMTP 服务器地址", + "access.form.email_smtp_port.label": "SMTP 服务器端口", + "access.form.email_smtp_port.placeholder": "请输入 SMTP 服务器端口", + "access.form.email_smtp_tls.label": "SSL/TLS 连接", + "access.form.email_username.label": "用户名", + "access.form.email_username.placeholder": "请输入用户名", + "access.form.email_password.label": "密码", + "access.form.email_password.placeholder": "请输入密码", + "access.form.email_default_sender_address.label": "默认的发送邮箱地址(可选)", + "access.form.email_default_sender_address.placeholder": "请输入默认的发送邮箱地址", + "access.form.email_default_receiver_address.label": "默认的接收邮箱地址(可选)", + "access.form.email_default_receiver_address.placeholder": "请输入默认的接收邮箱地址", "access.form.gcore_api_token.label": "Gcore API Token", "access.form.gcore_api_token.placeholder": "请输入 Gcore API Token", "access.form.gcore_api_token.tooltip": "这是什么?请参阅 https://api.gcore.com/docs/iam#section/Authentication", @@ -197,6 +210,15 @@ "access.form.k8s_kubeconfig.placeholder": "请选择 KubeConfig 文件", "access.form.k8s_kubeconfig.upload": "选择文件", "access.form.k8s_kubeconfig.tooltip": "这是什么?请参阅 https://kubernetes.io/zh-cn/docs/concepts/configuration/organize-cluster-access-kubeconfig/

为空时,将使用 Pod 的 ServiceAccount 作为凭证。", + "access.form.mattermost_server_url.label": "Mattermost 服务地址", + "access.form.mattermost_server_url.placeholder": "请输入 Mattermost 服务地址", + "access.form.mattermost_username.label": "Mattermost 用户名", + "access.form.mattermost_username.placeholder": "请输入 Mattermost 用户名", + "access.form.mattermost_password.label": "Mattermost 密码", + "access.form.mattermost_password.placeholder": "请输入 Mattermost 密码", + "access.form.mattermost_default_channel_id.label": "默认的 Mattermost 频道 ID(可选)", + "access.form.mattermost_default_channel_id.placeholder": "请输入默认的 Mattermost 频道 ID", + "access.form.mattermost_default_channel_id.tooltip": "如何获取频道 ID?从左侧边栏中选择目标频道,点击顶部的频道名称,选择“频道详情”,即可在弹出页面中直接看到频道 ID。", "access.form.namecheap_username.label": "Namecheap 用户名", "access.form.namecheap_username.placeholder": "请输入 Namecheap 用户名", "access.form.namecheap_username.tooltip": "这是什么?请参阅 https://www.namecheap.com/support/api/intro/", @@ -268,6 +290,12 @@ "access.form.sslcom_eab_hmac_key.label": "ACME EAB HMAC key", "access.form.sslcom_eab_hmac_key.placeholder": "请输入 ACME EAB HMAC key", "access.form.sslcom_eab_hmac_key.tooltip": "这是什么?请参阅 https://www.ssl.com/how-to/generate-acme-credentials-for-reseller-customers/", + "access.form.telegram_bot_token.label": "Telegram 机器人 API Token", + "access.form.telegram_bot_token.placeholder": "请输入 Telegram 机器人 API Token", + "access.form.telegram_bot_token.tooltip": "如何获取机器人 API Token?请参阅 https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a", + "access.form.telegram_default_chat_id.label": "默认的 Telegram 会话 ID(可选)", + "access.form.telegram_default_chat_id.placeholder": "请输入默认的 Telegram 会话 ID", + "access.form.telegram_default_chat_id.tooltip": "如何获取会话 ID?请参阅 https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a", "access.form.tencentcloud_secret_id.label": "腾讯云 SecretId", "access.form.tencentcloud_secret_id.placeholder": "请输入腾讯云 SecretId", "access.form.tencentcloud_secret_id.tooltip": "这是什么?请参阅 https://cloud.tencent.com/document/product/598/40488", From 3c2fbd720fd25d806ded4115fec8f361e7e44597 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Fri, 25 Apr 2025 11:51:19 +0800 Subject: [PATCH 17/38] feat: support overwriting the default config of notifiers --- .../access/AccessFormEmailConfig.tsx | 12 ++- .../access/AccessFormTelegramConfig.tsx | 2 +- .../notification/NotifyChannelEditForm.tsx | 3 + .../workflow/node/ApplyNodeConfigForm.tsx | 5 +- .../workflow/node/DeployNodeConfigForm.tsx | 2 - .../workflow/node/NotifyNodeConfigForm.tsx | 56 ++++++++++--- .../node/NotifyNodeConfigFormEmailConfig.tsx | 80 +++++++++++++++++++ .../NotifyNodeConfigFormMattermostConfig.tsx | 61 ++++++++++++++ .../NotifyNodeConfigFormTelegramConfig.tsx | 66 +++++++++++++++ ui/src/i18n/locales/en/nls.access.json | 2 +- .../i18n/locales/en/nls.workflow.nodes.json | 12 +++ .../i18n/locales/zh/nls.workflow.nodes.json | 12 +++ 12 files changed, 288 insertions(+), 25 deletions(-) create mode 100644 ui/src/components/workflow/node/NotifyNodeConfigFormEmailConfig.tsx create mode 100644 ui/src/components/workflow/node/NotifyNodeConfigFormMattermostConfig.tsx create mode 100644 ui/src/components/workflow/node/NotifyNodeConfigFormTelegramConfig.tsx diff --git a/ui/src/components/access/AccessFormEmailConfig.tsx b/ui/src/components/access/AccessFormEmailConfig.tsx index ee939b9a..65023f68 100644 --- a/ui/src/components/access/AccessFormEmailConfig.tsx +++ b/ui/src/components/access/AccessFormEmailConfig.tsx @@ -86,7 +86,7 @@ const AccessFormEmailConfig = ({ form: formInst, formName, disabled, initialValu onValuesChange={handleFormChange} >
-
+
@@ -97,14 +97,12 @@ const AccessFormEmailConfig = ({ form: formInst, formName, disabled, initialValu
- -
- - - -
+ + + + diff --git a/ui/src/components/access/AccessFormTelegramConfig.tsx b/ui/src/components/access/AccessFormTelegramConfig.tsx index 19ceaee2..43b20f00 100644 --- a/ui/src/components/access/AccessFormTelegramConfig.tsx +++ b/ui/src/components/access/AccessFormTelegramConfig.tsx @@ -31,7 +31,7 @@ const AccessFormTelegramConfig = ({ form: formInst, formName, disabled, initialV .max(256, t("common.errmsg.string_max", { max: 256 })), defaultChatId: z .preprocess( - (v) => Number(v), + (v) => (v == null || v === "" ? undefined : Number(v)), z .number() .nullish() diff --git a/ui/src/components/notification/NotifyChannelEditForm.tsx b/ui/src/components/notification/NotifyChannelEditForm.tsx index c9af4acd..5d613ea5 100644 --- a/ui/src/components/notification/NotifyChannelEditForm.tsx +++ b/ui/src/components/notification/NotifyChannelEditForm.tsx @@ -34,6 +34,9 @@ export type NotifyChannelEditFormInstance = { validateFields: FormInstance["validateFields"]; }; +/** + * @deprecated + */ const NotifyChannelEditForm = forwardRef( ({ className, style, channel, disabled, initialValues, onValuesChange }, ref) => { const { form: formInst, formProps } = useAntdForm({ diff --git a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx index 08d2ffc5..fc76f302 100644 --- a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx +++ b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx @@ -218,8 +218,6 @@ const ApplyNodeConfigForm = forwardRef { - if (fieldProviderAccessId === value) return; - // 切换授权信息时联动 DNS 提供商 const access = accesses.find((access) => access.id === value); const provider = Array.from(acmeDns01ProvidersMap.values()).find((provider) => provider.provider === access?.provider); @@ -230,8 +228,6 @@ const ApplyNodeConfigForm = forwardRef { - if (fieldCAProvider === value) return; - // 切换 CA 提供商时联动授权信息 if (value === "") { setTimeout(() => { @@ -368,6 +364,7 @@ const ApplyNodeConfigForm = forwardRef diff --git a/ui/src/components/workflow/node/DeployNodeConfigForm.tsx b/ui/src/components/workflow/node/DeployNodeConfigForm.tsx index c86f94ee..54f855c5 100644 --- a/ui/src/components/workflow/node/DeployNodeConfigForm.tsx +++ b/ui/src/components/workflow/node/DeployNodeConfigForm.tsx @@ -322,8 +322,6 @@ const DeployNodeConfigForm = forwardRef { - if (fieldProvider === value) return; - // 切换部署目标时重置表单,避免其他部署目标的配置字段影响当前部署目标 if (initialValues?.provider === value) { formInst.resetFields(); diff --git a/ui/src/components/workflow/node/NotifyNodeConfigForm.tsx b/ui/src/components/workflow/node/NotifyNodeConfigForm.tsx index 295a0533..6e308fad 100644 --- a/ui/src/components/workflow/node/NotifyNodeConfigForm.tsx +++ b/ui/src/components/workflow/node/NotifyNodeConfigForm.tsx @@ -1,4 +1,4 @@ -import { forwardRef, memo, useEffect, useImperativeHandle, useState } from "react"; +import { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router"; import { PlusOutlined as PlusOutlinedIcon, RightOutlined as RightOutlinedIcon } from "@ant-design/icons"; @@ -9,13 +9,17 @@ import { z } from "zod"; import AccessEditModal from "@/components/access/AccessEditModal"; import AccessSelect from "@/components/access/AccessSelect"; import NotificationProviderSelect from "@/components/provider/NotificationProviderSelect"; -import { ACCESS_USAGES, accessProvidersMap, notificationProvidersMap } from "@/domain/provider"; +import { ACCESS_USAGES, NOTIFICATION_PROVIDERS, accessProvidersMap, notificationProvidersMap } from "@/domain/provider"; import { notifyChannelsMap } from "@/domain/settings"; import { type WorkflowNodeConfigForNotify } from "@/domain/workflow"; -import { useAntdForm, useZustandShallowSelector } from "@/hooks"; +import { useAntdForm, useAntdFormName, useZustandShallowSelector } from "@/hooks"; import { useAccessesStore } from "@/stores/access"; import { useNotifyChannelsStore } from "@/stores/notify"; +import NotifyNodeConfigFormEmailConfig from "./NotifyNodeConfigFormEmailConfig"; +import NotifyNodeConfigFormMattermostConfig from "./NotifyNodeConfigFormMattermostConfig"; +import NotifyNodeConfigFormTelegramConfig from "./NotifyNodeConfigFormTelegramConfig"; + type NotifyNodeConfigFormFieldValues = Partial; export type NotifyNodeConfigFormProps = { @@ -65,6 +69,7 @@ const NotifyNodeConfigForm = forwardRef { - if (fieldProvider === value) return; + const [nestedFormInst] = Form.useForm(); + const nestedFormName = useAntdFormName({ form: nestedFormInst, name: "workflowNodeNotifyConfigFormProviderConfigForm" }); + const nestedFormEl = useMemo(() => { + const nestedFormProps = { + form: nestedFormInst, + formName: nestedFormName, + disabled: disabled, + initialValues: initialValues?.providerConfig, + }; + /* + 注意:如果追加新的子组件,请保持以 ASCII 排序。 + NOTICE: If you add new child component, please keep ASCII order. + */ + switch (fieldProvider) { + case NOTIFICATION_PROVIDERS.EMAIL: + return ; + case NOTIFICATION_PROVIDERS.MATTERMOST: + return ; + case NOTIFICATION_PROVIDERS.TELEGRAM: + return ; + } + }, [disabled, initialValues?.providerConfig, fieldProvider, nestedFormInst, nestedFormName]); + + const handleProviderSelect = (value: string) => { // 切换消息通知提供商时联动授权信息 if (initialValues?.provider === value) { formInst.setFieldValue("providerAccessId", initialValues?.providerAccessId); @@ -104,8 +131,6 @@ const NotifyNodeConfigForm = forwardRef { - if (fieldProviderAccessId === value) return; - // 切换授权信息时联动消息通知提供商 const access = accesses.find((access) => access.id === value); const provider = Array.from(notificationProvidersMap.values()).find((provider) => provider.provider === access?.provider); @@ -122,13 +147,21 @@ const NotifyNodeConfigForm = forwardRef { return { getFieldsValue: () => { - return formInst.getFieldsValue(true); + const values = formInst.getFieldsValue(true); + values.providerConfig = nestedFormInst.getFieldsValue(); + return values; }, resetFields: (fields) => { - return formInst.resetFields(fields as (keyof NotifyNodeConfigFormFieldValues)[]); + formInst.resetFields(fields); + + if (!!fields && fields.includes("providerConfig")) { + nestedFormInst.resetFields(fields); + } }, validateFields: (nameList, config) => { - return formInst.validateFields(nameList, config); + const t1 = formInst.validateFields(nameList, config); + const t2 = nestedFormInst.validateFields(undefined, config); + return Promise.all([t1, t2]).then(() => t1); }, } as NotifyNodeConfigFormInstance; }); @@ -207,6 +240,7 @@ const NotifyNodeConfigForm = forwardRef @@ -224,6 +258,8 @@ const NotifyNodeConfigForm = forwardRef + + {nestedFormEl} ); } diff --git a/ui/src/components/workflow/node/NotifyNodeConfigFormEmailConfig.tsx b/ui/src/components/workflow/node/NotifyNodeConfigFormEmailConfig.tsx new file mode 100644 index 00000000..f7129a10 --- /dev/null +++ b/ui/src/components/workflow/node/NotifyNodeConfigFormEmailConfig.tsx @@ -0,0 +1,80 @@ +import { useTranslation } from "react-i18next"; +import { Form, type FormInstance, Input } from "antd"; +import { createSchemaFieldRule } from "antd-zod"; +import { z } from "zod"; + +import { validEmailAddress } from "@/utils/validators"; + +type NotifyNodeConfigFormEmailConfigFieldValues = Nullish<{ + senderAddress?: string; + receiverAddress?: string; +}>; + +export type NotifyNodeConfigFormEmailConfigProps = { + form: FormInstance; + formName: string; + disabled?: boolean; + initialValues?: NotifyNodeConfigFormEmailConfigFieldValues; + onValuesChange?: (values: NotifyNodeConfigFormEmailConfigFieldValues) => void; +}; + +const initFormModel = (): NotifyNodeConfigFormEmailConfigFieldValues => { + return {}; +}; + +const NotifyNodeConfigFormEmailConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange }: NotifyNodeConfigFormEmailConfigProps) => { + const { t } = useTranslation(); + + const formSchema = z.object({ + senderAddress: z + .string() + .nullish() + .refine((v) => { + if (!v) return true; + return validEmailAddress(v); + }, t("common.errmsg.email_invalid")), + receiverAddress: z + .string() + .nullish() + .refine((v) => { + if (!v) return true; + return validEmailAddress(v); + }, t("common.errmsg.email_invalid")), + }); + const formRule = createSchemaFieldRule(formSchema); + + const handleFormChange = (_: unknown, values: z.infer) => { + onValuesChange?.(values); + }; + + return ( +
+ } + > + + + + } + > + + +
+ ); +}; + +export default NotifyNodeConfigFormEmailConfig; diff --git a/ui/src/components/workflow/node/NotifyNodeConfigFormMattermostConfig.tsx b/ui/src/components/workflow/node/NotifyNodeConfigFormMattermostConfig.tsx new file mode 100644 index 00000000..75f72c3c --- /dev/null +++ b/ui/src/components/workflow/node/NotifyNodeConfigFormMattermostConfig.tsx @@ -0,0 +1,61 @@ +import { useTranslation } from "react-i18next"; +import { Form, type FormInstance, Input } from "antd"; +import { createSchemaFieldRule } from "antd-zod"; +import { z } from "zod"; + +type NotifyNodeConfigFormMattermostConfigFieldValues = Nullish<{ + channelId?: string; +}>; + +export type NotifyNodeConfigFormMattermostConfigProps = { + form: FormInstance; + formName: string; + disabled?: boolean; + initialValues?: NotifyNodeConfigFormMattermostConfigFieldValues; + onValuesChange?: (values: NotifyNodeConfigFormMattermostConfigFieldValues) => void; +}; + +const initFormModel = (): NotifyNodeConfigFormMattermostConfigFieldValues => { + return {}; +}; + +const NotifyNodeConfigFormMattermostConfig = ({ + form: formInst, + formName, + disabled, + initialValues, + onValuesChange, +}: NotifyNodeConfigFormMattermostConfigProps) => { + const { t } = useTranslation(); + + const formSchema = z.object({ + channelId: z.string().nullish(), + }); + const formRule = createSchemaFieldRule(formSchema); + + const handleFormChange = (_: unknown, values: z.infer) => { + onValuesChange?.(values); + }; + + return ( +
+ } + > + + +
+ ); +}; + +export default NotifyNodeConfigFormMattermostConfig; diff --git a/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramConfig.tsx b/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramConfig.tsx new file mode 100644 index 00000000..b3cd6788 --- /dev/null +++ b/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramConfig.tsx @@ -0,0 +1,66 @@ +import { useTranslation } from "react-i18next"; +import { Form, type FormInstance, Input } from "antd"; +import { createSchemaFieldRule } from "antd-zod"; +import { z } from "zod"; + +type NotifyNodeConfigFormTelegramConfigFieldValues = Nullish<{ + chatId?: string | number; +}>; + +export type NotifyNodeConfigFormTelegramConfigProps = { + form: FormInstance; + formName: string; + disabled?: boolean; + initialValues?: NotifyNodeConfigFormTelegramConfigFieldValues; + onValuesChange?: (values: NotifyNodeConfigFormTelegramConfigFieldValues) => void; +}; + +const initFormModel = (): NotifyNodeConfigFormTelegramConfigFieldValues => { + return {}; +}; + +const NotifyNodeConfigFormTelegramConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange }: NotifyNodeConfigFormTelegramConfigProps) => { + const { t } = useTranslation(); + + const formSchema = z.object({ + chatId: z + .preprocess( + (v) => (v == null || v === "" ? undefined : Number(v)), + z + .number() + .nullish() + .refine((v) => { + if (v == null || v + "" === "") return true; + return /^\d+$/.test(v + "") && +v! > 0; + }, t("workflow_node.notify.form.telegram_chat_id.placeholder")) + ) + .nullish(), + }); + const formRule = createSchemaFieldRule(formSchema); + + const handleFormChange = (_: unknown, values: z.infer) => { + onValuesChange?.(values); + }; + + return ( +
+ } + > + + +
+ ); +}; + +export default NotifyNodeConfigFormTelegramConfig; diff --git a/ui/src/i18n/locales/en/nls.access.json b/ui/src/i18n/locales/en/nls.access.json index 49f9d8fb..d7612099 100644 --- a/ui/src/i18n/locales/en/nls.access.json +++ b/ui/src/i18n/locales/en/nls.access.json @@ -222,7 +222,7 @@ "access.form.mattermost_username.placeholder": "Please enter Mattermost username", "access.form.mattermost_password.label": "Mattermost password", "access.form.mattermost_password.placeholder": "Please enter Mattermost password", - "access.form.mattermost_default_channel_id.label": "Default Mattermost channel ID", + "access.form.mattermost_default_channel_id.label": "Default Mattermost channel ID (Optional)", "access.form.mattermost_default_channel_id.placeholder": "Please enter default Mattermost channel ID", "access.form.mattermost_default_channel_id.tooltip": "How to get the channel ID? Select the target channel from the left sidebar, click on the channel name at the top, and choose ”Channel Details.” You can directly see the channel ID on the pop-up page.", "access.form.namecheap_username.label": "Namecheap username", diff --git a/ui/src/i18n/locales/en/nls.workflow.nodes.json b/ui/src/i18n/locales/en/nls.workflow.nodes.json index 326d58b4..aa91b8af 100644 --- a/ui/src/i18n/locales/en/nls.workflow.nodes.json +++ b/ui/src/i18n/locales/en/nls.workflow.nodes.json @@ -720,6 +720,18 @@ "workflow_node.notify.form.provider_access.label": "Notification provider authorization", "workflow_node.notify.form.provider_access.placeholder": "Please select an authorization of notification provider", "workflow_node.notify.form.provider_access.button": "Create", + "workflow_node.notify.form.email_sender_address.label": "Sender email address (Optional)", + "workflow_node.notify.form.email_sender_address.placeholder": "Please enter sender email address", + "workflow_node.notify.form.email_sender_address.tooltip": "Leave it blank to use the default sender email address provided by the authorization.", + "workflow_node.notify.form.email_receiver_address.label": "Receiver email address (Optional)", + "workflow_node.notify.form.email_receiver_address.placeholder": "Please enter receiver email address", + "workflow_node.notify.form.email_receiver_address.tooltip": "Leave it blank to use the default receiver email address provided by the selected authorization.", + "workflow_node.notify.form.mattermost_channel_id.label": "Mattermost channel ID (Optional)", + "workflow_node.notify.form.mattermost_channel_id.placeholder": "Please enter Mattermost channel ID", + "workflow_node.notify.form.mattermost_channel_id.tooltip": "Leave it blank to use the default channel ID provided by the authorization.", + "workflow_node.notify.form.telegram_chat_id.label": "Telegram chat ID (Optional)", + "workflow_node.notify.form.telegram_chat_id.placeholder": "Please enter Telegram chat ID", + "workflow_node.notify.form.telegram_chat_id.tooltip": "Leave it blank to use the default chat ID provided by the selected authorization.", "workflow_node.end.label": "End", diff --git a/ui/src/i18n/locales/zh/nls.workflow.nodes.json b/ui/src/i18n/locales/zh/nls.workflow.nodes.json index 623a9070..31bcf762 100644 --- a/ui/src/i18n/locales/zh/nls.workflow.nodes.json +++ b/ui/src/i18n/locales/zh/nls.workflow.nodes.json @@ -719,6 +719,18 @@ "workflow_node.notify.form.provider_access.label": "通知渠道授权", "workflow_node.notify.form.provider_access.placeholder": "请选择通知渠道授权", "workflow_node.notify.form.provider_access.button": "新建", + "workflow_node.notify.form.email_sender_address.label": "发送邮箱地址(可选)", + "workflow_node.notify.form.email_sender_address.placeholder": "请输入发送邮箱地址", + "workflow_node.notify.form.email_sender_address.tooltip": "不填写时,将使用所选通知渠道授权的默认发送邮箱地址。", + "workflow_node.notify.form.email_receiver_address.label": "接收邮箱地址(可选)", + "workflow_node.notify.form.email_receiver_address.placeholder": "请输入接收邮箱地址", + "workflow_node.notify.form.email_receiver_address.tooltip": "不填写时,将使用所选通知渠道授权的默认接收邮箱地址。", + "workflow_node.notify.form.mattermost_channel_id.label": "Mattermost 频道 ID(可选)", + "workflow_node.notify.form.mattermost_channel_id.placeholder": "请输入 Mattermost 频道 ID", + "workflow_node.notify.form.mattermost_channel_id.tooltip": "不填写时,将使用所选通知渠道授权的默认频道 ID。", + "workflow_node.notify.form.telegram_chat_id.label": "Telegram 会话 ID(可选)", + "workflow_node.notify.form.telegram_chat_id.placeholder": "请输入 Telegram 会话 ID", + "workflow_node.notify.form.telegram_chat_id.tooltip": "不填写时,将使用所选通知渠道授权的默认会话 ID。", "workflow_node.end.label": "结束", From 3be70c3696dfd2d7f042f4c8adbcf0ff52c535a9 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Sat, 26 Apr 2025 21:17:09 +0800 Subject: [PATCH 18/38] feat: support configuring method and headers in webhook --- internal/deployer/deployer.go | 6 +- internal/deployer/providers.go | 386 ++++++++++-------- internal/domain/access.go | 8 +- internal/domain/workflow.go | 8 +- internal/notify/notifier.go | 6 +- internal/notify/providers.go | 41 +- internal/notify/providers_deprecated.go | 2 +- .../deployer/providers/webhook/webhook.go | 48 ++- .../notifier/providers/webhook/webhook.go | 88 +++- .../providers/webhook/webhook_test.go | 2 +- internal/pkg/utils/http/parser.go | 33 ++ internal/pkg/utils/map/getter.go | 36 +- .../access/AccessFormWebhookConfig.tsx | 45 +- ui/src/domain/access.ts | 4 + ui/src/i18n/locales/en/nls.access.json | 6 + ui/src/i18n/locales/zh/nls.access.json | 6 + 16 files changed, 482 insertions(+), 243 deletions(-) create mode 100644 internal/pkg/utils/http/parser.go diff --git a/internal/deployer/deployer.go b/internal/deployer/deployer.go index 45830892..bdacf08e 100644 --- a/internal/deployer/deployer.go +++ b/internal/deployer/deployer.go @@ -31,9 +31,9 @@ func NewWithWorkflowNode(config DeployerWithWorkflowNodeConfig) (Deployer, error nodeConfig := config.Node.GetConfigForDeploy() options := &deployerProviderOptions{ - Provider: domain.DeploymentProviderType(nodeConfig.Provider), - ProviderAccessConfig: make(map[string]any), - ProviderDeployConfig: nodeConfig.ProviderConfig, + Provider: domain.DeploymentProviderType(nodeConfig.Provider), + ProviderAccessConfig: make(map[string]any), + ProviderExtendedConfig: nodeConfig.ProviderConfig, } accessRepo := repository.NewAccessRepository() diff --git a/internal/deployer/providers.go b/internal/deployer/providers.go index c49e43b4..ca47b18c 100644 --- a/internal/deployer/providers.go +++ b/internal/deployer/providers.go @@ -2,6 +2,7 @@ package deployer import ( "fmt" + "net/http" "strings" "github.com/usual2970/certimate/internal/domain" @@ -78,14 +79,15 @@ import ( pVolcEngineTOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-tos" pWangsuCDNPro "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/wangsu-cdnpro" pWebhook "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/webhook" + httputil "github.com/usual2970/certimate/internal/pkg/utils/http" maputil "github.com/usual2970/certimate/internal/pkg/utils/map" sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice" ) type deployerProviderOptions struct { - Provider domain.DeploymentProviderType - ProviderAccessConfig map[string]any - ProviderDeployConfig map[string]any + Provider domain.DeploymentProviderType + ProviderAccessConfig map[string]any + ProviderExtendedConfig map[string]any } func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer, error) { @@ -107,7 +109,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer ApiUrl: access.ApiUrl, ApiKey: access.ApiKey, AllowInsecureConnections: access.AllowInsecureConnections, - AutoRestart: maputil.GetBool(options.ProviderDeployConfig, "autoRestart"), + AutoRestart: maputil.GetBool(options.ProviderExtendedConfig, "autoRestart"), }) return deployer, err @@ -116,9 +118,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer ApiUrl: access.ApiUrl, ApiKey: access.ApiKey, AllowInsecureConnections: access.AllowInsecureConnections, - ResourceType: p1PanelSite.ResourceType(maputil.GetOrDefaultString(options.ProviderDeployConfig, "resourceType", string(p1PanelSite.RESOURCE_TYPE_WEBSITE))), - WebsiteId: maputil.GetInt64(options.ProviderDeployConfig, "websiteId"), - CertificateId: maputil.GetInt64(options.ProviderDeployConfig, "certificateId"), + ResourceType: p1PanelSite.ResourceType(maputil.GetOrDefaultString(options.ProviderExtendedConfig, "resourceType", string(p1PanelSite.RESOURCE_TYPE_WEBSITE))), + WebsiteId: maputil.GetInt64(options.ProviderExtendedConfig, "websiteId"), + CertificateId: maputil.GetInt64(options.ProviderExtendedConfig, "certificateId"), }) return deployer, err @@ -139,11 +141,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunALB.NewDeployer(&pAliyunALB.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pAliyunALB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pAliyunALB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -151,11 +153,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunAPIGW.NewDeployer(&pAliyunAPIGW.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ServiceType: pAliyunAPIGW.ServiceType(maputil.GetString(options.ProviderDeployConfig, "serviceType")), - GatewayId: maputil.GetString(options.ProviderDeployConfig, "gatewayId"), - GroupId: maputil.GetString(options.ProviderDeployConfig, "groupId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ServiceType: pAliyunAPIGW.ServiceType(maputil.GetString(options.ProviderExtendedConfig, "serviceType")), + GatewayId: maputil.GetString(options.ProviderExtendedConfig, "gatewayId"), + GroupId: maputil.GetString(options.ProviderExtendedConfig, "groupId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -163,7 +165,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunCAS.NewDeployer(&pAliyunCAS.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), }) return deployer, err @@ -171,9 +173,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunCASDeploy.NewDeployer(&pAliyunCASDeploy.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderDeployConfig, "resourceIds"), ";"), func(s string) bool { return s != "" }), - ContactIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderDeployConfig, "contactIds"), ";"), func(s string) bool { return s != "" }), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderExtendedConfig, "resourceIds"), ";"), func(s string) bool { return s != "" }), + ContactIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderExtendedConfig, "contactIds"), ";"), func(s string) bool { return s != "" }), }) return deployer, err @@ -181,7 +183,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunCDN.NewDeployer(&pAliyunCDN.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -189,11 +191,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunCLB.NewDeployer(&pAliyunCLB.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pAliyunCLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerPort: maputil.GetOrDefaultInt32(options.ProviderDeployConfig, "listenerPort", 443), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pAliyunCLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerPort: maputil.GetOrDefaultInt32(options.ProviderExtendedConfig, "listenerPort", 443), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -201,7 +203,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunDCDN.NewDeployer(&pAliyunDCDN.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -209,8 +211,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunESA.NewDeployer(&pAliyunESA.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - SiteId: maputil.GetInt64(options.ProviderDeployConfig, "siteId"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + SiteId: maputil.GetInt64(options.ProviderExtendedConfig, "siteId"), }) return deployer, err @@ -218,9 +220,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunFC.NewDeployer(&pAliyunFC.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ServiceVersion: maputil.GetOrDefaultString(options.ProviderDeployConfig, "serviceVersion", "3.0"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ServiceVersion: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "serviceVersion", "3.0"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -228,8 +230,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunLive.NewDeployer(&pAliyunLive.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -237,10 +239,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunNLB.NewDeployer(&pAliyunNLB.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pAliyunNLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pAliyunNLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"), }) return deployer, err @@ -248,9 +250,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunOSS.NewDeployer(&pAliyunOSS.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - Bucket: maputil.GetString(options.ProviderDeployConfig, "bucket"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + Bucket: maputil.GetString(options.ProviderExtendedConfig, "bucket"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -258,8 +260,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunVOD.NewDeployer(&pAliyunVOD.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -267,10 +269,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAliyunWAF.NewDeployer(&pAliyunWAF.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ServiceVersion: maputil.GetOrDefaultString(options.ProviderDeployConfig, "serviceVersion", "3.0"), - InstanceId: maputil.GetString(options.ProviderDeployConfig, "instanceId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ServiceVersion: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "serviceVersion", "3.0"), + InstanceId: maputil.GetString(options.ProviderExtendedConfig, "instanceId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -291,7 +293,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAWSACM.NewDeployer(&pAWSACM.DeployerConfig{ AccessKeyId: access.AccessKeyId, SecretAccessKey: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), }) return deployer, err @@ -299,8 +301,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pAWSCloudFront.NewDeployer(&pAWSCloudFront.DeployerConfig{ AccessKeyId: access.AccessKeyId, SecretAccessKey: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - DistributionId: maputil.GetString(options.ProviderDeployConfig, "distributionId"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + DistributionId: maputil.GetString(options.ProviderExtendedConfig, "distributionId"), }) return deployer, err @@ -323,8 +325,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer ClientId: access.ClientId, ClientSecret: access.ClientSecret, CloudName: access.CloudName, - KeyVaultName: maputil.GetString(options.ProviderDeployConfig, "keyvaultName"), - CertificateName: maputil.GetString(options.ProviderDeployConfig, "certificateName"), + KeyVaultName: maputil.GetString(options.ProviderExtendedConfig, "keyvaultName"), + CertificateName: maputil.GetString(options.ProviderExtendedConfig, "certificateName"), }) return deployer, err @@ -345,11 +347,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pBaiduCloudAppBLB.NewDeployer(&pBaiduCloudAppBLB.DeployerConfig{ AccessKeyId: access.AccessKeyId, SecretAccessKey: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pBaiduCloudAppBLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerPort: maputil.GetInt32(options.ProviderDeployConfig, "listenerPort"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pBaiduCloudAppBLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerPort: maputil.GetInt32(options.ProviderExtendedConfig, "listenerPort"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -357,11 +359,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pBaiduCloudBLB.NewDeployer(&pBaiduCloudBLB.DeployerConfig{ AccessKeyId: access.AccessKeyId, SecretAccessKey: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pBaiduCloudBLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerPort: maputil.GetInt32(options.ProviderDeployConfig, "listenerPort"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pBaiduCloudBLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerPort: maputil.GetInt32(options.ProviderExtendedConfig, "listenerPort"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -369,7 +371,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pBaiduCloudCDN.NewDeployer(&pBaiduCloudCDN.DeployerConfig{ AccessKeyId: access.AccessKeyId, SecretAccessKey: access.SecretAccessKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -396,8 +398,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer case domain.DeploymentProviderTypeBaishanCDN: deployer, err := pBaishanCDN.NewDeployer(&pBaishanCDN.DeployerConfig{ ApiToken: access.ApiToken, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), - CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), + CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"), }) return deployer, err @@ -419,7 +421,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer ApiUrl: access.ApiUrl, ApiKey: access.ApiKey, AllowInsecureConnections: access.AllowInsecureConnections, - AutoRestart: maputil.GetBool(options.ProviderDeployConfig, "autoRestart"), + AutoRestart: maputil.GetBool(options.ProviderExtendedConfig, "autoRestart"), }) return deployer, err @@ -428,9 +430,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer ApiUrl: access.ApiUrl, ApiKey: access.ApiKey, AllowInsecureConnections: access.AllowInsecureConnections, - SiteType: maputil.GetOrDefaultString(options.ProviderDeployConfig, "siteType", "other"), - SiteName: maputil.GetString(options.ProviderDeployConfig, "siteName"), - SiteNames: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderDeployConfig, "siteNames"), ";"), func(s string) bool { return s != "" }), + SiteType: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "siteType", "other"), + SiteName: maputil.GetString(options.ProviderExtendedConfig, "siteName"), + SiteNames: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderExtendedConfig, "siteNames"), ";"), func(s string) bool { return s != "" }), }) return deployer, err @@ -448,8 +450,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pBunnyCDN.NewDeployer(&pBunnyCDN.DeployerConfig{ ApiKey: access.ApiKey, - PullZoneId: maputil.GetString(options.ProviderDeployConfig, "pullZoneId"), - Hostname: maputil.GetString(options.ProviderDeployConfig, "hostname"), + PullZoneId: maputil.GetString(options.ProviderExtendedConfig, "pullZoneId"), + Hostname: maputil.GetString(options.ProviderExtendedConfig, "hostname"), }) return deployer, err } @@ -466,7 +468,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pBytePlusCDN.NewDeployer(&pBytePlusCDN.DeployerConfig{ AccessKey: access.AccessKey, SecretKey: access.SecretKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -499,9 +501,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer ApiUrl: access.ApiUrl, ApiKey: access.ApiKey, ApiSecret: access.ApiSecret, - ResourceType: pCdnfly.ResourceType(maputil.GetOrDefaultString(options.ProviderDeployConfig, "resourceType", string(pCdnfly.RESOURCE_TYPE_SITE))), - SiteId: maputil.GetString(options.ProviderDeployConfig, "siteId"), - CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"), + ResourceType: pCdnfly.ResourceType(maputil.GetOrDefaultString(options.ProviderExtendedConfig, "resourceType", string(pCdnfly.RESOURCE_TYPE_SITE))), + SiteId: maputil.GetString(options.ProviderExtendedConfig, "siteId"), + CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"), }) return deployer, err } @@ -516,7 +518,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pDogeCDN.NewDeployer(&pDogeCDN.DeployerConfig{ AccessKey: access.AccessKey, SecretKey: access.SecretKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err } @@ -531,7 +533,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pEdgioApplications.NewDeployer(&pEdgioApplications.DeployerConfig{ ClientId: access.ClientId, ClientSecret: access.ClientSecret, - EnvironmentId: maputil.GetString(options.ProviderDeployConfig, "environmentId"), + EnvironmentId: maputil.GetString(options.ProviderExtendedConfig, "environmentId"), }) return deployer, err } @@ -547,7 +549,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer case domain.DeploymentProviderTypeGcoreCDN: deployer, err := pGcoreCDN.NewDeployer(&pGcoreCDN.DeployerConfig{ ApiToken: access.ApiToken, - ResourceId: maputil.GetInt64(options.ProviderDeployConfig, "resourceId"), + ResourceId: maputil.GetInt64(options.ProviderExtendedConfig, "resourceId"), }) return deployer, err @@ -568,8 +570,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pHuaweiCloudCDN.NewDeployer(&pHuaweiCloudCDN.DeployerConfig{ AccessKeyId: access.AccessKeyId, SecretAccessKey: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -577,11 +579,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pHuaweiCloudELB.NewDeployer(&pHuaweiCloudELB.DeployerConfig{ AccessKeyId: access.AccessKeyId, SecretAccessKey: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pHuaweiCloudELB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pHuaweiCloudELB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"), }) return deployer, err @@ -596,10 +598,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pHuaweiCloudWAF.NewDeployer(&pHuaweiCloudWAF.DeployerConfig{ AccessKeyId: access.AccessKeyId, SecretAccessKey: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pHuaweiCloudWAF.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pHuaweiCloudWAF.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -620,10 +622,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pJDCloudALB.NewDeployer(&pJDCloudALB.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - RegionId: maputil.GetString(options.ProviderDeployConfig, "regionId"), - ResourceType: pJDCloudALB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"), + RegionId: maputil.GetString(options.ProviderExtendedConfig, "regionId"), + ResourceType: pJDCloudALB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"), }) return deployer, err @@ -631,7 +633,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pJDCloudCDN.NewDeployer(&pJDCloudCDN.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -639,7 +641,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pJDCloudLive.NewDeployer(&pJDCloudLive.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -647,7 +649,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pJDCloudVOD.NewDeployer(&pJDCloudVOD.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -659,16 +661,16 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer case domain.DeploymentProviderTypeLocal: { deployer, err := pLocal.NewDeployer(&pLocal.DeployerConfig{ - ShellEnv: pLocal.ShellEnvType(maputil.GetString(options.ProviderDeployConfig, "shellEnv")), - PreCommand: maputil.GetString(options.ProviderDeployConfig, "preCommand"), - PostCommand: maputil.GetString(options.ProviderDeployConfig, "postCommand"), - OutputFormat: pLocal.OutputFormatType(maputil.GetOrDefaultString(options.ProviderDeployConfig, "format", string(pLocal.OUTPUT_FORMAT_PEM))), - OutputCertPath: maputil.GetString(options.ProviderDeployConfig, "certPath"), - OutputKeyPath: maputil.GetString(options.ProviderDeployConfig, "keyPath"), - PfxPassword: maputil.GetString(options.ProviderDeployConfig, "pfxPassword"), - JksAlias: maputil.GetString(options.ProviderDeployConfig, "jksAlias"), - JksKeypass: maputil.GetString(options.ProviderDeployConfig, "jksKeypass"), - JksStorepass: maputil.GetString(options.ProviderDeployConfig, "jksStorepass"), + ShellEnv: pLocal.ShellEnvType(maputil.GetString(options.ProviderExtendedConfig, "shellEnv")), + PreCommand: maputil.GetString(options.ProviderExtendedConfig, "preCommand"), + PostCommand: maputil.GetString(options.ProviderExtendedConfig, "postCommand"), + OutputFormat: pLocal.OutputFormatType(maputil.GetOrDefaultString(options.ProviderExtendedConfig, "format", string(pLocal.OUTPUT_FORMAT_PEM))), + OutputCertPath: maputil.GetString(options.ProviderExtendedConfig, "certPath"), + OutputKeyPath: maputil.GetString(options.ProviderExtendedConfig, "keyPath"), + PfxPassword: maputil.GetString(options.ProviderExtendedConfig, "pfxPassword"), + JksAlias: maputil.GetString(options.ProviderExtendedConfig, "jksAlias"), + JksKeypass: maputil.GetString(options.ProviderExtendedConfig, "jksKeypass"), + JksStorepass: maputil.GetString(options.ProviderExtendedConfig, "jksStorepass"), }) return deployer, err } @@ -682,11 +684,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pK8sSecret.NewDeployer(&pK8sSecret.DeployerConfig{ KubeConfig: access.KubeConfig, - Namespace: maputil.GetOrDefaultString(options.ProviderDeployConfig, "namespace", "default"), - SecretName: maputil.GetString(options.ProviderDeployConfig, "secretName"), - SecretType: maputil.GetOrDefaultString(options.ProviderDeployConfig, "secretType", "kubernetes.io/tls"), - SecretDataKeyForCrt: maputil.GetOrDefaultString(options.ProviderDeployConfig, "secretDataKeyForCrt", "tls.crt"), - SecretDataKeyForKey: maputil.GetOrDefaultString(options.ProviderDeployConfig, "secretDataKeyForKey", "tls.key"), + Namespace: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "namespace", "default"), + SecretName: maputil.GetString(options.ProviderExtendedConfig, "secretName"), + SecretType: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "secretType", "kubernetes.io/tls"), + SecretDataKeyForCrt: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "secretDataKeyForCrt", "tls.crt"), + SecretDataKeyForKey: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "secretDataKeyForKey", "tls.key"), }) return deployer, err } @@ -703,7 +705,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pQiniuCDN.NewDeployer(&pQiniuCDN.DeployerConfig{ AccessKey: access.AccessKey, SecretKey: access.SecretKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -711,8 +713,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pQiniuPili.NewDeployer(&pQiniuPili.DeployerConfig{ AccessKey: access.AccessKey, SecretKey: access.SecretKey, - Hub: maputil.GetString(options.ProviderDeployConfig, "hub"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Hub: maputil.GetString(options.ProviderExtendedConfig, "hub"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -732,8 +734,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer case domain.DeploymentProviderTypeTencentCloudCDN: deployer, err := pRainYunRCDN.NewDeployer(&pRainYunRCDN.DeployerConfig{ ApiKey: access.ApiKey, - InstanceId: maputil.GetInt32(options.ProviderDeployConfig, "instanceId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + InstanceId: maputil.GetInt32(options.ProviderExtendedConfig, "instanceId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -753,8 +755,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer ApiUrl: access.ApiUrl, ApiToken: access.ApiToken, AllowInsecureConnections: access.AllowInsecureConnections, - ResourceType: pSafeLine.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - CertificateId: maputil.GetInt32(options.ProviderDeployConfig, "certificateId"), + ResourceType: pSafeLine.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + CertificateId: maputil.GetInt32(options.ProviderExtendedConfig, "certificateId"), }) return deployer, err } @@ -773,16 +775,16 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer SshPassword: access.Password, SshKey: access.Key, SshKeyPassphrase: access.KeyPassphrase, - UseSCP: maputil.GetBool(options.ProviderDeployConfig, "useSCP"), - PreCommand: maputil.GetString(options.ProviderDeployConfig, "preCommand"), - PostCommand: maputil.GetString(options.ProviderDeployConfig, "postCommand"), - OutputFormat: pSSH.OutputFormatType(maputil.GetOrDefaultString(options.ProviderDeployConfig, "format", string(pSSH.OUTPUT_FORMAT_PEM))), - OutputCertPath: maputil.GetString(options.ProviderDeployConfig, "certPath"), - OutputKeyPath: maputil.GetString(options.ProviderDeployConfig, "keyPath"), - PfxPassword: maputil.GetString(options.ProviderDeployConfig, "pfxPassword"), - JksAlias: maputil.GetString(options.ProviderDeployConfig, "jksAlias"), - JksKeypass: maputil.GetString(options.ProviderDeployConfig, "jksKeypass"), - JksStorepass: maputil.GetString(options.ProviderDeployConfig, "jksStorepass"), + UseSCP: maputil.GetBool(options.ProviderExtendedConfig, "useSCP"), + PreCommand: maputil.GetString(options.ProviderExtendedConfig, "preCommand"), + PostCommand: maputil.GetString(options.ProviderExtendedConfig, "postCommand"), + OutputFormat: pSSH.OutputFormatType(maputil.GetOrDefaultString(options.ProviderExtendedConfig, "format", string(pSSH.OUTPUT_FORMAT_PEM))), + OutputCertPath: maputil.GetString(options.ProviderExtendedConfig, "certPath"), + OutputKeyPath: maputil.GetString(options.ProviderExtendedConfig, "keyPath"), + PfxPassword: maputil.GetString(options.ProviderExtendedConfig, "pfxPassword"), + JksAlias: maputil.GetString(options.ProviderExtendedConfig, "jksAlias"), + JksKeypass: maputil.GetString(options.ProviderExtendedConfig, "jksKeypass"), + JksStorepass: maputil.GetString(options.ProviderExtendedConfig, "jksStorepass"), }) return deployer, err } @@ -799,7 +801,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudCDN.NewDeployer(&pTencentCloudCDN.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -807,11 +809,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudCLB.NewDeployer(&pTencentCloudCLB.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pTencentCloudCLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pTencentCloudCLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -819,9 +821,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudCOS.NewDeployer(&pTencentCloudCOS.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - Bucket: maputil.GetString(options.ProviderDeployConfig, "bucket"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + Bucket: maputil.GetString(options.ProviderExtendedConfig, "bucket"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -829,7 +831,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudCSS.NewDeployer(&pTencentCloudCSS.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -837,7 +839,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudECDN.NewDeployer(&pTencentCloudECDN.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -845,8 +847,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudEO.NewDeployer(&pTencentCloudEO.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - ZoneId: maputil.GetString(options.ProviderDeployConfig, "zoneId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + ZoneId: maputil.GetString(options.ProviderExtendedConfig, "zoneId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -854,8 +856,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudSCF.NewDeployer(&pTencentCloudSCF.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -870,9 +872,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudSSLDeploy.NewDeployer(&pTencentCloudSSLDeploy.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: maputil.GetString(options.ProviderDeployConfig, "resourceType"), - ResourceIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderDeployConfig, "resourceIds"), ";"), func(s string) bool { return s != "" }), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: maputil.GetString(options.ProviderExtendedConfig, "resourceType"), + ResourceIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderExtendedConfig, "resourceIds"), ";"), func(s string) bool { return s != "" }), }) return deployer, err @@ -880,8 +882,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudVOD.NewDeployer(&pTencentCloudVOD.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - SubAppId: maputil.GetInt64(options.ProviderDeployConfig, "subAppId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + SubAppId: maputil.GetInt64(options.ProviderExtendedConfig, "subAppId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -889,9 +891,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pTencentCloudWAF.NewDeployer(&pTencentCloudWAF.DeployerConfig{ SecretId: access.SecretId, SecretKey: access.SecretKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), - DomainId: maputil.GetString(options.ProviderDeployConfig, "domainId"), - InstanceId: maputil.GetString(options.ProviderDeployConfig, "instanceId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), + DomainId: maputil.GetString(options.ProviderExtendedConfig, "domainId"), + InstanceId: maputil.GetString(options.ProviderExtendedConfig, "instanceId"), }) return deployer, err @@ -913,7 +915,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer PrivateKey: access.PrivateKey, PublicKey: access.PublicKey, ProjectId: access.ProjectId, - DomainId: maputil.GetString(options.ProviderDeployConfig, "domainId"), + DomainId: maputil.GetString(options.ProviderExtendedConfig, "domainId"), }) return deployer, err @@ -922,9 +924,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer PrivateKey: access.PrivateKey, PublicKey: access.PublicKey, ProjectId: access.ProjectId, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - Bucket: maputil.GetString(options.ProviderDeployConfig, "bucket"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + Bucket: maputil.GetString(options.ProviderExtendedConfig, "bucket"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -945,7 +947,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pUpyunCDN.NewDeployer(&pUpyunCDN.DeployerConfig{ Username: access.Username, Password: access.Password, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -966,11 +968,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pVolcEngineALB.NewDeployer(&pVolcEngineALB.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pVolcEngineALB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pVolcEngineALB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -978,7 +980,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pVolcEngineCDN.NewDeployer(&pVolcEngineCDN.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.SecretAccessKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -986,7 +988,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pVolcEngineCertCenter.NewDeployer(&pVolcEngineCertCenter.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), }) return deployer, err @@ -994,10 +996,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pVolcEngineCLB.NewDeployer(&pVolcEngineCLB.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ResourceType: pVolcEngineCLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")), - LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"), - ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ResourceType: pVolcEngineCLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")), + LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"), + ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"), }) return deployer, err @@ -1005,7 +1007,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pVolcEngineDCDN.NewDeployer(&pVolcEngineDCDN.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.SecretAccessKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -1013,9 +1015,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pVolcEngineImageX.NewDeployer(&pVolcEngineImageX.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - ServiceId: maputil.GetString(options.ProviderDeployConfig, "serviceId"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + ServiceId: maputil.GetString(options.ProviderExtendedConfig, "serviceId"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -1023,7 +1025,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pVolcEngineLive.NewDeployer(&pVolcEngineLive.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.SecretAccessKey, - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -1031,9 +1033,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer deployer, err := pVolcEngineTOS.NewDeployer(&pVolcEngineTOS.DeployerConfig{ AccessKeyId: access.AccessKeyId, AccessKeySecret: access.SecretAccessKey, - Region: maputil.GetString(options.ProviderDeployConfig, "region"), - Bucket: maputil.GetString(options.ProviderDeployConfig, "bucket"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), + Region: maputil.GetString(options.ProviderExtendedConfig, "region"), + Bucket: maputil.GetString(options.ProviderExtendedConfig, "bucket"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), }) return deployer, err @@ -1055,10 +1057,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer AccessKeyId: access.AccessKeyId, AccessKeySecret: access.AccessKeySecret, ApiKey: access.ApiKey, - Environment: maputil.GetOrDefaultString(options.ProviderDeployConfig, "environment", "production"), - Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), - CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"), - WebhookId: maputil.GetString(options.ProviderDeployConfig, "webhookId"), + Environment: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "environment", "production"), + Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"), + CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"), + WebhookId: maputil.GetString(options.ProviderExtendedConfig, "webhookId"), }) return deployer, err @@ -1074,9 +1076,31 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer return nil, fmt.Errorf("failed to populate provider access config: %w", err) } + mergedHeaders := make(map[string]string) + if defaultHeadersString := access.HeadersString; defaultHeadersString != "" { + h, err := httputil.ParseHeaders(defaultHeadersString) + if err != nil { + return nil, fmt.Errorf("failed to parse webhook headers: %w", err) + } + for key := range h { + mergedHeaders[http.CanonicalHeaderKey(key)] = h.Get(key) + } + } + if extendedHeadersString := maputil.GetString(options.ProviderExtendedConfig, "headers"); extendedHeadersString != "" { + h, err := httputil.ParseHeaders(extendedHeadersString) + if err != nil { + return nil, fmt.Errorf("failed to parse webhook headers: %w", err) + } + for key := range h { + mergedHeaders[http.CanonicalHeaderKey(key)] = h.Get(key) + } + } + deployer, err := pWebhook.NewDeployer(&pWebhook.DeployerConfig{ WebhookUrl: access.Url, - WebhookData: maputil.GetString(options.ProviderDeployConfig, "webhookData"), + WebhookData: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "webhookData", access.TemplateDataForDeployment), + Method: access.Method, + Headers: mergedHeaders, AllowInsecureConnections: access.AllowInsecureConnections, }) return deployer, err diff --git a/internal/domain/access.go b/internal/domain/access.go index 1fdea54d..b9f4de6b 100644 --- a/internal/domain/access.go +++ b/internal/domain/access.go @@ -261,8 +261,12 @@ type AccessConfigForWangsu struct { } type AccessConfigForWebhook struct { - Url string `json:"url"` - AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"` + Url string `json:"url"` + Method string `json:"method,omitempty"` + HeadersString string `json:"headers,omitempty"` + AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"` + TemplateDataForDeployment string `json:"templateDataForDeployment,omitempty"` // TODO: + TemplateDataForNotification string `json:"templateDataForNotification,omitempty"` // TODO: } type AccessConfigForWestcn struct { diff --git a/internal/domain/workflow.go b/internal/domain/workflow.go index 639a31ca..65bc35d0 100644 --- a/internal/domain/workflow.go +++ b/internal/domain/workflow.go @@ -114,10 +114,10 @@ func (n *WorkflowNode) GetConfigForApply() WorkflowNodeConfigForApply { ContactEmail: maputil.GetString(n.Config, "contactEmail"), Provider: maputil.GetString(n.Config, "provider"), ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"), - ProviderConfig: maputil.GetMap(n.Config, "providerConfig"), + ProviderConfig: maputil.GetKVMapAny(n.Config, "providerConfig"), CAProvider: maputil.GetString(n.Config, "caProvider"), CAProviderAccessId: maputil.GetString(n.Config, "caProviderAccessId"), - CAProviderConfig: maputil.GetMap(n.Config, "caProviderConfig"), + CAProviderConfig: maputil.GetKVMapAny(n.Config, "caProviderConfig"), KeyAlgorithm: maputil.GetString(n.Config, "keyAlgorithm"), Nameservers: maputil.GetString(n.Config, "nameservers"), DnsPropagationTimeout: maputil.GetInt32(n.Config, "dnsPropagationTimeout"), @@ -141,7 +141,7 @@ func (n *WorkflowNode) GetConfigForDeploy() WorkflowNodeConfigForDeploy { Certificate: maputil.GetString(n.Config, "certificate"), Provider: maputil.GetString(n.Config, "provider"), ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"), - ProviderConfig: maputil.GetMap(n.Config, "providerConfig"), + ProviderConfig: maputil.GetKVMapAny(n.Config, "providerConfig"), SkipOnLastSucceeded: maputil.GetBool(n.Config, "skipOnLastSucceeded"), } } @@ -151,7 +151,7 @@ func (n *WorkflowNode) GetConfigForNotify() WorkflowNodeConfigForNotify { Channel: maputil.GetString(n.Config, "channel"), Provider: maputil.GetString(n.Config, "provider"), ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"), - ProviderConfig: maputil.GetMap(n.Config, "providerConfig"), + ProviderConfig: maputil.GetKVMapAny(n.Config, "providerConfig"), Subject: maputil.GetString(n.Config, "subject"), Message: maputil.GetString(n.Config, "message"), } diff --git a/internal/notify/notifier.go b/internal/notify/notifier.go index 59d6d475..955e88c3 100644 --- a/internal/notify/notifier.go +++ b/internal/notify/notifier.go @@ -31,9 +31,9 @@ func NewWithWorkflowNode(config NotifierWithWorkflowNodeConfig) (Notifier, error nodeConfig := config.Node.GetConfigForNotify() options := ¬ifierProviderOptions{ - Provider: domain.NotificationProviderType(nodeConfig.Provider), - ProviderAccessConfig: make(map[string]any), - ProviderNotifyConfig: nodeConfig.ProviderConfig, + Provider: domain.NotificationProviderType(nodeConfig.Provider), + ProviderAccessConfig: make(map[string]any), + ProviderExtendedConfig: nodeConfig.ProviderConfig, } accessRepo := repository.NewAccessRepository() diff --git a/internal/notify/providers.go b/internal/notify/providers.go index 7f06908e..da22b12a 100644 --- a/internal/notify/providers.go +++ b/internal/notify/providers.go @@ -2,6 +2,7 @@ package notify import ( "fmt" + "net/http" "github.com/usual2970/certimate/internal/domain" "github.com/usual2970/certimate/internal/pkg/core/notifier" @@ -9,13 +10,14 @@ import ( pMattermost "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/mattermost" pTelegram "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/telegram" pWebhook "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/webhook" + httputil "github.com/usual2970/certimate/internal/pkg/utils/http" maputil "github.com/usual2970/certimate/internal/pkg/utils/map" ) type notifierProviderOptions struct { - Provider domain.NotificationProviderType - ProviderAccessConfig map[string]any - ProviderNotifyConfig map[string]any + Provider domain.NotificationProviderType + ProviderAccessConfig map[string]any + ProviderExtendedConfig map[string]any } func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier, error) { @@ -37,8 +39,8 @@ func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier SmtpTls: access.SmtpTls, Username: access.Username, Password: access.Password, - SenderAddress: maputil.GetOrDefaultString(options.ProviderNotifyConfig, "senderAddress", access.DefaultSenderAddress), - ReceiverAddress: maputil.GetOrDefaultString(options.ProviderNotifyConfig, "receiverAddress", access.DefaultReceiverAddress), + SenderAddress: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "senderAddress", access.DefaultSenderAddress), + ReceiverAddress: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "receiverAddress", access.DefaultReceiverAddress), }) } @@ -53,7 +55,7 @@ func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier ServerUrl: access.ServerUrl, Username: access.Username, Password: access.Password, - ChannelId: maputil.GetOrDefaultString(options.ProviderNotifyConfig, "channelId", access.DefaultChannelId), + ChannelId: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "channelId", access.DefaultChannelId), }) } @@ -66,7 +68,7 @@ func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier return pTelegram.NewNotifier(&pTelegram.NotifierConfig{ BotToken: access.BotToken, - ChatId: maputil.GetOrDefaultInt64(options.ProviderNotifyConfig, "chatId", access.DefaultChatId), + ChatId: maputil.GetOrDefaultInt64(options.ProviderExtendedConfig, "chatId", access.DefaultChatId), }) } @@ -77,8 +79,31 @@ func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier return nil, fmt.Errorf("failed to populate provider access config: %w", err) } + mergedHeaders := make(map[string]string) + if defaultHeadersString := access.HeadersString; defaultHeadersString != "" { + h, err := httputil.ParseHeaders(defaultHeadersString) + if err != nil { + return nil, fmt.Errorf("failed to parse webhook headers: %w", err) + } + for key := range h { + mergedHeaders[http.CanonicalHeaderKey(key)] = h.Get(key) + } + } + if extendedHeadersString := maputil.GetString(options.ProviderExtendedConfig, "headers"); extendedHeadersString != "" { + h, err := httputil.ParseHeaders(extendedHeadersString) + if err != nil { + return nil, fmt.Errorf("failed to parse webhook headers: %w", err) + } + for key := range h { + mergedHeaders[http.CanonicalHeaderKey(key)] = h.Get(key) + } + } + return pWebhook.NewNotifier(&pWebhook.NotifierConfig{ - Url: access.Url, + WebhookUrl: access.Url, + WebhookData: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "webhookData", access.TemplateDataForNotification), + Method: access.Method, + Headers: mergedHeaders, AllowInsecureConnections: access.AllowInsecureConnections, }) } diff --git a/internal/notify/providers_deprecated.go b/internal/notify/providers_deprecated.go index d554da0d..43eadf71 100644 --- a/internal/notify/providers_deprecated.go +++ b/internal/notify/providers_deprecated.go @@ -94,7 +94,7 @@ func createNotifierProviderUseGlobalSettings(channel domain.NotifyChannelType, c case domain.NotifyChannelTypeWebhook: return pWebhook.NewNotifier(&pWebhook.NotifierConfig{ - Url: maputil.GetString(channelConfig, "url"), + WebhookUrl: maputil.GetString(channelConfig, "url"), AllowInsecureConnections: maputil.GetBool(channelConfig, "allowInsecureConnections"), }) diff --git a/internal/pkg/core/deployer/providers/webhook/webhook.go b/internal/pkg/core/deployer/providers/webhook/webhook.go index 28e0bd7d..f405ff96 100644 --- a/internal/pkg/core/deployer/providers/webhook/webhook.go +++ b/internal/pkg/core/deployer/providers/webhook/webhook.go @@ -6,6 +6,7 @@ import ( "encoding/json" "fmt" "log/slog" + "net/http" "strings" "time" @@ -18,8 +19,13 @@ import ( type DeployerConfig struct { // Webhook URL。 WebhookUrl string `json:"webhookUrl"` - // Webhook 回调数据(JSON 格式)。 + // Webhook 回调数据(application/json 或 application/x-www-form-urlencoded 格式)。 WebhookData string `json:"webhookData,omitempty"` + // 请求谓词。 + // 零值时默认为 "POST"。 + Method string `json:"method,omitempty"` + // 请求标头。 + Headers map[string]string `json:"headers,omitempty"` // 是否允许不安全的连接。 AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"` } @@ -68,25 +74,41 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE } var webhookData interface{} - err = json.Unmarshal([]byte(d.config.WebhookData), &webhookData) - if err != nil { - return nil, fmt.Errorf("failed to unmarshall webhook data: %w", err) + if d.config.WebhookData == "" { + webhookData = map[string]any{ + "name": strings.Join(certX509.DNSNames, ";"), + "cert": certPEM, + "privkey": privkeyPEM, + } + } else { + err = json.Unmarshal([]byte(d.config.WebhookData), &webhookData) + if err != nil { + return nil, fmt.Errorf("failed to unmarshall webhook data: %w", err) + } + + replaceJsonValueRecursively(webhookData, "${DOMAIN}", certX509.Subject.CommonName) + replaceJsonValueRecursively(webhookData, "${DOMAINS}", strings.Join(certX509.DNSNames, ";")) + replaceJsonValueRecursively(webhookData, "${SUBJECT_ALT_NAMES}", strings.Join(certX509.DNSNames, ";")) + replaceJsonValueRecursively(webhookData, "${CERTIFICATE}", certPEM) + replaceJsonValueRecursively(webhookData, "${PRIVATE_KEY}", privkeyPEM) } - replaceJsonValueRecursively(webhookData, "${DOMAIN}", certX509.Subject.CommonName) - replaceJsonValueRecursively(webhookData, "${DOMAINS}", strings.Join(certX509.DNSNames, ";")) - replaceJsonValueRecursively(webhookData, "${SUBJECT_ALT_NAMES}", strings.Join(certX509.DNSNames, ";")) - replaceJsonValueRecursively(webhookData, "${CERTIFICATE}", certPEM) - replaceJsonValueRecursively(webhookData, "${PRIVATE_KEY}", privkeyPEM) - - resp, err := d.httpClient.R(). + req := d.httpClient.R(). SetContext(ctx). + SetHeaders(d.config.Headers) + req.URL = d.config.WebhookUrl + req.Method = d.config.Method + if req.Method == "" { + req.Method = http.MethodPost + } + + resp, err := req. SetHeader("Content-Type", "application/json"). SetBody(webhookData). - Post(d.config.WebhookUrl) + Send() if err != nil { return nil, fmt.Errorf("failed to send webhook request: %w", err) - } else if resp.StatusCode() != 200 { + } else if resp.IsError() { return nil, fmt.Errorf("unexpected webhook response status code: %d", resp.StatusCode()) } diff --git a/internal/pkg/core/notifier/providers/webhook/webhook.go b/internal/pkg/core/notifier/providers/webhook/webhook.go index f2dfb4b6..df3b8d49 100644 --- a/internal/pkg/core/notifier/providers/webhook/webhook.go +++ b/internal/pkg/core/notifier/providers/webhook/webhook.go @@ -3,24 +3,36 @@ package webhook import ( "context" "crypto/tls" + "encoding/json" + "fmt" "log/slog" "net/http" + "strings" + "time" - webhook "github.com/nikoksr/notify/service/http" + "github.com/go-resty/resty/v2" "github.com/usual2970/certimate/internal/pkg/core/notifier" ) type NotifierConfig struct { // Webhook URL。 - Url string `json:"url"` + WebhookUrl string `json:"webhookUrl"` + // Webhook 回调数据(application/json 或 application/x-www-form-urlencoded 格式)。 + WebhookData string `json:"webhookData,omitempty"` + // 请求谓词。 + // 零值时默认为 "POST"。 + Method string `json:"method,omitempty"` + // 请求标头。 + Headers map[string]string `json:"headers,omitempty"` // 是否允许不安全的连接。 AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"` } type NotifierProvider struct { - config *NotifierConfig - logger *slog.Logger + config *NotifierConfig + logger *slog.Logger + httpClient *resty.Client } var _ notifier.Notifier = (*NotifierProvider)(nil) @@ -30,8 +42,18 @@ func NewNotifier(config *NotifierConfig) (*NotifierProvider, error) { panic("config is nil") } + client := resty.New(). + SetTimeout(30 * time.Second). + SetRetryCount(3). + SetRetryWaitTime(5 * time.Second) + if config.AllowInsecureConnections { + client.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) + } + return &NotifierProvider{ - config: config, + config: config, + logger: slog.Default(), + httpClient: client, }, nil } @@ -45,20 +67,58 @@ func (n *NotifierProvider) WithLogger(logger *slog.Logger) notifier.Notifier { } func (n *NotifierProvider) Notify(ctx context.Context, subject string, message string) (res *notifier.NotifyResult, err error) { - srv := webhook.New() - srv.AddReceiversURLs(n.config.Url) + var webhookData interface{} + if n.config.WebhookData == "" { + webhookData = map[string]any{ + "subject": subject, + "message": message, + } + } else { + err = json.Unmarshal([]byte(n.config.WebhookData), &webhookData) + if err != nil { + return nil, fmt.Errorf("failed to unmarshall webhook data: %w", err) + } - if n.config.AllowInsecureConnections { - tlsConfig := &tls.Config{InsecureSkipVerify: true} - transport := &http.Transport{TLSClientConfig: tlsConfig} - client := &http.Client{Transport: transport} - srv.WithClient(client) + replaceJsonValueRecursively(webhookData, "${SUBJECT}", subject) + replaceJsonValueRecursively(webhookData, "${MESSAGE}", message) } - err = srv.Send(ctx, subject, message) + req := n.httpClient.R(). + SetContext(ctx). + SetHeaders(n.config.Headers) + req.URL = n.config.WebhookUrl + req.Method = n.config.Method + if req.Method == "" { + req.Method = http.MethodPost + } + + resp, err := req. + SetHeader("Content-Type", "application/json"). + SetBody(webhookData). + Send() if err != nil { - return nil, err + return nil, fmt.Errorf("failed to send webhook request: %w", err) + } else if resp.IsError() { + return nil, fmt.Errorf("unexpected webhook response status code: %d", resp.StatusCode()) } + n.logger.Debug("webhook responded", slog.Any("response", resp.String())) + return ¬ifier.NotifyResult{}, nil } + +func replaceJsonValueRecursively(data interface{}, oldStr, newStr string) interface{} { + switch v := data.(type) { + case map[string]any: + for k, val := range v { + v[k] = replaceJsonValueRecursively(val, oldStr, newStr) + } + case []any: + for i, val := range v { + v[i] = replaceJsonValueRecursively(val, oldStr, newStr) + } + case string: + return strings.ReplaceAll(v, oldStr, newStr) + } + return data +} diff --git a/internal/pkg/core/notifier/providers/webhook/webhook_test.go b/internal/pkg/core/notifier/providers/webhook/webhook_test.go index ffe25593..3655d76b 100644 --- a/internal/pkg/core/notifier/providers/webhook/webhook_test.go +++ b/internal/pkg/core/notifier/providers/webhook/webhook_test.go @@ -39,7 +39,7 @@ func TestNotify(t *testing.T) { }, "\n")) notifier, err := provider.NewNotifier(&provider.NotifierConfig{ - Url: fUrl, + WebhookUrl: fUrl, AllowInsecureConnections: true, }) if err != nil { diff --git a/internal/pkg/utils/http/parser.go b/internal/pkg/utils/http/parser.go new file mode 100644 index 00000000..872fb6b5 --- /dev/null +++ b/internal/pkg/utils/http/parser.go @@ -0,0 +1,33 @@ +package httputil + +import ( + "bufio" + "net/http" + "net/textproto" + "strings" +) + +// 从表示 HTTP 标头的字符串解析并返回一个 http.Header 对象。 +// +// 入参: +// - headers: 表示 HTTP 标头的字符串。 +// +// 出参: +// - header: http.Header 对象。 +// - err: 错误。 +func ParseHeaders(headers string) (http.Header, error) { + str := strings.TrimSpace(headers) + "\r\n\r\n" + if len(str) == 4 { + return make(http.Header), nil + } + + br := bufio.NewReader(strings.NewReader(str)) + tp := textproto.NewReader(br) + + mimeHeader, err := tp.ReadMIMEHeader() + if err != nil { + return nil, err + } + + return http.Header(mimeHeader), err +} diff --git a/internal/pkg/utils/map/getter.go b/internal/pkg/utils/map/getter.go index b4b654e3..f30f6d33 100644 --- a/internal/pkg/utils/map/getter.go +++ b/internal/pkg/utils/map/getter.go @@ -199,6 +199,28 @@ func GetOrDefaultBool(dict map[string]any, key string, defaultValue bool) bool { return defaultValue } +// 以 `map[string]V` 形式从字典中获取指定键的值。 +// +// 入参: +// - dict: 字典。 +// - key: 键。 +// +// 出参: +// - 字典中键对应的 `map[string]V` 对象。 +func GetKVMap[V any](dict map[string]any, key string) map[string]V { + if dict == nil { + return make(map[string]V) + } + + if val, ok := dict[key]; ok { + if result, ok := val.(map[string]V); ok { + return result + } + } + + return make(map[string]V) +} + // 以 `map[string]any` 形式从字典中获取指定键的值。 // // 入参: @@ -207,16 +229,6 @@ func GetOrDefaultBool(dict map[string]any, key string, defaultValue bool) bool { // // 出参: // - 字典中键对应的 `map[string]any` 对象。 -func GetMap(dict map[string]any, key string) map[string]any { - if dict == nil { - return make(map[string]any) - } - - if val, ok := dict[key]; ok { - if result, ok := val.(map[string]any); ok { - return result - } - } - - return make(map[string]any) +func GetKVMapAny(dict map[string]any, key string) map[string]any { + return GetKVMap[any](dict, key) } diff --git a/ui/src/components/access/AccessFormWebhookConfig.tsx b/ui/src/components/access/AccessFormWebhookConfig.tsx index f15fe221..0a22d93e 100644 --- a/ui/src/components/access/AccessFormWebhookConfig.tsx +++ b/ui/src/components/access/AccessFormWebhookConfig.tsx @@ -1,5 +1,5 @@ import { useTranslation } from "react-i18next"; -import { Form, type FormInstance, Input, Switch } from "antd"; +import { Form, type FormInstance, Input, Select, Switch } from "antd"; import { createSchemaFieldRule } from "antd-zod"; import { z } from "zod"; @@ -18,6 +18,9 @@ export type AccessFormWebhookConfigProps = { const initFormModel = (): AccessFormWebhookConfigFieldValues => { return { url: "", + method: "POST", + headers: "Content-Type: application/json", + allowInsecureConnections: false, }; }; @@ -26,10 +29,34 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa const formSchema = z.object({ url: z.string().url(t("common.errmsg.url_invalid")), + method: z.union([z.literal("GET"), z.literal("POST"), z.literal("PUT"), z.literal("PATCH"), z.literal("DELETE")], { + message: t("access.form.webhook_method.placeholder"), + }), + headers: z + .string() + .nullish() + .refine((v) => { + if (!v) return true; + + const lines = v.split(/\r?\n/); + for (const line of lines) { + if (line.split(":").length < 2) { + return false; + } + } + return true; + }, t("access.form.webhook_headers.errmsg.invalid")), allowInsecureConnections: z.boolean().nullish(), }); const formRule = createSchemaFieldRule(formSchema); + const handleWebhookHeadersBlur = (e: React.FocusEvent) => { + let value = e.target.value; + value = value.trim(); + value = value.replace(/(?) => { onValuesChange?.(values); }; @@ -47,6 +74,22 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa + + + - + ); diff --git a/ui/src/components/access/AccessFormMattermostConfig.tsx b/ui/src/components/access/AccessFormMattermostConfig.tsx index f4a99ece..a583cc19 100644 --- a/ui/src/components/access/AccessFormMattermostConfig.tsx +++ b/ui/src/components/access/AccessFormMattermostConfig.tsx @@ -70,7 +70,7 @@ const AccessFormMattermostConfig = ({ form: formInst, formName, disabled, initia rules={[formRule]} tooltip={} > - + ); diff --git a/ui/src/components/access/AccessFormTelegramConfig.tsx b/ui/src/components/access/AccessFormTelegramConfig.tsx index 43b20f00..a4eccafb 100644 --- a/ui/src/components/access/AccessFormTelegramConfig.tsx +++ b/ui/src/components/access/AccessFormTelegramConfig.tsx @@ -72,7 +72,7 @@ const AccessFormTelegramConfig = ({ form: formInst, formName, disabled, initialV rules={[formRule]} tooltip={} > - + ); diff --git a/ui/src/components/access/AccessFormWebhookConfig.tsx b/ui/src/components/access/AccessFormWebhookConfig.tsx index 0a22d93e..f05d3097 100644 --- a/ui/src/components/access/AccessFormWebhookConfig.tsx +++ b/ui/src/components/access/AccessFormWebhookConfig.tsx @@ -1,8 +1,9 @@ import { useTranslation } from "react-i18next"; -import { Form, type FormInstance, Input, Select, Switch } from "antd"; +import { Alert, Button, Form, type FormInstance, Input, Select, Switch } from "antd"; import { createSchemaFieldRule } from "antd-zod"; import { z } from "zod"; +import Show from "@/components/Show"; import { type AccessConfigForWebhook } from "@/domain/access"; type AccessFormWebhookConfigFieldValues = Nullish; @@ -12,6 +13,7 @@ export type AccessFormWebhookConfigProps = { formName: string; disabled?: boolean; initialValues?: AccessFormWebhookConfigFieldValues; + usage?: "deployment" | "notification" | "none"; onValuesChange?: (values: AccessFormWebhookConfigFieldValues) => void; }; @@ -21,10 +23,27 @@ const initFormModel = (): AccessFormWebhookConfigFieldValues => { method: "POST", headers: "Content-Type: application/json", allowInsecureConnections: false, + defaultDataForDeployment: JSON.stringify( + { + name: "${DOMAINS}", + cert: "${CERTIFICATE}", + privkey: "${PRIVATE_KEY}", + }, + null, + 2 + ), + defaultDataForNotification: JSON.stringify( + { + subject: "${SUBJECT}", + message: "${MESSAGE}", + }, + null, + 2 + ), }; }; -const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange }: AccessFormWebhookConfigProps) => { +const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialValues, usage, onValuesChange }: AccessFormWebhookConfigProps) => { const { t } = useTranslation(); const formSchema = z.object({ @@ -47,6 +66,34 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa return true; }, t("access.form.webhook_headers.errmsg.invalid")), allowInsecureConnections: z.boolean().nullish(), + defaultDataForDeployment: z + .string() + .nullish() + .refine((v) => { + if (usage && usage !== "deployment") return true; + if (!v) return true; + + try { + const obj = JSON.parse(v); + return typeof obj === "object" && !Array.isArray(obj); + } catch { + return false; + } + }, t("access.form.webhook_default_data.errmsg.json_invalid")), + defaultDataForNotification: z + .string() + .nullish() + .refine((v) => { + if (usage && usage !== "notification") return true; + if (!v) return true; + + try { + const obj = JSON.parse(v); + return typeof obj === "object" && !Array.isArray(obj); + } catch { + return false; + } + }, t("access.form.webhook_default_data.errmsg.json_invalid")), }); const formRule = createSchemaFieldRule(formSchema); @@ -57,6 +104,34 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa formInst.setFieldValue("headers", value); }; + const handleWebhookDataForDeploymentBlur = (e: React.FocusEvent) => { + const value = e.target.value; + try { + const json = JSON.stringify(JSON.parse(value), null, 2); + formInst.setFieldValue("defaultDataForDeployment", json); + } catch { + return; + } + }; + + const handleWebhookDataForNotificationBlur = (e: React.FocusEvent) => { + const value = e.target.value; + try { + const json = JSON.stringify(JSON.parse(value), null, 2); + formInst.setFieldValue("defaultDataForNotification", json); + } catch { + return; + } + }; + + const handlePresetDataForDeploymentClick = () => { + formInst.setFieldValue("defaultDataForDeployment", initFormModel().defaultDataForDeployment); + }; + + const handlePresetDataForNotificationClick = () => { + formInst.setFieldValue("defaultDataForNotification", initFormModel().defaultDataForNotification); + }; + const handleFormChange = (_: unknown, values: z.infer) => { onValuesChange?.(values); }; @@ -90,6 +165,60 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa + + + + + + + + + + } /> + + + + + + + + + + + + + } /> + + + { - if (!!record.reserve && record.reserve !== "ca") return false; + if (record.reserve !== "ca") return false; if (fieldCAProvider) return caProvidersMap.get(fieldCAProvider)?.provider === record.provider; const provider = accessProvidersMap.get(record.provider); diff --git a/ui/src/components/workflow/node/DeployNodeConfigFormWebhookConfig.tsx b/ui/src/components/workflow/node/DeployNodeConfigFormWebhookConfig.tsx index b916abf1..8305da8c 100644 --- a/ui/src/components/workflow/node/DeployNodeConfigFormWebhookConfig.tsx +++ b/ui/src/components/workflow/node/DeployNodeConfigFormWebhookConfig.tsx @@ -1,5 +1,5 @@ import { useTranslation } from "react-i18next"; -import { Alert, Button, Form, type FormInstance, Input } from "antd"; +import { Alert, Form, type FormInstance, Input } from "antd"; import { createSchemaFieldRule } from "antd-zod"; import { z } from "zod"; @@ -16,31 +16,26 @@ export type DeployNodeConfigFormWebhookConfigProps = { }; const initFormModel = (): DeployNodeConfigFormWebhookConfigFieldValues => { - return { - webhookData: JSON.stringify( - { - name: "${DOMAINS}", - cert: "${CERTIFICATE}", - privkey: "${PRIVATE_KEY}", - }, - null, - 2 - ), - }; + return {}; }; const DeployNodeConfigFormWebhookConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange }: DeployNodeConfigFormWebhookConfigProps) => { const { t } = useTranslation(); const formSchema = z.object({ - webhookData: z.string({ message: t("workflow_node.deploy.form.webhook_data.placeholder") }).refine((v) => { - try { - JSON.parse(v); - return true; - } catch { - return false; - } - }, t("workflow_node.deploy.form.webhook_data.errmsg.json_invalid")), + webhookData: z + .string() + .nullish() + .refine((v) => { + if (!v) return true; + + try { + const obj = JSON.parse(v); + return typeof obj === "object" && !Array.isArray(obj); + } catch { + return false; + } + }, t("workflow_node.deploy.form.webhook_data.errmsg.json_invalid")), }); const formRule = createSchemaFieldRule(formSchema); @@ -54,10 +49,6 @@ const DeployNodeConfigFormWebhookConfig = ({ form: formInst, formName, disabled, } }; - const handlePresetDataClick = () => { - formInst.setFieldValue("webhookData", initFormModel().webhookData); - }; - const handleFormChange = (_: unknown, values: z.infer) => { onValuesChange?.(values); }; @@ -71,24 +62,18 @@ const DeployNodeConfigFormWebhookConfig = ({ form: formInst, formName, disabled, name={formName} onValuesChange={handleFormChange} > - - - - - + } + > + diff --git a/ui/src/components/workflow/node/NotifyNodeConfigForm.tsx b/ui/src/components/workflow/node/NotifyNodeConfigForm.tsx index 71110e32..13dc1019 100644 --- a/ui/src/components/workflow/node/NotifyNodeConfigForm.tsx +++ b/ui/src/components/workflow/node/NotifyNodeConfigForm.tsx @@ -2,13 +2,14 @@ import { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useState } f import { useTranslation } from "react-i18next"; import { Link } from "react-router"; import { PlusOutlined as PlusOutlinedIcon, RightOutlined as RightOutlinedIcon } from "@ant-design/icons"; -import { Button, Form, type FormInstance, Input, Select } from "antd"; +import { Button, Divider, Form, type FormInstance, Input, Select, Typography } from "antd"; import { createSchemaFieldRule } from "antd-zod"; import { z } from "zod"; import AccessEditModal from "@/components/access/AccessEditModal"; import AccessSelect from "@/components/access/AccessSelect"; import NotificationProviderSelect from "@/components/provider/NotificationProviderSelect"; +import Show from "@/components/Show"; import { ACCESS_USAGES, NOTIFICATION_PROVIDERS, accessProvidersMap, notificationProvidersMap } from "@/domain/provider"; import { notifyChannelsMap } from "@/domain/settings"; import { type WorkflowNodeConfigForNotify } from "@/domain/workflow"; @@ -19,6 +20,7 @@ import { useNotifyChannelsStore } from "@/stores/notify"; import NotifyNodeConfigFormEmailConfig from "./NotifyNodeConfigFormEmailConfig"; import NotifyNodeConfigFormMattermostConfig from "./NotifyNodeConfigFormMattermostConfig"; import NotifyNodeConfigFormTelegramConfig from "./NotifyNodeConfigFormTelegramConfig"; +import NotifyNodeConfigFormWebhookConfig from "./NotifyNodeConfigFormWebhookConfig"; type NotifyNodeConfigFormFieldValues = Partial; @@ -114,6 +116,8 @@ const NotifyNodeConfigForm = forwardRef; case NOTIFICATION_PROVIDERS.TELEGRAM: return ; + case NOTIFICATION_PROVIDERS.WEBHOOK: + return ; } }, [disabled, initialValues?.providerConfig, fieldProvider, nestedFormInst, nestedFormName]); @@ -250,7 +254,7 @@ const NotifyNodeConfigForm = forwardRef { - if (!!record.reserve && record.reserve !== "notification") return false; + if (record.reserve !== "notification") return false; const provider = accessProvidersMap.get(record.provider); return !!provider?.usages?.includes(ACCESS_USAGES.NOTIFICATION); @@ -261,7 +265,15 @@ const NotifyNodeConfigForm = forwardRef - {nestedFormEl} + + + + {t("workflow_node.notify.form.params_config.label")} + + + + {nestedFormEl} + ); } diff --git a/ui/src/components/workflow/node/NotifyNodeConfigFormEmailConfig.tsx b/ui/src/components/workflow/node/NotifyNodeConfigFormEmailConfig.tsx index f7129a10..b6bfed17 100644 --- a/ui/src/components/workflow/node/NotifyNodeConfigFormEmailConfig.tsx +++ b/ui/src/components/workflow/node/NotifyNodeConfigFormEmailConfig.tsx @@ -62,7 +62,7 @@ const NotifyNodeConfigFormEmailConfig = ({ form: formInst, formName, disabled, i rules={[formRule]} tooltip={} > - + } > - + ); diff --git a/ui/src/components/workflow/node/NotifyNodeConfigFormMattermostConfig.tsx b/ui/src/components/workflow/node/NotifyNodeConfigFormMattermostConfig.tsx index 75f72c3c..c091298b 100644 --- a/ui/src/components/workflow/node/NotifyNodeConfigFormMattermostConfig.tsx +++ b/ui/src/components/workflow/node/NotifyNodeConfigFormMattermostConfig.tsx @@ -52,7 +52,7 @@ const NotifyNodeConfigFormMattermostConfig = ({ rules={[formRule]} tooltip={} > - + ); diff --git a/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramConfig.tsx b/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramConfig.tsx index b3cd6788..07774413 100644 --- a/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramConfig.tsx +++ b/ui/src/components/workflow/node/NotifyNodeConfigFormTelegramConfig.tsx @@ -57,7 +57,7 @@ const NotifyNodeConfigFormTelegramConfig = ({ form: formInst, formName, disabled rules={[formRule]} tooltip={} > - + ); diff --git a/ui/src/components/workflow/node/NotifyNodeConfigFormWebhookConfig.tsx b/ui/src/components/workflow/node/NotifyNodeConfigFormWebhookConfig.tsx new file mode 100644 index 00000000..acaf00c2 --- /dev/null +++ b/ui/src/components/workflow/node/NotifyNodeConfigFormWebhookConfig.tsx @@ -0,0 +1,86 @@ +import { useTranslation } from "react-i18next"; +import { Alert, Form, type FormInstance, Input } from "antd"; +import { createSchemaFieldRule } from "antd-zod"; +import { z } from "zod"; + +type NotifyNodeConfigFormWebhookConfigFieldValues = Nullish<{ + webhookData: string; +}>; + +export type NotifyNodeConfigFormWebhookConfigProps = { + form: FormInstance; + formName: string; + disabled?: boolean; + initialValues?: NotifyNodeConfigFormWebhookConfigFieldValues; + onValuesChange?: (values: NotifyNodeConfigFormWebhookConfigFieldValues) => void; +}; + +const initFormModel = (): NotifyNodeConfigFormWebhookConfigFieldValues => { + return {}; +}; + +const NotifyNodeConfigFormWebhookConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange }: NotifyNodeConfigFormWebhookConfigProps) => { + const { t } = useTranslation(); + + const formSchema = z.object({ + webhookData: z + .string() + .nullish() + .refine((v) => { + if (!v) return true; + + try { + const obj = JSON.parse(v); + return typeof obj === "object" && !Array.isArray(obj); + } catch { + return false; + } + }, t("workflow_node.notify.form.webhook_data.errmsg.json_invalid")), + }); + const formRule = createSchemaFieldRule(formSchema); + + const handleWebhookDataBlur = (e: React.FocusEvent) => { + const value = e.target.value; + try { + const json = JSON.stringify(JSON.parse(value), null, 2); + formInst.setFieldValue("webhookData", json); + } catch { + return; + } + }; + + const handleFormChange = (_: unknown, values: z.infer) => { + onValuesChange?.(values); + }; + + return ( +
+ } + > + + + + + } /> + +
+ ); +}; + +export default NotifyNodeConfigFormWebhookConfig; diff --git a/ui/src/i18n/locales/en/nls.access.json b/ui/src/i18n/locales/en/nls.access.json index 20144481..a9930db3 100644 --- a/ui/src/i18n/locales/en/nls.access.json +++ b/ui/src/i18n/locales/en/nls.access.json @@ -28,7 +28,7 @@ "access.form.name.placeholder": "Please enter authorization name", "access.form.provider.label": "Provider", "access.form.provider.placeholder": "Please select a provider", - "access.form.provider.tooltip": "DNS provider: The provider that hosts your domain names and manages your DNS records.
Host provider: The provider that hosts your servers or cloud services for deploying certificates.

Cannot be edited after saving.", + "access.form.provider.tooltip": "DNS provider: The provider that hosts your domain names and manages your DNS records.
Hosting provider: The provider that hosts your servers or cloud services for deploying certificates.

Cannot be edited after saving.", "access.form.certificate_authority.label": "Certificate authority", "access.form.certificate_authority.placeholder": "Please select a certificate authority", "access.form.notification_channel.label": "Notification channel", @@ -346,6 +346,14 @@ "access.form.webhook_headers.placeholder": "Please enter Webhook request headers", "access.form.webhook_headers.errmsg.invalid": "Please enter a valid request headers", "access.form.webhook_headers.tooltip": "Format:
key1: val2
key2: val2


Example:
Content-Type: application/json
User-Agent: certimate
", + "access.form.webhook_default_data.errmsg.json_invalid": "Please enter a valiod JSON string", + "access.form.webhook_default_data_for_deployment.label": "Webhook data for deployment (Optional)", + "access.form.webhook_default_data_for_deployment.placeholder": "Please enter Webhook data", + "access.form.webhook_default_data_for_deployment.guide": "Tips: The Webhook data should be in JSON format.

The values in JSON support template variables, which will be replaced by actual values when sent to the Webhook URL. Supported variables:
  1. ${DOMAIN}: The primary domain of the certificate (CommonName).
  2. ${DOMAINS}: The domain list of the certificate (SubjectAltNames).
  3. ${CERTIFICATE}: The PEM format content of the certificate file.
  4. ${PRIVATE_KEY}: The PEM format content of the private key file.

When the request method is GET, the data will be passed as query string. Otherwise, the data will be encoded in the format indicated by the Content-Type in the request headers. Supported formats:
  1. application/json (default).
  2. application/x-www-form-urlencoded: Nested data is not supported.
  3. multipart/form-data: Nested data is not supported.
  4. ", + "access.form.webhook_default_data_for_notification.label": "Webhook data for notification (Optional)", + "access.form.webhook_default_data_for_notification.placeholder": "Please enter Webhook data", + "access.form.webhook_default_data_for_notification.guide": "Tips: The Webhook data should be in JSON format.

    The values in JSON support template variables, which will be replaced by actual values when sent to the Webhook URL. Supported variables:
    1. ${SUBJECT}: The subject of notification.
    2. ${MESSAGE}: The message of notification.

    When the request method is GET, the data will be passed as query string. Otherwise, the data will be encoded in the format indicated by the Content-Type in the request headers. Supported formats:
    1. application/json (default).
    2. application/x-www-form-urlencoded: Nested data is not supported.
    3. multipart/form-data: Nested data is not supported.
    4. ", + "access.form.webhook_default_data_preset.button": "Use preset template", "access.form.webhook_allow_insecure_conns.label": "Insecure SSL/TLS connections", "access.form.webhook_allow_insecure_conns.tooltip": "Allowing insecure connections may lead to data leak or tampering. Use this option only when under trusted networks.", "access.form.webhook_allow_insecure_conns.switch.on": "Allow", diff --git a/ui/src/i18n/locales/en/nls.workflow.nodes.json b/ui/src/i18n/locales/en/nls.workflow.nodes.json index aa91b8af..8a353e51 100644 --- a/ui/src/i18n/locales/en/nls.workflow.nodes.json +++ b/ui/src/i18n/locales/en/nls.workflow.nodes.json @@ -93,8 +93,8 @@ "workflow_node.deploy.search.provider.placeholder": "Search deploy target ...", "workflow_node.deploy.form.provider.label": "Deploy target", "workflow_node.deploy.form.provider.placeholder": "Please select deploy target", - "workflow_node.deploy.form.provider_access.label": "Host provider authorization", - "workflow_node.deploy.form.provider_access.placeholder": "Please select an authorization of host provider", + "workflow_node.deploy.form.provider_access.label": "Hosting provider authorization", + "workflow_node.deploy.form.provider_access.placeholder": "Please select an authorization of Hosting provider", "workflow_node.deploy.form.provider_access.tooltip": "Used to invoke API during deployment.", "workflow_node.deploy.form.provider_access.button": "Create", "workflow_node.deploy.form.provider_access.guide_for_local": "Tips: If you are running Certimate in Docker, the \"Local\" refers to the container rather than the host.", @@ -685,11 +685,11 @@ "workflow_node.deploy.form.wangsu_cdnpro_webhook_id.label": "Wangsu Cloud CDN Webhook ID (Optional)", "workflow_node.deploy.form.wangsu_cdnpro_webhook_id.placeholder": "Please enter Wangsu Cloud CDN Webhook ID", "workflow_node.deploy.form.wangsu_cdnpro_webhook_id.tooltip": "For more information, see https://cdnpro.console.wangsu.com/v2/index/#/certificate", - "workflow_node.deploy.form.webhook_data.label": "Webhook data (JSON format)", - "workflow_node.deploy.form.webhook_data.placeholder": "Please enter Webhook data", - "workflow_node.deploy.form.webhook_data.guide": "Tips: The Webhook data should be a key-value pair in JSON format. The values in JSON support template variables, which will be replaced by actual values when sent to the Webhook URL.

      Supported variables:
      ${DOMAIN}: The primary domain of the certificate (CommonName).
      ${DOMAINS}: The domain list of the certificate (SubjectAltNames).
      ${CERTIFICATE}: The PEM format content of the certificate file.
      ${PRIVATE_KEY}: The PEM format content of the private key file.", + "workflow_node.deploy.form.webhook_data.label": "Webhook data (Optional)", + "workflow_node.deploy.form.webhook_data.placeholder": "Please enter Webhook data to override the default value", + "workflow_node.deploy.form.webhook_data.tooltip": "Leave it blank to use the default Webhook data provided by the authorization.", + "workflow_node.deploy.form.webhook_data.guide": "Supported variables:
      1. ${DOMAIN}: The primary domain of the certificate (CommonName).
      2. ${DOMAINS}: The domain list of the certificate (SubjectAltNames).
      3. ${CERTIFICATE}: The PEM format content of the certificate file.
      4. ${PRIVATE_KEY}: The PEM format content of the private key file.

      Please visit the authorization management page for addtional notes.", "workflow_node.deploy.form.webhook_data.errmsg.json_invalid": "Please enter a valiod JSON string", - "workflow_node.deploy.form.webhook_data_preset.button": "Use preset template", "workflow_node.deploy.form.strategy_config.label": "Strategy settings", "workflow_node.deploy.form.skip_on_last_succeeded.label": "Repeated deployment", "workflow_node.deploy.form.skip_on_last_succeeded.prefix": "If the last deployment was successful, ", @@ -720,18 +720,24 @@ "workflow_node.notify.form.provider_access.label": "Notification provider authorization", "workflow_node.notify.form.provider_access.placeholder": "Please select an authorization of notification provider", "workflow_node.notify.form.provider_access.button": "Create", + "workflow_node.notify.form.params_config.label": "Parameter settings", "workflow_node.notify.form.email_sender_address.label": "Sender email address (Optional)", - "workflow_node.notify.form.email_sender_address.placeholder": "Please enter sender email address", + "workflow_node.notify.form.email_sender_address.placeholder": "Please enter sender email address to override the default value", "workflow_node.notify.form.email_sender_address.tooltip": "Leave it blank to use the default sender email address provided by the authorization.", "workflow_node.notify.form.email_receiver_address.label": "Receiver email address (Optional)", - "workflow_node.notify.form.email_receiver_address.placeholder": "Please enter receiver email address", + "workflow_node.notify.form.email_receiver_address.placeholder": "Please enter receiver email address to override the default value", "workflow_node.notify.form.email_receiver_address.tooltip": "Leave it blank to use the default receiver email address provided by the selected authorization.", "workflow_node.notify.form.mattermost_channel_id.label": "Mattermost channel ID (Optional)", - "workflow_node.notify.form.mattermost_channel_id.placeholder": "Please enter Mattermost channel ID", + "workflow_node.notify.form.mattermost_channel_id.placeholder": "Please enter Mattermost channel ID to override the default value", "workflow_node.notify.form.mattermost_channel_id.tooltip": "Leave it blank to use the default channel ID provided by the authorization.", "workflow_node.notify.form.telegram_chat_id.label": "Telegram chat ID (Optional)", - "workflow_node.notify.form.telegram_chat_id.placeholder": "Please enter Telegram chat ID", + "workflow_node.notify.form.telegram_chat_id.placeholder": "Please enter Telegram chat ID to override the default value", "workflow_node.notify.form.telegram_chat_id.tooltip": "Leave it blank to use the default chat ID provided by the selected authorization.", + "workflow_node.notify.form.webhook_data.label": "Webhook data (Optional)", + "workflow_node.notify.form.webhook_data.placeholder": "Please enter Webhook data to override the default value", + "workflow_node.notify.form.webhook_data.tooltip": "Leave it blank to use the default Webhook data provided by the authorization.", + "workflow_node.notify.form.webhook_data.guide": "Supported variables:
      1. ${SUBJECT}: The subject of notification.
      2. ${MESSAGE}: The message of notification.

      Please visit the authorization management page for addtional notes.", + "workflow_node.notify.form.webhook_data.errmsg.json_invalid": "Please enter a valiod JSON string", "workflow_node.end.label": "End", diff --git a/ui/src/i18n/locales/zh/nls.access.json b/ui/src/i18n/locales/zh/nls.access.json index 9de079d1..0f26e632 100644 --- a/ui/src/i18n/locales/zh/nls.access.json +++ b/ui/src/i18n/locales/zh/nls.access.json @@ -346,6 +346,14 @@ "access.form.webhook_headers.placeholder": "请输入 Webhook 请求标头", "access.form.webhook_headers.errmsg.invalid": "请输入有效的请求标头", "access.form.webhook_headers.tooltip": "格式:
      key1: val2
      key2: val2


      示例:
      Content-Type: application/json
      User-Agent: certimate
      ", + "access.form.webhook_default_data.errmsg.json_invalid": "请输入有效的 JSON 格式字符串", + "access.form.webhook_default_data_for_deployment.label": "默认的 Webhook 部署证书回调数据(可选)", + "access.form.webhook_default_data_for_deployment.placeholder": "请输入默认的 Webhook 回调数据", + "access.form.webhook_default_data_for_deployment.guide": "小贴士:回调数据是一个 JSON 格式的数据。

      其中值支持模板变量,将在被发送到指定的 Webhook URL 时被替换为实际值;其他内容将保持原样。支持的变量:
      1. ${DOMAIN}:证书的主域名(即 CommonName)。
      2. ${DOMAINS}:证书的多域名列表(即 SubjectAltNames)。
      3. ${CERTIFICATE}:证书文件 PEM 格式内容。
      4. ${PRIVATE_KEY}:私钥文件 PEM 格式内容。

      当请求谓词为 GET 时,回调数据将作为查询参数;否则,回调数据将按照请求标头中 Content-Type 所指示的格式进行编码。支持的格式:
      1. application/json(默认)。
      2. application/x-www-form-urlencoded:不支持嵌套数据。
      3. multipart/form-data:不支持嵌套数据。
      4. ", + "access.form.webhook_default_data_for_notification.label": "默认的 Webhook 推送通知回调数据(可选)", + "access.form.webhook_default_data_for_notification.placeholder": "请输入默认的 Webhook 回调数据", + "access.form.webhook_default_data_for_notification.guide": "小贴士:回调数据是一个 JSON 格式的数据。

        其中值支持模板变量,将在被发送到指定的 Webhook URL 时被替换为实际值;其他内容将保持原样。支持的变量:
        1. ${DOMAIN}:证书的主域名(即 CommonName)。
        2. ${SUBJECT}:通知主题。
        3. ${MESSAGE}:通知内容。

        当请求谓词为 GET 时,回调数据将作为查询参数;否则,回调数据将按照请求标头中 Content-Type 所指示的格式进行编码。支持的格式:
        1. application/json(默认)。
        2. application/x-www-form-urlencoded:不支持嵌套数据。
        3. multipart/form-data:不支持嵌套数据。
        4. ", + "access.form.webhook_default_data_preset.button": "使用预设模板", "access.form.webhook_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误", "access.form.webhook_allow_insecure_conns.tooltip": "忽略 SSL/TLS 证书错误可能导致数据泄露或被篡改。建议仅在可信网络下启用。", "access.form.webhook_allow_insecure_conns.switch.on": "允许", diff --git a/ui/src/i18n/locales/zh/nls.workflow.nodes.json b/ui/src/i18n/locales/zh/nls.workflow.nodes.json index 31bcf762..d58ebe90 100644 --- a/ui/src/i18n/locales/zh/nls.workflow.nodes.json +++ b/ui/src/i18n/locales/zh/nls.workflow.nodes.json @@ -684,11 +684,11 @@ "workflow_node.deploy.form.wangsu_cdnpro_webhook_id.label": "网宿云 CDN Pro 部署任务 Webhook ID(可选)", "workflow_node.deploy.form.wangsu_cdnpro_webhook_id.placeholder": "请输入网宿云 CDN Pro 部署任务 Webhook ID", "workflow_node.deploy.form.wangsu_cdnpro_webhook_id.tooltip": "这是什么?请参阅 https://cdnpro.console.wangsu.com/v2/index/#/certificate", - "workflow_node.deploy.form.webhook_data.label": "Webhook 回调数据(JSON 格式)", + "workflow_node.deploy.form.webhook_data.label": "Webhook 回调数据(可选)", "workflow_node.deploy.form.webhook_data.placeholder": "请输入 Webhook 回调数据", - "workflow_node.deploy.form.webhook_data.guide": "小贴士:回调数据是一个 JSON 格式的键值对。其中值支持模板变量,将在被发送到指定的 Webhook URL 时被替换为实际值;其他内容将保持原样。

          支持的变量:
          ${DOMAIN}:证书的主域名(即 CommonName
          ${DOMAINS}:证书的多域名列表(即 SubjectAltNames
          ${CERTIFICATE}:证书文件 PEM 格式内容
          ${PRIVATE_KEY}:私钥文件 PEM 格式内容", + "workflow_node.deploy.form.webhook_data.tooltip": "不填写时,将使用所选部署目标授权的默认 Webhook 回调数据。", + "workflow_node.deploy.form.webhook_data.guide": "支持的变量:
          1. ${DOMAIN}:证书的主域名(即 CommonName)。
          2. ${DOMAINS}:证书的多域名列表(即 SubjectAltNames)。
          3. ${CERTIFICATE}:证书文件 PEM 格式内容。
          4. ${PRIVATE_KEY}:私钥文件 PEM 格式内容。

          其他注意事项请前往授权管理页面查看。", "workflow_node.deploy.form.webhook_data.errmsg.json_invalid": "请输入有效的 JSON 格式字符串", - "workflow_node.deploy.form.webhook_data_preset.button": "使用预设模板", "workflow_node.deploy.form.strategy_config.label": "执行策略", "workflow_node.deploy.form.skip_on_last_succeeded.label": "重复部署", "workflow_node.deploy.form.skip_on_last_succeeded.prefix": "当上次部署相同证书成功时,", @@ -719,18 +719,24 @@ "workflow_node.notify.form.provider_access.label": "通知渠道授权", "workflow_node.notify.form.provider_access.placeholder": "请选择通知渠道授权", "workflow_node.notify.form.provider_access.button": "新建", + "workflow_node.notify.form.params_config.label": "参数设置", "workflow_node.notify.form.email_sender_address.label": "发送邮箱地址(可选)", - "workflow_node.notify.form.email_sender_address.placeholder": "请输入发送邮箱地址", + "workflow_node.notify.form.email_sender_address.placeholder": "请输入发送邮箱地址以覆盖默认值", "workflow_node.notify.form.email_sender_address.tooltip": "不填写时,将使用所选通知渠道授权的默认发送邮箱地址。", "workflow_node.notify.form.email_receiver_address.label": "接收邮箱地址(可选)", - "workflow_node.notify.form.email_receiver_address.placeholder": "请输入接收邮箱地址", + "workflow_node.notify.form.email_receiver_address.placeholder": "请输入接收邮箱地址以覆盖默认值", "workflow_node.notify.form.email_receiver_address.tooltip": "不填写时,将使用所选通知渠道授权的默认接收邮箱地址。", "workflow_node.notify.form.mattermost_channel_id.label": "Mattermost 频道 ID(可选)", - "workflow_node.notify.form.mattermost_channel_id.placeholder": "请输入 Mattermost 频道 ID", + "workflow_node.notify.form.mattermost_channel_id.placeholder": "请输入 Mattermost 频道 ID 以覆盖默认值", "workflow_node.notify.form.mattermost_channel_id.tooltip": "不填写时,将使用所选通知渠道授权的默认频道 ID。", "workflow_node.notify.form.telegram_chat_id.label": "Telegram 会话 ID(可选)", - "workflow_node.notify.form.telegram_chat_id.placeholder": "请输入 Telegram 会话 ID", + "workflow_node.notify.form.telegram_chat_id.placeholder": "请输入 Telegram 会话 ID 以覆盖默认值", "workflow_node.notify.form.telegram_chat_id.tooltip": "不填写时,将使用所选通知渠道授权的默认会话 ID。", + "workflow_node.notify.form.webhook_data.label": "Webhook 回调数据(可选)", + "workflow_node.notify.form.webhook_data.placeholder": "请输入 Webhook 回调数据以覆盖默认值", + "workflow_node.notify.form.webhook_data.tooltip": "不填写时,将使用所选部署目标授权的默认 Webhook 回调数据。", + "workflow_node.notify.form.webhook_data.guide": "支持的变量:
          1. ${DOMAIN}:证书的主域名(即 CommonName)。
          2. ${DOMAINS}:证书的多域名列表(即 SubjectAltNames)。
          3. ${CERTIFICATE}:证书文件 PEM 格式内容。
          4. ${PRIVATE_KEY}:私钥文件 PEM 格式内容。

          其他注意事项请前往授权管理页面查看。", + "workflow_node.notify.form.webhook_data.errmsg.json_invalid": "请输入有效的 JSON 格式字符串", "workflow_node.end.label": "结束", From 7e707cd9739c2d4d6f524af6f053be97ceea57ba Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Sun, 27 Apr 2025 22:44:10 +0800 Subject: [PATCH 23/38] feat: webhook preset template data --- .../access/AccessFormWebhookConfig.tsx | 151 ++++++++++++++++-- .../workflow/node/ApplyNodeConfigForm.tsx | 4 +- ui/src/i18n/locales/en/nls.access.json | 8 +- ui/src/i18n/locales/zh/nls.access.json | 8 +- 4 files changed, 159 insertions(+), 12 deletions(-) diff --git a/ui/src/components/access/AccessFormWebhookConfig.tsx b/ui/src/components/access/AccessFormWebhookConfig.tsx index f05d3097..e393b058 100644 --- a/ui/src/components/access/AccessFormWebhookConfig.tsx +++ b/ui/src/components/access/AccessFormWebhookConfig.tsx @@ -1,5 +1,6 @@ import { useTranslation } from "react-i18next"; -import { Alert, Button, Form, type FormInstance, Input, Select, Switch } from "antd"; +import { DownOutlined as DownOutlinedIcon } from "@ant-design/icons"; +import { Alert, Button, Dropdown, Form, type FormInstance, Input, Select, Switch } from "antd"; import { createSchemaFieldRule } from "antd-zod"; import { z } from "zod"; @@ -128,8 +129,124 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa formInst.setFieldValue("defaultDataForDeployment", initFormModel().defaultDataForDeployment); }; - const handlePresetDataForNotificationClick = () => { - formInst.setFieldValue("defaultDataForNotification", initFormModel().defaultDataForNotification); + const handlePresetDataForNotificationClick = (key: string) => { + switch (key) { + case "bark": + formInst.setFieldValue("url", "https://api.day.app/push"); + formInst.setFieldValue("method", "POST"); + formInst.setFieldValue("headers", "Content-Type: application/json\r\nAuthorization: Bearer "); + formInst.setFieldValue( + "defaultDataForNotification", + JSON.stringify( + { + title: "${SUBJECT}", + body: "${MESSAGE}", + group: "", + device_keys: "", + }, + null, + 2 + ) + ); + break; + + case "gotify": + formInst.setFieldValue("url", "https:///"); + formInst.setFieldValue("method", "POST"); + formInst.setFieldValue("headers", "Content-Type: application/json\r\nAuthorization: Bearer "); + formInst.setFieldValue( + "defaultDataForNotification", + JSON.stringify( + { + title: "${SUBJECT}", + message: "${MESSAGE}", + priority: 1, + }, + null, + 2 + ) + ); + break; + + case "ntfy": + formInst.setFieldValue("url", "https:///"); + formInst.setFieldValue("method", "POST"); + formInst.setFieldValue("headers", "Content-Type: application/json"); + formInst.setFieldValue( + "defaultDataForNotification", + JSON.stringify( + { + topic: "", + title: "${SUBJECT}", + message: "${MESSAGE}", + priority: 1, + }, + null, + 2 + ) + ); + break; + + case "pushover": + formInst.setFieldValue("url", "https://api.pushover.net/1/messages.json"); + formInst.setFieldValue("method", "POST"); + formInst.setFieldValue("headers", "Content-Type: application/json"); + formInst.setFieldValue( + "defaultDataForNotification", + JSON.stringify( + { + token: "", + user: "", + title: "${SUBJECT}", + message: "${MESSAGE}", + }, + null, + 2 + ) + ); + break; + + case "pushplus": + formInst.setFieldValue("url", "https://www.pushplus.plus/send"); + formInst.setFieldValue("method", "POST"); + formInst.setFieldValue("headers", "Content-Type: application/json"); + formInst.setFieldValue( + "defaultDataForNotification", + JSON.stringify( + { + token: "", + title: "${SUBJECT}", + content: "${MESSAGE}", + }, + null, + 2 + ) + ); + break; + + case "serverchan": + formInst.setFieldValue("url", "https://sctapi.ftqq.com/.send"); + formInst.setFieldValue("method", "POST"); + formInst.setFieldValue("headers", "Content-Type: application/json"); + formInst.setFieldValue( + "defaultDataForNotification", + JSON.stringify( + { + text: "${SUBJECT}", + desp: "${MESSAGE}", + }, + null, + 2 + ) + ); + break; + + default: + formInst.setFieldValue("method", "POST"); + formInst.setFieldValue("headers", "Content-Type: application/json"); + formInst.setFieldValue("defaultDataForNotification", initFormModel().defaultDataForNotification); + break; + } }; const handleFormChange = (_: unknown, values: z.infer) => { @@ -169,10 +286,12 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa