mirror of https://github.com/usual2970/certimate
				
				
				
			feat: add baotapanel console deployer
							parent
							
								
									6d8301b159
								
							
						
					
					
						commit
						b734ffcf9d
					
				| 
						 | 
				
			
			@ -6,23 +6,23 @@ import (
 | 
			
		|||
	"github.com/go-acme/lego/v4/challenge"
 | 
			
		||||
 | 
			
		||||
	"github.com/usual2970/certimate/internal/domain"
 | 
			
		||||
	providerACMEHttpReq "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/acmehttpreq"
 | 
			
		||||
	providerAliyun "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/aliyun"
 | 
			
		||||
	providerAWSRoute53 "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/aws-route53"
 | 
			
		||||
	providerAzureDNS "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/azure-dns"
 | 
			
		||||
	providerCloudflare "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/cloudflare"
 | 
			
		||||
	providerClouDNS "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/cloudns"
 | 
			
		||||
	providerGname "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname"
 | 
			
		||||
	providerGoDaddy "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/godaddy"
 | 
			
		||||
	providerHuaweiCloud "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/huaweicloud"
 | 
			
		||||
	providerNameDotCom "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/namedotcom"
 | 
			
		||||
	providerNameSilo "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/namesilo"
 | 
			
		||||
	providerNS1 "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/ns1"
 | 
			
		||||
	providerPowerDNS "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/powerdns"
 | 
			
		||||
	providerRainYun "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/rainyun"
 | 
			
		||||
	providerTencentCloud "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/tencentcloud"
 | 
			
		||||
	providerVolcEngine "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/volcengine"
 | 
			
		||||
	providerWestcn "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/westcn"
 | 
			
		||||
	pACMEHttpReq "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/acmehttpreq"
 | 
			
		||||
	pAliyun "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/aliyun"
 | 
			
		||||
	pAWSRoute53 "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/aws-route53"
 | 
			
		||||
	pAzureDNS "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/azure-dns"
 | 
			
		||||
	pCloudflare "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/cloudflare"
 | 
			
		||||
	pClouDNS "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/cloudns"
 | 
			
		||||
	pGname "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/gname"
 | 
			
		||||
	pGoDaddy "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/godaddy"
 | 
			
		||||
	pHuaweiCloud "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/huaweicloud"
 | 
			
		||||
	pNameDotCom "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/namedotcom"
 | 
			
		||||
	pNameSilo "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/namesilo"
 | 
			
		||||
	pNS1 "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/ns1"
 | 
			
		||||
	pPowerDNS "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/powerdns"
 | 
			
		||||
	pRainYun "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/rainyun"
 | 
			
		||||
	pTencentCloud "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/tencentcloud"
 | 
			
		||||
	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/maps"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -39,7 +39,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerACMEHttpReq.NewChallengeProvider(&providerACMEHttpReq.ACMEHttpReqApplicantConfig{
 | 
			
		||||
			applicant, err := pACMEHttpReq.NewChallengeProvider(&pACMEHttpReq.ACMEHttpReqApplicantConfig{
 | 
			
		||||
				Endpoint:              access.Endpoint,
 | 
			
		||||
				Mode:                  access.Mode,
 | 
			
		||||
				Username:              access.Username,
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerAliyun.NewChallengeProvider(&providerAliyun.AliyunApplicantConfig{
 | 
			
		||||
			applicant, err := pAliyun.NewChallengeProvider(&pAliyun.AliyunApplicantConfig{
 | 
			
		||||
				AccessKeyId:           access.AccessKeyId,
 | 
			
		||||
				AccessKeySecret:       access.AccessKeySecret,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
| 
						 | 
				
			
			@ -72,7 +72,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerAWSRoute53.NewChallengeProvider(&providerAWSRoute53.AWSRoute53ApplicantConfig{
 | 
			
		||||
			applicant, err := pAWSRoute53.NewChallengeProvider(&pAWSRoute53.AWSRoute53ApplicantConfig{
 | 
			
		||||
				AccessKeyId:           access.AccessKeyId,
 | 
			
		||||
				SecretAccessKey:       access.SecretAccessKey,
 | 
			
		||||
				Region:                maps.GetValueAsString(options.ProviderApplyConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -90,7 +90,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerAzureDNS.NewChallengeProvider(&providerAzureDNS.AzureDNSApplicantConfig{
 | 
			
		||||
			applicant, err := pAzureDNS.NewChallengeProvider(&pAzureDNS.AzureDNSApplicantConfig{
 | 
			
		||||
				TenantId:              access.TenantId,
 | 
			
		||||
				ClientId:              access.ClientId,
 | 
			
		||||
				ClientSecret:          access.ClientSecret,
 | 
			
		||||
| 
						 | 
				
			
			@ -108,7 +108,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerCloudflare.NewChallengeProvider(&providerCloudflare.CloudflareApplicantConfig{
 | 
			
		||||
			applicant, err := pCloudflare.NewChallengeProvider(&pCloudflare.CloudflareApplicantConfig{
 | 
			
		||||
				DnsApiToken:           access.DnsApiToken,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
				DnsTTL:                options.DnsTTL,
 | 
			
		||||
| 
						 | 
				
			
			@ -123,7 +123,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerClouDNS.NewChallengeProvider(&providerClouDNS.ClouDNSApplicantConfig{
 | 
			
		||||
			applicant, err := pClouDNS.NewChallengeProvider(&pClouDNS.ClouDNSApplicantConfig{
 | 
			
		||||
				AuthId:                access.AuthId,
 | 
			
		||||
				AuthPassword:          access.AuthPassword,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +139,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerGname.NewChallengeProvider(&providerGname.GnameApplicantConfig{
 | 
			
		||||
			applicant, err := pGname.NewChallengeProvider(&pGname.GnameApplicantConfig{
 | 
			
		||||
				AppId:                 access.AppId,
 | 
			
		||||
				AppKey:                access.AppKey,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
| 
						 | 
				
			
			@ -155,7 +155,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerGoDaddy.NewChallengeProvider(&providerGoDaddy.GoDaddyApplicantConfig{
 | 
			
		||||
			applicant, err := pGoDaddy.NewChallengeProvider(&pGoDaddy.GoDaddyApplicantConfig{
 | 
			
		||||
				ApiKey:                access.ApiKey,
 | 
			
		||||
				ApiSecret:             access.ApiSecret,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
| 
						 | 
				
			
			@ -171,7 +171,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerHuaweiCloud.NewChallengeProvider(&providerHuaweiCloud.HuaweiCloudApplicantConfig{
 | 
			
		||||
			applicant, err := pHuaweiCloud.NewChallengeProvider(&pHuaweiCloud.HuaweiCloudApplicantConfig{
 | 
			
		||||
				AccessKeyId:           access.AccessKeyId,
 | 
			
		||||
				SecretAccessKey:       access.SecretAccessKey,
 | 
			
		||||
				Region:                maps.GetValueAsString(options.ProviderApplyConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -188,7 +188,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerNameDotCom.NewChallengeProvider(&providerNameDotCom.NameDotComApplicantConfig{
 | 
			
		||||
			applicant, err := pNameDotCom.NewChallengeProvider(&pNameDotCom.NameDotComApplicantConfig{
 | 
			
		||||
				Username:              access.Username,
 | 
			
		||||
				ApiToken:              access.ApiToken,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
| 
						 | 
				
			
			@ -204,7 +204,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerNameSilo.NewChallengeProvider(&providerNameSilo.NameSiloApplicantConfig{
 | 
			
		||||
			applicant, err := pNameSilo.NewChallengeProvider(&pNameSilo.NameSiloApplicantConfig{
 | 
			
		||||
				ApiKey:                access.ApiKey,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
				DnsTTL:                options.DnsTTL,
 | 
			
		||||
| 
						 | 
				
			
			@ -219,7 +219,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerNS1.NewChallengeProvider(&providerNS1.NS1ApplicantConfig{
 | 
			
		||||
			applicant, err := pNS1.NewChallengeProvider(&pNS1.NS1ApplicantConfig{
 | 
			
		||||
				ApiKey:                access.ApiKey,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
				DnsTTL:                options.DnsTTL,
 | 
			
		||||
| 
						 | 
				
			
			@ -234,7 +234,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerPowerDNS.NewChallengeProvider(&providerPowerDNS.PowerDNSApplicantConfig{
 | 
			
		||||
			applicant, err := pPowerDNS.NewChallengeProvider(&pPowerDNS.PowerDNSApplicantConfig{
 | 
			
		||||
				ApiUrl:                access.ApiUrl,
 | 
			
		||||
				ApiKey:                access.ApiKey,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
| 
						 | 
				
			
			@ -250,7 +250,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerRainYun.NewChallengeProvider(&providerRainYun.RainYunApplicantConfig{
 | 
			
		||||
			applicant, err := pRainYun.NewChallengeProvider(&pRainYun.RainYunApplicantConfig{
 | 
			
		||||
				ApiKey:                access.ApiKey,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
				DnsTTL:                options.DnsTTL,
 | 
			
		||||
| 
						 | 
				
			
			@ -265,7 +265,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerTencentCloud.NewChallengeProvider(&providerTencentCloud.TencentCloudApplicantConfig{
 | 
			
		||||
			applicant, err := pTencentCloud.NewChallengeProvider(&pTencentCloud.TencentCloudApplicantConfig{
 | 
			
		||||
				SecretId:              access.SecretId,
 | 
			
		||||
				SecretKey:             access.SecretKey,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
| 
						 | 
				
			
			@ -281,7 +281,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerVolcEngine.NewChallengeProvider(&providerVolcEngine.VolcEngineApplicantConfig{
 | 
			
		||||
			applicant, err := pVolcEngine.NewChallengeProvider(&pVolcEngine.VolcEngineApplicantConfig{
 | 
			
		||||
				AccessKeyId:           access.AccessKeyId,
 | 
			
		||||
				SecretAccessKey:       access.SecretAccessKey,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
| 
						 | 
				
			
			@ -297,7 +297,7 @@ func createApplicant(options *applicantOptions) (challenge.Provider, error) {
 | 
			
		|||
				return nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			applicant, err := providerWestcn.NewChallengeProvider(&providerWestcn.WestcnApplicantConfig{
 | 
			
		||||
			applicant, err := pWestcn.NewChallengeProvider(&pWestcn.WestcnApplicantConfig{
 | 
			
		||||
				Username:              access.Username,
 | 
			
		||||
				ApiPassword:           access.ApiPassword,
 | 
			
		||||
				DnsPropagationTimeout: options.DnsPropagationTimeout,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,45 +6,46 @@ import (
 | 
			
		|||
 | 
			
		||||
	"github.com/usual2970/certimate/internal/domain"
 | 
			
		||||
	"github.com/usual2970/certimate/internal/pkg/core/deployer"
 | 
			
		||||
	providerAliyunALB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-alb"
 | 
			
		||||
	providerAliyunCASDeploy "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-cas-deploy"
 | 
			
		||||
	providerAliyunCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-cdn"
 | 
			
		||||
	providerAliyunCLB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-clb"
 | 
			
		||||
	providerAliyunDCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-dcdn"
 | 
			
		||||
	providerAliyunESA "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-esa"
 | 
			
		||||
	providerAliyunLive "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-live"
 | 
			
		||||
	providerAliyunNLB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-nlb"
 | 
			
		||||
	providerAliyunOSS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-oss"
 | 
			
		||||
	providerAliyunWAF "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-waf"
 | 
			
		||||
	providerAWSCloudFront "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aws-cloudfront"
 | 
			
		||||
	providerBaiduCloudCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/baiducloud-cdn"
 | 
			
		||||
	providerBaotaPanelSite "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/baotapanel-site"
 | 
			
		||||
	providerBytePlusCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/byteplus-cdn"
 | 
			
		||||
	providerDogeCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/dogecloud-cdn"
 | 
			
		||||
	providerEdgioApplications "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/edgio-applications"
 | 
			
		||||
	providerHuaweiCloudCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/huaweicloud-cdn"
 | 
			
		||||
	providerHuaweiCloudELB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/huaweicloud-elb"
 | 
			
		||||
	providerK8sSecret "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/k8s-secret"
 | 
			
		||||
	providerLocal "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/local"
 | 
			
		||||
	providerQiniuCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/qiniu-cdn"
 | 
			
		||||
	providerQiniuPili "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/qiniu-pili"
 | 
			
		||||
	pAliyunALB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-alb"
 | 
			
		||||
	pAliyunCASDeploy "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-cas-deploy"
 | 
			
		||||
	pAliyunCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-cdn"
 | 
			
		||||
	pAliyunCLB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-clb"
 | 
			
		||||
	pAliyunDCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-dcdn"
 | 
			
		||||
	pAliyunESA "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-esa"
 | 
			
		||||
	pAliyunLive "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-live"
 | 
			
		||||
	pAliyunNLB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-nlb"
 | 
			
		||||
	pAliyunOSS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-oss"
 | 
			
		||||
	pAliyunWAF "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aliyun-waf"
 | 
			
		||||
	pAWSCloudFront "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/aws-cloudfront"
 | 
			
		||||
	pBaiduCloudCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/baiducloud-cdn"
 | 
			
		||||
	pBaotaPanelConsole "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/baotapanel-console"
 | 
			
		||||
	pBaotaPanelSite "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/baotapanel-site"
 | 
			
		||||
	pBytePlusCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/byteplus-cdn"
 | 
			
		||||
	pDogeCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/dogecloud-cdn"
 | 
			
		||||
	pEdgioApplications "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/edgio-applications"
 | 
			
		||||
	pHuaweiCloudCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/huaweicloud-cdn"
 | 
			
		||||
	pHuaweiCloudELB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/huaweicloud-elb"
 | 
			
		||||
	pK8sSecret "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/k8s-secret"
 | 
			
		||||
	pLocal "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/local"
 | 
			
		||||
	pQiniuCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/qiniu-cdn"
 | 
			
		||||
	pQiniuPili "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/qiniu-pili"
 | 
			
		||||
	providerSSH "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/ssh"
 | 
			
		||||
	providerTencentCloudCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-cdn"
 | 
			
		||||
	providerTencentCloudCLB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-clb"
 | 
			
		||||
	providerTencentCloudCOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-cos"
 | 
			
		||||
	providerTencentCloudCSS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-css"
 | 
			
		||||
	providerTencentCloudECDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-ecdn"
 | 
			
		||||
	providerTencentCloudEO "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-eo"
 | 
			
		||||
	providerTencentCloudSSLDeploy "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy"
 | 
			
		||||
	providerUCloudUCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/ucloud-ucdn"
 | 
			
		||||
	providerUCloudUS3 "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/ucloud-us3"
 | 
			
		||||
	providerVolcEngineCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-cdn"
 | 
			
		||||
	providerVolcEngineCLB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-clb"
 | 
			
		||||
	providerVolcEngineDCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-dcdn"
 | 
			
		||||
	providerVolcEngineImageX "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-imagex"
 | 
			
		||||
	providerVolcEngineLive "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-live"
 | 
			
		||||
	providerVolcEngineTOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-tos"
 | 
			
		||||
	providerWebhook "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/webhook"
 | 
			
		||||
	pTencentCloudCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-cdn"
 | 
			
		||||
	pTencentCloudCLB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-clb"
 | 
			
		||||
	pTencentCloudCOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-cos"
 | 
			
		||||
	pTencentCloudCSS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-css"
 | 
			
		||||
	pTencentCloudECDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-ecdn"
 | 
			
		||||
	pTencentCloudEO "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-eo"
 | 
			
		||||
	pTencentCloudSSLDeploy "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/tencentcloud-ssl-deploy"
 | 
			
		||||
	pUCloudUCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/ucloud-ucdn"
 | 
			
		||||
	pUCloudUS3 "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/ucloud-us3"
 | 
			
		||||
	pVolcEngineCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-cdn"
 | 
			
		||||
	pVolcEngineCLB "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-clb"
 | 
			
		||||
	pVolcEngineDCDN "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-dcdn"
 | 
			
		||||
	pVolcEngineImageX "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-imagex"
 | 
			
		||||
	pVolcEngineLive "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-live"
 | 
			
		||||
	pVolcEngineTOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-tos"
 | 
			
		||||
	pWebhook "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/webhook"
 | 
			
		||||
	"github.com/usual2970/certimate/internal/pkg/core/logger"
 | 
			
		||||
	"github.com/usual2970/certimate/internal/pkg/utils/maps"
 | 
			
		||||
	"github.com/usual2970/certimate/internal/pkg/utils/slices"
 | 
			
		||||
| 
						 | 
				
			
			@ -67,11 +68,11 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeAliyunALB:
 | 
			
		||||
				deployer, err := providerAliyunALB.NewWithLogger(&providerAliyunALB.AliyunALBDeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunALB.NewWithLogger(&pAliyunALB.AliyunALBDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
					ResourceType:    providerAliyunALB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					ResourceType:    pAliyunALB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					LoadbalancerId:  maps.GetValueAsString(options.ProviderDeployConfig, "loadbalancerId"),
 | 
			
		||||
					ListenerId:      maps.GetValueAsString(options.ProviderDeployConfig, "listenerId"),
 | 
			
		||||
					Domain:          maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +80,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeAliyunCASDeploy:
 | 
			
		||||
				deployer, err := providerAliyunCASDeploy.NewWithLogger(&providerAliyunCASDeploy.AliyunCASDeployDeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunCASDeploy.NewWithLogger(&pAliyunCASDeploy.AliyunCASDeployDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -89,7 +90,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeAliyunCDN:
 | 
			
		||||
				deployer, err := providerAliyunCDN.NewWithLogger(&providerAliyunCDN.AliyunCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunCDN.NewWithLogger(&pAliyunCDN.AliyunCDNDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Domain:          maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -97,11 +98,11 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeAliyunCLB:
 | 
			
		||||
				deployer, err := providerAliyunCLB.NewWithLogger(&providerAliyunCLB.AliyunCLBDeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunCLB.NewWithLogger(&pAliyunCLB.AliyunCLBDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
					ResourceType:    providerAliyunCLB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					ResourceType:    pAliyunCLB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					LoadbalancerId:  maps.GetValueAsString(options.ProviderDeployConfig, "loadbalancerId"),
 | 
			
		||||
					ListenerPort:    maps.GetValueOrDefaultAsInt32(options.ProviderDeployConfig, "listenerPort", 443),
 | 
			
		||||
					Domain:          maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -109,7 +110,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeAliyunDCDN:
 | 
			
		||||
				deployer, err := providerAliyunDCDN.NewWithLogger(&providerAliyunDCDN.AliyunDCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunDCDN.NewWithLogger(&pAliyunDCDN.AliyunDCDNDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Domain:          maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -117,7 +118,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeAliyunESA:
 | 
			
		||||
				deployer, err := providerAliyunESA.NewWithLogger(&providerAliyunESA.AliyunESADeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunESA.NewWithLogger(&pAliyunESA.AliyunESADeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -126,7 +127,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeAliyunLive:
 | 
			
		||||
				deployer, err := providerAliyunLive.NewWithLogger(&providerAliyunLive.AliyunLiveDeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunLive.NewWithLogger(&pAliyunLive.AliyunLiveDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -135,18 +136,18 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeAliyunNLB:
 | 
			
		||||
				deployer, err := providerAliyunNLB.NewWithLogger(&providerAliyunNLB.AliyunNLBDeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunNLB.NewWithLogger(&pAliyunNLB.AliyunNLBDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
					ResourceType:    providerAliyunNLB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					ResourceType:    pAliyunNLB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					LoadbalancerId:  maps.GetValueAsString(options.ProviderDeployConfig, "loadbalancerId"),
 | 
			
		||||
					ListenerId:      maps.GetValueAsString(options.ProviderDeployConfig, "listenerId"),
 | 
			
		||||
				}, logger)
 | 
			
		||||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeAliyunOSS:
 | 
			
		||||
				deployer, err := providerAliyunOSS.NewWithLogger(&providerAliyunOSS.AliyunOSSDeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunOSS.NewWithLogger(&pAliyunOSS.AliyunOSSDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -156,7 +157,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeAliyunWAF:
 | 
			
		||||
				deployer, err := providerAliyunWAF.NewWithLogger(&providerAliyunWAF.AliyunWAFDeployerConfig{
 | 
			
		||||
				deployer, err := pAliyunWAF.NewWithLogger(&pAliyunWAF.AliyunWAFDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.AccessKeySecret,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -178,7 +179,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeAWSCloudFront:
 | 
			
		||||
				deployer, err := providerAWSCloudFront.NewWithLogger(&providerAWSCloudFront.AWSCloudFrontDeployerConfig{
 | 
			
		||||
				deployer, err := pAWSCloudFront.NewWithLogger(&pAWSCloudFront.AWSCloudFrontDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					SecretAccessKey: access.SecretAccessKey,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +201,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeBaiduCloudCDN:
 | 
			
		||||
				deployer, err := providerBaiduCloudCDN.NewWithLogger(&providerBaiduCloudCDN.BaiduCloudCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pBaiduCloudCDN.NewWithLogger(&pBaiduCloudCDN.BaiduCloudCDNDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					SecretAccessKey: access.SecretAccessKey,
 | 
			
		||||
					Domain:          maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -212,19 +213,33 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case domain.DeployProviderTypeBaotaPanelSite:
 | 
			
		||||
	case domain.DeployProviderTypeBaotaPanelConsole, domain.DeployProviderTypeBaotaPanelSite:
 | 
			
		||||
		{
 | 
			
		||||
			access := domain.AccessConfigForBaotaPanel{}
 | 
			
		||||
			if err := maps.Populate(options.ProviderAccessConfig, &access); err != nil {
 | 
			
		||||
				return nil, nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			deployer, err := providerBaotaPanelSite.NewWithLogger(&providerBaotaPanelSite.BaotaPanelSiteDeployerConfig{
 | 
			
		||||
				ApiUrl:   access.ApiUrl,
 | 
			
		||||
				ApiKey:   access.ApiKey,
 | 
			
		||||
				SiteName: maps.GetValueAsString(options.ProviderDeployConfig, "siteName"),
 | 
			
		||||
			}, logger)
 | 
			
		||||
			return deployer, logger, err
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeBaotaPanelConsole:
 | 
			
		||||
				deployer, err := pBaotaPanelConsole.NewWithLogger(&pBaotaPanelConsole.BaotaPanelConsoleDeployerConfig{
 | 
			
		||||
					ApiUrl:      access.ApiUrl,
 | 
			
		||||
					ApiKey:      access.ApiKey,
 | 
			
		||||
					AutoRestart: maps.GetValueAsBool(options.ProviderDeployConfig, "autoRestart"),
 | 
			
		||||
				}, logger)
 | 
			
		||||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeBaotaPanelSite:
 | 
			
		||||
				deployer, err := pBaotaPanelSite.NewWithLogger(&pBaotaPanelSite.BaotaPanelSiteDeployerConfig{
 | 
			
		||||
					ApiUrl:   access.ApiUrl,
 | 
			
		||||
					ApiKey:   access.ApiKey,
 | 
			
		||||
					SiteName: maps.GetValueAsString(options.ProviderDeployConfig, "siteName"),
 | 
			
		||||
				}, logger)
 | 
			
		||||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			default:
 | 
			
		||||
				break
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case domain.DeployProviderTypeBytePlusCDN:
 | 
			
		||||
| 
						 | 
				
			
			@ -236,7 +251,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeBytePlusCDN:
 | 
			
		||||
				deployer, err := providerBytePlusCDN.NewWithLogger(&providerBytePlusCDN.BytePlusCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pBytePlusCDN.NewWithLogger(&pBytePlusCDN.BytePlusCDNDeployerConfig{
 | 
			
		||||
					AccessKey: access.AccessKey,
 | 
			
		||||
					SecretKey: access.SecretKey,
 | 
			
		||||
					Domain:    maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -255,7 +270,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return nil, nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			deployer, err := providerDogeCDN.NewWithLogger(&providerDogeCDN.DogeCloudCDNDeployerConfig{
 | 
			
		||||
			deployer, err := pDogeCDN.NewWithLogger(&pDogeCDN.DogeCloudCDNDeployerConfig{
 | 
			
		||||
				AccessKey: access.AccessKey,
 | 
			
		||||
				SecretKey: access.SecretKey,
 | 
			
		||||
				Domain:    maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -270,7 +285,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return nil, nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			deployer, err := providerEdgioApplications.NewWithLogger(&providerEdgioApplications.EdgioApplicationsDeployerConfig{
 | 
			
		||||
			deployer, err := pEdgioApplications.NewWithLogger(&pEdgioApplications.EdgioApplicationsDeployerConfig{
 | 
			
		||||
				ClientId:      access.ClientId,
 | 
			
		||||
				ClientSecret:  access.ClientSecret,
 | 
			
		||||
				EnvironmentId: maps.GetValueAsString(options.ProviderDeployConfig, "environmentId"),
 | 
			
		||||
| 
						 | 
				
			
			@ -287,7 +302,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeHuaweiCloudCDN:
 | 
			
		||||
				deployer, err := providerHuaweiCloudCDN.NewWithLogger(&providerHuaweiCloudCDN.HuaweiCloudCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pHuaweiCloudCDN.NewWithLogger(&pHuaweiCloudCDN.HuaweiCloudCDNDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					SecretAccessKey: access.SecretAccessKey,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -296,11 +311,11 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeHuaweiCloudELB:
 | 
			
		||||
				deployer, err := providerHuaweiCloudELB.NewWithLogger(&providerHuaweiCloudELB.HuaweiCloudELBDeployerConfig{
 | 
			
		||||
				deployer, err := pHuaweiCloudELB.NewWithLogger(&pHuaweiCloudELB.HuaweiCloudELBDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					SecretAccessKey: access.SecretAccessKey,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
					ResourceType:    providerHuaweiCloudELB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					ResourceType:    pHuaweiCloudELB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					CertificateId:   maps.GetValueAsString(options.ProviderDeployConfig, "certificateId"),
 | 
			
		||||
					LoadbalancerId:  maps.GetValueAsString(options.ProviderDeployConfig, "loadbalancerId"),
 | 
			
		||||
					ListenerId:      maps.GetValueAsString(options.ProviderDeployConfig, "listenerId"),
 | 
			
		||||
| 
						 | 
				
			
			@ -314,11 +329,11 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
	case domain.DeployProviderTypeLocal:
 | 
			
		||||
		{
 | 
			
		||||
			deployer, err := providerLocal.NewWithLogger(&providerLocal.LocalDeployerConfig{
 | 
			
		||||
				ShellEnv:       providerLocal.ShellEnvType(maps.GetValueAsString(options.ProviderDeployConfig, "shellEnv")),
 | 
			
		||||
			deployer, err := pLocal.NewWithLogger(&pLocal.LocalDeployerConfig{
 | 
			
		||||
				ShellEnv:       pLocal.ShellEnvType(maps.GetValueAsString(options.ProviderDeployConfig, "shellEnv")),
 | 
			
		||||
				PreCommand:     maps.GetValueAsString(options.ProviderDeployConfig, "preCommand"),
 | 
			
		||||
				PostCommand:    maps.GetValueAsString(options.ProviderDeployConfig, "postCommand"),
 | 
			
		||||
				OutputFormat:   providerLocal.OutputFormatType(maps.GetValueOrDefaultAsString(options.ProviderDeployConfig, "format", string(providerLocal.OUTPUT_FORMAT_PEM))),
 | 
			
		||||
				OutputFormat:   pLocal.OutputFormatType(maps.GetValueOrDefaultAsString(options.ProviderDeployConfig, "format", string(pLocal.OUTPUT_FORMAT_PEM))),
 | 
			
		||||
				OutputCertPath: maps.GetValueAsString(options.ProviderDeployConfig, "certPath"),
 | 
			
		||||
				OutputKeyPath:  maps.GetValueAsString(options.ProviderDeployConfig, "keyPath"),
 | 
			
		||||
				PfxPassword:    maps.GetValueAsString(options.ProviderDeployConfig, "pfxPassword"),
 | 
			
		||||
| 
						 | 
				
			
			@ -336,7 +351,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return nil, nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			deployer, err := providerK8sSecret.NewWithLogger(&providerK8sSecret.K8sSecretDeployerConfig{
 | 
			
		||||
			deployer, err := pK8sSecret.NewWithLogger(&pK8sSecret.K8sSecretDeployerConfig{
 | 
			
		||||
				KubeConfig:          access.KubeConfig,
 | 
			
		||||
				Namespace:           maps.GetValueOrDefaultAsString(options.ProviderDeployConfig, "namespace", "default"),
 | 
			
		||||
				SecretName:          maps.GetValueAsString(options.ProviderDeployConfig, "secretName"),
 | 
			
		||||
| 
						 | 
				
			
			@ -356,7 +371,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeQiniuCDN:
 | 
			
		||||
				deployer, err := providerQiniuCDN.NewWithLogger(&providerQiniuCDN.QiniuCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pQiniuCDN.NewWithLogger(&pQiniuCDN.QiniuCDNDeployerConfig{
 | 
			
		||||
					AccessKey: access.AccessKey,
 | 
			
		||||
					SecretKey: access.SecretKey,
 | 
			
		||||
					Domain:    maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -364,7 +379,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeQiniuPili:
 | 
			
		||||
				deployer, err := providerQiniuPili.NewWithLogger(&providerQiniuPili.QiniuPiliDeployerConfig{
 | 
			
		||||
				deployer, err := pQiniuPili.NewWithLogger(&pQiniuPili.QiniuPiliDeployerConfig{
 | 
			
		||||
					AccessKey: access.AccessKey,
 | 
			
		||||
					SecretKey: access.SecretKey,
 | 
			
		||||
					Hub:       maps.GetValueAsString(options.ProviderDeployConfig, "hub"),
 | 
			
		||||
| 
						 | 
				
			
			@ -414,7 +429,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeTencentCloudCDN:
 | 
			
		||||
				deployer, err := providerTencentCloudCDN.NewWithLogger(&providerTencentCloudCDN.TencentCloudCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pTencentCloudCDN.NewWithLogger(&pTencentCloudCDN.TencentCloudCDNDeployerConfig{
 | 
			
		||||
					SecretId:  access.SecretId,
 | 
			
		||||
					SecretKey: access.SecretKey,
 | 
			
		||||
					Domain:    maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -422,11 +437,11 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeTencentCloudCLB:
 | 
			
		||||
				deployer, err := providerTencentCloudCLB.NewWithLogger(&providerTencentCloudCLB.TencentCloudCLBDeployerConfig{
 | 
			
		||||
				deployer, err := pTencentCloudCLB.NewWithLogger(&pTencentCloudCLB.TencentCloudCLBDeployerConfig{
 | 
			
		||||
					SecretId:       access.SecretId,
 | 
			
		||||
					SecretKey:      access.SecretKey,
 | 
			
		||||
					Region:         maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
					ResourceType:   providerTencentCloudCLB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					ResourceType:   pTencentCloudCLB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					LoadbalancerId: maps.GetValueAsString(options.ProviderDeployConfig, "loadbalancerId"),
 | 
			
		||||
					ListenerId:     maps.GetValueAsString(options.ProviderDeployConfig, "listenerId"),
 | 
			
		||||
					Domain:         maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -434,7 +449,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeTencentCloudCOS:
 | 
			
		||||
				deployer, err := providerTencentCloudCOS.NewWithLogger(&providerTencentCloudCOS.TencentCloudCOSDeployerConfig{
 | 
			
		||||
				deployer, err := pTencentCloudCOS.NewWithLogger(&pTencentCloudCOS.TencentCloudCOSDeployerConfig{
 | 
			
		||||
					SecretId:  access.SecretId,
 | 
			
		||||
					SecretKey: access.SecretKey,
 | 
			
		||||
					Region:    maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -444,7 +459,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeTencentCloudCSS:
 | 
			
		||||
				deployer, err := providerTencentCloudCSS.NewWithLogger(&providerTencentCloudCSS.TencentCloudCSSDeployerConfig{
 | 
			
		||||
				deployer, err := pTencentCloudCSS.NewWithLogger(&pTencentCloudCSS.TencentCloudCSSDeployerConfig{
 | 
			
		||||
					SecretId:  access.SecretId,
 | 
			
		||||
					SecretKey: access.SecretKey,
 | 
			
		||||
					Domain:    maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -452,7 +467,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeTencentCloudECDN:
 | 
			
		||||
				deployer, err := providerTencentCloudECDN.NewWithLogger(&providerTencentCloudECDN.TencentCloudECDNDeployerConfig{
 | 
			
		||||
				deployer, err := pTencentCloudECDN.NewWithLogger(&pTencentCloudECDN.TencentCloudECDNDeployerConfig{
 | 
			
		||||
					SecretId:  access.SecretId,
 | 
			
		||||
					SecretKey: access.SecretKey,
 | 
			
		||||
					Domain:    maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -460,7 +475,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeTencentCloudEO:
 | 
			
		||||
				deployer, err := providerTencentCloudEO.NewWithLogger(&providerTencentCloudEO.TencentCloudEODeployerConfig{
 | 
			
		||||
				deployer, err := pTencentCloudEO.NewWithLogger(&pTencentCloudEO.TencentCloudEODeployerConfig{
 | 
			
		||||
					SecretId:  access.SecretId,
 | 
			
		||||
					SecretKey: access.SecretKey,
 | 
			
		||||
					ZoneId:    maps.GetValueAsString(options.ProviderDeployConfig, "zoneId"),
 | 
			
		||||
| 
						 | 
				
			
			@ -469,7 +484,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeTencentCloudSSLDeploy:
 | 
			
		||||
				deployer, err := providerTencentCloudSSLDeploy.NewWithLogger(&providerTencentCloudSSLDeploy.TencentCloudSSLDeployDeployerConfig{
 | 
			
		||||
				deployer, err := pTencentCloudSSLDeploy.NewWithLogger(&pTencentCloudSSLDeploy.TencentCloudSSLDeployDeployerConfig{
 | 
			
		||||
					SecretId:     access.SecretId,
 | 
			
		||||
					SecretKey:    access.SecretKey,
 | 
			
		||||
					Region:       maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -492,7 +507,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeUCloudUCDN:
 | 
			
		||||
				deployer, err := providerUCloudUCDN.NewWithLogger(&providerUCloudUCDN.UCloudUCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pUCloudUCDN.NewWithLogger(&pUCloudUCDN.UCloudUCDNDeployerConfig{
 | 
			
		||||
					PrivateKey: access.PrivateKey,
 | 
			
		||||
					PublicKey:  access.PublicKey,
 | 
			
		||||
					ProjectId:  access.ProjectId,
 | 
			
		||||
| 
						 | 
				
			
			@ -501,7 +516,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeUCloudUS3:
 | 
			
		||||
				deployer, err := providerUCloudUS3.NewWithLogger(&providerUCloudUS3.UCloudUS3DeployerConfig{
 | 
			
		||||
				deployer, err := pUCloudUS3.NewWithLogger(&pUCloudUS3.UCloudUS3DeployerConfig{
 | 
			
		||||
					PrivateKey: access.PrivateKey,
 | 
			
		||||
					PublicKey:  access.PublicKey,
 | 
			
		||||
					ProjectId:  access.ProjectId,
 | 
			
		||||
| 
						 | 
				
			
			@ -525,7 +540,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
 | 
			
		||||
			switch options.Provider {
 | 
			
		||||
			case domain.DeployProviderTypeVolcEngineCDN:
 | 
			
		||||
				deployer, err := providerVolcEngineCDN.NewWithLogger(&providerVolcEngineCDN.VolcEngineCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pVolcEngineCDN.NewWithLogger(&pVolcEngineCDN.VolcEngineCDNDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.SecretAccessKey,
 | 
			
		||||
					Domain:          maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -533,17 +548,17 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeVolcEngineCLB:
 | 
			
		||||
				deployer, err := providerVolcEngineCLB.NewWithLogger(&providerVolcEngineCLB.VolcEngineCLBDeployerConfig{
 | 
			
		||||
				deployer, err := pVolcEngineCLB.NewWithLogger(&pVolcEngineCLB.VolcEngineCLBDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.SecretAccessKey,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
					ResourceType:    providerVolcEngineCLB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					ResourceType:    pVolcEngineCLB.DeployResourceType(maps.GetValueAsString(options.ProviderDeployConfig, "resourceType")),
 | 
			
		||||
					ListenerId:      maps.GetValueAsString(options.ProviderDeployConfig, "listenerId"),
 | 
			
		||||
				}, logger)
 | 
			
		||||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeVolcEngineDCDN:
 | 
			
		||||
				deployer, err := providerVolcEngineDCDN.NewWithLogger(&providerVolcEngineDCDN.VolcEngineDCDNDeployerConfig{
 | 
			
		||||
				deployer, err := pVolcEngineDCDN.NewWithLogger(&pVolcEngineDCDN.VolcEngineDCDNDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.SecretAccessKey,
 | 
			
		||||
					Domain:          maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -551,7 +566,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeVolcEngineImageX:
 | 
			
		||||
				deployer, err := providerVolcEngineImageX.NewWithLogger(&providerVolcEngineImageX.VolcEngineImageXDeployerConfig{
 | 
			
		||||
				deployer, err := pVolcEngineImageX.NewWithLogger(&pVolcEngineImageX.VolcEngineImageXDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.SecretAccessKey,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -561,7 +576,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeVolcEngineLive:
 | 
			
		||||
				deployer, err := providerVolcEngineLive.NewWithLogger(&providerVolcEngineLive.VolcEngineLiveDeployerConfig{
 | 
			
		||||
				deployer, err := pVolcEngineLive.NewWithLogger(&pVolcEngineLive.VolcEngineLiveDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.SecretAccessKey,
 | 
			
		||||
					Domain:          maps.GetValueAsString(options.ProviderDeployConfig, "domain"),
 | 
			
		||||
| 
						 | 
				
			
			@ -569,7 +584,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return deployer, logger, err
 | 
			
		||||
 | 
			
		||||
			case domain.DeployProviderTypeVolcEngineTOS:
 | 
			
		||||
				deployer, err := providerVolcEngineTOS.NewWithLogger(&providerVolcEngineTOS.VolcEngineTOSDeployerConfig{
 | 
			
		||||
				deployer, err := pVolcEngineTOS.NewWithLogger(&pVolcEngineTOS.VolcEngineTOSDeployerConfig{
 | 
			
		||||
					AccessKeyId:     access.AccessKeyId,
 | 
			
		||||
					AccessKeySecret: access.SecretAccessKey,
 | 
			
		||||
					Region:          maps.GetValueAsString(options.ProviderDeployConfig, "region"),
 | 
			
		||||
| 
						 | 
				
			
			@ -590,7 +605,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, logger.Logger,
 | 
			
		|||
				return nil, nil, fmt.Errorf("failed to populate provider access config: %w", err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			deployer, err := providerWebhook.NewWithLogger(&providerWebhook.WebhookDeployerConfig{
 | 
			
		||||
			deployer, err := pWebhook.NewWithLogger(&pWebhook.WebhookDeployerConfig{
 | 
			
		||||
				WebhookUrl:  access.Url,
 | 
			
		||||
				WebhookData: maps.GetValueAsString(options.ProviderDeployConfig, "webhookData"),
 | 
			
		||||
			}, logger)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -107,6 +107,7 @@ const (
 | 
			
		|||
	DeployProviderTypeAliyunWAF             = DeployProviderType("aliyun-waf")
 | 
			
		||||
	DeployProviderTypeAWSCloudFront         = DeployProviderType("aws-cloudfront")
 | 
			
		||||
	DeployProviderTypeBaiduCloudCDN         = DeployProviderType("baiducloud-cdn")
 | 
			
		||||
	DeployProviderTypeBaotaPanelConsole     = DeployProviderType("baotapanel-console")
 | 
			
		||||
	DeployProviderTypeBaotaPanelSite        = DeployProviderType("baotapanel-site")
 | 
			
		||||
	DeployProviderTypeBytePlusCDN           = DeployProviderType("byteplus-cdn")
 | 
			
		||||
	DeployProviderTypeDogeCloudCDN          = DeployProviderType("dogecloud-cdn")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,14 +5,14 @@ import (
 | 
			
		|||
 | 
			
		||||
	"github.com/usual2970/certimate/internal/domain"
 | 
			
		||||
	"github.com/usual2970/certimate/internal/pkg/core/notifier"
 | 
			
		||||
	providerBark "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/bark"
 | 
			
		||||
	providerDingTalk "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/dingtalk"
 | 
			
		||||
	providerEmail "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/email"
 | 
			
		||||
	providerLark "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/lark"
 | 
			
		||||
	providerServerChan "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/serverchan"
 | 
			
		||||
	providerTelegram "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/telegram"
 | 
			
		||||
	providerWebhook "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/webhook"
 | 
			
		||||
	providerWeCom "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/wecom"
 | 
			
		||||
	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"
 | 
			
		||||
	pLark "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/lark"
 | 
			
		||||
	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"
 | 
			
		||||
	"github.com/usual2970/certimate/internal/pkg/utils/maps"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -23,19 +23,19 @@ func createNotifier(channel domain.NotifyChannelType, channelConfig map[string]a
 | 
			
		|||
	*/
 | 
			
		||||
	switch channel {
 | 
			
		||||
	case domain.NotifyChannelTypeBark:
 | 
			
		||||
		return providerBark.New(&providerBark.BarkNotifierConfig{
 | 
			
		||||
		return pBark.New(&pBark.BarkNotifierConfig{
 | 
			
		||||
			DeviceKey: maps.GetValueAsString(channelConfig, "deviceKey"),
 | 
			
		||||
			ServerUrl: maps.GetValueAsString(channelConfig, "serverUrl"),
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
	case domain.NotifyChannelTypeDingTalk:
 | 
			
		||||
		return providerDingTalk.New(&providerDingTalk.DingTalkNotifierConfig{
 | 
			
		||||
		return pDingTalk.New(&pDingTalk.DingTalkNotifierConfig{
 | 
			
		||||
			AccessToken: maps.GetValueAsString(channelConfig, "accessToken"),
 | 
			
		||||
			Secret:      maps.GetValueAsString(channelConfig, "secret"),
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
	case domain.NotifyChannelTypeEmail:
 | 
			
		||||
		return providerEmail.New(&providerEmail.EmailNotifierConfig{
 | 
			
		||||
		return pEmail.New(&pEmail.EmailNotifierConfig{
 | 
			
		||||
			SmtpHost:        maps.GetValueAsString(channelConfig, "smtpHost"),
 | 
			
		||||
			SmtpPort:        maps.GetValueAsInt32(channelConfig, "smtpPort"),
 | 
			
		||||
			SmtpTLS:         maps.GetValueOrDefaultAsBool(channelConfig, "smtpTLS", true),
 | 
			
		||||
| 
						 | 
				
			
			@ -46,28 +46,28 @@ func createNotifier(channel domain.NotifyChannelType, channelConfig map[string]a
 | 
			
		|||
		})
 | 
			
		||||
 | 
			
		||||
	case domain.NotifyChannelTypeLark:
 | 
			
		||||
		return providerLark.New(&providerLark.LarkNotifierConfig{
 | 
			
		||||
		return pLark.New(&pLark.LarkNotifierConfig{
 | 
			
		||||
			WebhookUrl: maps.GetValueAsString(channelConfig, "webhookUrl"),
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
	case domain.NotifyChannelTypeServerChan:
 | 
			
		||||
		return providerServerChan.New(&providerServerChan.ServerChanNotifierConfig{
 | 
			
		||||
		return pServerChan.New(&pServerChan.ServerChanNotifierConfig{
 | 
			
		||||
			Url: maps.GetValueAsString(channelConfig, "url"),
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
	case domain.NotifyChannelTypeTelegram:
 | 
			
		||||
		return providerTelegram.New(&providerTelegram.TelegramNotifierConfig{
 | 
			
		||||
		return pTelegram.New(&pTelegram.TelegramNotifierConfig{
 | 
			
		||||
			ApiToken: maps.GetValueAsString(channelConfig, "apiToken"),
 | 
			
		||||
			ChatId:   maps.GetValueAsInt64(channelConfig, "chatId"),
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
	case domain.NotifyChannelTypeWebhook:
 | 
			
		||||
		return providerWebhook.New(&providerWebhook.WebhookNotifierConfig{
 | 
			
		||||
		return pWebhook.New(&pWebhook.WebhookNotifierConfig{
 | 
			
		||||
			Url: maps.GetValueAsString(channelConfig, "url"),
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
	case domain.NotifyChannelTypeWeCom:
 | 
			
		||||
		return providerWeCom.New(&providerWeCom.WeComNotifierConfig{
 | 
			
		||||
		return pWeCom.New(&pWeCom.WeComNotifierConfig{
 | 
			
		||||
			WebhookUrl: maps.GetValueAsString(channelConfig, "webhookUrl"),
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
package baotapanelconsole
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"errors"
 | 
			
		||||
 | 
			
		||||
	xerrors "github.com/pkg/errors"
 | 
			
		||||
 | 
			
		||||
	"github.com/usual2970/certimate/internal/pkg/core/deployer"
 | 
			
		||||
	"github.com/usual2970/certimate/internal/pkg/core/logger"
 | 
			
		||||
	btsdk "github.com/usual2970/certimate/internal/pkg/vendors/btpanel-sdk"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type BaotaPanelConsoleDeployerConfig struct {
 | 
			
		||||
	// 宝塔面板地址。
 | 
			
		||||
	ApiUrl string `json:"apiUrl"`
 | 
			
		||||
	// 宝塔面板接口密钥。
 | 
			
		||||
	ApiKey string `json:"apiKey"`
 | 
			
		||||
	// 是否自动重启。
 | 
			
		||||
	AutoRestart bool `json:"autoRestart"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type BaotaPanelConsoleDeployer struct {
 | 
			
		||||
	config    *BaotaPanelConsoleDeployerConfig
 | 
			
		||||
	logger    logger.Logger
 | 
			
		||||
	sdkClient *btsdk.BaoTaPanelClient
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ deployer.Deployer = (*BaotaPanelConsoleDeployer)(nil)
 | 
			
		||||
 | 
			
		||||
func New(config *BaotaPanelConsoleDeployerConfig) (*BaotaPanelConsoleDeployer, error) {
 | 
			
		||||
	return NewWithLogger(config, logger.NewNilLogger())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewWithLogger(config *BaotaPanelConsoleDeployerConfig, logger logger.Logger) (*BaotaPanelConsoleDeployer, error) {
 | 
			
		||||
	if config == nil {
 | 
			
		||||
		return nil, errors.New("config is nil")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if logger == nil {
 | 
			
		||||
		return nil, errors.New("logger is nil")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	client, err := createSdkClient(config.ApiUrl, config.ApiKey)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, xerrors.Wrap(err, "failed to create sdk client")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &BaotaPanelConsoleDeployer{
 | 
			
		||||
		logger:    logger,
 | 
			
		||||
		config:    config,
 | 
			
		||||
		sdkClient: client,
 | 
			
		||||
	}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *BaotaPanelConsoleDeployer) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) {
 | 
			
		||||
	// 设置面板 SSL 证书
 | 
			
		||||
	configSavePanelSSLReq := &btsdk.ConfigSavePanelSSLRequest{
 | 
			
		||||
		PrivateKey:  privkeyPem,
 | 
			
		||||
		Certificate: certPem,
 | 
			
		||||
	}
 | 
			
		||||
	configSavePanelSSLResp, err := d.sdkClient.ConfigSavePanelSSL(configSavePanelSSLReq)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, xerrors.Wrap(err, "failed to execute sdk request 'bt.ConfigSavePanelSSL'")
 | 
			
		||||
	} else {
 | 
			
		||||
		d.logger.Logt("已设置面板 SSL 证书", configSavePanelSSLResp)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if d.config.AutoRestart {
 | 
			
		||||
		// 重启面板
 | 
			
		||||
		systemServiceAdminReq := &btsdk.SystemServiceAdminRequest{
 | 
			
		||||
			Name: "nginx",
 | 
			
		||||
			Type: "restart",
 | 
			
		||||
		}
 | 
			
		||||
		_, err := d.sdkClient.SystemServiceAdmin(systemServiceAdminReq)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, xerrors.Wrap(err, "failed to execute sdk request 'bt.SystemServiceAdmin'")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &deployer.DeployResult{}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func createSdkClient(apiUrl, apiKey string) (*btsdk.BaoTaPanelClient, error) {
 | 
			
		||||
	client := btsdk.NewBaoTaPanelClient(apiUrl, apiKey)
 | 
			
		||||
	return client, nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,70 @@
 | 
			
		|||
package baotapanelconsole_test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"flag"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"testing"
 | 
			
		||||
 | 
			
		||||
	provider "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/baotapanel-console"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	fInputCertPath string
 | 
			
		||||
	fInputKeyPath  string
 | 
			
		||||
	fApiUrl        string
 | 
			
		||||
	fApiKey        string
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	argsPrefix := "CERTIMATE_DEPLOYER_BAOTAPANELCONSOLE_"
 | 
			
		||||
 | 
			
		||||
	flag.StringVar(&fInputCertPath, argsPrefix+"INPUTCERTPATH", "", "")
 | 
			
		||||
	flag.StringVar(&fInputKeyPath, argsPrefix+"INPUTKEYPATH", "", "")
 | 
			
		||||
	flag.StringVar(&fApiUrl, argsPrefix+"APIURL", "", "")
 | 
			
		||||
	flag.StringVar(&fApiKey, argsPrefix+"APIKEY", "", "")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Shell command to run this test:
 | 
			
		||||
 | 
			
		||||
	go test -v ./baotapanel_console_test.go -args \
 | 
			
		||||
	--CERTIMATE_DEPLOYER_BAOTAPANELCONSOLE_INPUTCERTPATH="/path/to/your-input-cert.pem" \
 | 
			
		||||
	--CERTIMATE_DEPLOYER_BAOTAPANELCONSOLE_INPUTKEYPATH="/path/to/your-input-key.pem" \
 | 
			
		||||
	--CERTIMATE_DEPLOYER_BAOTAPANELCONSOLE_APIURL="your-baota-panel-url" \
 | 
			
		||||
	--CERTIMATE_DEPLOYER_BAOTAPANELCONSOLE_APIKEY="your-baota-panel-key"
 | 
			
		||||
*/
 | 
			
		||||
func TestDeploy(t *testing.T) {
 | 
			
		||||
	flag.Parse()
 | 
			
		||||
 | 
			
		||||
	t.Run("Deploy", func(t *testing.T) {
 | 
			
		||||
		t.Log(strings.Join([]string{
 | 
			
		||||
			"args:",
 | 
			
		||||
			fmt.Sprintf("INPUTCERTPATH: %v", fInputCertPath),
 | 
			
		||||
			fmt.Sprintf("INPUTKEYPATH: %v", fInputKeyPath),
 | 
			
		||||
			fmt.Sprintf("APIURL: %v", fApiUrl),
 | 
			
		||||
			fmt.Sprintf("APIKEY: %v", fApiKey),
 | 
			
		||||
		}, "\n"))
 | 
			
		||||
 | 
			
		||||
		deployer, err := provider.New(&provider.BaotaPanelConsoleDeployerConfig{
 | 
			
		||||
			ApiUrl: fApiUrl,
 | 
			
		||||
			ApiKey: fApiKey,
 | 
			
		||||
		})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Errorf("err: %+v", err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		fInputCertData, _ := os.ReadFile(fInputCertPath)
 | 
			
		||||
		fInputKeyData, _ := os.ReadFile(fInputKeyPath)
 | 
			
		||||
		res, err := deployer.Deploy(context.Background(), string(fInputCertData), string(fInputKeyData))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Errorf("err: %+v", err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		t.Logf("ok: %v", res)
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -59,19 +59,19 @@ func (d *BaotaPanelSiteDeployer) Deploy(ctx context.Context, certPem string, pri
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	// 设置站点 SSL 证书
 | 
			
		||||
	setSiteSSLReq := &btsdk.SetSiteSSLRequest{
 | 
			
		||||
		SiteName: d.config.SiteName,
 | 
			
		||||
		Type:     "1",
 | 
			
		||||
		Key:      privkeyPem,
 | 
			
		||||
		Csr:      certPem,
 | 
			
		||||
	siteSetSSLReq := &btsdk.SiteSetSSLRequest{
 | 
			
		||||
		SiteName:    d.config.SiteName,
 | 
			
		||||
		Type:        "1",
 | 
			
		||||
		PrivateKey:  privkeyPem,
 | 
			
		||||
		Certificate: certPem,
 | 
			
		||||
	}
 | 
			
		||||
	setSiteSSLResp, err := d.sdkClient.SetSiteSSL(setSiteSSLReq)
 | 
			
		||||
	siteSetSSLResp, err := d.sdkClient.SiteSetSSL(siteSetSSLReq)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, xerrors.Wrap(err, "failed to execute sdk request 'bt.SetSiteSSL'")
 | 
			
		||||
		return nil, xerrors.Wrap(err, "failed to execute sdk request 'bt.SiteSetSSL'")
 | 
			
		||||
	} else {
 | 
			
		||||
		d.logger.Logt("已设置站点 SSL 证书", siteSetSSLResp)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	d.logger.Logt("已设置站点 SSL 证书", setSiteSSLResp)
 | 
			
		||||
 | 
			
		||||
	return &deployer.DeployResult{}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,22 +5,44 @@ type BaseResponse interface {
 | 
			
		|||
	GetMsg() *string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SetSiteSSLRequest struct {
 | 
			
		||||
	Type     string `json:"type"`
 | 
			
		||||
	SiteName string `json:"siteName"`
 | 
			
		||||
	Key      string `json:"key"`
 | 
			
		||||
	Csr      string `json:"csr"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SetSiteSSLResponse struct {
 | 
			
		||||
type baseResponse struct {
 | 
			
		||||
	Status *bool   `json:"status,omitempty"`
 | 
			
		||||
	Msg    *string `json:"msg,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *SetSiteSSLResponse) GetStatus() *bool {
 | 
			
		||||
func (r *baseResponse) GetStatus() *bool {
 | 
			
		||||
	return r.Status
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *SetSiteSSLResponse) GetMsg() *string {
 | 
			
		||||
func (r *baseResponse) GetMsg() *string {
 | 
			
		||||
	return r.Msg
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ConfigSavePanelSSLRequest struct {
 | 
			
		||||
	PrivateKey  string `json:"privateKey"`
 | 
			
		||||
	Certificate string `json:"certPem"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ConfigSavePanelSSLResponse struct {
 | 
			
		||||
	baseResponse
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SiteSetSSLRequest struct {
 | 
			
		||||
	Type        string `json:"type"`
 | 
			
		||||
	SiteName    string `json:"siteName"`
 | 
			
		||||
	PrivateKey  string `json:"key"`
 | 
			
		||||
	Certificate string `json:"csr"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SiteSetSSLResponse struct {
 | 
			
		||||
	baseResponse
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SystemServiceAdminRequest struct {
 | 
			
		||||
	Name string `json:"name"`
 | 
			
		||||
	Type string `json:"type"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SystemServiceAdminResponse struct {
 | 
			
		||||
	baseResponse
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,12 +34,25 @@ func (c *BaoTaPanelClient) WithTimeout(timeout time.Duration) *BaoTaPanelClient
 | 
			
		|||
	return c
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *BaoTaPanelClient) SetSiteSSL(req *SetSiteSSLRequest) (*SetSiteSSLResponse, error) {
 | 
			
		||||
func (c *BaoTaPanelClient) ConfigSavePanelSSL(req *ConfigSavePanelSSLRequest) (*ConfigSavePanelSSLResponse, error) {
 | 
			
		||||
	params := make(map[string]any)
 | 
			
		||||
	jsonData, _ := json.Marshal(req)
 | 
			
		||||
	json.Unmarshal(jsonData, ¶ms)
 | 
			
		||||
 | 
			
		||||
	result := SetSiteSSLResponse{}
 | 
			
		||||
	result := ConfigSavePanelSSLResponse{}
 | 
			
		||||
	err := c.sendRequestWithResult("/config?action=SavePanelSSL", params, &result)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return &result, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *BaoTaPanelClient) SiteSetSSL(req *SiteSetSSLRequest) (*SiteSetSSLResponse, error) {
 | 
			
		||||
	params := make(map[string]any)
 | 
			
		||||
	jsonData, _ := json.Marshal(req)
 | 
			
		||||
	json.Unmarshal(jsonData, ¶ms)
 | 
			
		||||
 | 
			
		||||
	result := SiteSetSSLResponse{}
 | 
			
		||||
	err := c.sendRequestWithResult("/site?action=SetSSL", params, &result)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
| 
						 | 
				
			
			@ -47,6 +60,19 @@ func (c *BaoTaPanelClient) SetSiteSSL(req *SetSiteSSLRequest) (*SetSiteSSLRespon
 | 
			
		|||
	return &result, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *BaoTaPanelClient) SystemServiceAdmin(req *SystemServiceAdminRequest) (*SystemServiceAdminResponse, error) {
 | 
			
		||||
	params := make(map[string]any)
 | 
			
		||||
	jsonData, _ := json.Marshal(req)
 | 
			
		||||
	json.Unmarshal(jsonData, ¶ms)
 | 
			
		||||
 | 
			
		||||
	result := SystemServiceAdminResponse{}
 | 
			
		||||
	err := c.sendRequestWithResult("/system?action=ServiceAdmin", params, &result)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return &result, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *BaoTaPanelClient) generateSignature(timestamp string) string {
 | 
			
		||||
	keyMd5 := md5.Sum([]byte(c.apiKey))
 | 
			
		||||
	keyMd5Hex := strings.ToLower(hex.EncodeToString(keyMd5[:]))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,7 @@ import DeployNodeConfigFormAliyunOSSConfig from "./DeployNodeConfigFormAliyunOSS
 | 
			
		|||
import DeployNodeConfigFormAliyunWAFConfig from "./DeployNodeConfigFormAliyunWAFConfig";
 | 
			
		||||
import DeployNodeConfigFormAWSCloudFrontConfig from "./DeployNodeConfigFormAWSCloudFrontConfig";
 | 
			
		||||
import DeployNodeConfigFormBaiduCloudCDNConfig from "./DeployNodeConfigFormBaiduCloudCDNConfig";
 | 
			
		||||
import DeployNodeConfigFormBaotaPanelConsoleConfig from "./DeployNodeConfigFormBaotaPanelConsoleConfig";
 | 
			
		||||
import DeployNodeConfigFormBaotaPanelSiteConfig from "./DeployNodeConfigFormBaotaPanelSiteConfig";
 | 
			
		||||
import DeployNodeConfigFormBytePlusCDNConfig from "./DeployNodeConfigFormBytePlusCDNConfig";
 | 
			
		||||
import DeployNodeConfigFormDogeCloudCDNConfig from "./DeployNodeConfigFormDogeCloudCDNConfig";
 | 
			
		||||
| 
						 | 
				
			
			@ -150,6 +151,8 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
 | 
			
		|||
          return <DeployNodeConfigFormAWSCloudFrontConfig {...nestedFormProps} />;
 | 
			
		||||
        case DEPLOY_PROVIDERS.BAIDUCLOUD_CDN:
 | 
			
		||||
          return <DeployNodeConfigFormBaiduCloudCDNConfig {...nestedFormProps} />;
 | 
			
		||||
        case DEPLOY_PROVIDERS.BAOTAPANEL_CONSOLE:
 | 
			
		||||
          return <DeployNodeConfigFormBaotaPanelConsoleConfig {...nestedFormProps} />;
 | 
			
		||||
        case DEPLOY_PROVIDERS.BAOTAPANEL_SITE:
 | 
			
		||||
          return <DeployNodeConfigFormBaotaPanelSiteConfig {...nestedFormProps} />;
 | 
			
		||||
        case DEPLOY_PROVIDERS.BYTEPLUS_CDN:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,56 @@
 | 
			
		|||
import { useTranslation } from "react-i18next";
 | 
			
		||||
import { Form, type FormInstance, Switch } from "antd";
 | 
			
		||||
import { createSchemaFieldRule } from "antd-zod";
 | 
			
		||||
import { z } from "zod";
 | 
			
		||||
 | 
			
		||||
type DeployNodeConfigFormBaotaPanelConsoleConfigFieldValues = Nullish<{
 | 
			
		||||
  autoRestart?: boolean;
 | 
			
		||||
}>;
 | 
			
		||||
 | 
			
		||||
export type DeployNodeConfigFormBaotaPanelConsoleConfigProps = {
 | 
			
		||||
  form: FormInstance;
 | 
			
		||||
  formName: string;
 | 
			
		||||
  disabled?: boolean;
 | 
			
		||||
  initialValues?: DeployNodeConfigFormBaotaPanelConsoleConfigFieldValues;
 | 
			
		||||
  onValuesChange?: (values: DeployNodeConfigFormBaotaPanelConsoleConfigFieldValues) => void;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const initFormModel = (): DeployNodeConfigFormBaotaPanelConsoleConfigFieldValues => {
 | 
			
		||||
  return {};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const DeployNodeConfigFormBaotaPanelConsoleConfig = ({
 | 
			
		||||
  form: formInst,
 | 
			
		||||
  formName,
 | 
			
		||||
  disabled,
 | 
			
		||||
  initialValues,
 | 
			
		||||
  onValuesChange,
 | 
			
		||||
}: DeployNodeConfigFormBaotaPanelConsoleConfigProps) => {
 | 
			
		||||
  const { t } = useTranslation();
 | 
			
		||||
 | 
			
		||||
  const formSchema = z.object({
 | 
			
		||||
    autoRestart: z.boolean().nullish(),
 | 
			
		||||
  });
 | 
			
		||||
  const formRule = createSchemaFieldRule(formSchema);
 | 
			
		||||
 | 
			
		||||
  const handleFormChange = (_: unknown, values: z.infer<typeof formSchema>) => {
 | 
			
		||||
    onValuesChange?.(values);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <Form
 | 
			
		||||
      form={formInst}
 | 
			
		||||
      disabled={disabled}
 | 
			
		||||
      initialValues={initialValues ?? initFormModel()}
 | 
			
		||||
      layout="vertical"
 | 
			
		||||
      name={formName}
 | 
			
		||||
      onValuesChange={handleFormChange}
 | 
			
		||||
    >
 | 
			
		||||
      <Form.Item name="autoRestart" label={t("workflow_node.deploy.form.baotapanel_console_auto_restart.label")} rules={[formRule]}>
 | 
			
		||||
        <Switch />
 | 
			
		||||
      </Form.Item>
 | 
			
		||||
    </Form>
 | 
			
		||||
  );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default DeployNodeConfigFormBaotaPanelConsoleConfig;
 | 
			
		||||
| 
						 | 
				
			
			@ -188,6 +188,7 @@ export const DEPLOY_PROVIDERS = Object.freeze({
 | 
			
		|||
  ALIYUN_WAF: `${ACCESS_PROVIDERS.ALIYUN}-waf`,
 | 
			
		||||
  AWS_CLOUDFRONT: `${ACCESS_PROVIDERS.AWS}-cloudfront`,
 | 
			
		||||
  BAIDUCLOUD_CDN: `${ACCESS_PROVIDERS.BAIDUCLOUD}-cdn`,
 | 
			
		||||
  BAOTAPANEL_CONSOLE: `${ACCESS_PROVIDERS.BAOTAPANEL}-console`,
 | 
			
		||||
  BAOTAPANEL_SITE: `${ACCESS_PROVIDERS.BAOTAPANEL}-site`,
 | 
			
		||||
  BYTEPLUS_CDN: `${ACCESS_PROVIDERS.BYTEPLUS}-cdn`,
 | 
			
		||||
  DOGECLOUD_CDN: `${ACCESS_PROVIDERS.DOGECLOUD}-cdn`,
 | 
			
		||||
| 
						 | 
				
			
			@ -283,6 +284,7 @@ export const deployProvidersMap: Map<DeployProvider["type"] | string, DeployProv
 | 
			
		|||
    [DEPLOY_PROVIDERS.UCLOUD_US3, "provider.ucloud.us3", DEPLOY_CATEGORIES.STORAGE],
 | 
			
		||||
    [DEPLOY_PROVIDERS.UCLOUD_UCDN, "provider.ucloud.ucdn", DEPLOY_CATEGORIES.CDN],
 | 
			
		||||
    [DEPLOY_PROVIDERS.AWS_CLOUDFRONT, "provider.aws.cloudfront", DEPLOY_CATEGORIES.CDN],
 | 
			
		||||
    [DEPLOY_PROVIDERS.BAOTAPANEL_CONSOLE, "provider.baotapanel.console", DEPLOY_CATEGORIES.OTHER],
 | 
			
		||||
    [DEPLOY_PROVIDERS.BAOTAPANEL_SITE, "provider.baotapanel.site", DEPLOY_CATEGORIES.WEBSITE],
 | 
			
		||||
    [DEPLOY_PROVIDERS.EDGIO_APPLICATIONS, "provider.edgio.applications", DEPLOY_CATEGORIES.WEBSITE],
 | 
			
		||||
  ].map(([type, name, category]) => [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,7 @@
 | 
			
		|||
  "provider.baishan": "Baishan",
 | 
			
		||||
  "provider.baishan.cdn": "Baishan - CDN (Content Delivery Network)",
 | 
			
		||||
  "provider.baotapanel": "BaoTa Panel",
 | 
			
		||||
  "provider.baotapanel.console": "BaoTa Panel - Console",
 | 
			
		||||
  "provider.baotapanel.site": "BaoTa Panel - Site",
 | 
			
		||||
  "provider.byteplus": "BytePlus",
 | 
			
		||||
  "provider.byteplus.cdn": "BytePlus - CDN (Content Delivery Network)",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -190,6 +190,7 @@
 | 
			
		|||
  "workflow_node.deploy.form.baiducloud_cdn_domain.label": "Baidu Cloud CDN domain",
 | 
			
		||||
  "workflow_node.deploy.form.baiducloud_cdn_domain.placeholder": "Please enter Baidu Cloud CDN domain name",
 | 
			
		||||
  "workflow_node.deploy.form.baiducloud_cdn_domain.tooltip": "For more information, see <a href=\"https://console.bce.baidu.com/cdn\" target=\"_blank\">https://console.bce.baidu.com/cdn</a>",
 | 
			
		||||
  "workflow_node.deploy.form.baotapanel_console_auto_restart.label": "Auto restart after deployment",
 | 
			
		||||
  "workflow_node.deploy.form.baotapanel_site_name.label": "BaoTa Panel site name",
 | 
			
		||||
  "workflow_node.deploy.form.baotapanel_site_name.placeholder": "Please enter BaoTa Panel site name",
 | 
			
		||||
  "workflow_node.deploy.form.baotapanel_site_name.tooltip": "Usually equal to the website domain name.",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,7 @@
 | 
			
		|||
  "provider.baishan": "白山云",
 | 
			
		||||
  "provider.baishan.cdn": "白山云 - 内容分发网络 CDN",
 | 
			
		||||
  "provider.baotapanel": "宝塔面板",
 | 
			
		||||
  "provider.baotapanel.console": "宝塔面板 - 面板",
 | 
			
		||||
  "provider.baotapanel.site": "宝塔面板 - 网站",
 | 
			
		||||
  "provider.byteplus": "BytePlus",
 | 
			
		||||
  "provider.byteplus.cdn": "BytePlus - 内容分发网络 CDN",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -190,6 +190,7 @@
 | 
			
		|||
  "workflow_node.deploy.form.baiducloud_cdn_domain.label": "百度智能云 CDN 加速域名(支持泛域名)",
 | 
			
		||||
  "workflow_node.deploy.form.baiducloud_cdn_domain.placeholder": "请输入百度智能云 CDN 加速域名",
 | 
			
		||||
  "workflow_node.deploy.form.baiducloud_cdn_domain.tooltip": "这是什么?请参阅 <a href=\"https://console.bce.baidu.com/cdn\" target=\"_blank\">https://console.bce.baidu.com/cdn</a><br><br>泛域名表示形式为:*.example.com",
 | 
			
		||||
  "workflow_node.deploy.form.baotapanel_console_auto_restart.label": "部署后自动重启面板服务",
 | 
			
		||||
  "workflow_node.deploy.form.baotapanel_site_name.label": "宝塔面板网站名称",
 | 
			
		||||
  "workflow_node.deploy.form.baotapanel_site_name.placeholder": "请输入宝塔面板网站名称",
 | 
			
		||||
  "workflow_node.deploy.form.baotapanel_site_name.tooltip": "通常为网站域名。",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue