mirror of
https://github.com/usual2970/certimate.git
synced 2025-10-05 14:04:54 +00:00
feat: separate access providers and dns providers
This commit is contained in:
@@ -53,6 +53,7 @@ func NewWithApplyNode(node *domain.WorkflowNode) (Applicant, error) {
|
||||
return nil, fmt.Errorf("failed to get access #%s record: %w", accessId, err)
|
||||
}
|
||||
|
||||
applyProvider := node.GetConfigString("provider")
|
||||
applyConfig := &applyConfig{
|
||||
Domains: node.GetConfigString("domains"),
|
||||
ContactEmail: node.GetConfigString("contactEmail"),
|
||||
@@ -63,7 +64,7 @@ func NewWithApplyNode(node *domain.WorkflowNode) (Applicant, error) {
|
||||
DisableFollowCNAME: node.GetConfigBool("disableFollowCNAME"),
|
||||
}
|
||||
|
||||
challengeProvider, err := createChallengeProvider(domain.AccessProviderType(access.Provider), access.Config, applyConfig)
|
||||
challengeProvider, err := createChallengeProvider(domain.ApplyDNSProviderType(applyProvider), access.Config, applyConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@@ -20,13 +20,13 @@ import (
|
||||
providerVolcEngine "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/volcengine"
|
||||
)
|
||||
|
||||
func createChallengeProvider(provider domain.AccessProviderType, accessConfig string, applyConfig *applyConfig) (challenge.Provider, error) {
|
||||
func createChallengeProvider(provider domain.ApplyDNSProviderType, accessConfig string, applyConfig *applyConfig) (challenge.Provider, error) {
|
||||
/*
|
||||
注意:如果追加新的常量值,请保持以 ASCII 排序。
|
||||
NOTICE: If you add new constant, please keep ASCII order.
|
||||
*/
|
||||
switch provider {
|
||||
case domain.AccessProviderTypeACMEHttpReq:
|
||||
case domain.ApplyDNSProviderTypeACMEHttpReq:
|
||||
{
|
||||
access := &domain.AccessConfigForACMEHttpReq{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -43,7 +43,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypeAliyun:
|
||||
case domain.ApplyDNSProviderTypeAliyun, domain.ApplyDNSProviderTypeAliyunDNS:
|
||||
{
|
||||
access := &domain.AccessConfigForAliyun{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -58,7 +58,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypeAWS:
|
||||
case domain.ApplyDNSProviderTypeAWS, domain.ApplyDNSProviderTypeAWSRoute53:
|
||||
{
|
||||
access := &domain.AccessConfigForAWS{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -75,7 +75,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypeCloudflare:
|
||||
case domain.ApplyDNSProviderTypeCloudflare:
|
||||
{
|
||||
access := &domain.AccessConfigForCloudflare{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -89,7 +89,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypeGoDaddy:
|
||||
case domain.ApplyDNSProviderTypeGoDaddy:
|
||||
{
|
||||
access := &domain.AccessConfigForGoDaddy{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -104,7 +104,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypeHuaweiCloud:
|
||||
case domain.ApplyDNSProviderTypeHuaweiCloud, domain.ApplyDNSProviderTypeHuaweiCloudDNS:
|
||||
{
|
||||
access := &domain.AccessConfigForHuaweiCloud{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -120,7 +120,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypeNameDotCom:
|
||||
case domain.ApplyDNSProviderTypeNameDotCom:
|
||||
{
|
||||
access := &domain.AccessConfigForNameDotCom{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -135,7 +135,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypeNameSilo:
|
||||
case domain.ApplyDNSProviderTypeNameSilo:
|
||||
{
|
||||
access := &domain.AccessConfigForNameSilo{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -149,7 +149,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypePowerDNS:
|
||||
case domain.ApplyDNSProviderTypePowerDNS:
|
||||
{
|
||||
access := &domain.AccessConfigForPowerDNS{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -164,7 +164,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypeTencentCloud:
|
||||
case domain.ApplyDNSProviderTypeTencentCloud, domain.ApplyDNSProviderTypeTencentCloudDNS:
|
||||
{
|
||||
access := &domain.AccessConfigForTencentCloud{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
@@ -179,7 +179,7 @@ func createChallengeProvider(provider domain.AccessProviderType, accessConfig st
|
||||
return applicant, err
|
||||
}
|
||||
|
||||
case domain.AccessProviderTypeVolcEngine:
|
||||
case domain.ApplyDNSProviderTypeVolcEngine, domain.ApplyDNSProviderTypeVolcEngineDNS:
|
||||
{
|
||||
access := &domain.AccessConfigForVolcEngine{}
|
||||
if err := json.Unmarshal([]byte(accessConfig), access); err != nil {
|
||||
|
@@ -3,7 +3,7 @@
|
||||
type AccessProviderType string
|
||||
|
||||
/*
|
||||
提供商类型常量值。
|
||||
授权提供商类型常量值。
|
||||
|
||||
注意:如果追加新的常量值,请保持以 ASCII 排序。
|
||||
NOTICE: If you add new constant, please keep ASCII order.
|
||||
@@ -30,11 +30,39 @@ const (
|
||||
AccessProviderTypeWebhook = AccessProviderType("webhook")
|
||||
)
|
||||
|
||||
type ApplyDNSProviderType string
|
||||
|
||||
/*
|
||||
申请证书 DNS 提供商常量值。
|
||||
短横线前的部分始终等于授权提供商类型。
|
||||
|
||||
注意:如果追加新的常量值,请保持以 ASCII 排序。
|
||||
NOTICE: If you add new constant, please keep ASCII order.
|
||||
*/
|
||||
const (
|
||||
ApplyDNSProviderTypeACMEHttpReq = ApplyDNSProviderType("acmehttpreq")
|
||||
ApplyDNSProviderTypeAliyun = ApplyDNSProviderType("aliyun") // 兼容旧值,等同于 [ApplyDNSProviderTypeAliyunDNS]
|
||||
ApplyDNSProviderTypeAliyunDNS = ApplyDNSProviderType("aliyun-dns")
|
||||
ApplyDNSProviderTypeAWS = ApplyDNSProviderType("aws") // 兼容旧值,等同于 [ApplyDNSProviderTypeAWSRoute53]
|
||||
ApplyDNSProviderTypeAWSRoute53 = ApplyDNSProviderType("aws-route53")
|
||||
ApplyDNSProviderTypeCloudflare = ApplyDNSProviderType("cloudflare")
|
||||
ApplyDNSProviderTypeGoDaddy = ApplyDNSProviderType("godaddy")
|
||||
ApplyDNSProviderTypeHuaweiCloud = ApplyDNSProviderType("huaweicloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeHuaweiCloudDNS]
|
||||
ApplyDNSProviderTypeHuaweiCloudDNS = ApplyDNSProviderType("huaweicloud-dns")
|
||||
ApplyDNSProviderTypeNameDotCom = ApplyDNSProviderType("namedotcom")
|
||||
ApplyDNSProviderTypeNameSilo = ApplyDNSProviderType("namesilo")
|
||||
ApplyDNSProviderTypePowerDNS = ApplyDNSProviderType("powerdns")
|
||||
ApplyDNSProviderTypeTencentCloud = ApplyDNSProviderType("tencentcloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeTencentCloudDNS]
|
||||
ApplyDNSProviderTypeTencentCloudDNS = ApplyDNSProviderType("tencentcloud-dns")
|
||||
ApplyDNSProviderTypeVolcEngine = ApplyDNSProviderType("volcengine") // 兼容旧值,等同于 [ApplyDNSProviderTypeVolcEngineDNS]
|
||||
ApplyDNSProviderTypeVolcEngineDNS = ApplyDNSProviderType("volcengine-dns")
|
||||
)
|
||||
|
||||
type DeployProviderType string
|
||||
|
||||
/*
|
||||
提供商部署目标常量值。
|
||||
短横线前的部分始终等于提供商类型。
|
||||
部署目标提供商常量值。
|
||||
短横线前的部分始终等于授权提供商类型。
|
||||
|
||||
注意:如果追加新的常量值,请保持以 ASCII 排序。
|
||||
NOTICE: If you add new constant, please keep ASCII order.
|
||||
|
Reference in New Issue
Block a user