diff --git a/internal/certmgmt/deployers/sp_byteplus_cdn.go b/internal/certmgmt/deployers/sp_byteplus_cdn.go index dbf4cc528..5b3e5fabc 100644 --- a/internal/certmgmt/deployers/sp_byteplus_cdn.go +++ b/internal/certmgmt/deployers/sp_byteplus_cdn.go @@ -19,6 +19,7 @@ func init() { provider, err := bytepluscdn.NewDeployer(&bytepluscdn.DeployerConfig{ AccessKey: credentials.AccessKey, SecretKey: credentials.SecretKey, + ProjectName: credentials.ProjectName, DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"), Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"), }) diff --git a/internal/domain/access.go b/internal/domain/access.go index 14ae89bbf..fd0b2556b 100644 --- a/internal/domain/access.go +++ b/internal/domain/access.go @@ -135,8 +135,9 @@ type AccessConfigForBunny struct { } type AccessConfigForBytePlus struct { - AccessKey string `json:"accessKey"` - SecretKey string `json:"secretKey"` + AccessKey string `json:"accessKey"` + SecretKey string `json:"secretKey"` + ProjectName string `json:"projectName,omitempty"` } type AccessConfigForCacheFly struct { diff --git a/pkg/core/certifier/challengers/dns01/dynv6/internal/lego.go b/pkg/core/certifier/challengers/dns01/dynv6/internal/lego.go index 15a6d898d..b2543ab86 100644 --- a/pkg/core/certifier/challengers/dns01/dynv6/internal/lego.go +++ b/pkg/core/certifier/challengers/dns01/dynv6/internal/lego.go @@ -74,7 +74,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) { client, err := dynv6sdk.NewClient(config.HTTPToken) if err != nil { - return nil, fmt.Errorf("dnsexit: %w", err) + return nil, fmt.Errorf("dynv6: %w", err) } else { client.SetTimeout(config.HTTPTimeout) } diff --git a/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go b/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go index 0a5074ffb..3604a575a 100644 --- a/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go +++ b/pkg/core/deployer/providers/byteplus-cdn/byteplus_cdn.go @@ -8,7 +8,7 @@ import ( "strings" bpcdn "github.com/byteplus-sdk/byteplus-sdk-golang/service/cdn" - bp "github.com/volcengine/volcengine-go-sdk/volcengine" + "github.com/samber/lo" "github.com/certimate-go/certimate/pkg/core/certmgr" certmgrimpl "github.com/certimate-go/certimate/pkg/core/certmgr/providers/byteplus-cdn" @@ -21,6 +21,8 @@ type DeployerConfig struct { AccessKey string `json:"accessKey"` // BytePlus SecretKey。 SecretKey string `json:"secretKey"` + // BytePlus 项目名称。 + ProjectName string `json:"projectName,omitempty"` // 域名匹配模式。 // 零值时默认值 [DOMAIN_MATCH_PATTERN_EXACT]。 DomainMatchPattern string `json:"domainMatchPattern,omitempty"` @@ -166,10 +168,11 @@ func (d *Deployer) getMatchedDomainsByWildcard(ctx context.Context, wildcardDoma } listCdnDomainsReq := &bpcdn.ListCdnDomainsRequest{ - Domain: bp.String(strings.TrimPrefix(wildcardDomain, "*.")), - Status: bp.String("online"), - PageNum: bp.Int64(int64(listCdnDomainsPageNum)), - PageSize: bp.Int64(int64(listCdnDomainsPageSize)), + Project: lo.EmptyableToPtr(d.config.ProjectName), + Domain: bpcdn.GetStrPtr(strings.TrimPrefix(wildcardDomain, "*.")), + Status: bpcdn.GetStrPtr("online"), + PageNum: bpcdn.GetInt64Ptr(int64(listCdnDomainsPageNum)), + PageSize: bpcdn.GetInt64Ptr(int64(listCdnDomainsPageSize)), } listCdnDomainsResp, err := d.sdkClient.ListCdnDomains(listCdnDomainsReq) d.logger.Debug("sdk request 'cdn.ListCdnDomains'", slog.Any("request", listCdnDomainsReq), slog.Any("response", listCdnDomainsResp)) diff --git a/pkg/core/deployer/providers/ksyun-cdn/ksyun_cdn.go b/pkg/core/deployer/providers/ksyun-cdn/ksyun_cdn.go index 712ff99d7..a1b3813e7 100644 --- a/pkg/core/deployer/providers/ksyun-cdn/ksyun_cdn.go +++ b/pkg/core/deployer/providers/ksyun-cdn/ksyun_cdn.go @@ -174,7 +174,7 @@ func (d *Deployer) deployToCertificate(ctx context.Context, certPEM, privkeyPEM } // 更新证书 - // https://docs.ksyun.com/documents/259 + // REF: https://docs.ksyun.com/documents/259 setCertificateInput := map[string]any{ "CertificateId": d.config.CertificateId, "CertificateName": fmt.Sprintf("certimate_%d", time.Now().UnixMilli()), @@ -194,7 +194,7 @@ func (d *Deployer) getAllDomains(ctx context.Context) ([]string, error) { domains := make([]string, 0) // 查询域名列表 - // https://docs.ksyun.com/documents/198 + // REF: https://docs.ksyun.com/documents/198 getCdnDomainsPageNumber := 1 getCdnDomainsPageSize := 100 for { @@ -250,7 +250,7 @@ func (d *Deployer) getAllDomains(ctx context.Context) ([]string, error) { func (d *Deployer) findDomainIdByDomain(ctx context.Context, domain string) (string, error) { // 查询域名列表 - // https://docs.ksyun.com/documents/198 + // REF: https://docs.ksyun.com/documents/198 getCdnDomainsPageNumber := 1 getCdnDomainsPageSize := 100 for { @@ -316,7 +316,7 @@ func (d *Deployer) updateDomainCertificate(ctx context.Context, domain string, c } // 为加速域名配置证书接口 - // https://docs.ksyun.com/documents/261 + // REF: https://docs.ksyun.com/documents/261 configCertificateInput := map[string]any{ "Enable": "on", "DomainIds": domainId, diff --git a/pkg/core/deployer/providers/ksyun-slb/ksyun_slb.go b/pkg/core/deployer/providers/ksyun-slb/ksyun_slb.go index d45c9cb02..61ee9335d 100644 --- a/pkg/core/deployer/providers/ksyun-slb/ksyun_slb.go +++ b/pkg/core/deployer/providers/ksyun-slb/ksyun_slb.go @@ -78,7 +78,7 @@ func (d *Deployer) deployToCertificate(ctx context.Context, certPEM, privkeyPEM } // 更新证书信息 - // https://docs.ksyun.com/documents/2121 + // REF: https://docs.ksyun.com/documents/2121 modifyCertificateInput := map[string]any{ "CertificateId": d.config.CertificateId, "CertificateName": fmt.Sprintf("certimate_%d", time.Now().UnixMilli()), diff --git a/pkg/core/deployer/providers/volcengine-apig/volcengine_apig.go b/pkg/core/deployer/providers/volcengine-apig/volcengine_apig.go index 814ed1e81..2a792b9c3 100644 --- a/pkg/core/deployer/providers/volcengine-apig/volcengine_apig.go +++ b/pkg/core/deployer/providers/volcengine-apig/volcengine_apig.go @@ -190,7 +190,7 @@ func (d *Deployer) getAllDomains(ctx context.Context) ([]*veapig.ItemForListCust domains := make([]*veapig.ItemForListCustomDomainsOutput, 0) // 查询自定义域名列表 - // https://api.volcengine.com/api-explorer?action=ListCustomDomains&serviceCode=apig&version=2021-03-03 + // REF: https://api.volcengine.com/api-explorer?action=ListCustomDomains&serviceCode=apig&version=2021-03-03 listCustomDomainsPageNumber := 1 listCustomDomainsPageSize := 100 for { diff --git a/pkg/core/deployer/providers/zenlayer-cdn/zenlayer_cdn.go b/pkg/core/deployer/providers/zenlayer-cdn/zenlayer_cdn.go index 6e39909a7..0c6206ba2 100644 --- a/pkg/core/deployer/providers/zenlayer-cdn/zenlayer_cdn.go +++ b/pkg/core/deployer/providers/zenlayer-cdn/zenlayer_cdn.go @@ -236,7 +236,7 @@ func (d *Deployer) getAllDomains(ctx context.Context) ([]*zcdnsdk.DomainInfo, er domains := make([]*zcdnsdk.DomainInfo, 0) // 查询加速域名列表 - // https://docs.console.zenlayer.com/api-reference/cn/networking/cdn/domain/describedomains + // REF: https://docs.console.zenlayer.com/api-reference/cn/networking/cdn/domain/describedomains describeDomainsPageNum := 1 describeDomainsPageSize := 100 for { diff --git a/ui/src/components/access/forms/AccessConfigFieldsProviderBytePlus.tsx b/ui/src/components/access/forms/AccessConfigFieldsProviderBytePlus.tsx index 49f6385dc..7e8d06e80 100644 --- a/ui/src/components/access/forms/AccessConfigFieldsProviderBytePlus.tsx +++ b/ui/src/components/access/forms/AccessConfigFieldsProviderBytePlus.tsx @@ -36,6 +36,16 @@ const AccessConfigFormFieldsProviderBytePlus = () => { > + + } + > + + ); }; @@ -53,6 +63,7 @@ const getSchema = ({ i18n = getI18n() }: { i18n: ReturnType }) = return z.object({ accessKey: z.string().nonempty(), secretKey: z.string().nonempty(), + projectName: z.string().nullish(), }); }; diff --git a/ui/src/i18n/resources/en/nls.access.json b/ui/src/i18n/resources/en/nls.access.json index c968da5fe..2c7b64411 100644 --- a/ui/src/i18n/resources/en/nls.access.json +++ b/ui/src/i18n/resources/en/nls.access.json @@ -336,6 +336,11 @@ "placeholder": "Please enter BytePlus SecretKey", "tooltip": "For more information, see https://docs.byteplus.com/en/docs/byteplus-platform/docs-managing-keys" }, + "byteplus_project_name": { + "label": "BytePlus project ID", + "placeholder": "Please enter BytePlus project ID", + "tooltip": "For more information, see https://docs.byteplus.com/en/docs/resourcemanagement/Project_Management" + }, "cachefly_api_token": { "label": "CacheFly API token", "placeholder": "Please enter CacheFly API token", diff --git a/ui/src/i18n/resources/zh/nls.access.json b/ui/src/i18n/resources/zh/nls.access.json index 54526b7a7..85f0623f7 100644 --- a/ui/src/i18n/resources/zh/nls.access.json +++ b/ui/src/i18n/resources/zh/nls.access.json @@ -334,6 +334,11 @@ "placeholder": "请输入 BytePlus SecretKey", "tooltip": "这是什么?请参阅 https://docs.byteplus.com/zh-CN/docs/byteplus-platform/docs-managing-keys" }, + "byteplus_project_name": { + "label": "BytePlus 项目名称(可选)", + "placeholder": "请输入 BytePlus 项目名称", + "tooltip": "这是什么?请参阅 https://docs.byteplus.com/zh-CN/docs/resourcemanagement/Project_Management" + }, "cachefly_api_token": { "label": "CacheFly API Token", "placeholder": "请输入 CacheFly API Token",