refactor: clean code

This commit is contained in:
Fu Diwei 2025-04-24 21:04:55 +08:00
parent 7478dd7f47
commit 794695c313
25 changed files with 616 additions and 613 deletions

View File

@ -3,12 +3,12 @@ package applicant
import "github.com/usual2970/certimate/internal/domain" import "github.com/usual2970/certimate/internal/domain"
const ( const (
sslProviderLetsEncrypt = string(domain.ApplyCAProviderTypeLetsEncrypt) sslProviderLetsEncrypt = string(domain.CAProviderTypeLetsEncrypt)
sslProviderLetsEncryptStaging = string(domain.ApplyCAProviderTypeLetsEncryptStaging) sslProviderLetsEncryptStaging = string(domain.CAProviderTypeLetsEncryptStaging)
sslProviderBuypass = string(domain.ApplyCAProviderTypeBuypass) sslProviderBuypass = string(domain.CAProviderTypeBuypass)
sslProviderGoogleTrustServices = string(domain.ApplyCAProviderTypeGoogleTrustServices) sslProviderGoogleTrustServices = string(domain.CAProviderTypeGoogleTrustServices)
sslProviderSSLCom = string(domain.ApplyCAProviderTypeSSLCom) sslProviderSSLCom = string(domain.CAProviderTypeSSLCom)
sslProviderZeroSSL = string(domain.ApplyCAProviderTypeZeroSSL) sslProviderZeroSSL = string(domain.CAProviderTypeZeroSSL)
sslProviderDefault = sslProviderLetsEncrypt sslProviderDefault = sslProviderLetsEncrypt
) )
@ -25,6 +25,6 @@ var sslProviderUrls = map[string]string{
} }
type acmeSSLProviderConfig struct { type acmeSSLProviderConfig struct {
Config map[domain.ApplyCAProviderType]map[string]any `json:"config"` Config map[domain.CAProviderType]map[string]any `json:"config"`
Provider string `json:"provider"` Provider string `json:"provider"`
} }

View File

@ -54,10 +54,10 @@ func NewWithWorkflowNode(config ApplicantWithWorkflowNodeConfig) (Applicant, err
options := &applicantProviderOptions{ options := &applicantProviderOptions{
Domains: sliceutil.Filter(strings.Split(nodeConfig.Domains, ";"), func(s string) bool { return s != "" }), Domains: sliceutil.Filter(strings.Split(nodeConfig.Domains, ";"), func(s string) bool { return s != "" }),
ContactEmail: nodeConfig.ContactEmail, ContactEmail: nodeConfig.ContactEmail,
Provider: domain.ApplyDNSProviderType(nodeConfig.Provider), Provider: domain.AcmeDns01ProviderType(nodeConfig.Provider),
ProviderAccessConfig: make(map[string]any), ProviderAccessConfig: make(map[string]any),
ProviderExtendedConfig: nodeConfig.ProviderConfig, ProviderExtendedConfig: nodeConfig.ProviderConfig,
CAProvider: domain.ApplyCAProviderType(nodeConfig.CAProvider), CAProvider: domain.CAProviderType(nodeConfig.CAProvider),
CAProviderAccessConfig: make(map[string]any), CAProviderAccessConfig: make(map[string]any),
CAProviderExtendedConfig: nodeConfig.CAProviderConfig, CAProviderExtendedConfig: nodeConfig.CAProviderConfig,
KeyAlgorithm: nodeConfig.KeyAlgorithm, KeyAlgorithm: nodeConfig.KeyAlgorithm,
@ -88,7 +88,7 @@ func NewWithWorkflowNode(config ApplicantWithWorkflowNodeConfig) (Applicant, err
settings, _ := settingsRepo.GetByName(context.Background(), "sslProvider") settings, _ := settingsRepo.GetByName(context.Background(), "sslProvider")
sslProviderConfig := &acmeSSLProviderConfig{ sslProviderConfig := &acmeSSLProviderConfig{
Config: make(map[domain.ApplyCAProviderType]map[string]any), Config: make(map[domain.CAProviderType]map[string]any),
Provider: sslProviderDefault, Provider: sslProviderDefault,
} }
if settings != nil { if settings != nil {
@ -99,7 +99,7 @@ func NewWithWorkflowNode(config ApplicantWithWorkflowNodeConfig) (Applicant, err
} }
} }
options.CAProvider = domain.ApplyCAProviderType(sslProviderConfig.Provider) options.CAProvider = domain.CAProviderType(sslProviderConfig.Provider)
options.CAProviderAccessConfig = sslProviderConfig.Config[options.CAProvider] options.CAProviderAccessConfig = sslProviderConfig.Config[options.CAProvider]
} }

View File

@ -41,10 +41,10 @@ import (
type applicantProviderOptions struct { type applicantProviderOptions struct {
Domains []string Domains []string
ContactEmail string ContactEmail string
Provider domain.ApplyDNSProviderType Provider domain.AcmeDns01ProviderType
ProviderAccessConfig map[string]any ProviderAccessConfig map[string]any
ProviderExtendedConfig map[string]any ProviderExtendedConfig map[string]any
CAProvider domain.ApplyCAProviderType CAProvider domain.CAProviderType
CAProviderAccessConfig map[string]any CAProviderAccessConfig map[string]any
CAProviderExtendedConfig map[string]any CAProviderExtendedConfig map[string]any
KeyAlgorithm string KeyAlgorithm string
@ -62,7 +62,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
switch options.Provider { switch options.Provider {
case domain.ApplyDNSProviderTypeACMEHttpReq: case domain.AcmeDns01ProviderTypeACMEHttpReq:
{ {
access := domain.AccessConfigForACMEHttpReq{} access := domain.AccessConfigForACMEHttpReq{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -79,7 +79,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeAliyun, domain.ApplyDNSProviderTypeAliyunDNS: case domain.AcmeDns01ProviderTypeAliyun, domain.AcmeDns01ProviderTypeAliyunDNS:
{ {
access := domain.AccessConfigForAliyun{} access := domain.AccessConfigForAliyun{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -95,7 +95,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeAWS, domain.ApplyDNSProviderTypeAWSRoute53: case domain.AcmeDns01ProviderTypeAWS, domain.AcmeDns01ProviderTypeAWSRoute53:
{ {
access := domain.AccessConfigForAWS{} access := domain.AccessConfigForAWS{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -113,7 +113,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeAzure, domain.ApplyDNSProviderTypeAzureDNS: case domain.AcmeDns01ProviderTypeAzure, domain.AcmeDns01ProviderTypeAzureDNS:
{ {
access := domain.AccessConfigForAzure{} access := domain.AccessConfigForAzure{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -131,7 +131,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeBaiduCloud, domain.ApplyDNSProviderTypeBaiduCloudDNS: case domain.AcmeDns01ProviderTypeBaiduCloud, domain.AcmeDns01ProviderTypeBaiduCloudDNS:
{ {
access := domain.AccessConfigForBaiduCloud{} access := domain.AccessConfigForBaiduCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -147,7 +147,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeBunny: case domain.AcmeDns01ProviderTypeBunny:
{ {
access := domain.AccessConfigForBunny{} access := domain.AccessConfigForBunny{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -162,7 +162,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeCloudflare: case domain.AcmeDns01ProviderTypeCloudflare:
{ {
access := domain.AccessConfigForCloudflare{} access := domain.AccessConfigForCloudflare{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -178,7 +178,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeClouDNS: case domain.AcmeDns01ProviderTypeClouDNS:
{ {
access := domain.AccessConfigForClouDNS{} access := domain.AccessConfigForClouDNS{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -194,7 +194,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeCMCCCloud: case domain.AcmeDns01ProviderTypeCMCCCloud:
{ {
access := domain.AccessConfigForCMCCCloud{} access := domain.AccessConfigForCMCCCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -210,7 +210,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeDeSEC: case domain.AcmeDns01ProviderTypeDeSEC:
{ {
access := domain.AccessConfigForDeSEC{} access := domain.AccessConfigForDeSEC{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -225,7 +225,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeDNSLA: case domain.AcmeDns01ProviderTypeDNSLA:
{ {
access := domain.AccessConfigForDNSLA{} access := domain.AccessConfigForDNSLA{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -241,7 +241,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeDynv6: case domain.AcmeDns01ProviderTypeDynv6:
{ {
access := domain.AccessConfigForDynv6{} access := domain.AccessConfigForDynv6{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -256,7 +256,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeGcore: case domain.AcmeDns01ProviderTypeGcore:
{ {
access := domain.AccessConfigForGcore{} access := domain.AccessConfigForGcore{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -271,7 +271,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeGname: case domain.AcmeDns01ProviderTypeGname:
{ {
access := domain.AccessConfigForGname{} access := domain.AccessConfigForGname{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -287,7 +287,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeGoDaddy: case domain.AcmeDns01ProviderTypeGoDaddy:
{ {
access := domain.AccessConfigForGoDaddy{} access := domain.AccessConfigForGoDaddy{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -303,7 +303,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeHuaweiCloud, domain.ApplyDNSProviderTypeHuaweiCloudDNS: case domain.AcmeDns01ProviderTypeHuaweiCloud, domain.AcmeDns01ProviderTypeHuaweiCloudDNS:
{ {
access := domain.AccessConfigForHuaweiCloud{} access := domain.AccessConfigForHuaweiCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -320,7 +320,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeJDCloud, domain.ApplyDNSProviderTypeJDCloudDNS: case domain.AcmeDns01ProviderTypeJDCloud, domain.AcmeDns01ProviderTypeJDCloudDNS:
{ {
access := domain.AccessConfigForJDCloud{} access := domain.AccessConfigForJDCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -337,7 +337,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeNamecheap: case domain.AcmeDns01ProviderTypeNamecheap:
{ {
access := domain.AccessConfigForNamecheap{} access := domain.AccessConfigForNamecheap{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -353,7 +353,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeNameDotCom: case domain.AcmeDns01ProviderTypeNameDotCom:
{ {
access := domain.AccessConfigForNameDotCom{} access := domain.AccessConfigForNameDotCom{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -369,7 +369,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeNameSilo: case domain.AcmeDns01ProviderTypeNameSilo:
{ {
access := domain.AccessConfigForNameSilo{} access := domain.AccessConfigForNameSilo{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -384,7 +384,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeNS1: case domain.AcmeDns01ProviderTypeNS1:
{ {
access := domain.AccessConfigForNS1{} access := domain.AccessConfigForNS1{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -399,7 +399,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypePorkbun: case domain.AcmeDns01ProviderTypePorkbun:
{ {
access := domain.AccessConfigForPorkbun{} access := domain.AccessConfigForPorkbun{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -415,7 +415,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypePowerDNS: case domain.AcmeDns01ProviderTypePowerDNS:
{ {
access := domain.AccessConfigForPowerDNS{} access := domain.AccessConfigForPowerDNS{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -431,7 +431,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeRainYun: case domain.AcmeDns01ProviderTypeRainYun:
{ {
access := domain.AccessConfigForRainYun{} access := domain.AccessConfigForRainYun{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -446,7 +446,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeTencentCloud, domain.ApplyDNSProviderTypeTencentCloudDNS, domain.ApplyDNSProviderTypeTencentCloudEO: case domain.AcmeDns01ProviderTypeTencentCloud, domain.AcmeDns01ProviderTypeTencentCloudDNS, domain.AcmeDns01ProviderTypeTencentCloudEO:
{ {
access := domain.AccessConfigForTencentCloud{} access := domain.AccessConfigForTencentCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -454,7 +454,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
} }
switch options.Provider { switch options.Provider {
case domain.ApplyDNSProviderTypeTencentCloud, domain.ApplyDNSProviderTypeTencentCloudDNS: case domain.AcmeDns01ProviderTypeTencentCloud, domain.AcmeDns01ProviderTypeTencentCloudDNS:
applicant, err := pTencentCloud.NewChallengeProvider(&pTencentCloud.ChallengeProviderConfig{ applicant, err := pTencentCloud.NewChallengeProvider(&pTencentCloud.ChallengeProviderConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -463,7 +463,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
}) })
return applicant, err return applicant, err
case domain.ApplyDNSProviderTypeTencentCloudEO: case domain.AcmeDns01ProviderTypeTencentCloudEO:
applicant, err := pTencentCloudEO.NewChallengeProvider(&pTencentCloudEO.ChallengeProviderConfig{ applicant, err := pTencentCloudEO.NewChallengeProvider(&pTencentCloudEO.ChallengeProviderConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -478,7 +478,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
} }
} }
case domain.ApplyDNSProviderTypeVercel: case domain.AcmeDns01ProviderTypeVercel:
{ {
access := domain.AccessConfigForVercel{} access := domain.AccessConfigForVercel{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -494,7 +494,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeVolcEngine, domain.ApplyDNSProviderTypeVolcEngineDNS: case domain.AcmeDns01ProviderTypeVolcEngine, domain.AcmeDns01ProviderTypeVolcEngineDNS:
{ {
access := domain.AccessConfigForVolcEngine{} access := domain.AccessConfigForVolcEngine{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -510,7 +510,7 @@ func createApplicantProvider(options *applicantProviderOptions) (challenge.Provi
return applicant, err return applicant, err
} }
case domain.ApplyDNSProviderTypeWestcn: case domain.AcmeDns01ProviderTypeWestcn:
{ {
access := domain.AccessConfigForWestcn{} access := domain.AccessConfigForWestcn{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {

View File

@ -31,7 +31,7 @@ func NewWithWorkflowNode(config DeployerWithWorkflowNodeConfig) (Deployer, error
nodeConfig := config.Node.GetConfigForDeploy() nodeConfig := config.Node.GetConfigForDeploy()
options := &deployerProviderOptions{ options := &deployerProviderOptions{
Provider: domain.DeployProviderType(nodeConfig.Provider), Provider: domain.DeploymentProviderType(nodeConfig.Provider),
ProviderAccessConfig: make(map[string]any), ProviderAccessConfig: make(map[string]any),
ProviderDeployConfig: nodeConfig.ProviderConfig, ProviderDeployConfig: nodeConfig.ProviderConfig,
} }

View File

@ -83,7 +83,7 @@ import (
) )
type deployerProviderOptions struct { type deployerProviderOptions struct {
Provider domain.DeployProviderType Provider domain.DeploymentProviderType
ProviderAccessConfig map[string]any ProviderAccessConfig map[string]any
ProviderDeployConfig map[string]any ProviderDeployConfig map[string]any
} }
@ -94,7 +94,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
switch options.Provider { switch options.Provider {
case domain.DeployProviderType1PanelConsole, domain.DeployProviderType1PanelSite: case domain.DeploymentProviderType1PanelConsole, domain.DeploymentProviderType1PanelSite:
{ {
access := domain.AccessConfigFor1Panel{} access := domain.AccessConfigFor1Panel{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -102,7 +102,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderType1PanelConsole: case domain.DeploymentProviderType1PanelConsole:
deployer, err := p1PanelConsole.NewDeployer(&p1PanelConsole.DeployerConfig{ deployer, err := p1PanelConsole.NewDeployer(&p1PanelConsole.DeployerConfig{
ApiUrl: access.ApiUrl, ApiUrl: access.ApiUrl,
ApiKey: access.ApiKey, ApiKey: access.ApiKey,
@ -111,7 +111,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderType1PanelSite: case domain.DeploymentProviderType1PanelSite:
deployer, err := p1PanelSite.NewDeployer(&p1PanelSite.DeployerConfig{ deployer, err := p1PanelSite.NewDeployer(&p1PanelSite.DeployerConfig{
ApiUrl: access.ApiUrl, ApiUrl: access.ApiUrl,
ApiKey: access.ApiKey, ApiKey: access.ApiKey,
@ -127,7 +127,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeAliyunALB, domain.DeployProviderTypeAliyunAPIGW, domain.DeployProviderTypeAliyunCAS, domain.DeployProviderTypeAliyunCASDeploy, domain.DeployProviderTypeAliyunCDN, domain.DeployProviderTypeAliyunCLB, domain.DeployProviderTypeAliyunDCDN, domain.DeployProviderTypeAliyunESA, domain.DeployProviderTypeAliyunFC, domain.DeployProviderTypeAliyunLive, domain.DeployProviderTypeAliyunNLB, domain.DeployProviderTypeAliyunOSS, domain.DeployProviderTypeAliyunVOD, domain.DeployProviderTypeAliyunWAF: case domain.DeploymentProviderTypeAliyunALB, domain.DeploymentProviderTypeAliyunAPIGW, domain.DeploymentProviderTypeAliyunCAS, domain.DeploymentProviderTypeAliyunCASDeploy, domain.DeploymentProviderTypeAliyunCDN, domain.DeploymentProviderTypeAliyunCLB, domain.DeploymentProviderTypeAliyunDCDN, domain.DeploymentProviderTypeAliyunESA, domain.DeploymentProviderTypeAliyunFC, domain.DeploymentProviderTypeAliyunLive, domain.DeploymentProviderTypeAliyunNLB, domain.DeploymentProviderTypeAliyunOSS, domain.DeploymentProviderTypeAliyunVOD, domain.DeploymentProviderTypeAliyunWAF:
{ {
access := domain.AccessConfigForAliyun{} access := domain.AccessConfigForAliyun{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -135,7 +135,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeAliyunALB: case domain.DeploymentProviderTypeAliyunALB:
deployer, err := pAliyunALB.NewDeployer(&pAliyunALB.DeployerConfig{ deployer, err := pAliyunALB.NewDeployer(&pAliyunALB.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -147,7 +147,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunAPIGW: case domain.DeploymentProviderTypeAliyunAPIGW:
deployer, err := pAliyunAPIGW.NewDeployer(&pAliyunAPIGW.DeployerConfig{ deployer, err := pAliyunAPIGW.NewDeployer(&pAliyunAPIGW.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -159,7 +159,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunCAS: case domain.DeploymentProviderTypeAliyunCAS:
deployer, err := pAliyunCAS.NewDeployer(&pAliyunCAS.DeployerConfig{ deployer, err := pAliyunCAS.NewDeployer(&pAliyunCAS.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -167,7 +167,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunCASDeploy: case domain.DeploymentProviderTypeAliyunCASDeploy:
deployer, err := pAliyunCASDeploy.NewDeployer(&pAliyunCASDeploy.DeployerConfig{ deployer, err := pAliyunCASDeploy.NewDeployer(&pAliyunCASDeploy.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -177,7 +177,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunCDN: case domain.DeploymentProviderTypeAliyunCDN:
deployer, err := pAliyunCDN.NewDeployer(&pAliyunCDN.DeployerConfig{ deployer, err := pAliyunCDN.NewDeployer(&pAliyunCDN.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -185,7 +185,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunCLB: case domain.DeploymentProviderTypeAliyunCLB:
deployer, err := pAliyunCLB.NewDeployer(&pAliyunCLB.DeployerConfig{ deployer, err := pAliyunCLB.NewDeployer(&pAliyunCLB.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -197,7 +197,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunDCDN: case domain.DeploymentProviderTypeAliyunDCDN:
deployer, err := pAliyunDCDN.NewDeployer(&pAliyunDCDN.DeployerConfig{ deployer, err := pAliyunDCDN.NewDeployer(&pAliyunDCDN.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -205,7 +205,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunESA: case domain.DeploymentProviderTypeAliyunESA:
deployer, err := pAliyunESA.NewDeployer(&pAliyunESA.DeployerConfig{ deployer, err := pAliyunESA.NewDeployer(&pAliyunESA.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -214,7 +214,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunFC: case domain.DeploymentProviderTypeAliyunFC:
deployer, err := pAliyunFC.NewDeployer(&pAliyunFC.DeployerConfig{ deployer, err := pAliyunFC.NewDeployer(&pAliyunFC.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -224,7 +224,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunLive: case domain.DeploymentProviderTypeAliyunLive:
deployer, err := pAliyunLive.NewDeployer(&pAliyunLive.DeployerConfig{ deployer, err := pAliyunLive.NewDeployer(&pAliyunLive.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -233,7 +233,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunNLB: case domain.DeploymentProviderTypeAliyunNLB:
deployer, err := pAliyunNLB.NewDeployer(&pAliyunNLB.DeployerConfig{ deployer, err := pAliyunNLB.NewDeployer(&pAliyunNLB.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -244,7 +244,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunOSS: case domain.DeploymentProviderTypeAliyunOSS:
deployer, err := pAliyunOSS.NewDeployer(&pAliyunOSS.DeployerConfig{ deployer, err := pAliyunOSS.NewDeployer(&pAliyunOSS.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -254,7 +254,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunVOD: case domain.DeploymentProviderTypeAliyunVOD:
deployer, err := pAliyunVOD.NewDeployer(&pAliyunVOD.DeployerConfig{ deployer, err := pAliyunVOD.NewDeployer(&pAliyunVOD.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -263,7 +263,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAliyunWAF: case domain.DeploymentProviderTypeAliyunWAF:
deployer, err := pAliyunWAF.NewDeployer(&pAliyunWAF.DeployerConfig{ deployer, err := pAliyunWAF.NewDeployer(&pAliyunWAF.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -279,7 +279,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeAWSACM, domain.DeployProviderTypeAWSCloudFront: case domain.DeploymentProviderTypeAWSACM, domain.DeploymentProviderTypeAWSCloudFront:
{ {
access := domain.AccessConfigForAWS{} access := domain.AccessConfigForAWS{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -287,7 +287,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeAWSACM: case domain.DeploymentProviderTypeAWSACM:
deployer, err := pAWSACM.NewDeployer(&pAWSACM.DeployerConfig{ deployer, err := pAWSACM.NewDeployer(&pAWSACM.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
@ -295,7 +295,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeAWSCloudFront: case domain.DeploymentProviderTypeAWSCloudFront:
deployer, err := pAWSCloudFront.NewDeployer(&pAWSCloudFront.DeployerConfig{ deployer, err := pAWSCloudFront.NewDeployer(&pAWSCloudFront.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
@ -309,7 +309,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeAzureKeyVault: case domain.DeploymentProviderTypeAzureKeyVault:
{ {
access := domain.AccessConfigForAzure{} access := domain.AccessConfigForAzure{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -317,7 +317,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeAzureKeyVault: case domain.DeploymentProviderTypeAzureKeyVault:
deployer, err := pAzureKeyVault.NewDeployer(&pAzureKeyVault.DeployerConfig{ deployer, err := pAzureKeyVault.NewDeployer(&pAzureKeyVault.DeployerConfig{
TenantId: access.TenantId, TenantId: access.TenantId,
ClientId: access.ClientId, ClientId: access.ClientId,
@ -333,7 +333,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeBaiduCloudAppBLB, domain.DeployProviderTypeBaiduCloudBLB, domain.DeployProviderTypeBaiduCloudCDN, domain.DeployProviderTypeBaiduCloudCert: case domain.DeploymentProviderTypeBaiduCloudAppBLB, domain.DeploymentProviderTypeBaiduCloudBLB, domain.DeploymentProviderTypeBaiduCloudCDN, domain.DeploymentProviderTypeBaiduCloudCert:
{ {
access := domain.AccessConfigForBaiduCloud{} access := domain.AccessConfigForBaiduCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -341,7 +341,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeBaiduCloudAppBLB: case domain.DeploymentProviderTypeBaiduCloudAppBLB:
deployer, err := pBaiduCloudAppBLB.NewDeployer(&pBaiduCloudAppBLB.DeployerConfig{ deployer, err := pBaiduCloudAppBLB.NewDeployer(&pBaiduCloudAppBLB.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
@ -353,7 +353,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeBaiduCloudBLB: case domain.DeploymentProviderTypeBaiduCloudBLB:
deployer, err := pBaiduCloudBLB.NewDeployer(&pBaiduCloudBLB.DeployerConfig{ deployer, err := pBaiduCloudBLB.NewDeployer(&pBaiduCloudBLB.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
@ -365,7 +365,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeBaiduCloudCDN: case domain.DeploymentProviderTypeBaiduCloudCDN:
deployer, err := pBaiduCloudCDN.NewDeployer(&pBaiduCloudCDN.DeployerConfig{ deployer, err := pBaiduCloudCDN.NewDeployer(&pBaiduCloudCDN.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
@ -373,7 +373,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeBaiduCloudCert: case domain.DeploymentProviderTypeBaiduCloudCert:
deployer, err := pBaiduCloudCert.NewDeployer(&pBaiduCloudCert.DeployerConfig{ deployer, err := pBaiduCloudCert.NewDeployer(&pBaiduCloudCert.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
@ -385,7 +385,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeBaishanCDN: case domain.DeploymentProviderTypeBaishanCDN:
{ {
access := domain.AccessConfigForBaishan{} access := domain.AccessConfigForBaishan{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -393,7 +393,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeBaishanCDN: case domain.DeploymentProviderTypeBaishanCDN:
deployer, err := pBaishanCDN.NewDeployer(&pBaishanCDN.DeployerConfig{ deployer, err := pBaishanCDN.NewDeployer(&pBaishanCDN.DeployerConfig{
ApiToken: access.ApiToken, ApiToken: access.ApiToken,
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"), Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
@ -406,7 +406,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeBaotaPanelConsole, domain.DeployProviderTypeBaotaPanelSite: case domain.DeploymentProviderTypeBaotaPanelConsole, domain.DeploymentProviderTypeBaotaPanelSite:
{ {
access := domain.AccessConfigForBaotaPanel{} access := domain.AccessConfigForBaotaPanel{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -414,7 +414,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeBaotaPanelConsole: case domain.DeploymentProviderTypeBaotaPanelConsole:
deployer, err := pBaotaPanelConsole.NewDeployer(&pBaotaPanelConsole.DeployerConfig{ deployer, err := pBaotaPanelConsole.NewDeployer(&pBaotaPanelConsole.DeployerConfig{
ApiUrl: access.ApiUrl, ApiUrl: access.ApiUrl,
ApiKey: access.ApiKey, ApiKey: access.ApiKey,
@ -423,7 +423,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeBaotaPanelSite: case domain.DeploymentProviderTypeBaotaPanelSite:
deployer, err := pBaotaPanelSite.NewDeployer(&pBaotaPanelSite.DeployerConfig{ deployer, err := pBaotaPanelSite.NewDeployer(&pBaotaPanelSite.DeployerConfig{
ApiUrl: access.ApiUrl, ApiUrl: access.ApiUrl,
ApiKey: access.ApiKey, ApiKey: access.ApiKey,
@ -439,7 +439,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeBunnyCDN: case domain.DeploymentProviderTypeBunnyCDN:
{ {
access := domain.AccessConfigForBunny{} access := domain.AccessConfigForBunny{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -454,7 +454,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
return deployer, err return deployer, err
} }
case domain.DeployProviderTypeBytePlusCDN: case domain.DeploymentProviderTypeBytePlusCDN:
{ {
access := domain.AccessConfigForBytePlus{} access := domain.AccessConfigForBytePlus{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -462,7 +462,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeBytePlusCDN: case domain.DeploymentProviderTypeBytePlusCDN:
deployer, err := pBytePlusCDN.NewDeployer(&pBytePlusCDN.DeployerConfig{ deployer, err := pBytePlusCDN.NewDeployer(&pBytePlusCDN.DeployerConfig{
AccessKey: access.AccessKey, AccessKey: access.AccessKey,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -475,7 +475,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeCacheFly: case domain.DeploymentProviderTypeCacheFly:
{ {
access := domain.AccessConfigForCacheFly{} access := domain.AccessConfigForCacheFly{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -488,7 +488,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
return deployer, err return deployer, err
} }
case domain.DeployProviderTypeCdnfly: case domain.DeploymentProviderTypeCdnfly:
{ {
access := domain.AccessConfigForCdnfly{} access := domain.AccessConfigForCdnfly{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -506,7 +506,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
return deployer, err return deployer, err
} }
case domain.DeployProviderTypeDogeCloudCDN: case domain.DeploymentProviderTypeDogeCloudCDN:
{ {
access := domain.AccessConfigForDogeCloud{} access := domain.AccessConfigForDogeCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -521,7 +521,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
return deployer, err return deployer, err
} }
case domain.DeployProviderTypeEdgioApplications: case domain.DeploymentProviderTypeEdgioApplications:
{ {
access := domain.AccessConfigForEdgio{} access := domain.AccessConfigForEdgio{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -536,7 +536,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
return deployer, err return deployer, err
} }
case domain.DeployProviderTypeGcoreCDN: case domain.DeploymentProviderTypeGcoreCDN:
{ {
access := domain.AccessConfigForGcore{} access := domain.AccessConfigForGcore{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -544,7 +544,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeGcoreCDN: case domain.DeploymentProviderTypeGcoreCDN:
deployer, err := pGcoreCDN.NewDeployer(&pGcoreCDN.DeployerConfig{ deployer, err := pGcoreCDN.NewDeployer(&pGcoreCDN.DeployerConfig{
ApiToken: access.ApiToken, ApiToken: access.ApiToken,
ResourceId: maputil.GetInt64(options.ProviderDeployConfig, "resourceId"), ResourceId: maputil.GetInt64(options.ProviderDeployConfig, "resourceId"),
@ -556,7 +556,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeHuaweiCloudCDN, domain.DeployProviderTypeHuaweiCloudELB, domain.DeployProviderTypeHuaweiCloudSCM, domain.DeployProviderTypeHuaweiCloudWAF: case domain.DeploymentProviderTypeHuaweiCloudCDN, domain.DeploymentProviderTypeHuaweiCloudELB, domain.DeploymentProviderTypeHuaweiCloudSCM, domain.DeploymentProviderTypeHuaweiCloudWAF:
{ {
access := domain.AccessConfigForHuaweiCloud{} access := domain.AccessConfigForHuaweiCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -564,7 +564,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeHuaweiCloudCDN: case domain.DeploymentProviderTypeHuaweiCloudCDN:
deployer, err := pHuaweiCloudCDN.NewDeployer(&pHuaweiCloudCDN.DeployerConfig{ deployer, err := pHuaweiCloudCDN.NewDeployer(&pHuaweiCloudCDN.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
@ -573,7 +573,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeHuaweiCloudELB: case domain.DeploymentProviderTypeHuaweiCloudELB:
deployer, err := pHuaweiCloudELB.NewDeployer(&pHuaweiCloudELB.DeployerConfig{ deployer, err := pHuaweiCloudELB.NewDeployer(&pHuaweiCloudELB.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
@ -585,14 +585,14 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeHuaweiCloudSCM: case domain.DeploymentProviderTypeHuaweiCloudSCM:
deployer, err := pHuaweiCloudSCM.NewDeployer(&pHuaweiCloudSCM.DeployerConfig{ deployer, err := pHuaweiCloudSCM.NewDeployer(&pHuaweiCloudSCM.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeHuaweiCloudWAF: case domain.DeploymentProviderTypeHuaweiCloudWAF:
deployer, err := pHuaweiCloudWAF.NewDeployer(&pHuaweiCloudWAF.DeployerConfig{ deployer, err := pHuaweiCloudWAF.NewDeployer(&pHuaweiCloudWAF.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
SecretAccessKey: access.SecretAccessKey, SecretAccessKey: access.SecretAccessKey,
@ -608,7 +608,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeJDCloudALB, domain.DeployProviderTypeJDCloudCDN, domain.DeployProviderTypeJDCloudLive, domain.DeployProviderTypeJDCloudVOD: case domain.DeploymentProviderTypeJDCloudALB, domain.DeploymentProviderTypeJDCloudCDN, domain.DeploymentProviderTypeJDCloudLive, domain.DeploymentProviderTypeJDCloudVOD:
{ {
access := domain.AccessConfigForJDCloud{} access := domain.AccessConfigForJDCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -616,7 +616,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeJDCloudALB: case domain.DeploymentProviderTypeJDCloudALB:
deployer, err := pJDCloudALB.NewDeployer(&pJDCloudALB.DeployerConfig{ deployer, err := pJDCloudALB.NewDeployer(&pJDCloudALB.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -627,7 +627,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeJDCloudCDN: case domain.DeploymentProviderTypeJDCloudCDN:
deployer, err := pJDCloudCDN.NewDeployer(&pJDCloudCDN.DeployerConfig{ deployer, err := pJDCloudCDN.NewDeployer(&pJDCloudCDN.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -635,7 +635,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeJDCloudLive: case domain.DeploymentProviderTypeJDCloudLive:
deployer, err := pJDCloudLive.NewDeployer(&pJDCloudLive.DeployerConfig{ deployer, err := pJDCloudLive.NewDeployer(&pJDCloudLive.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -643,7 +643,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeJDCloudVOD: case domain.DeploymentProviderTypeJDCloudVOD:
deployer, err := pJDCloudVOD.NewDeployer(&pJDCloudVOD.DeployerConfig{ deployer, err := pJDCloudVOD.NewDeployer(&pJDCloudVOD.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -656,7 +656,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeLocal: case domain.DeploymentProviderTypeLocal:
{ {
deployer, err := pLocal.NewDeployer(&pLocal.DeployerConfig{ deployer, err := pLocal.NewDeployer(&pLocal.DeployerConfig{
ShellEnv: pLocal.ShellEnvType(maputil.GetString(options.ProviderDeployConfig, "shellEnv")), ShellEnv: pLocal.ShellEnvType(maputil.GetString(options.ProviderDeployConfig, "shellEnv")),
@ -673,7 +673,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
return deployer, err return deployer, err
} }
case domain.DeployProviderTypeKubernetesSecret: case domain.DeploymentProviderTypeKubernetesSecret:
{ {
access := domain.AccessConfigForKubernetes{} access := domain.AccessConfigForKubernetes{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -691,7 +691,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
return deployer, err return deployer, err
} }
case domain.DeployProviderTypeQiniuCDN, domain.DeployProviderTypeQiniuKodo, domain.DeployProviderTypeQiniuPili: case domain.DeploymentProviderTypeQiniuCDN, domain.DeploymentProviderTypeQiniuKodo, domain.DeploymentProviderTypeQiniuPili:
{ {
access := domain.AccessConfigForQiniu{} access := domain.AccessConfigForQiniu{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -699,7 +699,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeQiniuCDN, domain.DeployProviderTypeQiniuKodo: case domain.DeploymentProviderTypeQiniuCDN, domain.DeploymentProviderTypeQiniuKodo:
deployer, err := pQiniuCDN.NewDeployer(&pQiniuCDN.DeployerConfig{ deployer, err := pQiniuCDN.NewDeployer(&pQiniuCDN.DeployerConfig{
AccessKey: access.AccessKey, AccessKey: access.AccessKey,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -707,7 +707,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeQiniuPili: case domain.DeploymentProviderTypeQiniuPili:
deployer, err := pQiniuPili.NewDeployer(&pQiniuPili.DeployerConfig{ deployer, err := pQiniuPili.NewDeployer(&pQiniuPili.DeployerConfig{
AccessKey: access.AccessKey, AccessKey: access.AccessKey,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -721,7 +721,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeRainYunRCDN: case domain.DeploymentProviderTypeRainYunRCDN:
{ {
access := domain.AccessConfigForRainYun{} access := domain.AccessConfigForRainYun{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -729,7 +729,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeTencentCloudCDN: case domain.DeploymentProviderTypeTencentCloudCDN:
deployer, err := pRainYunRCDN.NewDeployer(&pRainYunRCDN.DeployerConfig{ deployer, err := pRainYunRCDN.NewDeployer(&pRainYunRCDN.DeployerConfig{
ApiKey: access.ApiKey, ApiKey: access.ApiKey,
InstanceId: maputil.GetInt32(options.ProviderDeployConfig, "instanceId"), InstanceId: maputil.GetInt32(options.ProviderDeployConfig, "instanceId"),
@ -742,7 +742,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeSafeLine: case domain.DeploymentProviderTypeSafeLine:
{ {
access := domain.AccessConfigForSafeLine{} access := domain.AccessConfigForSafeLine{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -759,7 +759,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
return deployer, err return deployer, err
} }
case domain.DeployProviderTypeSSH: case domain.DeploymentProviderTypeSSH:
{ {
access := domain.AccessConfigForSSH{} access := domain.AccessConfigForSSH{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -787,7 +787,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
return deployer, err return deployer, err
} }
case domain.DeployProviderTypeTencentCloudCDN, domain.DeployProviderTypeTencentCloudCLB, domain.DeployProviderTypeTencentCloudCOS, domain.DeployProviderTypeTencentCloudCSS, domain.DeployProviderTypeTencentCloudECDN, domain.DeployProviderTypeTencentCloudEO, domain.DeployProviderTypeTencentCloudSCF, domain.DeployProviderTypeTencentCloudSSL, domain.DeployProviderTypeTencentCloudSSLDeploy, domain.DeployProviderTypeTencentCloudVOD, domain.DeployProviderTypeTencentCloudWAF: case domain.DeploymentProviderTypeTencentCloudCDN, domain.DeploymentProviderTypeTencentCloudCLB, domain.DeploymentProviderTypeTencentCloudCOS, domain.DeploymentProviderTypeTencentCloudCSS, domain.DeploymentProviderTypeTencentCloudECDN, domain.DeploymentProviderTypeTencentCloudEO, domain.DeploymentProviderTypeTencentCloudSCF, domain.DeploymentProviderTypeTencentCloudSSL, domain.DeploymentProviderTypeTencentCloudSSLDeploy, domain.DeploymentProviderTypeTencentCloudVOD, domain.DeploymentProviderTypeTencentCloudWAF:
{ {
access := domain.AccessConfigForTencentCloud{} access := domain.AccessConfigForTencentCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -795,7 +795,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeTencentCloudCDN: case domain.DeploymentProviderTypeTencentCloudCDN:
deployer, err := pTencentCloudCDN.NewDeployer(&pTencentCloudCDN.DeployerConfig{ deployer, err := pTencentCloudCDN.NewDeployer(&pTencentCloudCDN.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -803,7 +803,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudCLB: case domain.DeploymentProviderTypeTencentCloudCLB:
deployer, err := pTencentCloudCLB.NewDeployer(&pTencentCloudCLB.DeployerConfig{ deployer, err := pTencentCloudCLB.NewDeployer(&pTencentCloudCLB.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -815,7 +815,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudCOS: case domain.DeploymentProviderTypeTencentCloudCOS:
deployer, err := pTencentCloudCOS.NewDeployer(&pTencentCloudCOS.DeployerConfig{ deployer, err := pTencentCloudCOS.NewDeployer(&pTencentCloudCOS.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -825,7 +825,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudCSS: case domain.DeploymentProviderTypeTencentCloudCSS:
deployer, err := pTencentCloudCSS.NewDeployer(&pTencentCloudCSS.DeployerConfig{ deployer, err := pTencentCloudCSS.NewDeployer(&pTencentCloudCSS.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -833,7 +833,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudECDN: case domain.DeploymentProviderTypeTencentCloudECDN:
deployer, err := pTencentCloudECDN.NewDeployer(&pTencentCloudECDN.DeployerConfig{ deployer, err := pTencentCloudECDN.NewDeployer(&pTencentCloudECDN.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -841,7 +841,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudEO: case domain.DeploymentProviderTypeTencentCloudEO:
deployer, err := pTencentCloudEO.NewDeployer(&pTencentCloudEO.DeployerConfig{ deployer, err := pTencentCloudEO.NewDeployer(&pTencentCloudEO.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -850,7 +850,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudSCF: case domain.DeploymentProviderTypeTencentCloudSCF:
deployer, err := pTencentCloudSCF.NewDeployer(&pTencentCloudSCF.DeployerConfig{ deployer, err := pTencentCloudSCF.NewDeployer(&pTencentCloudSCF.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -859,14 +859,14 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudSSL: case domain.DeploymentProviderTypeTencentCloudSSL:
deployer, err := pTencentCloudSSL.NewDeployer(&pTencentCloudSSL.DeployerConfig{ deployer, err := pTencentCloudSSL.NewDeployer(&pTencentCloudSSL.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudSSLDeploy: case domain.DeploymentProviderTypeTencentCloudSSLDeploy:
deployer, err := pTencentCloudSSLDeploy.NewDeployer(&pTencentCloudSSLDeploy.DeployerConfig{ deployer, err := pTencentCloudSSLDeploy.NewDeployer(&pTencentCloudSSLDeploy.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -876,7 +876,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudVOD: case domain.DeploymentProviderTypeTencentCloudVOD:
deployer, err := pTencentCloudVOD.NewDeployer(&pTencentCloudVOD.DeployerConfig{ deployer, err := pTencentCloudVOD.NewDeployer(&pTencentCloudVOD.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -885,7 +885,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeTencentCloudWAF: case domain.DeploymentProviderTypeTencentCloudWAF:
deployer, err := pTencentCloudWAF.NewDeployer(&pTencentCloudWAF.DeployerConfig{ deployer, err := pTencentCloudWAF.NewDeployer(&pTencentCloudWAF.DeployerConfig{
SecretId: access.SecretId, SecretId: access.SecretId,
SecretKey: access.SecretKey, SecretKey: access.SecretKey,
@ -900,7 +900,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeUCloudUCDN, domain.DeployProviderTypeUCloudUS3: case domain.DeploymentProviderTypeUCloudUCDN, domain.DeploymentProviderTypeUCloudUS3:
{ {
access := domain.AccessConfigForUCloud{} access := domain.AccessConfigForUCloud{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -908,7 +908,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeUCloudUCDN: case domain.DeploymentProviderTypeUCloudUCDN:
deployer, err := pUCloudUCDN.NewDeployer(&pUCloudUCDN.DeployerConfig{ deployer, err := pUCloudUCDN.NewDeployer(&pUCloudUCDN.DeployerConfig{
PrivateKey: access.PrivateKey, PrivateKey: access.PrivateKey,
PublicKey: access.PublicKey, PublicKey: access.PublicKey,
@ -917,7 +917,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeUCloudUS3: case domain.DeploymentProviderTypeUCloudUS3:
deployer, err := pUCloudUS3.NewDeployer(&pUCloudUS3.DeployerConfig{ deployer, err := pUCloudUS3.NewDeployer(&pUCloudUS3.DeployerConfig{
PrivateKey: access.PrivateKey, PrivateKey: access.PrivateKey,
PublicKey: access.PublicKey, PublicKey: access.PublicKey,
@ -933,7 +933,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeUpyunCDN, domain.DeployProviderTypeUpyunFile: case domain.DeploymentProviderTypeUpyunCDN, domain.DeploymentProviderTypeUpyunFile:
{ {
access := domain.AccessConfigForUpyun{} access := domain.AccessConfigForUpyun{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -941,7 +941,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeUpyunCDN, domain.DeployProviderTypeUpyunFile: case domain.DeploymentProviderTypeUpyunCDN, domain.DeploymentProviderTypeUpyunFile:
deployer, err := pUpyunCDN.NewDeployer(&pUpyunCDN.DeployerConfig{ deployer, err := pUpyunCDN.NewDeployer(&pUpyunCDN.DeployerConfig{
Username: access.Username, Username: access.Username,
Password: access.Password, Password: access.Password,
@ -954,7 +954,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeVolcEngineALB, domain.DeployProviderTypeVolcEngineCDN, domain.DeployProviderTypeVolcEngineCertCenter, domain.DeployProviderTypeVolcEngineCLB, domain.DeployProviderTypeVolcEngineDCDN, domain.DeployProviderTypeVolcEngineImageX, domain.DeployProviderTypeVolcEngineLive, domain.DeployProviderTypeVolcEngineTOS: case domain.DeploymentProviderTypeVolcEngineALB, domain.DeploymentProviderTypeVolcEngineCDN, domain.DeploymentProviderTypeVolcEngineCertCenter, domain.DeploymentProviderTypeVolcEngineCLB, domain.DeploymentProviderTypeVolcEngineDCDN, domain.DeploymentProviderTypeVolcEngineImageX, domain.DeploymentProviderTypeVolcEngineLive, domain.DeploymentProviderTypeVolcEngineTOS:
{ {
access := domain.AccessConfigForVolcEngine{} access := domain.AccessConfigForVolcEngine{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -962,7 +962,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeVolcEngineALB: case domain.DeploymentProviderTypeVolcEngineALB:
deployer, err := pVolcEngineALB.NewDeployer(&pVolcEngineALB.DeployerConfig{ deployer, err := pVolcEngineALB.NewDeployer(&pVolcEngineALB.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.SecretAccessKey, AccessKeySecret: access.SecretAccessKey,
@ -974,7 +974,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeVolcEngineCDN: case domain.DeploymentProviderTypeVolcEngineCDN:
deployer, err := pVolcEngineCDN.NewDeployer(&pVolcEngineCDN.DeployerConfig{ deployer, err := pVolcEngineCDN.NewDeployer(&pVolcEngineCDN.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.SecretAccessKey, AccessKeySecret: access.SecretAccessKey,
@ -982,7 +982,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeVolcEngineCertCenter: case domain.DeploymentProviderTypeVolcEngineCertCenter:
deployer, err := pVolcEngineCertCenter.NewDeployer(&pVolcEngineCertCenter.DeployerConfig{ deployer, err := pVolcEngineCertCenter.NewDeployer(&pVolcEngineCertCenter.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.SecretAccessKey, AccessKeySecret: access.SecretAccessKey,
@ -990,7 +990,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeVolcEngineCLB: case domain.DeploymentProviderTypeVolcEngineCLB:
deployer, err := pVolcEngineCLB.NewDeployer(&pVolcEngineCLB.DeployerConfig{ deployer, err := pVolcEngineCLB.NewDeployer(&pVolcEngineCLB.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.SecretAccessKey, AccessKeySecret: access.SecretAccessKey,
@ -1001,7 +1001,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeVolcEngineDCDN: case domain.DeploymentProviderTypeVolcEngineDCDN:
deployer, err := pVolcEngineDCDN.NewDeployer(&pVolcEngineDCDN.DeployerConfig{ deployer, err := pVolcEngineDCDN.NewDeployer(&pVolcEngineDCDN.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.SecretAccessKey, AccessKeySecret: access.SecretAccessKey,
@ -1009,7 +1009,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeVolcEngineImageX: case domain.DeploymentProviderTypeVolcEngineImageX:
deployer, err := pVolcEngineImageX.NewDeployer(&pVolcEngineImageX.DeployerConfig{ deployer, err := pVolcEngineImageX.NewDeployer(&pVolcEngineImageX.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.SecretAccessKey, AccessKeySecret: access.SecretAccessKey,
@ -1019,7 +1019,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeVolcEngineLive: case domain.DeploymentProviderTypeVolcEngineLive:
deployer, err := pVolcEngineLive.NewDeployer(&pVolcEngineLive.DeployerConfig{ deployer, err := pVolcEngineLive.NewDeployer(&pVolcEngineLive.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.SecretAccessKey, AccessKeySecret: access.SecretAccessKey,
@ -1027,7 +1027,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
}) })
return deployer, err return deployer, err
case domain.DeployProviderTypeVolcEngineTOS: case domain.DeploymentProviderTypeVolcEngineTOS:
deployer, err := pVolcEngineTOS.NewDeployer(&pVolcEngineTOS.DeployerConfig{ deployer, err := pVolcEngineTOS.NewDeployer(&pVolcEngineTOS.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.SecretAccessKey, AccessKeySecret: access.SecretAccessKey,
@ -1042,7 +1042,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeWangsuCDNPro: case domain.DeploymentProviderTypeWangsuCDNPro:
{ {
access := domain.AccessConfigForWangsu{} access := domain.AccessConfigForWangsu{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {
@ -1050,7 +1050,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
switch options.Provider { switch options.Provider {
case domain.DeployProviderTypeWangsuCDNPro: case domain.DeploymentProviderTypeWangsuCDNPro:
deployer, err := pWangsuCDNPro.NewDeployer(&pWangsuCDNPro.DeployerConfig{ deployer, err := pWangsuCDNPro.NewDeployer(&pWangsuCDNPro.DeployerConfig{
AccessKeyId: access.AccessKeyId, AccessKeyId: access.AccessKeyId,
AccessKeySecret: access.AccessKeySecret, AccessKeySecret: access.AccessKeySecret,
@ -1067,7 +1067,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
} }
} }
case domain.DeployProviderTypeWebhook: case domain.DeploymentProviderTypeWebhook:
{ {
access := domain.AccessConfigForWebhook{} access := domain.AccessConfigForWebhook{}
if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil { if err := maputil.Populate(options.ProviderAccessConfig, &access); err != nil {

View File

@ -68,74 +68,74 @@ const (
AccessProviderTypeZeroSSL = AccessProviderType("zerossl") AccessProviderTypeZeroSSL = AccessProviderType("zerossl")
) )
type ApplyCAProviderType string type CAProviderType string
/* /*
申请证书 CA 提供商常量值 证书颁发机构提供商常量值
短横线前的部分始终等于授权提供商类型 短横线前的部分始终等于授权提供商类型
注意如果追加新的常量值请保持以 ASCII 排序 注意如果追加新的常量值请保持以 ASCII 排序
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
const ( const (
ApplyCAProviderTypeBuypass = ApplyCAProviderType(AccessProviderTypeBuypass) CAProviderTypeBuypass = CAProviderType(AccessProviderTypeBuypass)
ApplyCAProviderTypeGoogleTrustServices = ApplyCAProviderType(AccessProviderTypeGoogleTrustServices) CAProviderTypeGoogleTrustServices = CAProviderType(AccessProviderTypeGoogleTrustServices)
ApplyCAProviderTypeLetsEncrypt = ApplyCAProviderType(AccessProviderTypeLetsEncrypt) CAProviderTypeLetsEncrypt = CAProviderType(AccessProviderTypeLetsEncrypt)
ApplyCAProviderTypeLetsEncryptStaging = ApplyCAProviderType(AccessProviderTypeLetsEncryptStaging) CAProviderTypeLetsEncryptStaging = CAProviderType(AccessProviderTypeLetsEncryptStaging)
ApplyCAProviderTypeSSLCom = ApplyCAProviderType(AccessProviderTypeSSLCOM) CAProviderTypeSSLCom = CAProviderType(AccessProviderTypeSSLCOM)
ApplyCAProviderTypeZeroSSL = ApplyCAProviderType(AccessProviderTypeZeroSSL) CAProviderTypeZeroSSL = CAProviderType(AccessProviderTypeZeroSSL)
) )
type ApplyDNSProviderType string type AcmeDns01ProviderType string
/* /*
申请证书 DNS 提供商常量值 ACME DNS-01 提供商常量值
短横线前的部分始终等于授权提供商类型 短横线前的部分始终等于授权提供商类型
注意如果追加新的常量值请保持以 ASCII 排序 注意如果追加新的常量值请保持以 ASCII 排序
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
const ( const (
ApplyDNSProviderTypeACMEHttpReq = ApplyDNSProviderType(AccessProviderTypeACMEHttpReq) AcmeDns01ProviderTypeACMEHttpReq = AcmeDns01ProviderType(AccessProviderTypeACMEHttpReq)
ApplyDNSProviderTypeAliyun = ApplyDNSProviderType(AccessProviderTypeAliyun) // 兼容旧值,等同于 [ApplyDNSProviderTypeAliyunDNS] AcmeDns01ProviderTypeAliyun = AcmeDns01ProviderType(AccessProviderTypeAliyun) // 兼容旧值,等同于 [AcmeDns01ProviderTypeAliyunDNS]
ApplyDNSProviderTypeAliyunDNS = ApplyDNSProviderType(AccessProviderTypeAliyun + "-dns") AcmeDns01ProviderTypeAliyunDNS = AcmeDns01ProviderType(AccessProviderTypeAliyun + "-dns")
ApplyDNSProviderTypeAWS = ApplyDNSProviderType(AccessProviderTypeAWS) // 兼容旧值,等同于 [ApplyDNSProviderTypeAWSRoute53] AcmeDns01ProviderTypeAWS = AcmeDns01ProviderType(AccessProviderTypeAWS) // 兼容旧值,等同于 [AcmeDns01ProviderTypeAWSRoute53]
ApplyDNSProviderTypeAWSRoute53 = ApplyDNSProviderType(AccessProviderTypeAWS + "-route53") AcmeDns01ProviderTypeAWSRoute53 = AcmeDns01ProviderType(AccessProviderTypeAWS + "-route53")
ApplyDNSProviderTypeAzure = ApplyDNSProviderType(AccessProviderTypeAzure) // 兼容旧值,等同于 [ApplyDNSProviderTypeAzure] AcmeDns01ProviderTypeAzure = AcmeDns01ProviderType(AccessProviderTypeAzure) // 兼容旧值,等同于 [AcmeDns01ProviderTypeAzure]
ApplyDNSProviderTypeAzureDNS = ApplyDNSProviderType(AccessProviderTypeAzure + "-dns") AcmeDns01ProviderTypeAzureDNS = AcmeDns01ProviderType(AccessProviderTypeAzure + "-dns")
ApplyDNSProviderTypeBaiduCloud = ApplyDNSProviderType(AccessProviderTypeBaiduCloud) // 兼容旧值,等同于 [ApplyDNSProviderTypeBaiduCloudDNS] AcmeDns01ProviderTypeBaiduCloud = AcmeDns01ProviderType(AccessProviderTypeBaiduCloud) // 兼容旧值,等同于 [AcmeDns01ProviderTypeBaiduCloudDNS]
ApplyDNSProviderTypeBaiduCloudDNS = ApplyDNSProviderType(AccessProviderTypeBaiduCloud + "-dns") AcmeDns01ProviderTypeBaiduCloudDNS = AcmeDns01ProviderType(AccessProviderTypeBaiduCloud + "-dns")
ApplyDNSProviderTypeBunny = ApplyDNSProviderType(AccessProviderTypeBunny) AcmeDns01ProviderTypeBunny = AcmeDns01ProviderType(AccessProviderTypeBunny)
ApplyDNSProviderTypeCloudflare = ApplyDNSProviderType(AccessProviderTypeCloudflare) AcmeDns01ProviderTypeCloudflare = AcmeDns01ProviderType(AccessProviderTypeCloudflare)
ApplyDNSProviderTypeClouDNS = ApplyDNSProviderType(AccessProviderTypeClouDNS) AcmeDns01ProviderTypeClouDNS = AcmeDns01ProviderType(AccessProviderTypeClouDNS)
ApplyDNSProviderTypeCMCCCloud = ApplyDNSProviderType(AccessProviderTypeCMCCCloud) AcmeDns01ProviderTypeCMCCCloud = AcmeDns01ProviderType(AccessProviderTypeCMCCCloud)
ApplyDNSProviderTypeDeSEC = ApplyDNSProviderType(AccessProviderTypeDeSEC) AcmeDns01ProviderTypeDeSEC = AcmeDns01ProviderType(AccessProviderTypeDeSEC)
ApplyDNSProviderTypeDNSLA = ApplyDNSProviderType(AccessProviderTypeDNSLA) AcmeDns01ProviderTypeDNSLA = AcmeDns01ProviderType(AccessProviderTypeDNSLA)
ApplyDNSProviderTypeDynv6 = ApplyDNSProviderType(AccessProviderTypeDynv6) AcmeDns01ProviderTypeDynv6 = AcmeDns01ProviderType(AccessProviderTypeDynv6)
ApplyDNSProviderTypeGcore = ApplyDNSProviderType(AccessProviderTypeGcore) AcmeDns01ProviderTypeGcore = AcmeDns01ProviderType(AccessProviderTypeGcore)
ApplyDNSProviderTypeGname = ApplyDNSProviderType(AccessProviderTypeGname) AcmeDns01ProviderTypeGname = AcmeDns01ProviderType(AccessProviderTypeGname)
ApplyDNSProviderTypeGoDaddy = ApplyDNSProviderType(AccessProviderTypeGoDaddy) AcmeDns01ProviderTypeGoDaddy = AcmeDns01ProviderType(AccessProviderTypeGoDaddy)
ApplyDNSProviderTypeHuaweiCloud = ApplyDNSProviderType(AccessProviderTypeHuaweiCloud) // 兼容旧值,等同于 [ApplyDNSProviderTypeHuaweiCloudDNS] AcmeDns01ProviderTypeHuaweiCloud = AcmeDns01ProviderType(AccessProviderTypeHuaweiCloud) // 兼容旧值,等同于 [AcmeDns01ProviderTypeHuaweiCloudDNS]
ApplyDNSProviderTypeHuaweiCloudDNS = ApplyDNSProviderType(AccessProviderTypeHuaweiCloud + "-dns") AcmeDns01ProviderTypeHuaweiCloudDNS = AcmeDns01ProviderType(AccessProviderTypeHuaweiCloud + "-dns")
ApplyDNSProviderTypeJDCloud = ApplyDNSProviderType(AccessProviderTypeJDCloud) // 兼容旧值,等同于 [ApplyDNSProviderTypeJDCloudDNS] AcmeDns01ProviderTypeJDCloud = AcmeDns01ProviderType(AccessProviderTypeJDCloud) // 兼容旧值,等同于 [AcmeDns01ProviderTypeJDCloudDNS]
ApplyDNSProviderTypeJDCloudDNS = ApplyDNSProviderType(AccessProviderTypeJDCloud + "-dns") AcmeDns01ProviderTypeJDCloudDNS = AcmeDns01ProviderType(AccessProviderTypeJDCloud + "-dns")
ApplyDNSProviderTypeNamecheap = ApplyDNSProviderType(AccessProviderTypeNamecheap) AcmeDns01ProviderTypeNamecheap = AcmeDns01ProviderType(AccessProviderTypeNamecheap)
ApplyDNSProviderTypeNameDotCom = ApplyDNSProviderType(AccessProviderTypeNameDotCom) AcmeDns01ProviderTypeNameDotCom = AcmeDns01ProviderType(AccessProviderTypeNameDotCom)
ApplyDNSProviderTypeNameSilo = ApplyDNSProviderType(AccessProviderTypeNameSilo) AcmeDns01ProviderTypeNameSilo = AcmeDns01ProviderType(AccessProviderTypeNameSilo)
ApplyDNSProviderTypeNS1 = ApplyDNSProviderType(AccessProviderTypeNS1) AcmeDns01ProviderTypeNS1 = AcmeDns01ProviderType(AccessProviderTypeNS1)
ApplyDNSProviderTypePorkbun = ApplyDNSProviderType(AccessProviderTypePorkbun) AcmeDns01ProviderTypePorkbun = AcmeDns01ProviderType(AccessProviderTypePorkbun)
ApplyDNSProviderTypePowerDNS = ApplyDNSProviderType(AccessProviderTypePowerDNS) AcmeDns01ProviderTypePowerDNS = AcmeDns01ProviderType(AccessProviderTypePowerDNS)
ApplyDNSProviderTypeRainYun = ApplyDNSProviderType(AccessProviderTypeRainYun) AcmeDns01ProviderTypeRainYun = AcmeDns01ProviderType(AccessProviderTypeRainYun)
ApplyDNSProviderTypeTencentCloud = ApplyDNSProviderType(AccessProviderTypeTencentCloud) // 兼容旧值,等同于 [ApplyDNSProviderTypeTencentCloudDNS] AcmeDns01ProviderTypeTencentCloud = AcmeDns01ProviderType(AccessProviderTypeTencentCloud) // 兼容旧值,等同于 [AcmeDns01ProviderTypeTencentCloudDNS]
ApplyDNSProviderTypeTencentCloudDNS = ApplyDNSProviderType(AccessProviderTypeTencentCloud + "-dns") AcmeDns01ProviderTypeTencentCloudDNS = AcmeDns01ProviderType(AccessProviderTypeTencentCloud + "-dns")
ApplyDNSProviderTypeTencentCloudEO = ApplyDNSProviderType(AccessProviderTypeTencentCloud + "-eo") AcmeDns01ProviderTypeTencentCloudEO = AcmeDns01ProviderType(AccessProviderTypeTencentCloud + "-eo")
ApplyDNSProviderTypeVercel = ApplyDNSProviderType(AccessProviderTypeVercel) AcmeDns01ProviderTypeVercel = AcmeDns01ProviderType(AccessProviderTypeVercel)
ApplyDNSProviderTypeVolcEngine = ApplyDNSProviderType(AccessProviderTypeVolcEngine) // 兼容旧值,等同于 [ApplyDNSProviderTypeVolcEngineDNS] AcmeDns01ProviderTypeVolcEngine = AcmeDns01ProviderType(AccessProviderTypeVolcEngine) // 兼容旧值,等同于 [AcmeDns01ProviderTypeVolcEngineDNS]
ApplyDNSProviderTypeVolcEngineDNS = ApplyDNSProviderType(AccessProviderTypeVolcEngine + "-dns") AcmeDns01ProviderTypeVolcEngineDNS = AcmeDns01ProviderType(AccessProviderTypeVolcEngine + "-dns")
ApplyDNSProviderTypeWestcn = ApplyDNSProviderType(AccessProviderTypeWestcn) AcmeDns01ProviderTypeWestcn = AcmeDns01ProviderType(AccessProviderTypeWestcn)
) )
type DeployProviderType string type DeploymentProviderType string
/* /*
部署证书主机提供商常量值 部署证书主机提供商常量值
@ -145,83 +145,83 @@ type DeployProviderType string
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
const ( const (
DeployProviderType1PanelConsole = DeployProviderType(AccessProviderType1Panel + "-console") DeploymentProviderType1PanelConsole = DeploymentProviderType(AccessProviderType1Panel + "-console")
DeployProviderType1PanelSite = DeployProviderType(AccessProviderType1Panel + "-site") DeploymentProviderType1PanelSite = DeploymentProviderType(AccessProviderType1Panel + "-site")
DeployProviderTypeAliyunALB = DeployProviderType(AccessProviderTypeAliyun + "-alb") DeploymentProviderTypeAliyunALB = DeploymentProviderType(AccessProviderTypeAliyun + "-alb")
DeployProviderTypeAliyunAPIGW = DeployProviderType(AccessProviderTypeAliyun + "-apigw") DeploymentProviderTypeAliyunAPIGW = DeploymentProviderType(AccessProviderTypeAliyun + "-apigw")
DeployProviderTypeAliyunCAS = DeployProviderType(AccessProviderTypeAliyun + "-cas") DeploymentProviderTypeAliyunCAS = DeploymentProviderType(AccessProviderTypeAliyun + "-cas")
DeployProviderTypeAliyunCASDeploy = DeployProviderType(AccessProviderTypeAliyun + "-casdeploy") DeploymentProviderTypeAliyunCASDeploy = DeploymentProviderType(AccessProviderTypeAliyun + "-casdeploy")
DeployProviderTypeAliyunCDN = DeployProviderType(AccessProviderTypeAliyun + "-cdn") DeploymentProviderTypeAliyunCDN = DeploymentProviderType(AccessProviderTypeAliyun + "-cdn")
DeployProviderTypeAliyunCLB = DeployProviderType(AccessProviderTypeAliyun + "-clb") DeploymentProviderTypeAliyunCLB = DeploymentProviderType(AccessProviderTypeAliyun + "-clb")
DeployProviderTypeAliyunDCDN = DeployProviderType(AccessProviderTypeAliyun + "-dcdn") DeploymentProviderTypeAliyunDCDN = DeploymentProviderType(AccessProviderTypeAliyun + "-dcdn")
DeployProviderTypeAliyunESA = DeployProviderType(AccessProviderTypeAliyun + "-esa") DeploymentProviderTypeAliyunESA = DeploymentProviderType(AccessProviderTypeAliyun + "-esa")
DeployProviderTypeAliyunFC = DeployProviderType(AccessProviderTypeAliyun + "-fc") DeploymentProviderTypeAliyunFC = DeploymentProviderType(AccessProviderTypeAliyun + "-fc")
DeployProviderTypeAliyunLive = DeployProviderType(AccessProviderTypeAliyun + "-live") DeploymentProviderTypeAliyunLive = DeploymentProviderType(AccessProviderTypeAliyun + "-live")
DeployProviderTypeAliyunNLB = DeployProviderType(AccessProviderTypeAliyun + "-nlb") DeploymentProviderTypeAliyunNLB = DeploymentProviderType(AccessProviderTypeAliyun + "-nlb")
DeployProviderTypeAliyunOSS = DeployProviderType(AccessProviderTypeAliyun + "-oss") DeploymentProviderTypeAliyunOSS = DeploymentProviderType(AccessProviderTypeAliyun + "-oss")
DeployProviderTypeAliyunVOD = DeployProviderType(AccessProviderTypeAliyun + "-vod") DeploymentProviderTypeAliyunVOD = DeploymentProviderType(AccessProviderTypeAliyun + "-vod")
DeployProviderTypeAliyunWAF = DeployProviderType(AccessProviderTypeAliyun + "-waf") DeploymentProviderTypeAliyunWAF = DeploymentProviderType(AccessProviderTypeAliyun + "-waf")
DeployProviderTypeAWSACM = DeployProviderType(AccessProviderTypeAWS + "-acm") DeploymentProviderTypeAWSACM = DeploymentProviderType(AccessProviderTypeAWS + "-acm")
DeployProviderTypeAWSCloudFront = DeployProviderType(AccessProviderTypeAWS + "-cloudfront") DeploymentProviderTypeAWSCloudFront = DeploymentProviderType(AccessProviderTypeAWS + "-cloudfront")
DeployProviderTypeAzureKeyVault = DeployProviderType(AccessProviderTypeAzure + "-keyvault") DeploymentProviderTypeAzureKeyVault = DeploymentProviderType(AccessProviderTypeAzure + "-keyvault")
DeployProviderTypeBaiduCloudAppBLB = DeployProviderType(AccessProviderTypeBaiduCloud + "-appblb") DeploymentProviderTypeBaiduCloudAppBLB = DeploymentProviderType(AccessProviderTypeBaiduCloud + "-appblb")
DeployProviderTypeBaiduCloudBLB = DeployProviderType(AccessProviderTypeBaiduCloud + "-blb") DeploymentProviderTypeBaiduCloudBLB = DeploymentProviderType(AccessProviderTypeBaiduCloud + "-blb")
DeployProviderTypeBaiduCloudCDN = DeployProviderType(AccessProviderTypeBaiduCloud + "-cdn") DeploymentProviderTypeBaiduCloudCDN = DeploymentProviderType(AccessProviderTypeBaiduCloud + "-cdn")
DeployProviderTypeBaiduCloudCert = DeployProviderType(AccessProviderTypeBaiduCloud + "-cert") DeploymentProviderTypeBaiduCloudCert = DeploymentProviderType(AccessProviderTypeBaiduCloud + "-cert")
DeployProviderTypeBaishanCDN = DeployProviderType(AccessProviderTypeBaishan + "-cdn") DeploymentProviderTypeBaishanCDN = DeploymentProviderType(AccessProviderTypeBaishan + "-cdn")
DeployProviderTypeBaotaPanelConsole = DeployProviderType(AccessProviderTypeBaotaPanel + "-console") DeploymentProviderTypeBaotaPanelConsole = DeploymentProviderType(AccessProviderTypeBaotaPanel + "-console")
DeployProviderTypeBaotaPanelSite = DeployProviderType(AccessProviderTypeBaotaPanel + "-site") DeploymentProviderTypeBaotaPanelSite = DeploymentProviderType(AccessProviderTypeBaotaPanel + "-site")
DeployProviderTypeBunnyCDN = DeployProviderType(AccessProviderTypeBunny + "-cdn") DeploymentProviderTypeBunnyCDN = DeploymentProviderType(AccessProviderTypeBunny + "-cdn")
DeployProviderTypeBytePlusCDN = DeployProviderType(AccessProviderTypeBytePlus + "-cdn") DeploymentProviderTypeBytePlusCDN = DeploymentProviderType(AccessProviderTypeBytePlus + "-cdn")
DeployProviderTypeCacheFly = DeployProviderType(AccessProviderTypeCacheFly) DeploymentProviderTypeCacheFly = DeploymentProviderType(AccessProviderTypeCacheFly)
DeployProviderTypeCdnfly = DeployProviderType(AccessProviderTypeCdnfly) DeploymentProviderTypeCdnfly = DeploymentProviderType(AccessProviderTypeCdnfly)
DeployProviderTypeDogeCloudCDN = DeployProviderType(AccessProviderTypeDogeCloud + "-cdn") DeploymentProviderTypeDogeCloudCDN = DeploymentProviderType(AccessProviderTypeDogeCloud + "-cdn")
DeployProviderTypeEdgioApplications = DeployProviderType(AccessProviderTypeEdgio + "-applications") DeploymentProviderTypeEdgioApplications = DeploymentProviderType(AccessProviderTypeEdgio + "-applications")
DeployProviderTypeGcoreCDN = DeployProviderType(AccessProviderTypeGcore + "-cdn") DeploymentProviderTypeGcoreCDN = DeploymentProviderType(AccessProviderTypeGcore + "-cdn")
DeployProviderTypeHuaweiCloudCDN = DeployProviderType(AccessProviderTypeHuaweiCloud + "-cdn") DeploymentProviderTypeHuaweiCloudCDN = DeploymentProviderType(AccessProviderTypeHuaweiCloud + "-cdn")
DeployProviderTypeHuaweiCloudELB = DeployProviderType(AccessProviderTypeHuaweiCloud + "-elb") DeploymentProviderTypeHuaweiCloudELB = DeploymentProviderType(AccessProviderTypeHuaweiCloud + "-elb")
DeployProviderTypeHuaweiCloudSCM = DeployProviderType(AccessProviderTypeHuaweiCloud + "-scm") DeploymentProviderTypeHuaweiCloudSCM = DeploymentProviderType(AccessProviderTypeHuaweiCloud + "-scm")
DeployProviderTypeHuaweiCloudWAF = DeployProviderType(AccessProviderTypeHuaweiCloud + "-waf") DeploymentProviderTypeHuaweiCloudWAF = DeploymentProviderType(AccessProviderTypeHuaweiCloud + "-waf")
DeployProviderTypeJDCloudALB = DeployProviderType(AccessProviderTypeJDCloud + "-alb") DeploymentProviderTypeJDCloudALB = DeploymentProviderType(AccessProviderTypeJDCloud + "-alb")
DeployProviderTypeJDCloudCDN = DeployProviderType(AccessProviderTypeJDCloud + "-cdn") DeploymentProviderTypeJDCloudCDN = DeploymentProviderType(AccessProviderTypeJDCloud + "-cdn")
DeployProviderTypeJDCloudLive = DeployProviderType(AccessProviderTypeJDCloud + "-live") DeploymentProviderTypeJDCloudLive = DeploymentProviderType(AccessProviderTypeJDCloud + "-live")
DeployProviderTypeJDCloudVOD = DeployProviderType(AccessProviderTypeJDCloud + "-vod") DeploymentProviderTypeJDCloudVOD = DeploymentProviderType(AccessProviderTypeJDCloud + "-vod")
DeployProviderTypeKubernetesSecret = DeployProviderType(AccessProviderTypeKubernetes + "-secret") DeploymentProviderTypeKubernetesSecret = DeploymentProviderType(AccessProviderTypeKubernetes + "-secret")
DeployProviderTypeLocal = DeployProviderType(AccessProviderTypeLocal) DeploymentProviderTypeLocal = DeploymentProviderType(AccessProviderTypeLocal)
DeployProviderTypeQiniuCDN = DeployProviderType(AccessProviderTypeQiniu + "-cdn") DeploymentProviderTypeQiniuCDN = DeploymentProviderType(AccessProviderTypeQiniu + "-cdn")
DeployProviderTypeQiniuKodo = DeployProviderType(AccessProviderTypeQiniu + "-kodo") DeploymentProviderTypeQiniuKodo = DeploymentProviderType(AccessProviderTypeQiniu + "-kodo")
DeployProviderTypeQiniuPili = DeployProviderType(AccessProviderTypeQiniu + "-pili") DeploymentProviderTypeQiniuPili = DeploymentProviderType(AccessProviderTypeQiniu + "-pili")
DeployProviderTypeRainYunRCDN = DeployProviderType(AccessProviderTypeRainYun + "-rcdn") DeploymentProviderTypeRainYunRCDN = DeploymentProviderType(AccessProviderTypeRainYun + "-rcdn")
DeployProviderTypeSafeLine = DeployProviderType(AccessProviderTypeSafeLine) DeploymentProviderTypeSafeLine = DeploymentProviderType(AccessProviderTypeSafeLine)
DeployProviderTypeSSH = DeployProviderType(AccessProviderTypeSSH) DeploymentProviderTypeSSH = DeploymentProviderType(AccessProviderTypeSSH)
DeployProviderTypeTencentCloudCDN = DeployProviderType(AccessProviderTypeTencentCloud + "-cdn") DeploymentProviderTypeTencentCloudCDN = DeploymentProviderType(AccessProviderTypeTencentCloud + "-cdn")
DeployProviderTypeTencentCloudCLB = DeployProviderType(AccessProviderTypeTencentCloud + "-clb") DeploymentProviderTypeTencentCloudCLB = DeploymentProviderType(AccessProviderTypeTencentCloud + "-clb")
DeployProviderTypeTencentCloudCOS = DeployProviderType(AccessProviderTypeTencentCloud + "-cos") DeploymentProviderTypeTencentCloudCOS = DeploymentProviderType(AccessProviderTypeTencentCloud + "-cos")
DeployProviderTypeTencentCloudCSS = DeployProviderType(AccessProviderTypeTencentCloud + "-css") DeploymentProviderTypeTencentCloudCSS = DeploymentProviderType(AccessProviderTypeTencentCloud + "-css")
DeployProviderTypeTencentCloudECDN = DeployProviderType(AccessProviderTypeTencentCloud + "-ecdn") DeploymentProviderTypeTencentCloudECDN = DeploymentProviderType(AccessProviderTypeTencentCloud + "-ecdn")
DeployProviderTypeTencentCloudEO = DeployProviderType(AccessProviderTypeTencentCloud + "-eo") DeploymentProviderTypeTencentCloudEO = DeploymentProviderType(AccessProviderTypeTencentCloud + "-eo")
DeployProviderTypeTencentCloudSCF = DeployProviderType(AccessProviderTypeTencentCloud + "-scf") DeploymentProviderTypeTencentCloudSCF = DeploymentProviderType(AccessProviderTypeTencentCloud + "-scf")
DeployProviderTypeTencentCloudSSL = DeployProviderType(AccessProviderTypeTencentCloud + "-ssl") DeploymentProviderTypeTencentCloudSSL = DeploymentProviderType(AccessProviderTypeTencentCloud + "-ssl")
DeployProviderTypeTencentCloudSSLDeploy = DeployProviderType(AccessProviderTypeTencentCloud + "-ssldeploy") DeploymentProviderTypeTencentCloudSSLDeploy = DeploymentProviderType(AccessProviderTypeTencentCloud + "-ssldeploy")
DeployProviderTypeTencentCloudVOD = DeployProviderType(AccessProviderTypeTencentCloud + "-vod") DeploymentProviderTypeTencentCloudVOD = DeploymentProviderType(AccessProviderTypeTencentCloud + "-vod")
DeployProviderTypeTencentCloudWAF = DeployProviderType(AccessProviderTypeTencentCloud + "-waf") DeploymentProviderTypeTencentCloudWAF = DeploymentProviderType(AccessProviderTypeTencentCloud + "-waf")
DeployProviderTypeUCloudUCDN = DeployProviderType(AccessProviderTypeUCloud + "-ucdn") DeploymentProviderTypeUCloudUCDN = DeploymentProviderType(AccessProviderTypeUCloud + "-ucdn")
DeployProviderTypeUCloudUS3 = DeployProviderType(AccessProviderTypeUCloud + "-us3") DeploymentProviderTypeUCloudUS3 = DeploymentProviderType(AccessProviderTypeUCloud + "-us3")
DeployProviderTypeUpyunCDN = DeployProviderType(AccessProviderTypeUpyun + "-cdn") DeploymentProviderTypeUpyunCDN = DeploymentProviderType(AccessProviderTypeUpyun + "-cdn")
DeployProviderTypeUpyunFile = DeployProviderType(AccessProviderTypeUpyun + "-file") DeploymentProviderTypeUpyunFile = DeploymentProviderType(AccessProviderTypeUpyun + "-file")
DeployProviderTypeVolcEngineALB = DeployProviderType(AccessProviderTypeVolcEngine + "-alb") DeploymentProviderTypeVolcEngineALB = DeploymentProviderType(AccessProviderTypeVolcEngine + "-alb")
DeployProviderTypeVolcEngineCDN = DeployProviderType(AccessProviderTypeVolcEngine + "-cdn") DeploymentProviderTypeVolcEngineCDN = DeploymentProviderType(AccessProviderTypeVolcEngine + "-cdn")
DeployProviderTypeVolcEngineCertCenter = DeployProviderType(AccessProviderTypeVolcEngine + "-certcenter") DeploymentProviderTypeVolcEngineCertCenter = DeploymentProviderType(AccessProviderTypeVolcEngine + "-certcenter")
DeployProviderTypeVolcEngineCLB = DeployProviderType(AccessProviderTypeVolcEngine + "-clb") DeploymentProviderTypeVolcEngineCLB = DeploymentProviderType(AccessProviderTypeVolcEngine + "-clb")
DeployProviderTypeVolcEngineDCDN = DeployProviderType(AccessProviderTypeVolcEngine + "-dcdn") DeploymentProviderTypeVolcEngineDCDN = DeploymentProviderType(AccessProviderTypeVolcEngine + "-dcdn")
DeployProviderTypeVolcEngineImageX = DeployProviderType(AccessProviderTypeVolcEngine + "-imagex") DeploymentProviderTypeVolcEngineImageX = DeploymentProviderType(AccessProviderTypeVolcEngine + "-imagex")
DeployProviderTypeVolcEngineLive = DeployProviderType(AccessProviderTypeVolcEngine + "-live") DeploymentProviderTypeVolcEngineLive = DeploymentProviderType(AccessProviderTypeVolcEngine + "-live")
DeployProviderTypeVolcEngineTOS = DeployProviderType(AccessProviderTypeVolcEngine + "-tos") DeploymentProviderTypeVolcEngineTOS = DeploymentProviderType(AccessProviderTypeVolcEngine + "-tos")
DeployProviderTypeWangsuCDNPro = DeployProviderType(AccessProviderTypeWangsu + "-cdnpro") DeploymentProviderTypeWangsuCDNPro = DeploymentProviderType(AccessProviderTypeWangsu + "-cdnpro")
DeployProviderTypeWebhook = DeployProviderType(AccessProviderTypeWebhook) DeploymentProviderTypeWebhook = DeploymentProviderType(AccessProviderTypeWebhook)
) )
type NotifyProviderType string type NotificationProviderType string
/* /*
消息通知提供商常量值 消息通知提供商常量值
@ -231,5 +231,5 @@ type NotifyProviderType string
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
const ( const (
NotifyProviderTypeWebhook = NotifyProviderType(AccessProviderTypeWebhook) NotificationProviderTypeWebhook = NotificationProviderType(AccessProviderTypeWebhook)
) )

View File

@ -31,7 +31,7 @@ func NewWithWorkflowNode(config NotifierWithWorkflowNodeConfig) (Notifier, error
nodeConfig := config.Node.GetConfigForNotify() nodeConfig := config.Node.GetConfigForNotify()
options := &notifierProviderOptions{ options := &notifierProviderOptions{
Provider: domain.NotifyProviderType(nodeConfig.Provider), Provider: domain.NotificationProviderType(nodeConfig.Provider),
ProviderAccessConfig: make(map[string]any), ProviderAccessConfig: make(map[string]any),
ProviderNotifyConfig: nodeConfig.ProviderConfig, ProviderNotifyConfig: nodeConfig.ProviderConfig,
} }

View File

@ -10,7 +10,7 @@ import (
) )
type notifierProviderOptions struct { type notifierProviderOptions struct {
Provider domain.NotifyProviderType Provider domain.NotificationProviderType
ProviderAccessConfig map[string]any ProviderAccessConfig map[string]any
ProviderNotifyConfig map[string]any ProviderNotifyConfig map[string]any
} }
@ -21,7 +21,7 @@ func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
switch options.Provider { switch options.Provider {
case domain.NotifyProviderTypeWebhook: case domain.NotificationProviderTypeWebhook:
return pWebhook.NewNotifier(&pWebhook.NotifierConfig{ return pWebhook.NewNotifier(&pWebhook.NotifierConfig{
Url: maputil.GetString(options.ProviderAccessConfig, "url"), Url: maputil.GetString(options.ProviderAccessConfig, "url"),
AllowInsecureConnections: maputil.GetBool(options.ProviderAccessConfig, "allowInsecureConnections"), AllowInsecureConnections: maputil.GetBool(options.ProviderAccessConfig, "allowInsecureConnections"),

View File

@ -0,0 +1 @@
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M832 128H192a128 128 0 0 0-128 128v512a128 128 0 0 0 128 128h384v-64H192a64 64 0 0 1-64-64V310.4l384 206.08 384-206.72V768h64V256a128 128 0 0 0-128-128zM512 443.52L131.2 240A64 64 0 0 1 192 192h640a64 64 0 0 1 60.8 46.72z" fill="#616971"></path><path d="M640 896h64v-64h-64z m256-64v64h64v-64z m-128 64h64v-64h-64z" fill="#FF8910"></path></svg>

After

Width:  |  Height:  |  Size: 500 B

View File

@ -0,0 +1 @@
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M515.465911 0.01242C300.718451-1.427543 99.826634 133.353979 27.187509 347.877444c-90.654661 267.771091 52.898635 558.325595 320.665726 648.947257 267.771091 90.654661 558.325595-52.898635 648.947257-320.665726 73.698099-217.594386-7.327811-450.199385-183.932255-578.421077l5.375862 108.670197c88.097727 97.374488 122.87783 235.163933 79.006961 364.760588C831.811749 764.541694 615.912319 866.204071 415.1165 798.204826c-200.860818-67.966246-310.617986-279.83378-245.115676-473.23879 43.998865-129.949647 155.932977-218.494363 285.592631-241.915759L525.641648 0.268413A211.822535 211.822535 0 0 0 516.199892 0.044419h-0.79998zM665.996027 46.700215h-0.351991a12.193685 12.193685 0 0 0-4.959872 1.055973l0.063998-0.031999-0.159996 0.031999a14.076637 14.076637 0 0 0-4.63988 3.039921c-6.175841 6.047844-28.031277 35.327089-28.031277 35.327089L580.298238 145.097676l-55.454569 67.614256-95.231543 118.429944s-43.678873 54.526593-34.047122 121.629862c9.631751 67.166267 59.550464 99.838424 98.297464 112.990085 38.687002 13.087662 98.206466 17.407551 146.685215-30.047225C688.967434 488.258823 687.395475 418.372626 687.395475 418.372626l-3.711905-151.901081-2.975923-87.454744-2.011948-75.742046s0.415989-36.511058-0.863978-45.086836a13.914641 13.914641 0 0 0-1.53596-4.639881l0.031999 0.063999-0.255993-0.511987-0.287993-0.479988a11.878694 11.878694 0 0 0-9.759748-5.983845H665.996027z" fill="#0072C6"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M679.424 746.862l84.005-395.996c7.424-34.852-12.581-48.567-35.438-40.009L234.277 501.138c-33.72 13.13-33.134 32-5.706 40.558l126.282 39.424 293.156-184.576c13.714-9.143 26.295-3.986 16.018 5.157L426.898 615.973l-9.143 130.304c13.13 0 18.871-5.706 25.71-12.581l61.696-59.429 128 94.282c23.442 13.129 40.01 6.29 46.3-21.724zM1024 512c0 282.843-229.157 512-512 512S0 794.843 0 512 229.157 0 512 0s512 229.157 512 512z" fill="#1296DB"></path></svg>

View File

@ -3,9 +3,9 @@ import { useTranslation } from "react-i18next";
import { Avatar, Card, Col, Empty, Flex, Input, type InputRef, Row, Typography } from "antd"; import { Avatar, Card, Col, Empty, Flex, Input, type InputRef, Row, Typography } from "antd";
import Show from "@/components/Show"; import Show from "@/components/Show";
import { applyDNSProvidersMap } from "@/domain/provider"; import { acmeDns01ProvidersMap } from "@/domain/provider";
export type ApplyDNSProviderPickerProps = { export type AcmeDns01ProviderPickerProps = {
className?: string; className?: string;
style?: React.CSSProperties; style?: React.CSSProperties;
autoFocus?: boolean; autoFocus?: boolean;
@ -13,7 +13,7 @@ export type ApplyDNSProviderPickerProps = {
onSelect?: (value: string) => void; onSelect?: (value: string) => void;
}; };
const ApplyDNSProviderPicker = ({ className, style, autoFocus, placeholder, onSelect }: ApplyDNSProviderPickerProps) => { const AcmeDns01ProviderPicker = ({ className, style, autoFocus, placeholder, onSelect }: AcmeDns01ProviderPickerProps) => {
const { t } = useTranslation(); const { t } = useTranslation();
const [keyword, setKeyword] = useState<string>(); const [keyword, setKeyword] = useState<string>();
@ -25,7 +25,7 @@ const ApplyDNSProviderPicker = ({ className, style, autoFocus, placeholder, onSe
}, []); }, []);
const providers = useMemo(() => { const providers = useMemo(() => {
return Array.from(applyDNSProvidersMap.values()).filter((provider) => { return Array.from(acmeDns01ProvidersMap.values()).filter((provider) => {
if (keyword) { if (keyword) {
const value = keyword.toLowerCase(); const value = keyword.toLowerCase();
return provider.type.toLowerCase().includes(value) || t(provider.name).toLowerCase().includes(value); return provider.type.toLowerCase().includes(value) || t(provider.name).toLowerCase().includes(value);
@ -72,4 +72,4 @@ const ApplyDNSProviderPicker = ({ className, style, autoFocus, placeholder, onSe
); );
}; };
export default memo(ApplyDNSProviderPicker); export default memo(AcmeDns01ProviderPicker);

View File

@ -2,21 +2,21 @@ import { memo, useEffect, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Avatar, Select, type SelectProps, Space, Typography } from "antd"; import { Avatar, Select, type SelectProps, Space, Typography } from "antd";
import { type NotifyProvider, notifyProvidersMap } from "@/domain/provider"; import { type AcmeDns01Provider, acmeDns01ProvidersMap } from "@/domain/provider";
export type NotifyProviderSelectProps = Omit< export type AcmeDns01ProviderSelectProps = Omit<
SelectProps, SelectProps,
"filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender" "filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender"
> & { > & {
filter?: (record: NotifyProvider) => boolean; filter?: (record: AcmeDns01Provider) => boolean;
}; };
const NotifyProviderSelect = ({ filter, ...props }: NotifyProviderSelectProps) => { const AcmeDns01ProviderSelect = ({ filter, ...props }: AcmeDns01ProviderSelectProps) => {
const { t } = useTranslation(); const { t } = useTranslation();
const [options, setOptions] = useState<Array<{ key: string; value: string; label: string; data: NotifyProvider }>>([]); const [options, setOptions] = useState<Array<{ key: string; value: string; label: string; data: AcmeDns01Provider }>>([]);
useEffect(() => { useEffect(() => {
const allItems = Array.from(notifyProvidersMap.values()); const allItems = Array.from(acmeDns01ProvidersMap.values());
const filteredItems = filter != null ? allItems.filter(filter) : allItems; const filteredItems = filter != null ? allItems.filter(filter) : allItems;
setOptions( setOptions(
filteredItems.map((item) => ({ filteredItems.map((item) => ({
@ -29,7 +29,7 @@ const NotifyProviderSelect = ({ filter, ...props }: NotifyProviderSelectProps) =
}, [filter]); }, [filter]);
const renderOption = (key: string) => { const renderOption = (key: string) => {
const provider = notifyProvidersMap.get(key); const provider = acmeDns01ProvidersMap.get(key);
return ( return (
<Space className="max-w-full grow overflow-hidden truncate" size={4}> <Space className="max-w-full grow overflow-hidden truncate" size={4}>
<Avatar src={provider?.icon} size="small" /> <Avatar src={provider?.icon} size="small" />
@ -64,4 +64,4 @@ const NotifyProviderSelect = ({ filter, ...props }: NotifyProviderSelectProps) =
); );
}; };
export default memo(NotifyProviderSelect); export default memo(AcmeDns01ProviderSelect);

View File

@ -2,28 +2,28 @@ import { memo, useEffect, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Avatar, Select, type SelectProps, Space, Typography } from "antd"; import { Avatar, Select, type SelectProps, Space, Typography } from "antd";
import { type ApplyCAProvider, applyCAProvidersMap } from "@/domain/provider"; import { type CAProvider, caProvidersMap } from "@/domain/provider";
export type ApplyCAProviderSelectProps = Omit< export type CAProviderSelectProps = Omit<
SelectProps, SelectProps,
"filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender" "filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender"
> & { > & {
filter?: (record: ApplyCAProvider) => boolean; filter?: (record: CAProvider) => boolean;
}; };
const ApplyCAProviderSelect = ({ filter, ...props }: ApplyCAProviderSelectProps) => { const CAProviderSelect = ({ filter, ...props }: CAProviderSelectProps) => {
const { t } = useTranslation(); const { t } = useTranslation();
const [options, setOptions] = useState<Array<{ key: string; value: string; label: string; data: ApplyCAProvider }>>([]); const [options, setOptions] = useState<Array<{ key: string; value: string; label: string; data: CAProvider }>>([]);
useEffect(() => { useEffect(() => {
const allItems = Array.from(applyCAProvidersMap.values()); const allItems = Array.from(caProvidersMap.values());
const filteredItems = filter != null ? allItems.filter(filter) : allItems; const filteredItems = filter != null ? allItems.filter(filter) : allItems;
setOptions([ setOptions([
{ {
key: "", key: "",
value: "", value: "",
label: t("provider.default_ca_provider.label"), label: t("provider.default_ca_provider.label"),
data: {} as ApplyCAProvider, data: {} as CAProvider,
}, },
...filteredItems.map((item) => ({ ...filteredItems.map((item) => ({
key: item.type, key: item.type,
@ -45,7 +45,7 @@ const ApplyCAProviderSelect = ({ filter, ...props }: ApplyCAProviderSelectProps)
); );
} }
const provider = applyCAProvidersMap.get(key); const provider = caProvidersMap.get(key);
return ( return (
<Space className="max-w-full grow overflow-hidden truncate" size={4}> <Space className="max-w-full grow overflow-hidden truncate" size={4}>
<Avatar src={provider?.icon} size="small" /> <Avatar src={provider?.icon} size="small" />
@ -80,4 +80,4 @@ const ApplyCAProviderSelect = ({ filter, ...props }: ApplyCAProviderSelectProps)
); );
}; };
export default memo(ApplyCAProviderSelect); export default memo(CAProviderSelect);

View File

@ -3,9 +3,9 @@ import { useTranslation } from "react-i18next";
import { Avatar, Card, Col, Empty, Flex, Input, type InputRef, Row, Tabs, Tooltip, Typography } from "antd"; import { Avatar, Card, Col, Empty, Flex, Input, type InputRef, Row, Tabs, Tooltip, Typography } from "antd";
import Show from "@/components/Show"; import Show from "@/components/Show";
import { DEPLOY_CATEGORIES, deployProvidersMap } from "@/domain/provider"; import { DEPLOYMENT_CATEGORIES, deploymentProvidersMap } from "@/domain/provider";
export type DeployProviderPickerProps = { export type DeploymentProviderPickerProps = {
className?: string; className?: string;
style?: React.CSSProperties; style?: React.CSSProperties;
autoFocus?: boolean; autoFocus?: boolean;
@ -13,10 +13,10 @@ export type DeployProviderPickerProps = {
onSelect?: (value: string) => void; onSelect?: (value: string) => void;
}; };
const DeployProviderPicker = ({ className, style, autoFocus, placeholder, onSelect }: DeployProviderPickerProps) => { const DeploymentProviderPicker = ({ className, style, autoFocus, placeholder, onSelect }: DeploymentProviderPickerProps) => {
const { t } = useTranslation(); const { t } = useTranslation();
const [category, setCategory] = useState<string>(DEPLOY_CATEGORIES.ALL); const [category, setCategory] = useState<string>(DEPLOYMENT_CATEGORIES.ALL);
const [keyword, setKeyword] = useState<string>(); const [keyword, setKeyword] = useState<string>();
const keywordInputRef = useRef<InputRef>(null); const keywordInputRef = useRef<InputRef>(null);
@ -27,9 +27,9 @@ const DeployProviderPicker = ({ className, style, autoFocus, placeholder, onSele
}, []); }, []);
const providers = useMemo(() => { const providers = useMemo(() => {
return Array.from(deployProvidersMap.values()) return Array.from(deploymentProvidersMap.values())
.filter((provider) => { .filter((provider) => {
if (category && category !== DEPLOY_CATEGORIES.ALL) { if (category && category !== DEPLOYMENT_CATEGORIES.ALL) {
return provider.category === category; return provider.category === category;
} }
@ -56,17 +56,17 @@ const DeployProviderPicker = ({ className, style, autoFocus, placeholder, onSele
<div className="mt-4"> <div className="mt-4">
<Flex> <Flex>
<Tabs <Tabs
defaultActiveKey={DEPLOY_CATEGORIES.ALL} defaultActiveKey={DEPLOYMENT_CATEGORIES.ALL}
items={[ items={[
DEPLOY_CATEGORIES.ALL, DEPLOYMENT_CATEGORIES.ALL,
DEPLOY_CATEGORIES.CDN, DEPLOYMENT_CATEGORIES.CDN,
DEPLOY_CATEGORIES.STORAGE, DEPLOYMENT_CATEGORIES.STORAGE,
DEPLOY_CATEGORIES.LOADBALANCE, DEPLOYMENT_CATEGORIES.LOADBALANCE,
DEPLOY_CATEGORIES.FIREWALL, DEPLOYMENT_CATEGORIES.FIREWALL,
DEPLOY_CATEGORIES.AV, DEPLOYMENT_CATEGORIES.AV,
DEPLOY_CATEGORIES.SERVERLESS, DEPLOYMENT_CATEGORIES.SERVERLESS,
DEPLOY_CATEGORIES.WEBSITE, DEPLOYMENT_CATEGORIES.WEBSITE,
DEPLOY_CATEGORIES.OTHER, DEPLOYMENT_CATEGORIES.OTHER,
].map((key) => ({ ].map((key) => ({
key: key, key: key,
label: t(`provider.category.${key}`), label: t(`provider.category.${key}`),
@ -110,4 +110,4 @@ const DeployProviderPicker = ({ className, style, autoFocus, placeholder, onSele
); );
}; };
export default memo(DeployProviderPicker); export default memo(DeploymentProviderPicker);

View File

@ -2,21 +2,21 @@ import { memo, useEffect, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Avatar, Select, type SelectProps, Space, Typography } from "antd"; import { Avatar, Select, type SelectProps, Space, Typography } from "antd";
import { type ApplyDNSProvider, applyDNSProvidersMap } from "@/domain/provider"; import { type DeploymentProvider, deploymentProvidersMap } from "@/domain/provider";
export type ApplyDNSProviderSelectProps = Omit< export type DeploymentProviderSelectProps = Omit<
SelectProps, SelectProps,
"filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender" "filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender"
> & { > & {
filter?: (record: ApplyDNSProvider) => boolean; filter?: (record: DeploymentProvider) => boolean;
}; };
const ApplyDNSProviderSelect = ({ filter, ...props }: ApplyDNSProviderSelectProps) => { const DeploymentProviderSelect = ({ filter, ...props }: DeploymentProviderSelectProps) => {
const { t } = useTranslation(); const { t } = useTranslation();
const [options, setOptions] = useState<Array<{ key: string; value: string; label: string; data: ApplyDNSProvider }>>([]); const [options, setOptions] = useState<Array<{ key: string; value: string; label: string; data: DeploymentProvider }>>([]);
useEffect(() => { useEffect(() => {
const allItems = Array.from(applyDNSProvidersMap.values()); const allItems = Array.from(deploymentProvidersMap.values());
const filteredItems = filter != null ? allItems.filter(filter) : allItems; const filteredItems = filter != null ? allItems.filter(filter) : allItems;
setOptions( setOptions(
filteredItems.map((item) => ({ filteredItems.map((item) => ({
@ -29,7 +29,7 @@ const ApplyDNSProviderSelect = ({ filter, ...props }: ApplyDNSProviderSelectProp
}, [filter]); }, [filter]);
const renderOption = (key: string) => { const renderOption = (key: string) => {
const provider = applyDNSProvidersMap.get(key); const provider = deploymentProvidersMap.get(key);
return ( return (
<Space className="max-w-full grow overflow-hidden truncate" size={4}> <Space className="max-w-full grow overflow-hidden truncate" size={4}>
<Avatar src={provider?.icon} size="small" /> <Avatar src={provider?.icon} size="small" />
@ -64,4 +64,4 @@ const ApplyDNSProviderSelect = ({ filter, ...props }: ApplyDNSProviderSelectProp
); );
}; };
export default memo(ApplyDNSProviderSelect); export default memo(DeploymentProviderSelect);

View File

@ -2,21 +2,21 @@ import { memo, useEffect, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Avatar, Select, type SelectProps, Space, Typography } from "antd"; import { Avatar, Select, type SelectProps, Space, Typography } from "antd";
import { type DeployProvider, deployProvidersMap } from "@/domain/provider"; import { type NotificationProvider, notificationProvidersMap } from "@/domain/provider";
export type DeployProviderSelectProps = Omit< export type NotificationProviderSelectProps = Omit<
SelectProps, SelectProps,
"filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender" "filterOption" | "filterSort" | "labelRender" | "options" | "optionFilterProp" | "optionLabelProp" | "optionRender"
> & { > & {
filter?: (record: DeployProvider) => boolean; filter?: (record: NotificationProvider) => boolean;
}; };
const DeployProviderSelect = ({ filter, ...props }: DeployProviderSelectProps) => { const NotificationProviderSelect = ({ filter, ...props }: NotificationProviderSelectProps) => {
const { t } = useTranslation(); const { t } = useTranslation();
const [options, setOptions] = useState<Array<{ key: string; value: string; label: string; data: DeployProvider }>>([]); const [options, setOptions] = useState<Array<{ key: string; value: string; label: string; data: NotificationProvider }>>([]);
useEffect(() => { useEffect(() => {
const allItems = Array.from(deployProvidersMap.values()); const allItems = Array.from(notificationProvidersMap.values());
const filteredItems = filter != null ? allItems.filter(filter) : allItems; const filteredItems = filter != null ? allItems.filter(filter) : allItems;
setOptions( setOptions(
filteredItems.map((item) => ({ filteredItems.map((item) => ({
@ -29,7 +29,7 @@ const DeployProviderSelect = ({ filter, ...props }: DeployProviderSelectProps) =
}, [filter]); }, [filter]);
const renderOption = (key: string) => { const renderOption = (key: string) => {
const provider = deployProvidersMap.get(key); const provider = notificationProvidersMap.get(key);
return ( return (
<Space className="max-w-full grow overflow-hidden truncate" size={4}> <Space className="max-w-full grow overflow-hidden truncate" size={4}>
<Avatar src={provider?.icon} size="small" /> <Avatar src={provider?.icon} size="small" />
@ -64,4 +64,4 @@ const DeployProviderSelect = ({ filter, ...props }: DeployProviderSelectProps) =
); );
}; };
export default memo(DeployProviderSelect); export default memo(NotificationProviderSelect);

View File

@ -31,10 +31,10 @@ import AccessEditModal from "@/components/access/AccessEditModal";
import AccessSelect from "@/components/access/AccessSelect"; import AccessSelect from "@/components/access/AccessSelect";
import ModalForm from "@/components/ModalForm"; import ModalForm from "@/components/ModalForm";
import MultipleInput from "@/components/MultipleInput"; import MultipleInput from "@/components/MultipleInput";
import ApplyCAProviderSelect from "@/components/provider/ApplyCAProviderSelect"; import AcmeDns01ProviderSelect from "@/components/provider/AcmeDns01ProviderSelect";
import ApplyDNSProviderSelect from "@/components/provider/ApplyDNSProviderSelect"; import CAProviderSelect from "@/components/provider/CAProviderSelect";
import Show from "@/components/Show"; import Show from "@/components/Show";
import { ACCESS_USAGES, APPLY_DNS_PROVIDERS, accessProvidersMap, applyCAProvidersMap, applyDNSProvidersMap } from "@/domain/provider"; import { ACCESS_USAGES, ACME_DNS01_PROVIDERS, accessProvidersMap, acmeDns01ProvidersMap, caProvidersMap } from "@/domain/provider";
import { type WorkflowNodeConfigForApply } from "@/domain/workflow"; import { type WorkflowNodeConfigForApply } from "@/domain/workflow";
import { useAntdForm, useAntdFormName, useZustandShallowSelector } from "@/hooks"; import { useAntdForm, useAntdFormName, useZustandShallowSelector } from "@/hooks";
import { useAccessesStore } from "@/stores/access"; import { useAccessesStore } from "@/stores/access";
@ -99,7 +99,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
.refine((v) => { .refine((v) => {
if (!fieldCAProvider) return true; if (!fieldCAProvider) return true;
const provider = applyCAProvidersMap.get(fieldCAProvider); const provider = caProvidersMap.get(fieldCAProvider);
return !!provider?.builtin || !!v; return !!provider?.builtin || !!v;
}, t("workflow_node.apply.form.ca_provider_access.placeholder")), }, t("workflow_node.apply.form.ca_provider_access.placeholder")),
caProviderConfig: z.any().nullish(), caProviderConfig: z.any().nullish(),
@ -155,7 +155,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
// 如果对应多个(如 AWS 的 Route53、Lightsail腾讯云的 DNS、EdgeOne 等),则显示。 // 如果对应多个(如 AWS 的 Route53、Lightsail腾讯云的 DNS、EdgeOne 等),则显示。
if (fieldProviderAccessId) { if (fieldProviderAccessId) {
const access = accesses.find((e) => e.id === fieldProviderAccessId); const access = accesses.find((e) => e.id === fieldProviderAccessId);
const providers = Array.from(applyDNSProvidersMap.values()).filter((e) => e.provider === access?.provider); const providers = Array.from(acmeDns01ProvidersMap.values()).filter((e) => e.provider === access?.provider);
setShowProvider(providers.length > 1); setShowProvider(providers.length > 1);
} else { } else {
setShowProvider(false); setShowProvider(false);
@ -166,7 +166,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
useEffect(() => { useEffect(() => {
// 内置的 CA 提供商(如 Let's Encrypt无需显示授权信息字段 // 内置的 CA 提供商(如 Let's Encrypt无需显示授权信息字段
if (fieldCAProvider) { if (fieldCAProvider) {
const provider = applyCAProvidersMap.get(fieldCAProvider); const provider = caProvidersMap.get(fieldCAProvider);
setShowCAProviderAccess(!provider?.builtin); setShowCAProviderAccess(!provider?.builtin);
} else { } else {
setShowCAProviderAccess(false); setShowCAProviderAccess(false);
@ -188,16 +188,16 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
NOTICE: If you add new child component, please keep ASCII order. NOTICE: If you add new child component, please keep ASCII order.
*/ */
switch (fieldProvider) { switch (fieldProvider) {
case APPLY_DNS_PROVIDERS.AWS: case ACME_DNS01_PROVIDERS.AWS:
case APPLY_DNS_PROVIDERS.AWS_ROUTE53: case ACME_DNS01_PROVIDERS.AWS_ROUTE53:
return <ApplyNodeConfigFormAWSRoute53Config {...nestedFormProps} />; return <ApplyNodeConfigFormAWSRoute53Config {...nestedFormProps} />;
case APPLY_DNS_PROVIDERS.HUAWEICLOUD: case ACME_DNS01_PROVIDERS.HUAWEICLOUD:
case APPLY_DNS_PROVIDERS.HUAWEICLOUD_DNS: case ACME_DNS01_PROVIDERS.HUAWEICLOUD_DNS:
return <ApplyNodeConfigFormHuaweiCloudDNSConfig {...nestedFormProps} />; return <ApplyNodeConfigFormHuaweiCloudDNSConfig {...nestedFormProps} />;
case APPLY_DNS_PROVIDERS.JDCLOUD: case ACME_DNS01_PROVIDERS.JDCLOUD:
case APPLY_DNS_PROVIDERS.JDCLOUD_DNS: case ACME_DNS01_PROVIDERS.JDCLOUD_DNS:
return <ApplyNodeConfigFormJDCloudDNSConfig {...nestedFormProps} />; return <ApplyNodeConfigFormJDCloudDNSConfig {...nestedFormProps} />;
case APPLY_DNS_PROVIDERS.TENCENTCLOUD_EO: case ACME_DNS01_PROVIDERS.TENCENTCLOUD_EO:
return <ApplyNodeConfigFormTencentCloudEOConfig {...nestedFormProps} />; return <ApplyNodeConfigFormTencentCloudEOConfig {...nestedFormProps} />;
} }
}, [disabled, initialValues?.providerConfig, fieldProvider, nestedFormInst, nestedFormName]); }, [disabled, initialValues?.providerConfig, fieldProvider, nestedFormInst, nestedFormName]);
@ -210,7 +210,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
formInst.setFieldValue("providerAccessId", initialValues?.providerAccessId); formInst.setFieldValue("providerAccessId", initialValues?.providerAccessId);
onValuesChange?.(formInst.getFieldsValue(true)); onValuesChange?.(formInst.getFieldsValue(true));
} else { } else {
if (applyDNSProvidersMap.get(fieldProvider)?.provider !== applyDNSProvidersMap.get(value)?.provider) { if (acmeDns01ProvidersMap.get(fieldProvider)?.provider !== acmeDns01ProvidersMap.get(value)?.provider) {
formInst.setFieldValue("providerAccessId", undefined); formInst.setFieldValue("providerAccessId", undefined);
onValuesChange?.(formInst.getFieldsValue(true)); onValuesChange?.(formInst.getFieldsValue(true));
} }
@ -222,7 +222,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
// 切换授权信息时联动 DNS 提供商 // 切换授权信息时联动 DNS 提供商
const access = accesses.find((access) => access.id === value); const access = accesses.find((access) => access.id === value);
const provider = Array.from(applyDNSProvidersMap.values()).find((provider) => provider.provider === access?.provider); const provider = Array.from(acmeDns01ProvidersMap.values()).find((provider) => provider.provider === access?.provider);
if (fieldProvider !== provider?.type) { if (fieldProvider !== provider?.type) {
formInst.setFieldValue("provider", provider?.type); formInst.setFieldValue("provider", provider?.type);
onValuesChange?.(formInst.getFieldsValue(true)); onValuesChange?.(formInst.getFieldsValue(true));
@ -243,7 +243,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
formInst.setFieldValue("caProviderAccessId", initialValues?.caProviderAccessId); formInst.setFieldValue("caProviderAccessId", initialValues?.caProviderAccessId);
onValuesChange?.(formInst.getFieldsValue(true)); onValuesChange?.(formInst.getFieldsValue(true));
} else { } else {
if (applyCAProvidersMap.get(fieldCAProvider)?.provider !== applyCAProvidersMap.get(value!)?.provider) { if (caProvidersMap.get(fieldCAProvider)?.provider !== caProvidersMap.get(value!)?.provider) {
formInst.setFieldValue("caProviderAccessId", undefined); formInst.setFieldValue("caProviderAccessId", undefined);
onValuesChange?.(formInst.getFieldsValue(true)); onValuesChange?.(formInst.getFieldsValue(true));
} }
@ -328,7 +328,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
</Form.Item> </Form.Item>
<Form.Item name="provider" label={t("workflow_node.apply.form.provider.label")} hidden={!showProvider} rules={[formRule]}> <Form.Item name="provider" label={t("workflow_node.apply.form.provider.label")} hidden={!showProvider} rules={[formRule]}>
<ApplyDNSProviderSelect <AcmeDns01ProviderSelect
disabled={!showProvider} disabled={!showProvider}
filter={(record) => { filter={(record) => {
if (fieldProviderAccessId) { if (fieldProviderAccessId) {
@ -413,7 +413,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
</div> </div>
</label> </label>
<Form.Item name="caProvider" rules={[formRule]}> <Form.Item name="caProvider" rules={[formRule]}>
<ApplyCAProviderSelect <CAProviderSelect
allowClear allowClear
placeholder={t("workflow_node.apply.form.ca_provider.placeholder")} placeholder={t("workflow_node.apply.form.ca_provider.placeholder")}
showSearch showSearch
@ -431,7 +431,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
</div> </div>
<div className="text-right"> <div className="text-right">
<AccessEditModal <AccessEditModal
data={{ provider: applyCAProvidersMap.get(fieldCAProvider!)?.provider }} data={{ provider: caProvidersMap.get(fieldCAProvider!)?.provider }}
range="ca-only" range="ca-only"
scene="add" scene="add"
trigger={ trigger={
@ -454,7 +454,7 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
<AccessSelect <AccessSelect
filter={(record) => { filter={(record) => {
if (fieldCAProvider) { if (fieldCAProvider) {
return applyCAProvidersMap.get(fieldCAProvider)?.provider === record.provider; return caProvidersMap.get(fieldCAProvider)?.provider === record.provider;
} }
const provider = accessProvidersMap.get(record.provider); const provider = accessProvidersMap.get(record.provider);

View File

@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next";
import { Avatar, Flex, Typography } from "antd"; import { Avatar, Flex, Typography } from "antd";
import { produce } from "immer"; import { produce } from "immer";
import { deployProvidersMap } from "@/domain/provider"; import { deploymentProvidersMap } from "@/domain/provider";
import { type WorkflowNodeConfigForDeploy, WorkflowNodeType } from "@/domain/workflow"; import { type WorkflowNodeConfigForDeploy, WorkflowNodeType } from "@/domain/workflow";
import { useZustandShallowSelector } from "@/hooks"; import { useZustandShallowSelector } from "@/hooks";
import { useWorkflowStore } from "@/stores/workflow"; import { useWorkflowStore } from "@/stores/workflow";
@ -43,7 +43,7 @@ const DeployNode = ({ node, disabled }: DeployNodeProps) => {
} }
const config = (node.config as WorkflowNodeConfigForDeploy) ?? {}; const config = (node.config as WorkflowNodeConfigForDeploy) ?? {};
const provider = deployProvidersMap.get(config.provider); const provider = deploymentProvidersMap.get(config.provider);
return ( return (
<Flex className="size-full overflow-hidden" align="center" gap={8}> <Flex className="size-full overflow-hidden" align="center" gap={8}>
<Avatar src={provider?.icon} size="small" /> <Avatar src={provider?.icon} size="small" />

View File

@ -7,10 +7,10 @@ import { z } from "zod";
import AccessEditModal from "@/components/access/AccessEditModal"; import AccessEditModal from "@/components/access/AccessEditModal";
import AccessSelect from "@/components/access/AccessSelect"; import AccessSelect from "@/components/access/AccessSelect";
import DeployProviderPicker from "@/components/provider/DeployProviderPicker.tsx"; import DeploymentProviderPicker from "@/components/provider/DeploymentProviderPicker.tsx";
import DeployProviderSelect from "@/components/provider/DeployProviderSelect.tsx"; import DeploymentProviderSelect from "@/components/provider/DeploymentProviderSelect.tsx";
import Show from "@/components/Show"; import Show from "@/components/Show";
import { ACCESS_USAGES, DEPLOY_PROVIDERS, accessProvidersMap, deployProvidersMap } from "@/domain/provider"; import { ACCESS_USAGES, DEPLOYMENT_PROVIDERS, accessProvidersMap, deploymentProvidersMap } from "@/domain/provider";
import { type WorkflowNode, type WorkflowNodeConfigForDeploy } from "@/domain/workflow"; import { type WorkflowNode, type WorkflowNodeConfigForDeploy } from "@/domain/workflow";
import { useAntdForm, useAntdFormName, useZustandShallowSelector } from "@/hooks"; import { useAntdForm, useAntdFormName, useZustandShallowSelector } from "@/hooks";
import { useWorkflowStore } from "@/stores/workflow"; import { useWorkflowStore } from "@/stores/workflow";
@ -133,7 +133,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
.refine((v) => { .refine((v) => {
if (!fieldProvider) return true; if (!fieldProvider) return true;
const provider = deployProvidersMap.get(fieldProvider); const provider = deploymentProvidersMap.get(fieldProvider);
return !!provider?.builtin || !!v; return !!provider?.builtin || !!v;
}, t("workflow_node.deploy.form.provider_access.placeholder")), }, t("workflow_node.deploy.form.provider_access.placeholder")),
providerConfig: z.any().nullish(), providerConfig: z.any().nullish(),
@ -151,7 +151,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
useEffect(() => { useEffect(() => {
// 内置的部署提供商(如本地部署)无需显示授权信息字段 // 内置的部署提供商(如本地部署)无需显示授权信息字段
if (fieldProvider) { if (fieldProvider) {
const provider = deployProvidersMap.get(fieldProvider); const provider = deploymentProvidersMap.get(fieldProvider);
setShowProviderAccess(!provider?.builtin); setShowProviderAccess(!provider?.builtin);
} else { } else {
setShowProviderAccess(false); setShowProviderAccess(false);
@ -173,145 +173,145 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
NOTICE: If you add new child component, please keep ASCII order. NOTICE: If you add new child component, please keep ASCII order.
*/ */
switch (fieldProvider) { switch (fieldProvider) {
case DEPLOY_PROVIDERS["1PANEL_CONSOLE"]: case DEPLOYMENT_PROVIDERS["1PANEL_CONSOLE"]:
return <DeployNodeConfigForm1PanelConsoleConfig {...nestedFormProps} />; return <DeployNodeConfigForm1PanelConsoleConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS["1PANEL_SITE"]: case DEPLOYMENT_PROVIDERS["1PANEL_SITE"]:
return <DeployNodeConfigForm1PanelSiteConfig {...nestedFormProps} />; return <DeployNodeConfigForm1PanelSiteConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_ALB: case DEPLOYMENT_PROVIDERS.ALIYUN_ALB:
return <DeployNodeConfigFormAliyunALBConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunALBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_APIGW: case DEPLOYMENT_PROVIDERS.ALIYUN_APIGW:
return <DeployNodeConfigFormAliyunAPIGWConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunAPIGWConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_CAS: case DEPLOYMENT_PROVIDERS.ALIYUN_CAS:
return <DeployNodeConfigFormAliyunCASConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunCASConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_CAS_DEPLOY: case DEPLOYMENT_PROVIDERS.ALIYUN_CAS_DEPLOY:
return <DeployNodeConfigFormAliyunCASDeployConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunCASDeployConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_CLB: case DEPLOYMENT_PROVIDERS.ALIYUN_CLB:
return <DeployNodeConfigFormAliyunCLBConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunCLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_CDN: case DEPLOYMENT_PROVIDERS.ALIYUN_CDN:
return <DeployNodeConfigFormAliyunCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_DCDN: case DEPLOYMENT_PROVIDERS.ALIYUN_DCDN:
return <DeployNodeConfigFormAliyunDCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunDCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_ESA: case DEPLOYMENT_PROVIDERS.ALIYUN_ESA:
return <DeployNodeConfigFormAliyunESAConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunESAConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_FC: case DEPLOYMENT_PROVIDERS.ALIYUN_FC:
return <DeployNodeConfigFormAliyunFCConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunFCConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_LIVE: case DEPLOYMENT_PROVIDERS.ALIYUN_LIVE:
return <DeployNodeConfigFormAliyunLiveConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunLiveConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_NLB: case DEPLOYMENT_PROVIDERS.ALIYUN_NLB:
return <DeployNodeConfigFormAliyunNLBConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunNLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_OSS: case DEPLOYMENT_PROVIDERS.ALIYUN_OSS:
return <DeployNodeConfigFormAliyunOSSConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunOSSConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_VOD: case DEPLOYMENT_PROVIDERS.ALIYUN_VOD:
return <DeployNodeConfigFormAliyunVODConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunVODConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.ALIYUN_WAF: case DEPLOYMENT_PROVIDERS.ALIYUN_WAF:
return <DeployNodeConfigFormAliyunWAFConfig {...nestedFormProps} />; return <DeployNodeConfigFormAliyunWAFConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.AWS_ACM: case DEPLOYMENT_PROVIDERS.AWS_ACM:
return <DeployNodeConfigFormAWSACMConfig {...nestedFormProps} />; return <DeployNodeConfigFormAWSACMConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.AWS_CLOUDFRONT: case DEPLOYMENT_PROVIDERS.AWS_CLOUDFRONT:
return <DeployNodeConfigFormAWSCloudFrontConfig {...nestedFormProps} />; return <DeployNodeConfigFormAWSCloudFrontConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.AZURE_KEYVAULT: case DEPLOYMENT_PROVIDERS.AZURE_KEYVAULT:
return <DeployNodeConfigFormAzureKeyVaultConfig {...nestedFormProps} />; return <DeployNodeConfigFormAzureKeyVaultConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAIDUCLOUD_APPBLB: case DEPLOYMENT_PROVIDERS.BAIDUCLOUD_APPBLB:
return <DeployNodeConfigFormBaiduCloudAppBLBConfig {...nestedFormProps} />; return <DeployNodeConfigFormBaiduCloudAppBLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAIDUCLOUD_BLB: case DEPLOYMENT_PROVIDERS.BAIDUCLOUD_BLB:
return <DeployNodeConfigFormBaiduCloudBLBConfig {...nestedFormProps} />; return <DeployNodeConfigFormBaiduCloudBLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAIDUCLOUD_CDN: case DEPLOYMENT_PROVIDERS.BAIDUCLOUD_CDN:
return <DeployNodeConfigFormBaiduCloudCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormBaiduCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAISHAN_CDN: case DEPLOYMENT_PROVIDERS.BAISHAN_CDN:
return <DeployNodeConfigFormBaishanCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormBaishanCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAOTAPANEL_CONSOLE: case DEPLOYMENT_PROVIDERS.BAOTAPANEL_CONSOLE:
return <DeployNodeConfigFormBaotaPanelConsoleConfig {...nestedFormProps} />; return <DeployNodeConfigFormBaotaPanelConsoleConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BAOTAPANEL_SITE: case DEPLOYMENT_PROVIDERS.BAOTAPANEL_SITE:
return <DeployNodeConfigFormBaotaPanelSiteConfig {...nestedFormProps} />; return <DeployNodeConfigFormBaotaPanelSiteConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BUNNY_CDN: case DEPLOYMENT_PROVIDERS.BUNNY_CDN:
return <DeployNodeConfigFormBunnyCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormBunnyCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.BYTEPLUS_CDN: case DEPLOYMENT_PROVIDERS.BYTEPLUS_CDN:
return <DeployNodeConfigFormBytePlusCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormBytePlusCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.CDNFLY: case DEPLOYMENT_PROVIDERS.CDNFLY:
return <DeployNodeConfigFormCdnflyConfig {...nestedFormProps} />; return <DeployNodeConfigFormCdnflyConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.DOGECLOUD_CDN: case DEPLOYMENT_PROVIDERS.DOGECLOUD_CDN:
return <DeployNodeConfigFormDogeCloudCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormDogeCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.EDGIO_APPLICATIONS: case DEPLOYMENT_PROVIDERS.EDGIO_APPLICATIONS:
return <DeployNodeConfigFormEdgioApplicationsConfig {...nestedFormProps} />; return <DeployNodeConfigFormEdgioApplicationsConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.GCORE_CDN: case DEPLOYMENT_PROVIDERS.GCORE_CDN:
return <DeployNodeConfigFormGcoreCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormGcoreCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.HUAWEICLOUD_CDN: case DEPLOYMENT_PROVIDERS.HUAWEICLOUD_CDN:
return <DeployNodeConfigFormHuaweiCloudCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormHuaweiCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.HUAWEICLOUD_ELB: case DEPLOYMENT_PROVIDERS.HUAWEICLOUD_ELB:
return <DeployNodeConfigFormHuaweiCloudELBConfig {...nestedFormProps} />; return <DeployNodeConfigFormHuaweiCloudELBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.HUAWEICLOUD_WAF: case DEPLOYMENT_PROVIDERS.HUAWEICLOUD_WAF:
return <DeployNodeConfigFormHuaweiCloudWAFConfig {...nestedFormProps} />; return <DeployNodeConfigFormHuaweiCloudWAFConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.JDCLOUD_ALB: case DEPLOYMENT_PROVIDERS.JDCLOUD_ALB:
return <DeployNodeConfigFormJDCloudALBConfig {...nestedFormProps} />; return <DeployNodeConfigFormJDCloudALBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.JDCLOUD_CDN: case DEPLOYMENT_PROVIDERS.JDCLOUD_CDN:
return <DeployNodeConfigFormJDCloudCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormJDCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.JDCLOUD_LIVE: case DEPLOYMENT_PROVIDERS.JDCLOUD_LIVE:
return <DeployNodeConfigFormJDCloudLiveConfig {...nestedFormProps} />; return <DeployNodeConfigFormJDCloudLiveConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.JDCLOUD_VOD: case DEPLOYMENT_PROVIDERS.JDCLOUD_VOD:
return <DeployNodeConfigFormJDCloudVODConfig {...nestedFormProps} />; return <DeployNodeConfigFormJDCloudVODConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.KUBERNETES_SECRET: case DEPLOYMENT_PROVIDERS.KUBERNETES_SECRET:
return <DeployNodeConfigFormKubernetesSecretConfig {...nestedFormProps} />; return <DeployNodeConfigFormKubernetesSecretConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.LOCAL: case DEPLOYMENT_PROVIDERS.LOCAL:
return <DeployNodeConfigFormLocalConfig {...nestedFormProps} />; return <DeployNodeConfigFormLocalConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.QINIU_CDN: case DEPLOYMENT_PROVIDERS.QINIU_CDN:
return <DeployNodeConfigFormQiniuCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormQiniuCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.QINIU_KODO: case DEPLOYMENT_PROVIDERS.QINIU_KODO:
return <DeployNodeConfigFormQiniuKodoConfig {...nestedFormProps} />; return <DeployNodeConfigFormQiniuKodoConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.QINIU_PILI: case DEPLOYMENT_PROVIDERS.QINIU_PILI:
return <DeployNodeConfigFormQiniuPiliConfig {...nestedFormProps} />; return <DeployNodeConfigFormQiniuPiliConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.RAINYUN_RCDN: case DEPLOYMENT_PROVIDERS.RAINYUN_RCDN:
return <DeployNodeConfigFormRainYunRCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormRainYunRCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.SAFELINE: case DEPLOYMENT_PROVIDERS.SAFELINE:
return <DeployNodeConfigFormSafeLineConfig {...nestedFormProps} />; return <DeployNodeConfigFormSafeLineConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.SSH: case DEPLOYMENT_PROVIDERS.SSH:
return <DeployNodeConfigFormSSHConfig {...nestedFormProps} />; return <DeployNodeConfigFormSSHConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_CDN: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_CDN:
return <DeployNodeConfigFormTencentCloudCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_CLB: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_CLB:
return <DeployNodeConfigFormTencentCloudCLBConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudCLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_COS: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_COS:
return <DeployNodeConfigFormTencentCloudCOSConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudCOSConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_CSS: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_CSS:
return <DeployNodeConfigFormTencentCloudCSSConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudCSSConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_ECDN: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_ECDN:
return <DeployNodeConfigFormTencentCloudECDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudECDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_EO: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_EO:
return <DeployNodeConfigFormTencentCloudEOConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudEOConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_SCF: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_SCF:
return <DeployNodeConfigFormTencentCloudSCFConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudSCFConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_SSL_DEPLOY: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_SSL_DEPLOY:
return <DeployNodeConfigFormTencentCloudSSLDeployConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudSSLDeployConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_VOD: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_VOD:
return <DeployNodeConfigFormTencentCloudVODConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudVODConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.TENCENTCLOUD_WAF: case DEPLOYMENT_PROVIDERS.TENCENTCLOUD_WAF:
return <DeployNodeConfigFormTencentCloudWAFConfig {...nestedFormProps} />; return <DeployNodeConfigFormTencentCloudWAFConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.UCLOUD_UCDN: case DEPLOYMENT_PROVIDERS.UCLOUD_UCDN:
return <DeployNodeConfigFormUCloudUCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormUCloudUCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.UCLOUD_US3: case DEPLOYMENT_PROVIDERS.UCLOUD_US3:
return <DeployNodeConfigFormUCloudUS3Config {...nestedFormProps} />; return <DeployNodeConfigFormUCloudUS3Config {...nestedFormProps} />;
case DEPLOY_PROVIDERS.UPYUN_CDN: case DEPLOYMENT_PROVIDERS.UPYUN_CDN:
return <DeployNodeConfigFormUpyunCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormUpyunCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.UPYUN_FILE: case DEPLOYMENT_PROVIDERS.UPYUN_FILE:
return <DeployNodeConfigFormUpyunFileConfig {...nestedFormProps} />; return <DeployNodeConfigFormUpyunFileConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_ALB: case DEPLOYMENT_PROVIDERS.VOLCENGINE_ALB:
return <DeployNodeConfigFormVolcEngineALBConfig {...nestedFormProps} />; return <DeployNodeConfigFormVolcEngineALBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_CDN: case DEPLOYMENT_PROVIDERS.VOLCENGINE_CDN:
return <DeployNodeConfigFormVolcEngineCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormVolcEngineCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_CERTCENTER: case DEPLOYMENT_PROVIDERS.VOLCENGINE_CERTCENTER:
return <DeployNodeConfigFormVolcEngineCertCenterConfig {...nestedFormProps} />; return <DeployNodeConfigFormVolcEngineCertCenterConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_CLB: case DEPLOYMENT_PROVIDERS.VOLCENGINE_CLB:
return <DeployNodeConfigFormVolcEngineCLBConfig {...nestedFormProps} />; return <DeployNodeConfigFormVolcEngineCLBConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_DCDN: case DEPLOYMENT_PROVIDERS.VOLCENGINE_DCDN:
return <DeployNodeConfigFormVolcEngineDCDNConfig {...nestedFormProps} />; return <DeployNodeConfigFormVolcEngineDCDNConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_IMAGEX: case DEPLOYMENT_PROVIDERS.VOLCENGINE_IMAGEX:
return <DeployNodeConfigFormVolcEngineImageXConfig {...nestedFormProps} />; return <DeployNodeConfigFormVolcEngineImageXConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_LIVE: case DEPLOYMENT_PROVIDERS.VOLCENGINE_LIVE:
return <DeployNodeConfigFormVolcEngineLiveConfig {...nestedFormProps} />; return <DeployNodeConfigFormVolcEngineLiveConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.VOLCENGINE_TOS: case DEPLOYMENT_PROVIDERS.VOLCENGINE_TOS:
return <DeployNodeConfigFormVolcEngineTOSConfig {...nestedFormProps} />; return <DeployNodeConfigFormVolcEngineTOSConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.WANGSU_CDNPRO: case DEPLOYMENT_PROVIDERS.WANGSU_CDNPRO:
return <DeployNodeConfigFormWangsuCDNProConfig {...nestedFormProps} />; return <DeployNodeConfigFormWangsuCDNProConfig {...nestedFormProps} />;
case DEPLOY_PROVIDERS.WEBHOOK: case DEPLOYMENT_PROVIDERS.WEBHOOK:
return <DeployNodeConfigFormWebhookConfig {...nestedFormProps} />; return <DeployNodeConfigFormWebhookConfig {...nestedFormProps} />;
} }
}, [disabled, initialValues?.providerConfig, fieldProvider, nestedFormInst, nestedFormName]); }, [disabled, initialValues?.providerConfig, fieldProvider, nestedFormInst, nestedFormName]);
@ -339,7 +339,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
} }
formInst.setFieldsValue(newValues); formInst.setFieldsValue(newValues);
if (deployProvidersMap.get(fieldProvider)?.provider !== deployProvidersMap.get(value!)?.provider) { if (deploymentProvidersMap.get(fieldProvider)?.provider !== deploymentProvidersMap.get(value!)?.provider) {
formInst.setFieldValue("providerAccessId", undefined); formInst.setFieldValue("providerAccessId", undefined);
onValuesChange?.(formInst.getFieldsValue(true)); onValuesChange?.(formInst.getFieldsValue(true));
} }
@ -384,10 +384,10 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
<Form className={className} style={style} {...formProps} disabled={disabled} layout="vertical" scrollToFirstError onValuesChange={handleFormChange}> <Form className={className} style={style} {...formProps} disabled={disabled} layout="vertical" scrollToFirstError onValuesChange={handleFormChange}>
<Show <Show
when={!!fieldProvider} when={!!fieldProvider}
fallback={<DeployProviderPicker autoFocus placeholder={t("workflow_node.deploy.search.provider.placeholder")} onSelect={handleProviderPick} />} fallback={<DeploymentProviderPicker autoFocus placeholder={t("workflow_node.deploy.search.provider.placeholder")} onSelect={handleProviderPick} />}
> >
<Form.Item name="provider" label={t("workflow_node.deploy.form.provider.label")} rules={[formRule]}> <Form.Item name="provider" label={t("workflow_node.deploy.form.provider.label")} rules={[formRule]}>
<DeployProviderSelect <DeploymentProviderSelect
allowClear allowClear
disabled={!!initialValues?.provider} disabled={!!initialValues?.provider}
placeholder={t("workflow_node.deploy.form.provider.placeholder")} placeholder={t("workflow_node.deploy.form.provider.placeholder")}
@ -410,7 +410,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
</div> </div>
<div className="text-right"> <div className="text-right">
<AccessEditModal <AccessEditModal
data={{ provider: deployProvidersMap.get(fieldProvider!)?.provider }} data={{ provider: deploymentProvidersMap.get(fieldProvider!)?.provider }}
range="both-dns-hosting" range="both-dns-hosting"
scene="add" scene="add"
trigger={ trigger={
@ -433,7 +433,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
<AccessSelect <AccessSelect
filter={(record) => { filter={(record) => {
if (fieldProvider) { if (fieldProvider) {
return deployProvidersMap.get(fieldProvider)?.provider === record.provider; return deploymentProvidersMap.get(fieldProvider)?.provider === record.provider;
} }
const provider = accessProvidersMap.get(record.provider); const provider = accessProvidersMap.get(record.provider);
@ -444,7 +444,7 @@ const DeployNodeConfigForm = forwardRef<DeployNodeConfigFormInstance, DeployNode
</Form.Item> </Form.Item>
</Form.Item> </Form.Item>
<Show when={fieldProvider === DEPLOY_PROVIDERS.LOCAL}> <Show when={fieldProvider === DEPLOYMENT_PROVIDERS.LOCAL}>
<Form.Item> <Form.Item>
<Alert <Alert
type="info" type="info"

View File

@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next";
import { Avatar, Flex, Typography } from "antd"; import { Avatar, Flex, Typography } from "antd";
import { produce } from "immer"; import { produce } from "immer";
import { notifyProvidersMap } from "@/domain/provider"; import { notificationProvidersMap } from "@/domain/provider";
import { notifyChannelsMap } from "@/domain/settings"; import { notifyChannelsMap } from "@/domain/settings";
import { type WorkflowNodeConfigForNotify, WorkflowNodeType } from "@/domain/workflow"; import { type WorkflowNodeConfigForNotify, WorkflowNodeType } from "@/domain/workflow";
import { useZustandShallowSelector } from "@/hooks"; import { useZustandShallowSelector } from "@/hooks";
@ -40,7 +40,7 @@ const NotifyNode = ({ node, disabled }: NotifyNodeProps) => {
const config = (node.config as WorkflowNodeConfigForNotify) ?? {}; const config = (node.config as WorkflowNodeConfigForNotify) ?? {};
const channel = notifyChannelsMap.get(config.channel as string); const channel = notifyChannelsMap.get(config.channel as string);
const provider = notifyProvidersMap.get(config.provider); const provider = notificationProvidersMap.get(config.provider);
return ( return (
<Flex className="size-full overflow-hidden" align="center" gap={8}> <Flex className="size-full overflow-hidden" align="center" gap={8}>
<Avatar src={provider?.icon} size="small" /> <Avatar src={provider?.icon} size="small" />

View File

@ -2,14 +2,14 @@ import { forwardRef, memo, useEffect, useImperativeHandle, useState } from "reac
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Link } from "react-router"; import { Link } from "react-router";
import { PlusOutlined as PlusOutlinedIcon, RightOutlined as RightOutlinedIcon } from "@ant-design/icons"; import { PlusOutlined as PlusOutlinedIcon, RightOutlined as RightOutlinedIcon } from "@ant-design/icons";
import { Alert, Button, Form, type FormInstance, Input, Select } from "antd"; import { Button, Form, type FormInstance, Input, Select } from "antd";
import { createSchemaFieldRule } from "antd-zod"; import { createSchemaFieldRule } from "antd-zod";
import { z } from "zod"; import { z } from "zod";
import AccessEditModal from "@/components/access/AccessEditModal"; import AccessEditModal from "@/components/access/AccessEditModal";
import AccessSelect from "@/components/access/AccessSelect"; import AccessSelect from "@/components/access/AccessSelect";
import NotifyProviderSelect from "@/components/provider/NotifyProviderSelect"; import NotificationProviderSelect from "@/components/provider/NotificationProviderSelect";
import { ACCESS_USAGES, accessProvidersMap, notifyProvidersMap } from "@/domain/provider"; import { ACCESS_USAGES, accessProvidersMap, notificationProvidersMap } from "@/domain/provider";
import { notifyChannelsMap } from "@/domain/settings"; import { notifyChannelsMap } from "@/domain/settings";
import { type WorkflowNodeConfigForNotify } from "@/domain/workflow"; import { type WorkflowNodeConfigForNotify } from "@/domain/workflow";
import { useAntdForm, useZustandShallowSelector } from "@/hooks"; import { useAntdForm, useZustandShallowSelector } from "@/hooks";
@ -81,7 +81,7 @@ const NotifyNodeConfigForm = forwardRef<NotifyNodeConfigFormInstance, NotifyNode
// 如果对应多个,则显示。 // 如果对应多个,则显示。
if (fieldProviderAccessId) { if (fieldProviderAccessId) {
const access = accesses.find((e) => e.id === fieldProviderAccessId); const access = accesses.find((e) => e.id === fieldProviderAccessId);
const providers = Array.from(notifyProvidersMap.values()).filter((e) => e.provider === access?.provider); const providers = Array.from(notificationProvidersMap.values()).filter((e) => e.provider === access?.provider);
setShowProvider(providers.length > 1); setShowProvider(providers.length > 1);
} else { } else {
setShowProvider(false); setShowProvider(false);
@ -96,7 +96,7 @@ const NotifyNodeConfigForm = forwardRef<NotifyNodeConfigFormInstance, NotifyNode
formInst.setFieldValue("providerAccessId", initialValues?.providerAccessId); formInst.setFieldValue("providerAccessId", initialValues?.providerAccessId);
onValuesChange?.(formInst.getFieldsValue(true)); onValuesChange?.(formInst.getFieldsValue(true));
} else { } else {
if (notifyProvidersMap.get(fieldProvider)?.provider !== notifyProvidersMap.get(value)?.provider) { if (notificationProvidersMap.get(fieldProvider)?.provider !== notificationProvidersMap.get(value)?.provider) {
formInst.setFieldValue("providerAccessId", undefined); formInst.setFieldValue("providerAccessId", undefined);
onValuesChange?.(formInst.getFieldsValue(true)); onValuesChange?.(formInst.getFieldsValue(true));
} }
@ -108,7 +108,7 @@ const NotifyNodeConfigForm = forwardRef<NotifyNodeConfigFormInstance, NotifyNode
// 切换授权信息时联动消息通知提供商 // 切换授权信息时联动消息通知提供商
const access = accesses.find((access) => access.id === value); const access = accesses.find((access) => access.id === value);
const provider = Array.from(notifyProvidersMap.values()).find((provider) => provider.provider === access?.provider); const provider = Array.from(notificationProvidersMap.values()).find((provider) => provider.provider === access?.provider);
if (fieldProvider !== provider?.type) { if (fieldProvider !== provider?.type) {
formInst.setFieldValue("provider", provider?.type); formInst.setFieldValue("provider", provider?.type);
onValuesChange?.(formInst.getFieldsValue(true)); onValuesChange?.(formInst.getFieldsValue(true));
@ -172,7 +172,7 @@ const NotifyNodeConfigForm = forwardRef<NotifyNodeConfigFormInstance, NotifyNode
</Form.Item> </Form.Item>
<Form.Item name="provider" label={t("workflow_node.notify.form.provider.label")} hidden={!showProvider} rules={[formRule]}> <Form.Item name="provider" label={t("workflow_node.notify.form.provider.label")} hidden={!showProvider} rules={[formRule]}>
<NotifyProviderSelect <NotificationProviderSelect
disabled={!showProvider} disabled={!showProvider}
filter={(record) => { filter={(record) => {
if (fieldProviderAccessId) { if (fieldProviderAccessId) {

View File

@ -150,12 +150,12 @@ export const accessProvidersMap: Map<AccessProvider["type"] | string, AccessProv
); );
// #endregion // #endregion
// #region ApplyCAProvider // #region CAProvider
/* /*
ASCII ASCII
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
export const APPLY_CA_PROVIDERS = Object.freeze({ export const CA_PROVIDERS = Object.freeze({
BUYPASS: `${ACCESS_PROVIDERS.BUYPASS}`, BUYPASS: `${ACCESS_PROVIDERS.BUYPASS}`,
GOOGLETRUSTSERVICES: `${ACCESS_PROVIDERS.GOOGLETRUSTSERVICES}`, GOOGLETRUSTSERVICES: `${ACCESS_PROVIDERS.GOOGLETRUSTSERVICES}`,
LETSENCRYPT: `${ACCESS_PROVIDERS.LETSENCRYPT}`, LETSENCRYPT: `${ACCESS_PROVIDERS.LETSENCRYPT}`,
@ -164,32 +164,32 @@ export const APPLY_CA_PROVIDERS = Object.freeze({
ZEROSSL: `${ACCESS_PROVIDERS.ZEROSSL}`, ZEROSSL: `${ACCESS_PROVIDERS.ZEROSSL}`,
} as const); } as const);
export type ApplyCAProviderType = (typeof APPLY_CA_PROVIDERS)[keyof typeof APPLY_CA_PROVIDERS]; export type CAProviderType = (typeof CA_PROVIDERS)[keyof typeof CA_PROVIDERS];
export type ApplyCAProvider = { export type CAProvider = {
type: ApplyCAProviderType; type: CAProviderType;
name: string; name: string;
icon: string; icon: string;
provider: AccessProviderType; provider: AccessProviderType;
builtin: boolean; builtin: boolean;
}; };
export const applyCAProvidersMap: Map<ApplyCAProvider["type"] | string, ApplyCAProvider> = new Map( export const caProvidersMap: Map<CAProvider["type"] | string, CAProvider> = new Map(
/* /*
NOTICE: The following order determines the order displayed at the frontend. NOTICE: The following order determines the order displayed at the frontend.
*/ */
[ [
[APPLY_CA_PROVIDERS.LETSENCRYPT, "builtin"], [CA_PROVIDERS.LETSENCRYPT, "builtin"],
[APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING, "builtin"], [CA_PROVIDERS.LETSENCRYPTSTAGING, "builtin"],
[APPLY_CA_PROVIDERS.BUYPASS], [CA_PROVIDERS.BUYPASS],
[APPLY_CA_PROVIDERS.GOOGLETRUSTSERVICES], [CA_PROVIDERS.GOOGLETRUSTSERVICES],
[APPLY_CA_PROVIDERS.SSLCOM], [CA_PROVIDERS.SSLCOM],
[APPLY_CA_PROVIDERS.ZEROSSL], [CA_PROVIDERS.ZEROSSL],
].map(([type, builtin]) => [ ].map(([type, builtin]) => [
type, type,
{ {
type: type as ApplyCAProviderType, type: type as CAProviderType,
name: accessProvidersMap.get(type.split("-")[0])!.name, name: accessProvidersMap.get(type.split("-")[0])!.name,
icon: accessProvidersMap.get(type.split("-")[0])!.icon, icon: accessProvidersMap.get(type.split("-")[0])!.icon,
provider: type.split("-")[0] as AccessProviderType, provider: type.split("-")[0] as AccessProviderType,
@ -199,12 +199,12 @@ export const applyCAProvidersMap: Map<ApplyCAProvider["type"] | string, ApplyCAP
); );
// #endregion // #endregion
// #region ApplyDNSProvider // #region ACMEDNS01Provider
/* /*
ASCII ASCII
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
export const APPLY_DNS_PROVIDERS = Object.freeze({ export const ACME_DNS01_PROVIDERS = Object.freeze({
ACMEHTTPREQ: `${ACCESS_PROVIDERS.ACMEHTTPREQ}`, ACMEHTTPREQ: `${ACCESS_PROVIDERS.ACMEHTTPREQ}`,
ALIYUN: `${ACCESS_PROVIDERS.ALIYUN}`, // 兼容旧值,等同于 `ALIYUN_DNS` ALIYUN: `${ACCESS_PROVIDERS.ALIYUN}`, // 兼容旧值,等同于 `ALIYUN_DNS`
ALIYUN_DNS: `${ACCESS_PROVIDERS.ALIYUN}-dns`, ALIYUN_DNS: `${ACCESS_PROVIDERS.ALIYUN}-dns`,
@ -244,54 +244,54 @@ export const APPLY_DNS_PROVIDERS = Object.freeze({
WESTCN: `${ACCESS_PROVIDERS.WESTCN}`, WESTCN: `${ACCESS_PROVIDERS.WESTCN}`,
} as const); } as const);
export type ApplyDNSProviderType = (typeof APPLY_DNS_PROVIDERS)[keyof typeof APPLY_DNS_PROVIDERS]; export type AcmeDns01ProviderType = (typeof ACME_DNS01_PROVIDERS)[keyof typeof ACME_DNS01_PROVIDERS];
export type ApplyDNSProvider = { export type AcmeDns01Provider = {
type: ApplyDNSProviderType; type: AcmeDns01ProviderType;
name: string; name: string;
icon: string; icon: string;
provider: AccessProviderType; provider: AccessProviderType;
}; };
export const applyDNSProvidersMap: Map<ApplyDNSProvider["type"] | string, ApplyDNSProvider> = new Map( export const acmeDns01ProvidersMap: Map<AcmeDns01Provider["type"] | string, AcmeDns01Provider> = new Map(
/* /*
NOTICE: The following order determines the order displayed at the frontend. NOTICE: The following order determines the order displayed at the frontend.
*/ */
[ [
[APPLY_DNS_PROVIDERS.ALIYUN_DNS, "provider.aliyun.dns"], [ACME_DNS01_PROVIDERS.ALIYUN_DNS, "provider.aliyun.dns"],
[APPLY_DNS_PROVIDERS.TENCENTCLOUD_DNS, "provider.tencentcloud.dns"], [ACME_DNS01_PROVIDERS.TENCENTCLOUD_DNS, "provider.tencentcloud.dns"],
[APPLY_DNS_PROVIDERS.TENCENTCLOUD_EO, "provider.tencentcloud.eo"], [ACME_DNS01_PROVIDERS.TENCENTCLOUD_EO, "provider.tencentcloud.eo"],
[APPLY_DNS_PROVIDERS.BAIDUCLOUD_DNS, "provider.baiducloud.dns"], [ACME_DNS01_PROVIDERS.BAIDUCLOUD_DNS, "provider.baiducloud.dns"],
[APPLY_DNS_PROVIDERS.HUAWEICLOUD_DNS, "provider.huaweicloud.dns"], [ACME_DNS01_PROVIDERS.HUAWEICLOUD_DNS, "provider.huaweicloud.dns"],
[APPLY_DNS_PROVIDERS.VOLCENGINE_DNS, "provider.volcengine.dns"], [ACME_DNS01_PROVIDERS.VOLCENGINE_DNS, "provider.volcengine.dns"],
[APPLY_DNS_PROVIDERS.JDCLOUD_DNS, "provider.jdcloud.dns"], [ACME_DNS01_PROVIDERS.JDCLOUD_DNS, "provider.jdcloud.dns"],
[APPLY_DNS_PROVIDERS.AWS_ROUTE53, "provider.aws.route53"], [ACME_DNS01_PROVIDERS.AWS_ROUTE53, "provider.aws.route53"],
[APPLY_DNS_PROVIDERS.AZURE_DNS, "provider.azure.dns"], [ACME_DNS01_PROVIDERS.AZURE_DNS, "provider.azure.dns"],
[APPLY_DNS_PROVIDERS.BUNNY, "provider.bunny"], [ACME_DNS01_PROVIDERS.BUNNY, "provider.bunny"],
[APPLY_DNS_PROVIDERS.CLOUDFLARE, "provider.cloudflare"], [ACME_DNS01_PROVIDERS.CLOUDFLARE, "provider.cloudflare"],
[APPLY_DNS_PROVIDERS.CLOUDNS, "provider.cloudns"], [ACME_DNS01_PROVIDERS.CLOUDNS, "provider.cloudns"],
[APPLY_DNS_PROVIDERS.DESEC, "provider.desec"], [ACME_DNS01_PROVIDERS.DESEC, "provider.desec"],
[APPLY_DNS_PROVIDERS.DNSLA, "provider.dnsla"], [ACME_DNS01_PROVIDERS.DNSLA, "provider.dnsla"],
[APPLY_DNS_PROVIDERS.DYNV6, "provider.dynv6"], [ACME_DNS01_PROVIDERS.DYNV6, "provider.dynv6"],
[APPLY_DNS_PROVIDERS.GCORE, "provider.gcore"], [ACME_DNS01_PROVIDERS.GCORE, "provider.gcore"],
[APPLY_DNS_PROVIDERS.GNAME, "provider.gname"], [ACME_DNS01_PROVIDERS.GNAME, "provider.gname"],
[APPLY_DNS_PROVIDERS.GODADDY, "provider.godaddy"], [ACME_DNS01_PROVIDERS.GODADDY, "provider.godaddy"],
[APPLY_DNS_PROVIDERS.NAMECHEAP, "provider.namecheap"], [ACME_DNS01_PROVIDERS.NAMECHEAP, "provider.namecheap"],
[APPLY_DNS_PROVIDERS.NAMEDOTCOM, "provider.namedotcom"], [ACME_DNS01_PROVIDERS.NAMEDOTCOM, "provider.namedotcom"],
[APPLY_DNS_PROVIDERS.NAMESILO, "provider.namesilo"], [ACME_DNS01_PROVIDERS.NAMESILO, "provider.namesilo"],
[APPLY_DNS_PROVIDERS.NS1, "provider.ns1"], [ACME_DNS01_PROVIDERS.NS1, "provider.ns1"],
[APPLY_DNS_PROVIDERS.PORKBUN, "provider.porkbun"], [ACME_DNS01_PROVIDERS.PORKBUN, "provider.porkbun"],
[APPLY_DNS_PROVIDERS.VERCEL, "provider.vercel"], [ACME_DNS01_PROVIDERS.VERCEL, "provider.vercel"],
[APPLY_DNS_PROVIDERS.CMCCCLOUD, "provider.cmcccloud"], [ACME_DNS01_PROVIDERS.CMCCCLOUD, "provider.cmcccloud"],
[APPLY_DNS_PROVIDERS.RAINYUN, "provider.rainyun"], [ACME_DNS01_PROVIDERS.RAINYUN, "provider.rainyun"],
[APPLY_DNS_PROVIDERS.WESTCN, "provider.westcn"], [ACME_DNS01_PROVIDERS.WESTCN, "provider.westcn"],
[APPLY_DNS_PROVIDERS.POWERDNS, "provider.powerdns"], [ACME_DNS01_PROVIDERS.POWERDNS, "provider.powerdns"],
[APPLY_DNS_PROVIDERS.ACMEHTTPREQ, "provider.acmehttpreq"], [ACME_DNS01_PROVIDERS.ACMEHTTPREQ, "provider.acmehttpreq"],
].map(([type, name]) => [ ].map(([type, name]) => [
type, type,
{ {
type: type as ApplyDNSProviderType, type: type as AcmeDns01ProviderType,
name: name, name: name,
icon: accessProvidersMap.get(type.split("-")[0])!.icon, icon: accessProvidersMap.get(type.split("-")[0])!.icon,
provider: type.split("-")[0] as AccessProviderType, provider: type.split("-")[0] as AccessProviderType,
@ -300,12 +300,12 @@ export const applyDNSProvidersMap: Map<ApplyDNSProvider["type"] | string, ApplyD
); );
// #endregion // #endregion
// #region DeployProvider // #region DeploymentProvider
/* /*
ASCII ASCII
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
export const DEPLOY_PROVIDERS = Object.freeze({ export const DEPLOYMENT_PROVIDERS = Object.freeze({
["1PANEL_CONSOLE"]: `${ACCESS_PROVIDERS["1PANEL"]}-console`, ["1PANEL_CONSOLE"]: `${ACCESS_PROVIDERS["1PANEL"]}-console`,
["1PANEL_SITE"]: `${ACCESS_PROVIDERS["1PANEL"]}-site`, ["1PANEL_SITE"]: `${ACCESS_PROVIDERS["1PANEL"]}-site`,
ALIYUN_ALB: `${ACCESS_PROVIDERS.ALIYUN}-alb`, ALIYUN_ALB: `${ACCESS_PROVIDERS.ALIYUN}-alb`,
@ -382,9 +382,9 @@ export const DEPLOY_PROVIDERS = Object.freeze({
WEBHOOK: `${ACCESS_PROVIDERS.WEBHOOK}`, WEBHOOK: `${ACCESS_PROVIDERS.WEBHOOK}`,
} as const); } as const);
export type DeployProviderType = (typeof DEPLOY_PROVIDERS)[keyof typeof DEPLOY_PROVIDERS]; export type DeploymentProviderType = (typeof DEPLOYMENT_PROVIDERS)[keyof typeof DEPLOYMENT_PROVIDERS];
export const DEPLOY_CATEGORIES = Object.freeze({ export const DEPLOYMENT_CATEGORIES = Object.freeze({
ALL: "all", ALL: "all",
CDN: "cdn", CDN: "cdn",
STORAGE: "storage", STORAGE: "storage",
@ -396,138 +396,138 @@ export const DEPLOY_CATEGORIES = Object.freeze({
OTHER: "other", OTHER: "other",
} as const); } as const);
export type DeployCategoryType = (typeof DEPLOY_CATEGORIES)[keyof typeof DEPLOY_CATEGORIES]; export type DeploymentCategoryType = (typeof DEPLOYMENT_CATEGORIES)[keyof typeof DEPLOYMENT_CATEGORIES];
export type DeployProvider = { export type DeploymentProvider = {
type: DeployProviderType; type: DeploymentProviderType;
name: string; name: string;
icon: string; icon: string;
provider: AccessProviderType; provider: AccessProviderType;
category: DeployCategoryType; category: DeploymentCategoryType;
builtin: boolean; builtin: boolean;
}; };
export const deployProvidersMap: Map<DeployProvider["type"] | string, DeployProvider> = new Map( export const deploymentProvidersMap: Map<DeploymentProvider["type"] | string, DeploymentProvider> = new Map(
/* /*
NOTICE: The following order determines the order displayed at the frontend. NOTICE: The following order determines the order displayed at the frontend.
*/ */
[ [
[DEPLOY_PROVIDERS.LOCAL, "provider.local", DEPLOY_CATEGORIES.OTHER, "builtin"], [DEPLOYMENT_PROVIDERS.LOCAL, "provider.local", DEPLOYMENT_CATEGORIES.OTHER, "builtin"],
[DEPLOY_PROVIDERS.SSH, "provider.ssh", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.SSH, "provider.ssh", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.WEBHOOK, "provider.webhook", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.WEBHOOK, "provider.webhook", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.KUBERNETES_SECRET, "provider.kubernetes.secret", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.KUBERNETES_SECRET, "provider.kubernetes.secret", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.ALIYUN_OSS, "provider.aliyun.oss", DEPLOY_CATEGORIES.STORAGE], [DEPLOYMENT_PROVIDERS.ALIYUN_OSS, "provider.aliyun.oss", DEPLOYMENT_CATEGORIES.STORAGE],
[DEPLOY_PROVIDERS.ALIYUN_CDN, "provider.aliyun.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.ALIYUN_CDN, "provider.aliyun.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.ALIYUN_DCDN, "provider.aliyun.dcdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.ALIYUN_DCDN, "provider.aliyun.dcdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.ALIYUN_ESA, "provider.aliyun.esa", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.ALIYUN_ESA, "provider.aliyun.esa", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.ALIYUN_CLB, "provider.aliyun.clb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.ALIYUN_CLB, "provider.aliyun.clb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.ALIYUN_ALB, "provider.aliyun.alb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.ALIYUN_ALB, "provider.aliyun.alb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.ALIYUN_NLB, "provider.aliyun.nlb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.ALIYUN_NLB, "provider.aliyun.nlb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.ALIYUN_WAF, "provider.aliyun.waf", DEPLOY_CATEGORIES.FIREWALL], [DEPLOYMENT_PROVIDERS.ALIYUN_WAF, "provider.aliyun.waf", DEPLOYMENT_CATEGORIES.FIREWALL],
[DEPLOY_PROVIDERS.ALIYUN_LIVE, "provider.aliyun.live", DEPLOY_CATEGORIES.AV], [DEPLOYMENT_PROVIDERS.ALIYUN_LIVE, "provider.aliyun.live", DEPLOYMENT_CATEGORIES.AV],
[DEPLOY_PROVIDERS.ALIYUN_VOD, "provider.aliyun.vod", DEPLOY_CATEGORIES.AV], [DEPLOYMENT_PROVIDERS.ALIYUN_VOD, "provider.aliyun.vod", DEPLOYMENT_CATEGORIES.AV],
[DEPLOY_PROVIDERS.ALIYUN_FC, "provider.aliyun.fc", DEPLOY_CATEGORIES.SERVERLESS], [DEPLOYMENT_PROVIDERS.ALIYUN_FC, "provider.aliyun.fc", DEPLOYMENT_CATEGORIES.SERVERLESS],
[DEPLOY_PROVIDERS.ALIYUN_APIGW, "provider.aliyun.apigw", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.ALIYUN_APIGW, "provider.aliyun.apigw", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.ALIYUN_CAS, "provider.aliyun.cas_upload", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.ALIYUN_CAS, "provider.aliyun.cas_upload", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.ALIYUN_CAS_DEPLOY, "provider.aliyun.cas_deploy", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.ALIYUN_CAS_DEPLOY, "provider.aliyun.cas_deploy", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.TENCENTCLOUD_COS, "provider.tencentcloud.cos", DEPLOY_CATEGORIES.STORAGE], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_COS, "provider.tencentcloud.cos", DEPLOYMENT_CATEGORIES.STORAGE],
[DEPLOY_PROVIDERS.TENCENTCLOUD_CDN, "provider.tencentcloud.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_CDN, "provider.tencentcloud.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.TENCENTCLOUD_ECDN, "provider.tencentcloud.ecdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_ECDN, "provider.tencentcloud.ecdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.TENCENTCLOUD_EO, "provider.tencentcloud.eo", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_EO, "provider.tencentcloud.eo", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.TENCENTCLOUD_CLB, "provider.tencentcloud.clb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_CLB, "provider.tencentcloud.clb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.TENCENTCLOUD_WAF, "provider.tencentcloud.waf", DEPLOY_CATEGORIES.FIREWALL], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_WAF, "provider.tencentcloud.waf", DEPLOYMENT_CATEGORIES.FIREWALL],
[DEPLOY_PROVIDERS.TENCENTCLOUD_CSS, "provider.tencentcloud.css", DEPLOY_CATEGORIES.AV], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_CSS, "provider.tencentcloud.css", DEPLOYMENT_CATEGORIES.AV],
[DEPLOY_PROVIDERS.TENCENTCLOUD_VOD, "provider.tencentcloud.vod", DEPLOY_CATEGORIES.AV], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_VOD, "provider.tencentcloud.vod", DEPLOYMENT_CATEGORIES.AV],
[DEPLOY_PROVIDERS.TENCENTCLOUD_SCF, "provider.tencentcloud.scf", DEPLOY_CATEGORIES.SERVERLESS], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_SCF, "provider.tencentcloud.scf", DEPLOYMENT_CATEGORIES.SERVERLESS],
[DEPLOY_PROVIDERS.TENCENTCLOUD_SSL, "provider.tencentcloud.ssl_upload", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_SSL, "provider.tencentcloud.ssl_upload", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.TENCENTCLOUD_SSL_DEPLOY, "provider.tencentcloud.ssl_deploy", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.TENCENTCLOUD_SSL_DEPLOY, "provider.tencentcloud.ssl_deploy", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.BAIDUCLOUD_CDN, "provider.baiducloud.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.BAIDUCLOUD_CDN, "provider.baiducloud.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.BAIDUCLOUD_BLB, "provider.baiducloud.blb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.BAIDUCLOUD_BLB, "provider.baiducloud.blb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.BAIDUCLOUD_APPBLB, "provider.baiducloud.appblb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.BAIDUCLOUD_APPBLB, "provider.baiducloud.appblb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.BAIDUCLOUD_CERT, "provider.baiducloud.cert_upload", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.BAIDUCLOUD_CERT, "provider.baiducloud.cert_upload", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.HUAWEICLOUD_CDN, "provider.huaweicloud.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.HUAWEICLOUD_CDN, "provider.huaweicloud.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.HUAWEICLOUD_ELB, "provider.huaweicloud.elb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.HUAWEICLOUD_ELB, "provider.huaweicloud.elb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.HUAWEICLOUD_WAF, "provider.huaweicloud.waf", DEPLOY_CATEGORIES.FIREWALL], [DEPLOYMENT_PROVIDERS.HUAWEICLOUD_WAF, "provider.huaweicloud.waf", DEPLOYMENT_CATEGORIES.FIREWALL],
[DEPLOY_PROVIDERS.HUAWEICLOUD_SCM, "provider.huaweicloud.scm_upload", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.HUAWEICLOUD_SCM, "provider.huaweicloud.scm_upload", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.VOLCENGINE_TOS, "provider.volcengine.tos", DEPLOY_CATEGORIES.STORAGE], [DEPLOYMENT_PROVIDERS.VOLCENGINE_TOS, "provider.volcengine.tos", DEPLOYMENT_CATEGORIES.STORAGE],
[DEPLOY_PROVIDERS.VOLCENGINE_CDN, "provider.volcengine.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.VOLCENGINE_CDN, "provider.volcengine.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.VOLCENGINE_DCDN, "provider.volcengine.dcdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.VOLCENGINE_DCDN, "provider.volcengine.dcdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.VOLCENGINE_CLB, "provider.volcengine.clb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.VOLCENGINE_CLB, "provider.volcengine.clb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.VOLCENGINE_ALB, "provider.volcengine.alb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.VOLCENGINE_ALB, "provider.volcengine.alb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.VOLCENGINE_IMAGEX, "provider.volcengine.imagex", DEPLOY_CATEGORIES.STORAGE], [DEPLOYMENT_PROVIDERS.VOLCENGINE_IMAGEX, "provider.volcengine.imagex", DEPLOYMENT_CATEGORIES.STORAGE],
[DEPLOY_PROVIDERS.VOLCENGINE_LIVE, "provider.volcengine.live", DEPLOY_CATEGORIES.AV], [DEPLOYMENT_PROVIDERS.VOLCENGINE_LIVE, "provider.volcengine.live", DEPLOYMENT_CATEGORIES.AV],
[DEPLOY_PROVIDERS.VOLCENGINE_CERTCENTER, "provider.volcengine.certcenter_upload", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.VOLCENGINE_CERTCENTER, "provider.volcengine.certcenter_upload", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.JDCLOUD_ALB, "provider.jdcloud.alb", DEPLOY_CATEGORIES.LOADBALANCE], [DEPLOYMENT_PROVIDERS.JDCLOUD_ALB, "provider.jdcloud.alb", DEPLOYMENT_CATEGORIES.LOADBALANCE],
[DEPLOY_PROVIDERS.JDCLOUD_CDN, "provider.jdcloud.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.JDCLOUD_CDN, "provider.jdcloud.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.JDCLOUD_LIVE, "provider.jdcloud.live", DEPLOY_CATEGORIES.AV], [DEPLOYMENT_PROVIDERS.JDCLOUD_LIVE, "provider.jdcloud.live", DEPLOYMENT_CATEGORIES.AV],
[DEPLOY_PROVIDERS.JDCLOUD_VOD, "provider.jdcloud.vod", DEPLOY_CATEGORIES.AV], [DEPLOYMENT_PROVIDERS.JDCLOUD_VOD, "provider.jdcloud.vod", DEPLOYMENT_CATEGORIES.AV],
[DEPLOY_PROVIDERS.QINIU_KODO, "provider.qiniu.kodo", DEPLOY_CATEGORIES.STORAGE], [DEPLOYMENT_PROVIDERS.QINIU_KODO, "provider.qiniu.kodo", DEPLOYMENT_CATEGORIES.STORAGE],
[DEPLOY_PROVIDERS.QINIU_CDN, "provider.qiniu.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.QINIU_CDN, "provider.qiniu.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.QINIU_PILI, "provider.qiniu.pili", DEPLOY_CATEGORIES.AV], [DEPLOYMENT_PROVIDERS.QINIU_PILI, "provider.qiniu.pili", DEPLOYMENT_CATEGORIES.AV],
[DEPLOY_PROVIDERS.UPYUN_FILE, "provider.upyun.file", DEPLOY_CATEGORIES.STORAGE], [DEPLOYMENT_PROVIDERS.UPYUN_FILE, "provider.upyun.file", DEPLOYMENT_CATEGORIES.STORAGE],
[DEPLOY_PROVIDERS.UPYUN_CDN, "provider.upyun.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.UPYUN_CDN, "provider.upyun.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.BAISHAN_CDN, "provider.baishan.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.BAISHAN_CDN, "provider.baishan.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.WANGSU_CDNPRO, "provider.wangsu.cdnpro", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.WANGSU_CDNPRO, "provider.wangsu.cdnpro", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.DOGECLOUD_CDN, "provider.dogecloud.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.DOGECLOUD_CDN, "provider.dogecloud.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.BYTEPLUS_CDN, "provider.byteplus.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.BYTEPLUS_CDN, "provider.byteplus.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.UCLOUD_US3, "provider.ucloud.us3", DEPLOY_CATEGORIES.STORAGE], [DEPLOYMENT_PROVIDERS.UCLOUD_US3, "provider.ucloud.us3", DEPLOYMENT_CATEGORIES.STORAGE],
[DEPLOY_PROVIDERS.UCLOUD_UCDN, "provider.ucloud.ucdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.UCLOUD_UCDN, "provider.ucloud.ucdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.RAINYUN_RCDN, "provider.rainyun.rcdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.RAINYUN_RCDN, "provider.rainyun.rcdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.AWS_CLOUDFRONT, "provider.aws.cloudfront", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.AWS_CLOUDFRONT, "provider.aws.cloudfront", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.AWS_ACM, "provider.aws.acm", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.AWS_ACM, "provider.aws.acm", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.AZURE_KEYVAULT, "provider.azure.keyvault", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.AZURE_KEYVAULT, "provider.azure.keyvault", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.BUNNY_CDN, "provider.bunny.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.BUNNY_CDN, "provider.bunny.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.CACHEFLY, "provider.cachefly", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.CACHEFLY, "provider.cachefly", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.CDNFLY, "provider.cdnfly", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.CDNFLY, "provider.cdnfly", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS.EDGIO_APPLICATIONS, "provider.edgio.applications", DEPLOY_CATEGORIES.WEBSITE], [DEPLOYMENT_PROVIDERS.EDGIO_APPLICATIONS, "provider.edgio.applications", DEPLOYMENT_CATEGORIES.WEBSITE],
[DEPLOY_PROVIDERS.GCORE_CDN, "provider.gcore.cdn", DEPLOY_CATEGORIES.CDN], [DEPLOYMENT_PROVIDERS.GCORE_CDN, "provider.gcore.cdn", DEPLOYMENT_CATEGORIES.CDN],
[DEPLOY_PROVIDERS["1PANEL_SITE"], "provider.1panel.site", DEPLOY_CATEGORIES.WEBSITE], [DEPLOYMENT_PROVIDERS["1PANEL_SITE"], "provider.1panel.site", DEPLOYMENT_CATEGORIES.WEBSITE],
[DEPLOY_PROVIDERS["1PANEL_CONSOLE"], "provider.1panel.console", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS["1PANEL_CONSOLE"], "provider.1panel.console", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.BAOTAPANEL_SITE, "provider.baotapanel.site", DEPLOY_CATEGORIES.WEBSITE], [DEPLOYMENT_PROVIDERS.BAOTAPANEL_SITE, "provider.baotapanel.site", DEPLOYMENT_CATEGORIES.WEBSITE],
[DEPLOY_PROVIDERS.BAOTAPANEL_CONSOLE, "provider.baotapanel.console", DEPLOY_CATEGORIES.OTHER], [DEPLOYMENT_PROVIDERS.BAOTAPANEL_CONSOLE, "provider.baotapanel.console", DEPLOYMENT_CATEGORIES.OTHER],
[DEPLOY_PROVIDERS.SAFELINE, "provider.safeline", DEPLOY_CATEGORIES.FIREWALL], [DEPLOYMENT_PROVIDERS.SAFELINE, "provider.safeline", DEPLOYMENT_CATEGORIES.FIREWALL],
].map(([type, name, category, builtin]) => [ ].map(([type, name, category, builtin]) => [
type, type,
{ {
type: type as DeployProviderType, type: type as DeploymentProviderType,
name: name, name: name,
icon: accessProvidersMap.get(type.split("-")[0])!.icon, icon: accessProvidersMap.get(type.split("-")[0])!.icon,
provider: type.split("-")[0] as AccessProviderType, provider: type.split("-")[0] as AccessProviderType,
category: category as DeployCategoryType, category: category as DeploymentCategoryType,
builtin: builtin === "builtin", builtin: builtin === "builtin",
}, },
]) ])
); );
// #endregion // #endregion
// #region NotifyProvider // #region NotificationProvider
/* /*
ASCII ASCII
NOTICE: If you add new constant, please keep ASCII order. NOTICE: If you add new constant, please keep ASCII order.
*/ */
export const NOTIFY_PROVIDERS = Object.freeze({ export const NOTIFICATION_PROVIDERS = Object.freeze({
WEBHOOK: `${ACCESS_PROVIDERS.WEBHOOK}`, WEBHOOK: `${ACCESS_PROVIDERS.WEBHOOK}`,
} as const); } as const);
export type NotifyProviderType = (typeof APPLY_CA_PROVIDERS)[keyof typeof APPLY_CA_PROVIDERS]; export type NotificationProviderType = (typeof CA_PROVIDERS)[keyof typeof CA_PROVIDERS];
export type NotifyProvider = { export type NotificationProvider = {
type: NotifyProviderType; type: NotificationProviderType;
name: string; name: string;
icon: string; icon: string;
provider: AccessProviderType; provider: AccessProviderType;
}; };
export const notifyProvidersMap: Map<NotifyProvider["type"] | string, NotifyProvider> = new Map( export const notificationProvidersMap: Map<NotificationProvider["type"] | string, NotificationProvider> = new Map(
/* /*
NOTICE: The following order determines the order displayed at the frontend. NOTICE: The following order determines the order displayed at the frontend.
*/ */
[[NOTIFY_PROVIDERS.WEBHOOK]].map(([type]) => [ [[NOTIFICATION_PROVIDERS.WEBHOOK]].map(([type]) => [
type, type,
{ {
type: type as ApplyCAProviderType, type: type as CAProviderType,
name: accessProvidersMap.get(type.split("-")[0])!.name, name: accessProvidersMap.get(type.split("-")[0])!.name,
icon: accessProvidersMap.get(type.split("-")[0])!.icon, icon: accessProvidersMap.get(type.split("-")[0])!.icon,
provider: type.split("-")[0] as AccessProviderType, provider: type.split("-")[0] as AccessProviderType,

View File

@ -1,4 +1,4 @@
import { type ApplyCAProviderType } from "./provider"; import { type CAProviderType } from "./provider";
export const SETTINGS_NAMES = Object.freeze({ export const SETTINGS_NAMES = Object.freeze({
EMAILS: "emails", EMAILS: "emails",
@ -190,7 +190,7 @@ export const notifyChannelsMap: Map<NotifyChannel["type"], NotifyChannel> = new
// #region Settings: SSLProvider // #region Settings: SSLProvider
export type SSLProviderSettingsContent = { export type SSLProviderSettingsContent = {
provider: ApplyCAProviderType; provider: CAProviderType;
config: { config: {
[key: string]: Record<string, unknown> | undefined; [key: string]: Record<string, unknown> | undefined;
}; };

View File

@ -7,7 +7,7 @@ import { produce } from "immer";
import { z } from "zod"; import { z } from "zod";
import Show from "@/components/Show"; import Show from "@/components/Show";
import { APPLY_CA_PROVIDERS, type ApplyCAProviderType } from "@/domain/provider"; import { type CAProviderType, CA_PROVIDERS } from "@/domain/provider";
import { SETTINGS_NAMES, type SSLProviderSettingsContent, type SettingsModel } from "@/domain/settings"; import { SETTINGS_NAMES, type SSLProviderSettingsContent, type SettingsModel } from "@/domain/settings";
import { useAntdForm } from "@/hooks"; import { useAntdForm } from "@/hooks";
import { get as getSettings, save as saveSettings } from "@/repository/settings"; import { get as getSettings, save as saveSettings } from "@/repository/settings";
@ -27,14 +27,14 @@ const SSLProviderEditFormLetsEncryptConfig = () => {
const { pending, settings, updateSettings } = useContext(SSLProviderContext); const { pending, settings, updateSettings } = useContext(SSLProviderContext);
const { form: formInst, formProps } = useAntdForm<NonNullable<unknown>>({ const { form: formInst, formProps } = useAntdForm<NonNullable<unknown>>({
initialValues: settings?.content?.config?.[APPLY_CA_PROVIDERS.LETSENCRYPT], initialValues: settings?.content?.config?.[CA_PROVIDERS.LETSENCRYPT],
onSubmit: async (values) => { onSubmit: async (values) => {
const newSettings = produce(settings, (draft) => { const newSettings = produce(settings, (draft) => {
draft.content ??= {} as SSLProviderSettingsContent; draft.content ??= {} as SSLProviderSettingsContent;
draft.content.provider = APPLY_CA_PROVIDERS.LETSENCRYPT; draft.content.provider = CA_PROVIDERS.LETSENCRYPT;
draft.content.config ??= {} as SSLProviderSettingsContent["config"]; draft.content.config ??= {} as SSLProviderSettingsContent["config"];
draft.content.config[APPLY_CA_PROVIDERS.LETSENCRYPT] = values; draft.content.config[CA_PROVIDERS.LETSENCRYPT] = values;
}); });
await updateSettings(newSettings); await updateSettings(newSettings);
@ -44,7 +44,7 @@ const SSLProviderEditFormLetsEncryptConfig = () => {
const [formChanged, setFormChanged] = useState(false); const [formChanged, setFormChanged] = useState(false);
useEffect(() => { useEffect(() => {
setFormChanged(settings?.content?.provider !== APPLY_CA_PROVIDERS.LETSENCRYPT); setFormChanged(settings?.content?.provider !== CA_PROVIDERS.LETSENCRYPT);
}, [settings?.content?.provider]); }, [settings?.content?.provider]);
const handleFormChange = () => { const handleFormChange = () => {
@ -68,14 +68,14 @@ const SSLProviderEditFormLetsEncryptStagingConfig = () => {
const { pending, settings, updateSettings } = useContext(SSLProviderContext); const { pending, settings, updateSettings } = useContext(SSLProviderContext);
const { form: formInst, formProps } = useAntdForm<NonNullable<unknown>>({ const { form: formInst, formProps } = useAntdForm<NonNullable<unknown>>({
initialValues: settings?.content?.config?.[APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING], initialValues: settings?.content?.config?.[CA_PROVIDERS.LETSENCRYPTSTAGING],
onSubmit: async (values) => { onSubmit: async (values) => {
const newSettings = produce(settings, (draft) => { const newSettings = produce(settings, (draft) => {
draft.content ??= {} as SSLProviderSettingsContent; draft.content ??= {} as SSLProviderSettingsContent;
draft.content.provider = APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING; draft.content.provider = CA_PROVIDERS.LETSENCRYPTSTAGING;
draft.content.config ??= {} as SSLProviderSettingsContent["config"]; draft.content.config ??= {} as SSLProviderSettingsContent["config"];
draft.content.config[APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING] = values; draft.content.config[CA_PROVIDERS.LETSENCRYPTSTAGING] = values;
}); });
await updateSettings(newSettings); await updateSettings(newSettings);
@ -85,7 +85,7 @@ const SSLProviderEditFormLetsEncryptStagingConfig = () => {
const [formChanged, setFormChanged] = useState(false); const [formChanged, setFormChanged] = useState(false);
useEffect(() => { useEffect(() => {
setFormChanged(settings?.content?.provider !== APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING); setFormChanged(settings?.content?.provider !== CA_PROVIDERS.LETSENCRYPTSTAGING);
}, [settings?.content?.provider]); }, [settings?.content?.provider]);
const handleFormChange = () => { const handleFormChange = () => {
@ -113,14 +113,14 @@ const SSLProviderEditFormBuypassConfig = () => {
const { pending, settings, updateSettings } = useContext(SSLProviderContext); const { pending, settings, updateSettings } = useContext(SSLProviderContext);
const { form: formInst, formProps } = useAntdForm<NonNullable<unknown>>({ const { form: formInst, formProps } = useAntdForm<NonNullable<unknown>>({
initialValues: settings?.content?.config?.[APPLY_CA_PROVIDERS.BUYPASS], initialValues: settings?.content?.config?.[CA_PROVIDERS.BUYPASS],
onSubmit: async (values) => { onSubmit: async (values) => {
const newSettings = produce(settings, (draft) => { const newSettings = produce(settings, (draft) => {
draft.content ??= {} as SSLProviderSettingsContent; draft.content ??= {} as SSLProviderSettingsContent;
draft.content.provider = APPLY_CA_PROVIDERS.BUYPASS; draft.content.provider = CA_PROVIDERS.BUYPASS;
draft.content.config ??= {} as SSLProviderSettingsContent["config"]; draft.content.config ??= {} as SSLProviderSettingsContent["config"];
draft.content.config[APPLY_CA_PROVIDERS.BUYPASS] = values; draft.content.config[CA_PROVIDERS.BUYPASS] = values;
}); });
await updateSettings(newSettings); await updateSettings(newSettings);
@ -130,7 +130,7 @@ const SSLProviderEditFormBuypassConfig = () => {
const [formChanged, setFormChanged] = useState(false); const [formChanged, setFormChanged] = useState(false);
useEffect(() => { useEffect(() => {
setFormChanged(settings?.content?.provider !== APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING); setFormChanged(settings?.content?.provider !== CA_PROVIDERS.LETSENCRYPTSTAGING);
}, [settings?.content?.provider]); }, [settings?.content?.provider]);
const handleFormChange = () => { const handleFormChange = () => {
@ -165,14 +165,14 @@ const SSLProviderEditFormGoogleTrustServicesConfig = () => {
}); });
const formRule = createSchemaFieldRule(formSchema); const formRule = createSchemaFieldRule(formSchema);
const { form: formInst, formProps } = useAntdForm<z.infer<typeof formSchema>>({ const { form: formInst, formProps } = useAntdForm<z.infer<typeof formSchema>>({
initialValues: settings?.content?.config?.[APPLY_CA_PROVIDERS.GOOGLETRUSTSERVICES], initialValues: settings?.content?.config?.[CA_PROVIDERS.GOOGLETRUSTSERVICES],
onSubmit: async (values) => { onSubmit: async (values) => {
const newSettings = produce(settings, (draft) => { const newSettings = produce(settings, (draft) => {
draft.content ??= {} as SSLProviderSettingsContent; draft.content ??= {} as SSLProviderSettingsContent;
draft.content.provider = APPLY_CA_PROVIDERS.GOOGLETRUSTSERVICES; draft.content.provider = CA_PROVIDERS.GOOGLETRUSTSERVICES;
draft.content.config ??= {} as SSLProviderSettingsContent["config"]; draft.content.config ??= {} as SSLProviderSettingsContent["config"];
draft.content.config[APPLY_CA_PROVIDERS.GOOGLETRUSTSERVICES] = values; draft.content.config[CA_PROVIDERS.GOOGLETRUSTSERVICES] = values;
}); });
await updateSettings(newSettings); await updateSettings(newSettings);
@ -182,7 +182,7 @@ const SSLProviderEditFormGoogleTrustServicesConfig = () => {
const [formChanged, setFormChanged] = useState(false); const [formChanged, setFormChanged] = useState(false);
useEffect(() => { useEffect(() => {
setFormChanged(settings?.content?.provider !== APPLY_CA_PROVIDERS.GOOGLETRUSTSERVICES); setFormChanged(settings?.content?.provider !== CA_PROVIDERS.GOOGLETRUSTSERVICES);
}, [settings?.content?.provider]); }, [settings?.content?.provider]);
const handleFormChange = () => { const handleFormChange = () => {
@ -235,14 +235,14 @@ const SSLProviderEditFormSSLComConfig = () => {
}); });
const formRule = createSchemaFieldRule(formSchema); const formRule = createSchemaFieldRule(formSchema);
const { form: formInst, formProps } = useAntdForm<z.infer<typeof formSchema>>({ const { form: formInst, formProps } = useAntdForm<z.infer<typeof formSchema>>({
initialValues: settings?.content?.config?.[APPLY_CA_PROVIDERS.SSLCOM], initialValues: settings?.content?.config?.[CA_PROVIDERS.SSLCOM],
onSubmit: async (values) => { onSubmit: async (values) => {
const newSettings = produce(settings, (draft) => { const newSettings = produce(settings, (draft) => {
draft.content ??= {} as SSLProviderSettingsContent; draft.content ??= {} as SSLProviderSettingsContent;
draft.content.provider = APPLY_CA_PROVIDERS.SSLCOM; draft.content.provider = CA_PROVIDERS.SSLCOM;
draft.content.config ??= {} as SSLProviderSettingsContent["config"]; draft.content.config ??= {} as SSLProviderSettingsContent["config"];
draft.content.config[APPLY_CA_PROVIDERS.SSLCOM] = values; draft.content.config[CA_PROVIDERS.SSLCOM] = values;
}); });
await updateSettings(newSettings); await updateSettings(newSettings);
@ -252,7 +252,7 @@ const SSLProviderEditFormSSLComConfig = () => {
const [formChanged, setFormChanged] = useState(false); const [formChanged, setFormChanged] = useState(false);
useEffect(() => { useEffect(() => {
setFormChanged(settings?.content?.provider !== APPLY_CA_PROVIDERS.SSLCOM); setFormChanged(settings?.content?.provider !== CA_PROVIDERS.SSLCOM);
}, [settings?.content?.provider]); }, [settings?.content?.provider]);
const handleFormChange = () => { const handleFormChange = () => {
@ -305,14 +305,14 @@ const SSLProviderEditFormZeroSSLConfig = () => {
}); });
const formRule = createSchemaFieldRule(formSchema); const formRule = createSchemaFieldRule(formSchema);
const { form: formInst, formProps } = useAntdForm<z.infer<typeof formSchema>>({ const { form: formInst, formProps } = useAntdForm<z.infer<typeof formSchema>>({
initialValues: settings?.content?.config?.[APPLY_CA_PROVIDERS.ZEROSSL], initialValues: settings?.content?.config?.[CA_PROVIDERS.ZEROSSL],
onSubmit: async (values) => { onSubmit: async (values) => {
const newSettings = produce(settings, (draft) => { const newSettings = produce(settings, (draft) => {
draft.content ??= {} as SSLProviderSettingsContent; draft.content ??= {} as SSLProviderSettingsContent;
draft.content.provider = APPLY_CA_PROVIDERS.ZEROSSL; draft.content.provider = CA_PROVIDERS.ZEROSSL;
draft.content.config ??= {} as SSLProviderSettingsContent["config"]; draft.content.config ??= {} as SSLProviderSettingsContent["config"];
draft.content.config[APPLY_CA_PROVIDERS.ZEROSSL] = values; draft.content.config[CA_PROVIDERS.ZEROSSL] = values;
}); });
await updateSettings(newSettings); await updateSettings(newSettings);
@ -322,7 +322,7 @@ const SSLProviderEditFormZeroSSLConfig = () => {
const [formChanged, setFormChanged] = useState(false); const [formChanged, setFormChanged] = useState(false);
useEffect(() => { useEffect(() => {
setFormChanged(settings?.content?.provider !== APPLY_CA_PROVIDERS.ZEROSSL); setFormChanged(settings?.content?.provider !== CA_PROVIDERS.ZEROSSL);
}, [settings?.content?.provider]); }, [settings?.content?.provider]);
const handleFormChange = () => { const handleFormChange = () => {
@ -383,20 +383,20 @@ const SettingsSSLProvider = () => {
fetchData(); fetchData();
}, []); }, []);
const [providerType, setProviderType] = useState<ApplyCAProviderType>(APPLY_CA_PROVIDERS.LETSENCRYPT); const [providerType, setProviderType] = useState<CAProviderType>(CA_PROVIDERS.LETSENCRYPT);
const providerFormEl = useMemo(() => { const providerFormEl = useMemo(() => {
switch (providerType) { switch (providerType) {
case APPLY_CA_PROVIDERS.LETSENCRYPT: case CA_PROVIDERS.LETSENCRYPT:
return <SSLProviderEditFormLetsEncryptConfig />; return <SSLProviderEditFormLetsEncryptConfig />;
case APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING: case CA_PROVIDERS.LETSENCRYPTSTAGING:
return <SSLProviderEditFormLetsEncryptStagingConfig />; return <SSLProviderEditFormLetsEncryptStagingConfig />;
case APPLY_CA_PROVIDERS.BUYPASS: case CA_PROVIDERS.BUYPASS:
return <SSLProviderEditFormBuypassConfig />; return <SSLProviderEditFormBuypassConfig />;
case APPLY_CA_PROVIDERS.GOOGLETRUSTSERVICES: case CA_PROVIDERS.GOOGLETRUSTSERVICES:
return <SSLProviderEditFormGoogleTrustServicesConfig />; return <SSLProviderEditFormGoogleTrustServicesConfig />;
case APPLY_CA_PROVIDERS.SSLCOM: case CA_PROVIDERS.SSLCOM:
return <SSLProviderEditFormSSLComConfig />; return <SSLProviderEditFormSSLComConfig />;
case APPLY_CA_PROVIDERS.ZEROSSL: case CA_PROVIDERS.ZEROSSL:
return <SSLProviderEditFormZeroSSLConfig />; return <SSLProviderEditFormZeroSSLConfig />;
} }
}, [providerType]); }, [providerType]);
@ -431,48 +431,48 @@ const SettingsSSLProvider = () => {
<Show when={!loading} fallback={<Skeleton active />}> <Show when={!loading} fallback={<Skeleton active />}>
<Form form={formInst} disabled={formPending} layout="vertical" initialValues={{ provider: providerType }}> <Form form={formInst} disabled={formPending} layout="vertical" initialValues={{ provider: providerType }}>
<Form.Item className="mb-2" name="provider" label={t("settings.sslprovider.form.provider.label")}> <Form.Item className="mb-2" name="provider" label={t("settings.sslprovider.form.provider.label")}>
<CheckCard.Group className="w-full" onChange={(value) => setProviderType(value as ApplyCAProviderType)}> <CheckCard.Group className="w-full" onChange={(value) => setProviderType(value as CAProviderType)}>
<CheckCard <CheckCard
avatar={<img src={"/imgs/providers/letsencrypt.svg"} className="size-8" />} avatar={<img src={"/imgs/providers/letsencrypt.svg"} className="size-8" />}
size="small" size="small"
title={t("provider.letsencrypt")} title={t("provider.letsencrypt")}
description="letsencrypt.org" description="letsencrypt.org"
value={APPLY_CA_PROVIDERS.LETSENCRYPT} value={CA_PROVIDERS.LETSENCRYPT}
/> />
<CheckCard <CheckCard
avatar={<img src={"/imgs/providers/letsencrypt.svg"} className="size-8" />} avatar={<img src={"/imgs/providers/letsencrypt.svg"} className="size-8" />}
size="small" size="small"
title={t("provider.letsencryptstaging")} title={t("provider.letsencryptstaging")}
description="letsencrypt.org" description="letsencrypt.org"
value={APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING} value={CA_PROVIDERS.LETSENCRYPTSTAGING}
/> />
<CheckCard <CheckCard
avatar={<img src={"/imgs/providers/buypass.png"} className="size-8" />} avatar={<img src={"/imgs/providers/buypass.png"} className="size-8" />}
size="small" size="small"
title={t("provider.buypass")} title={t("provider.buypass")}
description="buypass.com" description="buypass.com"
value={APPLY_CA_PROVIDERS.BUYPASS} value={CA_PROVIDERS.BUYPASS}
/> />
<CheckCard <CheckCard
avatar={<img src={"/imgs/providers/google.svg"} className="size-8" />} avatar={<img src={"/imgs/providers/google.svg"} className="size-8" />}
size="small" size="small"
title={t("provider.googletrustservices")} title={t("provider.googletrustservices")}
description="pki.goog" description="pki.goog"
value={APPLY_CA_PROVIDERS.GOOGLETRUSTSERVICES} value={CA_PROVIDERS.GOOGLETRUSTSERVICES}
/> />
<CheckCard <CheckCard
avatar={<img src={"/imgs/providers/sslcom.svg"} className="size-8" />} avatar={<img src={"/imgs/providers/sslcom.svg"} className="size-8" />}
size="small" size="small"
title={t("provider.sslcom")} title={t("provider.sslcom")}
description="ssl.com" description="ssl.com"
value={APPLY_CA_PROVIDERS.SSLCOM} value={CA_PROVIDERS.SSLCOM}
/> />
<CheckCard <CheckCard
avatar={<img src={"/imgs/providers/zerossl.svg"} className="size-8" />} avatar={<img src={"/imgs/providers/zerossl.svg"} className="size-8" />}
size="small" size="small"
title={t("provider.zerossl")} title={t("provider.zerossl")}
description="zerossl.com" description="zerossl.com"
value={APPLY_CA_PROVIDERS.ZEROSSL} value={CA_PROVIDERS.ZEROSSL}
/> />
</CheckCard.Group> </CheckCard.Group>
</Form.Item> </Form.Item>