mirror of
https://github.com/usual2970/certimate.git
synced 2025-06-08 13:39:53 +00:00
feat: support configuring method and headers in webhook
This commit is contained in:
parent
3c2fbd720f
commit
3be70c3696
@ -31,9 +31,9 @@ func NewWithWorkflowNode(config DeployerWithWorkflowNodeConfig) (Deployer, error
|
|||||||
|
|
||||||
nodeConfig := config.Node.GetConfigForDeploy()
|
nodeConfig := config.Node.GetConfigForDeploy()
|
||||||
options := &deployerProviderOptions{
|
options := &deployerProviderOptions{
|
||||||
Provider: domain.DeploymentProviderType(nodeConfig.Provider),
|
Provider: domain.DeploymentProviderType(nodeConfig.Provider),
|
||||||
ProviderAccessConfig: make(map[string]any),
|
ProviderAccessConfig: make(map[string]any),
|
||||||
ProviderDeployConfig: nodeConfig.ProviderConfig,
|
ProviderExtendedConfig: nodeConfig.ProviderConfig,
|
||||||
}
|
}
|
||||||
|
|
||||||
accessRepo := repository.NewAccessRepository()
|
accessRepo := repository.NewAccessRepository()
|
||||||
|
@ -2,6 +2,7 @@ package deployer
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/usual2970/certimate/internal/domain"
|
"github.com/usual2970/certimate/internal/domain"
|
||||||
@ -78,14 +79,15 @@ import (
|
|||||||
pVolcEngineTOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-tos"
|
pVolcEngineTOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-tos"
|
||||||
pWangsuCDNPro "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/wangsu-cdnpro"
|
pWangsuCDNPro "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/wangsu-cdnpro"
|
||||||
pWebhook "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/webhook"
|
pWebhook "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/webhook"
|
||||||
|
httputil "github.com/usual2970/certimate/internal/pkg/utils/http"
|
||||||
maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
|
maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
|
||||||
sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice"
|
sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice"
|
||||||
)
|
)
|
||||||
|
|
||||||
type deployerProviderOptions struct {
|
type deployerProviderOptions struct {
|
||||||
Provider domain.DeploymentProviderType
|
Provider domain.DeploymentProviderType
|
||||||
ProviderAccessConfig map[string]any
|
ProviderAccessConfig map[string]any
|
||||||
ProviderDeployConfig map[string]any
|
ProviderExtendedConfig map[string]any
|
||||||
}
|
}
|
||||||
|
|
||||||
func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer, error) {
|
func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer, error) {
|
||||||
@ -107,7 +109,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
ApiUrl: access.ApiUrl,
|
ApiUrl: access.ApiUrl,
|
||||||
ApiKey: access.ApiKey,
|
ApiKey: access.ApiKey,
|
||||||
AllowInsecureConnections: access.AllowInsecureConnections,
|
AllowInsecureConnections: access.AllowInsecureConnections,
|
||||||
AutoRestart: maputil.GetBool(options.ProviderDeployConfig, "autoRestart"),
|
AutoRestart: maputil.GetBool(options.ProviderExtendedConfig, "autoRestart"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -116,9 +118,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
ApiUrl: access.ApiUrl,
|
ApiUrl: access.ApiUrl,
|
||||||
ApiKey: access.ApiKey,
|
ApiKey: access.ApiKey,
|
||||||
AllowInsecureConnections: access.AllowInsecureConnections,
|
AllowInsecureConnections: access.AllowInsecureConnections,
|
||||||
ResourceType: p1PanelSite.ResourceType(maputil.GetOrDefaultString(options.ProviderDeployConfig, "resourceType", string(p1PanelSite.RESOURCE_TYPE_WEBSITE))),
|
ResourceType: p1PanelSite.ResourceType(maputil.GetOrDefaultString(options.ProviderExtendedConfig, "resourceType", string(p1PanelSite.RESOURCE_TYPE_WEBSITE))),
|
||||||
WebsiteId: maputil.GetInt64(options.ProviderDeployConfig, "websiteId"),
|
WebsiteId: maputil.GetInt64(options.ProviderExtendedConfig, "websiteId"),
|
||||||
CertificateId: maputil.GetInt64(options.ProviderDeployConfig, "certificateId"),
|
CertificateId: maputil.GetInt64(options.ProviderExtendedConfig, "certificateId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -139,11 +141,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunALB.NewDeployer(&pAliyunALB.DeployerConfig{
|
deployer, err := pAliyunALB.NewDeployer(&pAliyunALB.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pAliyunALB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pAliyunALB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"),
|
ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -151,11 +153,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunAPIGW.NewDeployer(&pAliyunAPIGW.DeployerConfig{
|
deployer, err := pAliyunAPIGW.NewDeployer(&pAliyunAPIGW.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ServiceType: pAliyunAPIGW.ServiceType(maputil.GetString(options.ProviderDeployConfig, "serviceType")),
|
ServiceType: pAliyunAPIGW.ServiceType(maputil.GetString(options.ProviderExtendedConfig, "serviceType")),
|
||||||
GatewayId: maputil.GetString(options.ProviderDeployConfig, "gatewayId"),
|
GatewayId: maputil.GetString(options.ProviderExtendedConfig, "gatewayId"),
|
||||||
GroupId: maputil.GetString(options.ProviderDeployConfig, "groupId"),
|
GroupId: maputil.GetString(options.ProviderExtendedConfig, "groupId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -163,7 +165,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunCAS.NewDeployer(&pAliyunCAS.DeployerConfig{
|
deployer, err := pAliyunCAS.NewDeployer(&pAliyunCAS.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -171,9 +173,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunCASDeploy.NewDeployer(&pAliyunCASDeploy.DeployerConfig{
|
deployer, err := pAliyunCASDeploy.NewDeployer(&pAliyunCASDeploy.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderDeployConfig, "resourceIds"), ";"), func(s string) bool { return s != "" }),
|
ResourceIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderExtendedConfig, "resourceIds"), ";"), func(s string) bool { return s != "" }),
|
||||||
ContactIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderDeployConfig, "contactIds"), ";"), func(s string) bool { return s != "" }),
|
ContactIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderExtendedConfig, "contactIds"), ";"), func(s string) bool { return s != "" }),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -181,7 +183,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunCDN.NewDeployer(&pAliyunCDN.DeployerConfig{
|
deployer, err := pAliyunCDN.NewDeployer(&pAliyunCDN.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -189,11 +191,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunCLB.NewDeployer(&pAliyunCLB.DeployerConfig{
|
deployer, err := pAliyunCLB.NewDeployer(&pAliyunCLB.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pAliyunCLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pAliyunCLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerPort: maputil.GetOrDefaultInt32(options.ProviderDeployConfig, "listenerPort", 443),
|
ListenerPort: maputil.GetOrDefaultInt32(options.ProviderExtendedConfig, "listenerPort", 443),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -201,7 +203,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunDCDN.NewDeployer(&pAliyunDCDN.DeployerConfig{
|
deployer, err := pAliyunDCDN.NewDeployer(&pAliyunDCDN.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -209,8 +211,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunESA.NewDeployer(&pAliyunESA.DeployerConfig{
|
deployer, err := pAliyunESA.NewDeployer(&pAliyunESA.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
SiteId: maputil.GetInt64(options.ProviderDeployConfig, "siteId"),
|
SiteId: maputil.GetInt64(options.ProviderExtendedConfig, "siteId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -218,9 +220,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunFC.NewDeployer(&pAliyunFC.DeployerConfig{
|
deployer, err := pAliyunFC.NewDeployer(&pAliyunFC.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ServiceVersion: maputil.GetOrDefaultString(options.ProviderDeployConfig, "serviceVersion", "3.0"),
|
ServiceVersion: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "serviceVersion", "3.0"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -228,8 +230,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunLive.NewDeployer(&pAliyunLive.DeployerConfig{
|
deployer, err := pAliyunLive.NewDeployer(&pAliyunLive.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -237,10 +239,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunNLB.NewDeployer(&pAliyunNLB.DeployerConfig{
|
deployer, err := pAliyunNLB.NewDeployer(&pAliyunNLB.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pAliyunNLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pAliyunNLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"),
|
ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -248,9 +250,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunOSS.NewDeployer(&pAliyunOSS.DeployerConfig{
|
deployer, err := pAliyunOSS.NewDeployer(&pAliyunOSS.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
Bucket: maputil.GetString(options.ProviderDeployConfig, "bucket"),
|
Bucket: maputil.GetString(options.ProviderExtendedConfig, "bucket"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -258,8 +260,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunVOD.NewDeployer(&pAliyunVOD.DeployerConfig{
|
deployer, err := pAliyunVOD.NewDeployer(&pAliyunVOD.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -267,10 +269,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAliyunWAF.NewDeployer(&pAliyunWAF.DeployerConfig{
|
deployer, err := pAliyunWAF.NewDeployer(&pAliyunWAF.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ServiceVersion: maputil.GetOrDefaultString(options.ProviderDeployConfig, "serviceVersion", "3.0"),
|
ServiceVersion: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "serviceVersion", "3.0"),
|
||||||
InstanceId: maputil.GetString(options.ProviderDeployConfig, "instanceId"),
|
InstanceId: maputil.GetString(options.ProviderExtendedConfig, "instanceId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -291,7 +293,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAWSACM.NewDeployer(&pAWSACM.DeployerConfig{
|
deployer, err := pAWSACM.NewDeployer(&pAWSACM.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
SecretAccessKey: access.SecretAccessKey,
|
SecretAccessKey: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -299,8 +301,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pAWSCloudFront.NewDeployer(&pAWSCloudFront.DeployerConfig{
|
deployer, err := pAWSCloudFront.NewDeployer(&pAWSCloudFront.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
SecretAccessKey: access.SecretAccessKey,
|
SecretAccessKey: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
DistributionId: maputil.GetString(options.ProviderDeployConfig, "distributionId"),
|
DistributionId: maputil.GetString(options.ProviderExtendedConfig, "distributionId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -323,8 +325,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
ClientId: access.ClientId,
|
ClientId: access.ClientId,
|
||||||
ClientSecret: access.ClientSecret,
|
ClientSecret: access.ClientSecret,
|
||||||
CloudName: access.CloudName,
|
CloudName: access.CloudName,
|
||||||
KeyVaultName: maputil.GetString(options.ProviderDeployConfig, "keyvaultName"),
|
KeyVaultName: maputil.GetString(options.ProviderExtendedConfig, "keyvaultName"),
|
||||||
CertificateName: maputil.GetString(options.ProviderDeployConfig, "certificateName"),
|
CertificateName: maputil.GetString(options.ProviderExtendedConfig, "certificateName"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -345,11 +347,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pBaiduCloudAppBLB.NewDeployer(&pBaiduCloudAppBLB.DeployerConfig{
|
deployer, err := pBaiduCloudAppBLB.NewDeployer(&pBaiduCloudAppBLB.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
SecretAccessKey: access.SecretAccessKey,
|
SecretAccessKey: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pBaiduCloudAppBLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pBaiduCloudAppBLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerPort: maputil.GetInt32(options.ProviderDeployConfig, "listenerPort"),
|
ListenerPort: maputil.GetInt32(options.ProviderExtendedConfig, "listenerPort"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -357,11 +359,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pBaiduCloudBLB.NewDeployer(&pBaiduCloudBLB.DeployerConfig{
|
deployer, err := pBaiduCloudBLB.NewDeployer(&pBaiduCloudBLB.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
SecretAccessKey: access.SecretAccessKey,
|
SecretAccessKey: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pBaiduCloudBLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pBaiduCloudBLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerPort: maputil.GetInt32(options.ProviderDeployConfig, "listenerPort"),
|
ListenerPort: maputil.GetInt32(options.ProviderExtendedConfig, "listenerPort"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -369,7 +371,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pBaiduCloudCDN.NewDeployer(&pBaiduCloudCDN.DeployerConfig{
|
deployer, err := pBaiduCloudCDN.NewDeployer(&pBaiduCloudCDN.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
SecretAccessKey: access.SecretAccessKey,
|
SecretAccessKey: access.SecretAccessKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -396,8 +398,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
case domain.DeploymentProviderTypeBaishanCDN:
|
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.ProviderExtendedConfig, "domain"),
|
||||||
CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"),
|
CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -419,7 +421,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
ApiUrl: access.ApiUrl,
|
ApiUrl: access.ApiUrl,
|
||||||
ApiKey: access.ApiKey,
|
ApiKey: access.ApiKey,
|
||||||
AllowInsecureConnections: access.AllowInsecureConnections,
|
AllowInsecureConnections: access.AllowInsecureConnections,
|
||||||
AutoRestart: maputil.GetBool(options.ProviderDeployConfig, "autoRestart"),
|
AutoRestart: maputil.GetBool(options.ProviderExtendedConfig, "autoRestart"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -428,9 +430,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
ApiUrl: access.ApiUrl,
|
ApiUrl: access.ApiUrl,
|
||||||
ApiKey: access.ApiKey,
|
ApiKey: access.ApiKey,
|
||||||
AllowInsecureConnections: access.AllowInsecureConnections,
|
AllowInsecureConnections: access.AllowInsecureConnections,
|
||||||
SiteType: maputil.GetOrDefaultString(options.ProviderDeployConfig, "siteType", "other"),
|
SiteType: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "siteType", "other"),
|
||||||
SiteName: maputil.GetString(options.ProviderDeployConfig, "siteName"),
|
SiteName: maputil.GetString(options.ProviderExtendedConfig, "siteName"),
|
||||||
SiteNames: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderDeployConfig, "siteNames"), ";"), func(s string) bool { return s != "" }),
|
SiteNames: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderExtendedConfig, "siteNames"), ";"), func(s string) bool { return s != "" }),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -448,8 +450,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
|
|
||||||
deployer, err := pBunnyCDN.NewDeployer(&pBunnyCDN.DeployerConfig{
|
deployer, err := pBunnyCDN.NewDeployer(&pBunnyCDN.DeployerConfig{
|
||||||
ApiKey: access.ApiKey,
|
ApiKey: access.ApiKey,
|
||||||
PullZoneId: maputil.GetString(options.ProviderDeployConfig, "pullZoneId"),
|
PullZoneId: maputil.GetString(options.ProviderExtendedConfig, "pullZoneId"),
|
||||||
Hostname: maputil.GetString(options.ProviderDeployConfig, "hostname"),
|
Hostname: maputil.GetString(options.ProviderExtendedConfig, "hostname"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
}
|
}
|
||||||
@ -466,7 +468,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pBytePlusCDN.NewDeployer(&pBytePlusCDN.DeployerConfig{
|
deployer, err := pBytePlusCDN.NewDeployer(&pBytePlusCDN.DeployerConfig{
|
||||||
AccessKey: access.AccessKey,
|
AccessKey: access.AccessKey,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -499,9 +501,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
ApiUrl: access.ApiUrl,
|
ApiUrl: access.ApiUrl,
|
||||||
ApiKey: access.ApiKey,
|
ApiKey: access.ApiKey,
|
||||||
ApiSecret: access.ApiSecret,
|
ApiSecret: access.ApiSecret,
|
||||||
ResourceType: pCdnfly.ResourceType(maputil.GetOrDefaultString(options.ProviderDeployConfig, "resourceType", string(pCdnfly.RESOURCE_TYPE_SITE))),
|
ResourceType: pCdnfly.ResourceType(maputil.GetOrDefaultString(options.ProviderExtendedConfig, "resourceType", string(pCdnfly.RESOURCE_TYPE_SITE))),
|
||||||
SiteId: maputil.GetString(options.ProviderDeployConfig, "siteId"),
|
SiteId: maputil.GetString(options.ProviderExtendedConfig, "siteId"),
|
||||||
CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"),
|
CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
}
|
}
|
||||||
@ -516,7 +518,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pDogeCDN.NewDeployer(&pDogeCDN.DeployerConfig{
|
deployer, err := pDogeCDN.NewDeployer(&pDogeCDN.DeployerConfig{
|
||||||
AccessKey: access.AccessKey,
|
AccessKey: access.AccessKey,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
}
|
}
|
||||||
@ -531,7 +533,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pEdgioApplications.NewDeployer(&pEdgioApplications.DeployerConfig{
|
deployer, err := pEdgioApplications.NewDeployer(&pEdgioApplications.DeployerConfig{
|
||||||
ClientId: access.ClientId,
|
ClientId: access.ClientId,
|
||||||
ClientSecret: access.ClientSecret,
|
ClientSecret: access.ClientSecret,
|
||||||
EnvironmentId: maputil.GetString(options.ProviderDeployConfig, "environmentId"),
|
EnvironmentId: maputil.GetString(options.ProviderExtendedConfig, "environmentId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
}
|
}
|
||||||
@ -547,7 +549,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
case domain.DeploymentProviderTypeGcoreCDN:
|
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.ProviderExtendedConfig, "resourceId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -568,8 +570,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pHuaweiCloudCDN.NewDeployer(&pHuaweiCloudCDN.DeployerConfig{
|
deployer, err := pHuaweiCloudCDN.NewDeployer(&pHuaweiCloudCDN.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
SecretAccessKey: access.SecretAccessKey,
|
SecretAccessKey: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -577,11 +579,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pHuaweiCloudELB.NewDeployer(&pHuaweiCloudELB.DeployerConfig{
|
deployer, err := pHuaweiCloudELB.NewDeployer(&pHuaweiCloudELB.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
SecretAccessKey: access.SecretAccessKey,
|
SecretAccessKey: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pHuaweiCloudELB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pHuaweiCloudELB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"),
|
CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"),
|
ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -596,10 +598,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pHuaweiCloudWAF.NewDeployer(&pHuaweiCloudWAF.DeployerConfig{
|
deployer, err := pHuaweiCloudWAF.NewDeployer(&pHuaweiCloudWAF.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
SecretAccessKey: access.SecretAccessKey,
|
SecretAccessKey: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pHuaweiCloudWAF.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pHuaweiCloudWAF.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"),
|
CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -620,10 +622,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pJDCloudALB.NewDeployer(&pJDCloudALB.DeployerConfig{
|
deployer, err := pJDCloudALB.NewDeployer(&pJDCloudALB.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
RegionId: maputil.GetString(options.ProviderDeployConfig, "regionId"),
|
RegionId: maputil.GetString(options.ProviderExtendedConfig, "regionId"),
|
||||||
ResourceType: pJDCloudALB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pJDCloudALB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"),
|
ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -631,7 +633,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pJDCloudCDN.NewDeployer(&pJDCloudCDN.DeployerConfig{
|
deployer, err := pJDCloudCDN.NewDeployer(&pJDCloudCDN.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -639,7 +641,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pJDCloudLive.NewDeployer(&pJDCloudLive.DeployerConfig{
|
deployer, err := pJDCloudLive.NewDeployer(&pJDCloudLive.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -647,7 +649,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pJDCloudVOD.NewDeployer(&pJDCloudVOD.DeployerConfig{
|
deployer, err := pJDCloudVOD.NewDeployer(&pJDCloudVOD.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -659,16 +661,16 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
case domain.DeploymentProviderTypeLocal:
|
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.ProviderExtendedConfig, "shellEnv")),
|
||||||
PreCommand: maputil.GetString(options.ProviderDeployConfig, "preCommand"),
|
PreCommand: maputil.GetString(options.ProviderExtendedConfig, "preCommand"),
|
||||||
PostCommand: maputil.GetString(options.ProviderDeployConfig, "postCommand"),
|
PostCommand: maputil.GetString(options.ProviderExtendedConfig, "postCommand"),
|
||||||
OutputFormat: pLocal.OutputFormatType(maputil.GetOrDefaultString(options.ProviderDeployConfig, "format", string(pLocal.OUTPUT_FORMAT_PEM))),
|
OutputFormat: pLocal.OutputFormatType(maputil.GetOrDefaultString(options.ProviderExtendedConfig, "format", string(pLocal.OUTPUT_FORMAT_PEM))),
|
||||||
OutputCertPath: maputil.GetString(options.ProviderDeployConfig, "certPath"),
|
OutputCertPath: maputil.GetString(options.ProviderExtendedConfig, "certPath"),
|
||||||
OutputKeyPath: maputil.GetString(options.ProviderDeployConfig, "keyPath"),
|
OutputKeyPath: maputil.GetString(options.ProviderExtendedConfig, "keyPath"),
|
||||||
PfxPassword: maputil.GetString(options.ProviderDeployConfig, "pfxPassword"),
|
PfxPassword: maputil.GetString(options.ProviderExtendedConfig, "pfxPassword"),
|
||||||
JksAlias: maputil.GetString(options.ProviderDeployConfig, "jksAlias"),
|
JksAlias: maputil.GetString(options.ProviderExtendedConfig, "jksAlias"),
|
||||||
JksKeypass: maputil.GetString(options.ProviderDeployConfig, "jksKeypass"),
|
JksKeypass: maputil.GetString(options.ProviderExtendedConfig, "jksKeypass"),
|
||||||
JksStorepass: maputil.GetString(options.ProviderDeployConfig, "jksStorepass"),
|
JksStorepass: maputil.GetString(options.ProviderExtendedConfig, "jksStorepass"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
}
|
}
|
||||||
@ -682,11 +684,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
|
|
||||||
deployer, err := pK8sSecret.NewDeployer(&pK8sSecret.DeployerConfig{
|
deployer, err := pK8sSecret.NewDeployer(&pK8sSecret.DeployerConfig{
|
||||||
KubeConfig: access.KubeConfig,
|
KubeConfig: access.KubeConfig,
|
||||||
Namespace: maputil.GetOrDefaultString(options.ProviderDeployConfig, "namespace", "default"),
|
Namespace: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "namespace", "default"),
|
||||||
SecretName: maputil.GetString(options.ProviderDeployConfig, "secretName"),
|
SecretName: maputil.GetString(options.ProviderExtendedConfig, "secretName"),
|
||||||
SecretType: maputil.GetOrDefaultString(options.ProviderDeployConfig, "secretType", "kubernetes.io/tls"),
|
SecretType: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "secretType", "kubernetes.io/tls"),
|
||||||
SecretDataKeyForCrt: maputil.GetOrDefaultString(options.ProviderDeployConfig, "secretDataKeyForCrt", "tls.crt"),
|
SecretDataKeyForCrt: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "secretDataKeyForCrt", "tls.crt"),
|
||||||
SecretDataKeyForKey: maputil.GetOrDefaultString(options.ProviderDeployConfig, "secretDataKeyForKey", "tls.key"),
|
SecretDataKeyForKey: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "secretDataKeyForKey", "tls.key"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
}
|
}
|
||||||
@ -703,7 +705,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pQiniuCDN.NewDeployer(&pQiniuCDN.DeployerConfig{
|
deployer, err := pQiniuCDN.NewDeployer(&pQiniuCDN.DeployerConfig{
|
||||||
AccessKey: access.AccessKey,
|
AccessKey: access.AccessKey,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -711,8 +713,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pQiniuPili.NewDeployer(&pQiniuPili.DeployerConfig{
|
deployer, err := pQiniuPili.NewDeployer(&pQiniuPili.DeployerConfig{
|
||||||
AccessKey: access.AccessKey,
|
AccessKey: access.AccessKey,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Hub: maputil.GetString(options.ProviderDeployConfig, "hub"),
|
Hub: maputil.GetString(options.ProviderExtendedConfig, "hub"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -732,8 +734,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
case domain.DeploymentProviderTypeTencentCloudCDN:
|
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.ProviderExtendedConfig, "instanceId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -753,8 +755,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
ApiUrl: access.ApiUrl,
|
ApiUrl: access.ApiUrl,
|
||||||
ApiToken: access.ApiToken,
|
ApiToken: access.ApiToken,
|
||||||
AllowInsecureConnections: access.AllowInsecureConnections,
|
AllowInsecureConnections: access.AllowInsecureConnections,
|
||||||
ResourceType: pSafeLine.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pSafeLine.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
CertificateId: maputil.GetInt32(options.ProviderDeployConfig, "certificateId"),
|
CertificateId: maputil.GetInt32(options.ProviderExtendedConfig, "certificateId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
}
|
}
|
||||||
@ -773,16 +775,16 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
SshPassword: access.Password,
|
SshPassword: access.Password,
|
||||||
SshKey: access.Key,
|
SshKey: access.Key,
|
||||||
SshKeyPassphrase: access.KeyPassphrase,
|
SshKeyPassphrase: access.KeyPassphrase,
|
||||||
UseSCP: maputil.GetBool(options.ProviderDeployConfig, "useSCP"),
|
UseSCP: maputil.GetBool(options.ProviderExtendedConfig, "useSCP"),
|
||||||
PreCommand: maputil.GetString(options.ProviderDeployConfig, "preCommand"),
|
PreCommand: maputil.GetString(options.ProviderExtendedConfig, "preCommand"),
|
||||||
PostCommand: maputil.GetString(options.ProviderDeployConfig, "postCommand"),
|
PostCommand: maputil.GetString(options.ProviderExtendedConfig, "postCommand"),
|
||||||
OutputFormat: pSSH.OutputFormatType(maputil.GetOrDefaultString(options.ProviderDeployConfig, "format", string(pSSH.OUTPUT_FORMAT_PEM))),
|
OutputFormat: pSSH.OutputFormatType(maputil.GetOrDefaultString(options.ProviderExtendedConfig, "format", string(pSSH.OUTPUT_FORMAT_PEM))),
|
||||||
OutputCertPath: maputil.GetString(options.ProviderDeployConfig, "certPath"),
|
OutputCertPath: maputil.GetString(options.ProviderExtendedConfig, "certPath"),
|
||||||
OutputKeyPath: maputil.GetString(options.ProviderDeployConfig, "keyPath"),
|
OutputKeyPath: maputil.GetString(options.ProviderExtendedConfig, "keyPath"),
|
||||||
PfxPassword: maputil.GetString(options.ProviderDeployConfig, "pfxPassword"),
|
PfxPassword: maputil.GetString(options.ProviderExtendedConfig, "pfxPassword"),
|
||||||
JksAlias: maputil.GetString(options.ProviderDeployConfig, "jksAlias"),
|
JksAlias: maputil.GetString(options.ProviderExtendedConfig, "jksAlias"),
|
||||||
JksKeypass: maputil.GetString(options.ProviderDeployConfig, "jksKeypass"),
|
JksKeypass: maputil.GetString(options.ProviderExtendedConfig, "jksKeypass"),
|
||||||
JksStorepass: maputil.GetString(options.ProviderDeployConfig, "jksStorepass"),
|
JksStorepass: maputil.GetString(options.ProviderExtendedConfig, "jksStorepass"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
}
|
}
|
||||||
@ -799,7 +801,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudCDN.NewDeployer(&pTencentCloudCDN.DeployerConfig{
|
deployer, err := pTencentCloudCDN.NewDeployer(&pTencentCloudCDN.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -807,11 +809,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudCLB.NewDeployer(&pTencentCloudCLB.DeployerConfig{
|
deployer, err := pTencentCloudCLB.NewDeployer(&pTencentCloudCLB.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pTencentCloudCLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pTencentCloudCLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"),
|
ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -819,9 +821,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudCOS.NewDeployer(&pTencentCloudCOS.DeployerConfig{
|
deployer, err := pTencentCloudCOS.NewDeployer(&pTencentCloudCOS.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
Bucket: maputil.GetString(options.ProviderDeployConfig, "bucket"),
|
Bucket: maputil.GetString(options.ProviderExtendedConfig, "bucket"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -829,7 +831,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudCSS.NewDeployer(&pTencentCloudCSS.DeployerConfig{
|
deployer, err := pTencentCloudCSS.NewDeployer(&pTencentCloudCSS.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -837,7 +839,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudECDN.NewDeployer(&pTencentCloudECDN.DeployerConfig{
|
deployer, err := pTencentCloudECDN.NewDeployer(&pTencentCloudECDN.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -845,8 +847,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudEO.NewDeployer(&pTencentCloudEO.DeployerConfig{
|
deployer, err := pTencentCloudEO.NewDeployer(&pTencentCloudEO.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
ZoneId: maputil.GetString(options.ProviderDeployConfig, "zoneId"),
|
ZoneId: maputil.GetString(options.ProviderExtendedConfig, "zoneId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -854,8 +856,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudSCF.NewDeployer(&pTencentCloudSCF.DeployerConfig{
|
deployer, err := pTencentCloudSCF.NewDeployer(&pTencentCloudSCF.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -870,9 +872,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudSSLDeploy.NewDeployer(&pTencentCloudSSLDeploy.DeployerConfig{
|
deployer, err := pTencentCloudSSLDeploy.NewDeployer(&pTencentCloudSSLDeploy.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: maputil.GetString(options.ProviderDeployConfig, "resourceType"),
|
ResourceType: maputil.GetString(options.ProviderExtendedConfig, "resourceType"),
|
||||||
ResourceIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderDeployConfig, "resourceIds"), ";"), func(s string) bool { return s != "" }),
|
ResourceIds: sliceutil.Filter(strings.Split(maputil.GetString(options.ProviderExtendedConfig, "resourceIds"), ";"), func(s string) bool { return s != "" }),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -880,8 +882,8 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudVOD.NewDeployer(&pTencentCloudVOD.DeployerConfig{
|
deployer, err := pTencentCloudVOD.NewDeployer(&pTencentCloudVOD.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
SubAppId: maputil.GetInt64(options.ProviderDeployConfig, "subAppId"),
|
SubAppId: maputil.GetInt64(options.ProviderExtendedConfig, "subAppId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -889,9 +891,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pTencentCloudWAF.NewDeployer(&pTencentCloudWAF.DeployerConfig{
|
deployer, err := pTencentCloudWAF.NewDeployer(&pTencentCloudWAF.DeployerConfig{
|
||||||
SecretId: access.SecretId,
|
SecretId: access.SecretId,
|
||||||
SecretKey: access.SecretKey,
|
SecretKey: access.SecretKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
DomainId: maputil.GetString(options.ProviderDeployConfig, "domainId"),
|
DomainId: maputil.GetString(options.ProviderExtendedConfig, "domainId"),
|
||||||
InstanceId: maputil.GetString(options.ProviderDeployConfig, "instanceId"),
|
InstanceId: maputil.GetString(options.ProviderExtendedConfig, "instanceId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -913,7 +915,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
PrivateKey: access.PrivateKey,
|
PrivateKey: access.PrivateKey,
|
||||||
PublicKey: access.PublicKey,
|
PublicKey: access.PublicKey,
|
||||||
ProjectId: access.ProjectId,
|
ProjectId: access.ProjectId,
|
||||||
DomainId: maputil.GetString(options.ProviderDeployConfig, "domainId"),
|
DomainId: maputil.GetString(options.ProviderExtendedConfig, "domainId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -922,9 +924,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
PrivateKey: access.PrivateKey,
|
PrivateKey: access.PrivateKey,
|
||||||
PublicKey: access.PublicKey,
|
PublicKey: access.PublicKey,
|
||||||
ProjectId: access.ProjectId,
|
ProjectId: access.ProjectId,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
Bucket: maputil.GetString(options.ProviderDeployConfig, "bucket"),
|
Bucket: maputil.GetString(options.ProviderExtendedConfig, "bucket"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -945,7 +947,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pUpyunCDN.NewDeployer(&pUpyunCDN.DeployerConfig{
|
deployer, err := pUpyunCDN.NewDeployer(&pUpyunCDN.DeployerConfig{
|
||||||
Username: access.Username,
|
Username: access.Username,
|
||||||
Password: access.Password,
|
Password: access.Password,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -966,11 +968,11 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pVolcEngineALB.NewDeployer(&pVolcEngineALB.DeployerConfig{
|
deployer, err := pVolcEngineALB.NewDeployer(&pVolcEngineALB.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.SecretAccessKey,
|
AccessKeySecret: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pVolcEngineALB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pVolcEngineALB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"),
|
ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -978,7 +980,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pVolcEngineCDN.NewDeployer(&pVolcEngineCDN.DeployerConfig{
|
deployer, err := pVolcEngineCDN.NewDeployer(&pVolcEngineCDN.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.SecretAccessKey,
|
AccessKeySecret: access.SecretAccessKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -986,7 +988,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pVolcEngineCertCenter.NewDeployer(&pVolcEngineCertCenter.DeployerConfig{
|
deployer, err := pVolcEngineCertCenter.NewDeployer(&pVolcEngineCertCenter.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.SecretAccessKey,
|
AccessKeySecret: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -994,10 +996,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pVolcEngineCLB.NewDeployer(&pVolcEngineCLB.DeployerConfig{
|
deployer, err := pVolcEngineCLB.NewDeployer(&pVolcEngineCLB.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.SecretAccessKey,
|
AccessKeySecret: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ResourceType: pVolcEngineCLB.ResourceType(maputil.GetString(options.ProviderDeployConfig, "resourceType")),
|
ResourceType: pVolcEngineCLB.ResourceType(maputil.GetString(options.ProviderExtendedConfig, "resourceType")),
|
||||||
LoadbalancerId: maputil.GetString(options.ProviderDeployConfig, "loadbalancerId"),
|
LoadbalancerId: maputil.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
|
||||||
ListenerId: maputil.GetString(options.ProviderDeployConfig, "listenerId"),
|
ListenerId: maputil.GetString(options.ProviderExtendedConfig, "listenerId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -1005,7 +1007,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pVolcEngineDCDN.NewDeployer(&pVolcEngineDCDN.DeployerConfig{
|
deployer, err := pVolcEngineDCDN.NewDeployer(&pVolcEngineDCDN.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.SecretAccessKey,
|
AccessKeySecret: access.SecretAccessKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -1013,9 +1015,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pVolcEngineImageX.NewDeployer(&pVolcEngineImageX.DeployerConfig{
|
deployer, err := pVolcEngineImageX.NewDeployer(&pVolcEngineImageX.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.SecretAccessKey,
|
AccessKeySecret: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
ServiceId: maputil.GetString(options.ProviderDeployConfig, "serviceId"),
|
ServiceId: maputil.GetString(options.ProviderExtendedConfig, "serviceId"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -1023,7 +1025,7 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pVolcEngineLive.NewDeployer(&pVolcEngineLive.DeployerConfig{
|
deployer, err := pVolcEngineLive.NewDeployer(&pVolcEngineLive.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.SecretAccessKey,
|
AccessKeySecret: access.SecretAccessKey,
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -1031,9 +1033,9 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
deployer, err := pVolcEngineTOS.NewDeployer(&pVolcEngineTOS.DeployerConfig{
|
deployer, err := pVolcEngineTOS.NewDeployer(&pVolcEngineTOS.DeployerConfig{
|
||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.SecretAccessKey,
|
AccessKeySecret: access.SecretAccessKey,
|
||||||
Region: maputil.GetString(options.ProviderDeployConfig, "region"),
|
Region: maputil.GetString(options.ProviderExtendedConfig, "region"),
|
||||||
Bucket: maputil.GetString(options.ProviderDeployConfig, "bucket"),
|
Bucket: maputil.GetString(options.ProviderExtendedConfig, "bucket"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -1055,10 +1057,10 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
AccessKeyId: access.AccessKeyId,
|
AccessKeyId: access.AccessKeyId,
|
||||||
AccessKeySecret: access.AccessKeySecret,
|
AccessKeySecret: access.AccessKeySecret,
|
||||||
ApiKey: access.ApiKey,
|
ApiKey: access.ApiKey,
|
||||||
Environment: maputil.GetOrDefaultString(options.ProviderDeployConfig, "environment", "production"),
|
Environment: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "environment", "production"),
|
||||||
Domain: maputil.GetString(options.ProviderDeployConfig, "domain"),
|
Domain: maputil.GetString(options.ProviderExtendedConfig, "domain"),
|
||||||
CertificateId: maputil.GetString(options.ProviderDeployConfig, "certificateId"),
|
CertificateId: maputil.GetString(options.ProviderExtendedConfig, "certificateId"),
|
||||||
WebhookId: maputil.GetString(options.ProviderDeployConfig, "webhookId"),
|
WebhookId: maputil.GetString(options.ProviderExtendedConfig, "webhookId"),
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
|
||||||
@ -1074,9 +1076,31 @@ func createDeployerProvider(options *deployerProviderOptions) (deployer.Deployer
|
|||||||
return nil, fmt.Errorf("failed to populate provider access config: %w", err)
|
return nil, fmt.Errorf("failed to populate provider access config: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mergedHeaders := make(map[string]string)
|
||||||
|
if defaultHeadersString := access.HeadersString; defaultHeadersString != "" {
|
||||||
|
h, err := httputil.ParseHeaders(defaultHeadersString)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to parse webhook headers: %w", err)
|
||||||
|
}
|
||||||
|
for key := range h {
|
||||||
|
mergedHeaders[http.CanonicalHeaderKey(key)] = h.Get(key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if extendedHeadersString := maputil.GetString(options.ProviderExtendedConfig, "headers"); extendedHeadersString != "" {
|
||||||
|
h, err := httputil.ParseHeaders(extendedHeadersString)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to parse webhook headers: %w", err)
|
||||||
|
}
|
||||||
|
for key := range h {
|
||||||
|
mergedHeaders[http.CanonicalHeaderKey(key)] = h.Get(key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
deployer, err := pWebhook.NewDeployer(&pWebhook.DeployerConfig{
|
deployer, err := pWebhook.NewDeployer(&pWebhook.DeployerConfig{
|
||||||
WebhookUrl: access.Url,
|
WebhookUrl: access.Url,
|
||||||
WebhookData: maputil.GetString(options.ProviderDeployConfig, "webhookData"),
|
WebhookData: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "webhookData", access.TemplateDataForDeployment),
|
||||||
|
Method: access.Method,
|
||||||
|
Headers: mergedHeaders,
|
||||||
AllowInsecureConnections: access.AllowInsecureConnections,
|
AllowInsecureConnections: access.AllowInsecureConnections,
|
||||||
})
|
})
|
||||||
return deployer, err
|
return deployer, err
|
||||||
|
@ -261,8 +261,12 @@ type AccessConfigForWangsu struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type AccessConfigForWebhook struct {
|
type AccessConfigForWebhook struct {
|
||||||
Url string `json:"url"`
|
Url string `json:"url"`
|
||||||
AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"`
|
Method string `json:"method,omitempty"`
|
||||||
|
HeadersString string `json:"headers,omitempty"`
|
||||||
|
AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"`
|
||||||
|
TemplateDataForDeployment string `json:"templateDataForDeployment,omitempty"` // TODO:
|
||||||
|
TemplateDataForNotification string `json:"templateDataForNotification,omitempty"` // TODO:
|
||||||
}
|
}
|
||||||
|
|
||||||
type AccessConfigForWestcn struct {
|
type AccessConfigForWestcn struct {
|
||||||
|
@ -114,10 +114,10 @@ func (n *WorkflowNode) GetConfigForApply() WorkflowNodeConfigForApply {
|
|||||||
ContactEmail: maputil.GetString(n.Config, "contactEmail"),
|
ContactEmail: maputil.GetString(n.Config, "contactEmail"),
|
||||||
Provider: maputil.GetString(n.Config, "provider"),
|
Provider: maputil.GetString(n.Config, "provider"),
|
||||||
ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"),
|
ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"),
|
||||||
ProviderConfig: maputil.GetMap(n.Config, "providerConfig"),
|
ProviderConfig: maputil.GetKVMapAny(n.Config, "providerConfig"),
|
||||||
CAProvider: maputil.GetString(n.Config, "caProvider"),
|
CAProvider: maputil.GetString(n.Config, "caProvider"),
|
||||||
CAProviderAccessId: maputil.GetString(n.Config, "caProviderAccessId"),
|
CAProviderAccessId: maputil.GetString(n.Config, "caProviderAccessId"),
|
||||||
CAProviderConfig: maputil.GetMap(n.Config, "caProviderConfig"),
|
CAProviderConfig: maputil.GetKVMapAny(n.Config, "caProviderConfig"),
|
||||||
KeyAlgorithm: maputil.GetString(n.Config, "keyAlgorithm"),
|
KeyAlgorithm: maputil.GetString(n.Config, "keyAlgorithm"),
|
||||||
Nameservers: maputil.GetString(n.Config, "nameservers"),
|
Nameservers: maputil.GetString(n.Config, "nameservers"),
|
||||||
DnsPropagationTimeout: maputil.GetInt32(n.Config, "dnsPropagationTimeout"),
|
DnsPropagationTimeout: maputil.GetInt32(n.Config, "dnsPropagationTimeout"),
|
||||||
@ -141,7 +141,7 @@ func (n *WorkflowNode) GetConfigForDeploy() WorkflowNodeConfigForDeploy {
|
|||||||
Certificate: maputil.GetString(n.Config, "certificate"),
|
Certificate: maputil.GetString(n.Config, "certificate"),
|
||||||
Provider: maputil.GetString(n.Config, "provider"),
|
Provider: maputil.GetString(n.Config, "provider"),
|
||||||
ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"),
|
ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"),
|
||||||
ProviderConfig: maputil.GetMap(n.Config, "providerConfig"),
|
ProviderConfig: maputil.GetKVMapAny(n.Config, "providerConfig"),
|
||||||
SkipOnLastSucceeded: maputil.GetBool(n.Config, "skipOnLastSucceeded"),
|
SkipOnLastSucceeded: maputil.GetBool(n.Config, "skipOnLastSucceeded"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -151,7 +151,7 @@ func (n *WorkflowNode) GetConfigForNotify() WorkflowNodeConfigForNotify {
|
|||||||
Channel: maputil.GetString(n.Config, "channel"),
|
Channel: maputil.GetString(n.Config, "channel"),
|
||||||
Provider: maputil.GetString(n.Config, "provider"),
|
Provider: maputil.GetString(n.Config, "provider"),
|
||||||
ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"),
|
ProviderAccessId: maputil.GetString(n.Config, "providerAccessId"),
|
||||||
ProviderConfig: maputil.GetMap(n.Config, "providerConfig"),
|
ProviderConfig: maputil.GetKVMapAny(n.Config, "providerConfig"),
|
||||||
Subject: maputil.GetString(n.Config, "subject"),
|
Subject: maputil.GetString(n.Config, "subject"),
|
||||||
Message: maputil.GetString(n.Config, "message"),
|
Message: maputil.GetString(n.Config, "message"),
|
||||||
}
|
}
|
||||||
|
@ -31,9 +31,9 @@ func NewWithWorkflowNode(config NotifierWithWorkflowNodeConfig) (Notifier, error
|
|||||||
|
|
||||||
nodeConfig := config.Node.GetConfigForNotify()
|
nodeConfig := config.Node.GetConfigForNotify()
|
||||||
options := ¬ifierProviderOptions{
|
options := ¬ifierProviderOptions{
|
||||||
Provider: domain.NotificationProviderType(nodeConfig.Provider),
|
Provider: domain.NotificationProviderType(nodeConfig.Provider),
|
||||||
ProviderAccessConfig: make(map[string]any),
|
ProviderAccessConfig: make(map[string]any),
|
||||||
ProviderNotifyConfig: nodeConfig.ProviderConfig,
|
ProviderExtendedConfig: nodeConfig.ProviderConfig,
|
||||||
}
|
}
|
||||||
|
|
||||||
accessRepo := repository.NewAccessRepository()
|
accessRepo := repository.NewAccessRepository()
|
||||||
|
@ -2,6 +2,7 @@ package notify
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
"github.com/usual2970/certimate/internal/domain"
|
"github.com/usual2970/certimate/internal/domain"
|
||||||
"github.com/usual2970/certimate/internal/pkg/core/notifier"
|
"github.com/usual2970/certimate/internal/pkg/core/notifier"
|
||||||
@ -9,13 +10,14 @@ import (
|
|||||||
pMattermost "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/mattermost"
|
pMattermost "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/mattermost"
|
||||||
pTelegram "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/telegram"
|
pTelegram "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/telegram"
|
||||||
pWebhook "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/webhook"
|
pWebhook "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/webhook"
|
||||||
|
httputil "github.com/usual2970/certimate/internal/pkg/utils/http"
|
||||||
maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
|
maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
|
||||||
)
|
)
|
||||||
|
|
||||||
type notifierProviderOptions struct {
|
type notifierProviderOptions struct {
|
||||||
Provider domain.NotificationProviderType
|
Provider domain.NotificationProviderType
|
||||||
ProviderAccessConfig map[string]any
|
ProviderAccessConfig map[string]any
|
||||||
ProviderNotifyConfig map[string]any
|
ProviderExtendedConfig map[string]any
|
||||||
}
|
}
|
||||||
|
|
||||||
func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier, error) {
|
func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier, error) {
|
||||||
@ -37,8 +39,8 @@ func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier
|
|||||||
SmtpTls: access.SmtpTls,
|
SmtpTls: access.SmtpTls,
|
||||||
Username: access.Username,
|
Username: access.Username,
|
||||||
Password: access.Password,
|
Password: access.Password,
|
||||||
SenderAddress: maputil.GetOrDefaultString(options.ProviderNotifyConfig, "senderAddress", access.DefaultSenderAddress),
|
SenderAddress: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "senderAddress", access.DefaultSenderAddress),
|
||||||
ReceiverAddress: maputil.GetOrDefaultString(options.ProviderNotifyConfig, "receiverAddress", access.DefaultReceiverAddress),
|
ReceiverAddress: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "receiverAddress", access.DefaultReceiverAddress),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,7 +55,7 @@ func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier
|
|||||||
ServerUrl: access.ServerUrl,
|
ServerUrl: access.ServerUrl,
|
||||||
Username: access.Username,
|
Username: access.Username,
|
||||||
Password: access.Password,
|
Password: access.Password,
|
||||||
ChannelId: maputil.GetOrDefaultString(options.ProviderNotifyConfig, "channelId", access.DefaultChannelId),
|
ChannelId: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "channelId", access.DefaultChannelId),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,7 +68,7 @@ func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier
|
|||||||
|
|
||||||
return pTelegram.NewNotifier(&pTelegram.NotifierConfig{
|
return pTelegram.NewNotifier(&pTelegram.NotifierConfig{
|
||||||
BotToken: access.BotToken,
|
BotToken: access.BotToken,
|
||||||
ChatId: maputil.GetOrDefaultInt64(options.ProviderNotifyConfig, "chatId", access.DefaultChatId),
|
ChatId: maputil.GetOrDefaultInt64(options.ProviderExtendedConfig, "chatId", access.DefaultChatId),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,8 +79,31 @@ func createNotifierProvider(options *notifierProviderOptions) (notifier.Notifier
|
|||||||
return nil, fmt.Errorf("failed to populate provider access config: %w", err)
|
return nil, fmt.Errorf("failed to populate provider access config: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mergedHeaders := make(map[string]string)
|
||||||
|
if defaultHeadersString := access.HeadersString; defaultHeadersString != "" {
|
||||||
|
h, err := httputil.ParseHeaders(defaultHeadersString)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to parse webhook headers: %w", err)
|
||||||
|
}
|
||||||
|
for key := range h {
|
||||||
|
mergedHeaders[http.CanonicalHeaderKey(key)] = h.Get(key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if extendedHeadersString := maputil.GetString(options.ProviderExtendedConfig, "headers"); extendedHeadersString != "" {
|
||||||
|
h, err := httputil.ParseHeaders(extendedHeadersString)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to parse webhook headers: %w", err)
|
||||||
|
}
|
||||||
|
for key := range h {
|
||||||
|
mergedHeaders[http.CanonicalHeaderKey(key)] = h.Get(key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return pWebhook.NewNotifier(&pWebhook.NotifierConfig{
|
return pWebhook.NewNotifier(&pWebhook.NotifierConfig{
|
||||||
Url: access.Url,
|
WebhookUrl: access.Url,
|
||||||
|
WebhookData: maputil.GetOrDefaultString(options.ProviderExtendedConfig, "webhookData", access.TemplateDataForNotification),
|
||||||
|
Method: access.Method,
|
||||||
|
Headers: mergedHeaders,
|
||||||
AllowInsecureConnections: access.AllowInsecureConnections,
|
AllowInsecureConnections: access.AllowInsecureConnections,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ func createNotifierProviderUseGlobalSettings(channel domain.NotifyChannelType, c
|
|||||||
|
|
||||||
case domain.NotifyChannelTypeWebhook:
|
case domain.NotifyChannelTypeWebhook:
|
||||||
return pWebhook.NewNotifier(&pWebhook.NotifierConfig{
|
return pWebhook.NewNotifier(&pWebhook.NotifierConfig{
|
||||||
Url: maputil.GetString(channelConfig, "url"),
|
WebhookUrl: maputil.GetString(channelConfig, "url"),
|
||||||
AllowInsecureConnections: maputil.GetBool(channelConfig, "allowInsecureConnections"),
|
AllowInsecureConnections: maputil.GetBool(channelConfig, "allowInsecureConnections"),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -18,8 +19,13 @@ import (
|
|||||||
type DeployerConfig struct {
|
type DeployerConfig struct {
|
||||||
// Webhook URL。
|
// Webhook URL。
|
||||||
WebhookUrl string `json:"webhookUrl"`
|
WebhookUrl string `json:"webhookUrl"`
|
||||||
// Webhook 回调数据(JSON 格式)。
|
// Webhook 回调数据(application/json 或 application/x-www-form-urlencoded 格式)。
|
||||||
WebhookData string `json:"webhookData,omitempty"`
|
WebhookData string `json:"webhookData,omitempty"`
|
||||||
|
// 请求谓词。
|
||||||
|
// 零值时默认为 "POST"。
|
||||||
|
Method string `json:"method,omitempty"`
|
||||||
|
// 请求标头。
|
||||||
|
Headers map[string]string `json:"headers,omitempty"`
|
||||||
// 是否允许不安全的连接。
|
// 是否允许不安全的连接。
|
||||||
AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"`
|
AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"`
|
||||||
}
|
}
|
||||||
@ -68,25 +74,41 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
|||||||
}
|
}
|
||||||
|
|
||||||
var webhookData interface{}
|
var webhookData interface{}
|
||||||
err = json.Unmarshal([]byte(d.config.WebhookData), &webhookData)
|
if d.config.WebhookData == "" {
|
||||||
if err != nil {
|
webhookData = map[string]any{
|
||||||
return nil, fmt.Errorf("failed to unmarshall webhook data: %w", err)
|
"name": strings.Join(certX509.DNSNames, ";"),
|
||||||
|
"cert": certPEM,
|
||||||
|
"privkey": privkeyPEM,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err = json.Unmarshal([]byte(d.config.WebhookData), &webhookData)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to unmarshall webhook data: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
replaceJsonValueRecursively(webhookData, "${DOMAIN}", certX509.Subject.CommonName)
|
||||||
|
replaceJsonValueRecursively(webhookData, "${DOMAINS}", strings.Join(certX509.DNSNames, ";"))
|
||||||
|
replaceJsonValueRecursively(webhookData, "${SUBJECT_ALT_NAMES}", strings.Join(certX509.DNSNames, ";"))
|
||||||
|
replaceJsonValueRecursively(webhookData, "${CERTIFICATE}", certPEM)
|
||||||
|
replaceJsonValueRecursively(webhookData, "${PRIVATE_KEY}", privkeyPEM)
|
||||||
}
|
}
|
||||||
|
|
||||||
replaceJsonValueRecursively(webhookData, "${DOMAIN}", certX509.Subject.CommonName)
|
req := d.httpClient.R().
|
||||||
replaceJsonValueRecursively(webhookData, "${DOMAINS}", strings.Join(certX509.DNSNames, ";"))
|
|
||||||
replaceJsonValueRecursively(webhookData, "${SUBJECT_ALT_NAMES}", strings.Join(certX509.DNSNames, ";"))
|
|
||||||
replaceJsonValueRecursively(webhookData, "${CERTIFICATE}", certPEM)
|
|
||||||
replaceJsonValueRecursively(webhookData, "${PRIVATE_KEY}", privkeyPEM)
|
|
||||||
|
|
||||||
resp, err := d.httpClient.R().
|
|
||||||
SetContext(ctx).
|
SetContext(ctx).
|
||||||
|
SetHeaders(d.config.Headers)
|
||||||
|
req.URL = d.config.WebhookUrl
|
||||||
|
req.Method = d.config.Method
|
||||||
|
if req.Method == "" {
|
||||||
|
req.Method = http.MethodPost
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := req.
|
||||||
SetHeader("Content-Type", "application/json").
|
SetHeader("Content-Type", "application/json").
|
||||||
SetBody(webhookData).
|
SetBody(webhookData).
|
||||||
Post(d.config.WebhookUrl)
|
Send()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to send webhook request: %w", err)
|
return nil, fmt.Errorf("failed to send webhook request: %w", err)
|
||||||
} else if resp.StatusCode() != 200 {
|
} else if resp.IsError() {
|
||||||
return nil, fmt.Errorf("unexpected webhook response status code: %d", resp.StatusCode())
|
return nil, fmt.Errorf("unexpected webhook response status code: %d", resp.StatusCode())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,24 +3,36 @@ package webhook
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
webhook "github.com/nikoksr/notify/service/http"
|
"github.com/go-resty/resty/v2"
|
||||||
|
|
||||||
"github.com/usual2970/certimate/internal/pkg/core/notifier"
|
"github.com/usual2970/certimate/internal/pkg/core/notifier"
|
||||||
)
|
)
|
||||||
|
|
||||||
type NotifierConfig struct {
|
type NotifierConfig struct {
|
||||||
// Webhook URL。
|
// Webhook URL。
|
||||||
Url string `json:"url"`
|
WebhookUrl string `json:"webhookUrl"`
|
||||||
|
// Webhook 回调数据(application/json 或 application/x-www-form-urlencoded 格式)。
|
||||||
|
WebhookData string `json:"webhookData,omitempty"`
|
||||||
|
// 请求谓词。
|
||||||
|
// 零值时默认为 "POST"。
|
||||||
|
Method string `json:"method,omitempty"`
|
||||||
|
// 请求标头。
|
||||||
|
Headers map[string]string `json:"headers,omitempty"`
|
||||||
// 是否允许不安全的连接。
|
// 是否允许不安全的连接。
|
||||||
AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"`
|
AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type NotifierProvider struct {
|
type NotifierProvider struct {
|
||||||
config *NotifierConfig
|
config *NotifierConfig
|
||||||
logger *slog.Logger
|
logger *slog.Logger
|
||||||
|
httpClient *resty.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ notifier.Notifier = (*NotifierProvider)(nil)
|
var _ notifier.Notifier = (*NotifierProvider)(nil)
|
||||||
@ -30,8 +42,18 @@ func NewNotifier(config *NotifierConfig) (*NotifierProvider, error) {
|
|||||||
panic("config is nil")
|
panic("config is nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
client := resty.New().
|
||||||
|
SetTimeout(30 * time.Second).
|
||||||
|
SetRetryCount(3).
|
||||||
|
SetRetryWaitTime(5 * time.Second)
|
||||||
|
if config.AllowInsecureConnections {
|
||||||
|
client.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
|
||||||
|
}
|
||||||
|
|
||||||
return &NotifierProvider{
|
return &NotifierProvider{
|
||||||
config: config,
|
config: config,
|
||||||
|
logger: slog.Default(),
|
||||||
|
httpClient: client,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,20 +67,58 @@ func (n *NotifierProvider) WithLogger(logger *slog.Logger) notifier.Notifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (n *NotifierProvider) Notify(ctx context.Context, subject string, message string) (res *notifier.NotifyResult, err error) {
|
func (n *NotifierProvider) Notify(ctx context.Context, subject string, message string) (res *notifier.NotifyResult, err error) {
|
||||||
srv := webhook.New()
|
var webhookData interface{}
|
||||||
srv.AddReceiversURLs(n.config.Url)
|
if n.config.WebhookData == "" {
|
||||||
|
webhookData = map[string]any{
|
||||||
|
"subject": subject,
|
||||||
|
"message": message,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err = json.Unmarshal([]byte(n.config.WebhookData), &webhookData)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to unmarshall webhook data: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
if n.config.AllowInsecureConnections {
|
replaceJsonValueRecursively(webhookData, "${SUBJECT}", subject)
|
||||||
tlsConfig := &tls.Config{InsecureSkipVerify: true}
|
replaceJsonValueRecursively(webhookData, "${MESSAGE}", message)
|
||||||
transport := &http.Transport{TLSClientConfig: tlsConfig}
|
|
||||||
client := &http.Client{Transport: transport}
|
|
||||||
srv.WithClient(client)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err = srv.Send(ctx, subject, message)
|
req := n.httpClient.R().
|
||||||
|
SetContext(ctx).
|
||||||
|
SetHeaders(n.config.Headers)
|
||||||
|
req.URL = n.config.WebhookUrl
|
||||||
|
req.Method = n.config.Method
|
||||||
|
if req.Method == "" {
|
||||||
|
req.Method = http.MethodPost
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := req.
|
||||||
|
SetHeader("Content-Type", "application/json").
|
||||||
|
SetBody(webhookData).
|
||||||
|
Send()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("failed to send webhook request: %w", err)
|
||||||
|
} else if resp.IsError() {
|
||||||
|
return nil, fmt.Errorf("unexpected webhook response status code: %d", resp.StatusCode())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
n.logger.Debug("webhook responded", slog.Any("response", resp.String()))
|
||||||
|
|
||||||
return ¬ifier.NotifyResult{}, nil
|
return ¬ifier.NotifyResult{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func replaceJsonValueRecursively(data interface{}, oldStr, newStr string) interface{} {
|
||||||
|
switch v := data.(type) {
|
||||||
|
case map[string]any:
|
||||||
|
for k, val := range v {
|
||||||
|
v[k] = replaceJsonValueRecursively(val, oldStr, newStr)
|
||||||
|
}
|
||||||
|
case []any:
|
||||||
|
for i, val := range v {
|
||||||
|
v[i] = replaceJsonValueRecursively(val, oldStr, newStr)
|
||||||
|
}
|
||||||
|
case string:
|
||||||
|
return strings.ReplaceAll(v, oldStr, newStr)
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
@ -39,7 +39,7 @@ func TestNotify(t *testing.T) {
|
|||||||
}, "\n"))
|
}, "\n"))
|
||||||
|
|
||||||
notifier, err := provider.NewNotifier(&provider.NotifierConfig{
|
notifier, err := provider.NewNotifier(&provider.NotifierConfig{
|
||||||
Url: fUrl,
|
WebhookUrl: fUrl,
|
||||||
AllowInsecureConnections: true,
|
AllowInsecureConnections: true,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
33
internal/pkg/utils/http/parser.go
Normal file
33
internal/pkg/utils/http/parser.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package httputil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"net/http"
|
||||||
|
"net/textproto"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 从表示 HTTP 标头的字符串解析并返回一个 http.Header 对象。
|
||||||
|
//
|
||||||
|
// 入参:
|
||||||
|
// - headers: 表示 HTTP 标头的字符串。
|
||||||
|
//
|
||||||
|
// 出参:
|
||||||
|
// - header: http.Header 对象。
|
||||||
|
// - err: 错误。
|
||||||
|
func ParseHeaders(headers string) (http.Header, error) {
|
||||||
|
str := strings.TrimSpace(headers) + "\r\n\r\n"
|
||||||
|
if len(str) == 4 {
|
||||||
|
return make(http.Header), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
br := bufio.NewReader(strings.NewReader(str))
|
||||||
|
tp := textproto.NewReader(br)
|
||||||
|
|
||||||
|
mimeHeader, err := tp.ReadMIMEHeader()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return http.Header(mimeHeader), err
|
||||||
|
}
|
@ -199,6 +199,28 @@ func GetOrDefaultBool(dict map[string]any, key string, defaultValue bool) bool {
|
|||||||
return defaultValue
|
return defaultValue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 以 `map[string]V` 形式从字典中获取指定键的值。
|
||||||
|
//
|
||||||
|
// 入参:
|
||||||
|
// - dict: 字典。
|
||||||
|
// - key: 键。
|
||||||
|
//
|
||||||
|
// 出参:
|
||||||
|
// - 字典中键对应的 `map[string]V` 对象。
|
||||||
|
func GetKVMap[V any](dict map[string]any, key string) map[string]V {
|
||||||
|
if dict == nil {
|
||||||
|
return make(map[string]V)
|
||||||
|
}
|
||||||
|
|
||||||
|
if val, ok := dict[key]; ok {
|
||||||
|
if result, ok := val.(map[string]V); ok {
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return make(map[string]V)
|
||||||
|
}
|
||||||
|
|
||||||
// 以 `map[string]any` 形式从字典中获取指定键的值。
|
// 以 `map[string]any` 形式从字典中获取指定键的值。
|
||||||
//
|
//
|
||||||
// 入参:
|
// 入参:
|
||||||
@ -207,16 +229,6 @@ func GetOrDefaultBool(dict map[string]any, key string, defaultValue bool) bool {
|
|||||||
//
|
//
|
||||||
// 出参:
|
// 出参:
|
||||||
// - 字典中键对应的 `map[string]any` 对象。
|
// - 字典中键对应的 `map[string]any` 对象。
|
||||||
func GetMap(dict map[string]any, key string) map[string]any {
|
func GetKVMapAny(dict map[string]any, key string) map[string]any {
|
||||||
if dict == nil {
|
return GetKVMap[any](dict, key)
|
||||||
return make(map[string]any)
|
|
||||||
}
|
|
||||||
|
|
||||||
if val, ok := dict[key]; ok {
|
|
||||||
if result, ok := val.(map[string]any); ok {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return make(map[string]any)
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Form, type FormInstance, Input, Switch } from "antd";
|
import { Form, type FormInstance, Input, Select, Switch } from "antd";
|
||||||
import { createSchemaFieldRule } from "antd-zod";
|
import { createSchemaFieldRule } from "antd-zod";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
@ -18,6 +18,9 @@ export type AccessFormWebhookConfigProps = {
|
|||||||
const initFormModel = (): AccessFormWebhookConfigFieldValues => {
|
const initFormModel = (): AccessFormWebhookConfigFieldValues => {
|
||||||
return {
|
return {
|
||||||
url: "",
|
url: "",
|
||||||
|
method: "POST",
|
||||||
|
headers: "Content-Type: application/json",
|
||||||
|
allowInsecureConnections: false,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -26,10 +29,34 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa
|
|||||||
|
|
||||||
const formSchema = z.object({
|
const formSchema = z.object({
|
||||||
url: z.string().url(t("common.errmsg.url_invalid")),
|
url: z.string().url(t("common.errmsg.url_invalid")),
|
||||||
|
method: z.union([z.literal("GET"), z.literal("POST"), z.literal("PUT"), z.literal("PATCH"), z.literal("DELETE")], {
|
||||||
|
message: t("access.form.webhook_method.placeholder"),
|
||||||
|
}),
|
||||||
|
headers: z
|
||||||
|
.string()
|
||||||
|
.nullish()
|
||||||
|
.refine((v) => {
|
||||||
|
if (!v) return true;
|
||||||
|
|
||||||
|
const lines = v.split(/\r?\n/);
|
||||||
|
for (const line of lines) {
|
||||||
|
if (line.split(":").length < 2) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}, t("access.form.webhook_headers.errmsg.invalid")),
|
||||||
allowInsecureConnections: z.boolean().nullish(),
|
allowInsecureConnections: z.boolean().nullish(),
|
||||||
});
|
});
|
||||||
const formRule = createSchemaFieldRule(formSchema);
|
const formRule = createSchemaFieldRule(formSchema);
|
||||||
|
|
||||||
|
const handleWebhookHeadersBlur = (e: React.FocusEvent<HTMLTextAreaElement>) => {
|
||||||
|
let value = e.target.value;
|
||||||
|
value = value.trim();
|
||||||
|
value = value.replace(/(?<!\r)\n/g, "\r\n");
|
||||||
|
formInst.setFieldValue("headers", value);
|
||||||
|
};
|
||||||
|
|
||||||
const handleFormChange = (_: unknown, values: z.infer<typeof formSchema>) => {
|
const handleFormChange = (_: unknown, values: z.infer<typeof formSchema>) => {
|
||||||
onValuesChange?.(values);
|
onValuesChange?.(values);
|
||||||
};
|
};
|
||||||
@ -47,6 +74,22 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa
|
|||||||
<Input placeholder={t("access.form.webhook_url.placeholder")} />
|
<Input placeholder={t("access.form.webhook_url.placeholder")} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
|
<Form.Item name="method" label={t("access.form.webhook_method.label")} rules={[formRule]}>
|
||||||
|
<Select
|
||||||
|
options={["GET", "POST", "PUT", "PATCH", "DELETE"].map((s) => ({ label: s, value: s }))}
|
||||||
|
placeholder={t("access.form.webhook_method.placeholder")}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
|
<Form.Item
|
||||||
|
name="headers"
|
||||||
|
label={t("access.form.webhook_headers.label")}
|
||||||
|
rules={[formRule]}
|
||||||
|
tooltip={<span dangerouslySetInnerHTML={{ __html: t("access.form.webhook_headers.tooltip") }}></span>}
|
||||||
|
>
|
||||||
|
<Input.TextArea autoSize={{ minRows: 3, maxRows: 5 }} placeholder={t("access.form.webhook_headers.placeholder")} onBlur={handleWebhookHeadersBlur} />
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="allowInsecureConnections"
|
name="allowInsecureConnections"
|
||||||
label={t("access.form.webhook_allow_insecure_conns.label")}
|
label={t("access.form.webhook_allow_insecure_conns.label")}
|
||||||
|
@ -307,7 +307,11 @@ export type AccessConfigForWangsu = {
|
|||||||
|
|
||||||
export type AccessConfigForWebhook = {
|
export type AccessConfigForWebhook = {
|
||||||
url: string;
|
url: string;
|
||||||
|
method: string;
|
||||||
|
headers?: string;
|
||||||
allowInsecureConnections?: boolean;
|
allowInsecureConnections?: boolean;
|
||||||
|
templateDataForDeployment?: string;
|
||||||
|
templateDataForNotification?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type AccessConfigForWestcn = {
|
export type AccessConfigForWestcn = {
|
||||||
|
@ -340,6 +340,12 @@
|
|||||||
"access.form.wangsu_api_key.tooltip": "For more information, see <a href=\"https://en.wangsu.com/document/account-manage/15776\" target=\"_blank\">https://en.wangsu.com/document/account-manage/15776</a>",
|
"access.form.wangsu_api_key.tooltip": "For more information, see <a href=\"https://en.wangsu.com/document/account-manage/15776\" target=\"_blank\">https://en.wangsu.com/document/account-manage/15776</a>",
|
||||||
"access.form.webhook_url.label": "Webhook URL",
|
"access.form.webhook_url.label": "Webhook URL",
|
||||||
"access.form.webhook_url.placeholder": "Please enter Webhook URL",
|
"access.form.webhook_url.placeholder": "Please enter Webhook URL",
|
||||||
|
"access.form.webhook_method.label": "Webhook request method",
|
||||||
|
"access.form.webhook_method.placeholder": "Please select Webhook request method",
|
||||||
|
"access.form.webhook_headers.label": "Webhook request headers (Optional)",
|
||||||
|
"access.form.webhook_headers.placeholder": "Please enter Webhook request headers",
|
||||||
|
"access.form.webhook_headers.errmsg.invalid": "Please enter a valid request headers",
|
||||||
|
"access.form.webhook_headers.tooltip": "Format: <br><i>key1: val2<br>key2: val2</i><br><br>Example: <br><i>Content-Type: application/json<br>User-Agent: certimate</i>",
|
||||||
"access.form.webhook_allow_insecure_conns.label": "Insecure SSL/TLS connections",
|
"access.form.webhook_allow_insecure_conns.label": "Insecure SSL/TLS connections",
|
||||||
"access.form.webhook_allow_insecure_conns.tooltip": "Allowing insecure connections may lead to data leak or tampering. Use this option only when under trusted networks.",
|
"access.form.webhook_allow_insecure_conns.tooltip": "Allowing insecure connections may lead to data leak or tampering. Use this option only when under trusted networks.",
|
||||||
"access.form.webhook_allow_insecure_conns.switch.on": "Allow",
|
"access.form.webhook_allow_insecure_conns.switch.on": "Allow",
|
||||||
|
@ -340,6 +340,12 @@
|
|||||||
"access.form.wangsu_api_key.tooltip": "这是什么?请参阅 <a href=\"https://www.wangsu.com/document/account-manage/15776\" target=\"_blank\">https://www.wangsu.com/document/account-manage/15776</a>",
|
"access.form.wangsu_api_key.tooltip": "这是什么?请参阅 <a href=\"https://www.wangsu.com/document/account-manage/15776\" target=\"_blank\">https://www.wangsu.com/document/account-manage/15776</a>",
|
||||||
"access.form.webhook_url.label": "Webhook 回调地址",
|
"access.form.webhook_url.label": "Webhook 回调地址",
|
||||||
"access.form.webhook_url.placeholder": "请输入 Webhook 回调地址",
|
"access.form.webhook_url.placeholder": "请输入 Webhook 回调地址",
|
||||||
|
"access.form.webhook_method.label": "Webhook 请求谓词",
|
||||||
|
"access.form.webhook_method.placeholder": "请选择 Webhook 请求谓词",
|
||||||
|
"access.form.webhook_headers.label": "Webhook 请求标头(可选)",
|
||||||
|
"access.form.webhook_headers.placeholder": "请输入 Webhook 请求标头",
|
||||||
|
"access.form.webhook_headers.errmsg.invalid": "请输入有效的请求标头",
|
||||||
|
"access.form.webhook_headers.tooltip": "格式:<br><i>key1: val2<br>key2: val2</i><br><br>示例:<br><i>Content-Type: application/json<br>User-Agent: certimate</i>",
|
||||||
"access.form.webhook_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
|
"access.form.webhook_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
|
||||||
"access.form.webhook_allow_insecure_conns.tooltip": "忽略 SSL/TLS 证书错误可能导致数据泄露或被篡改。建议仅在可信网络下启用。",
|
"access.form.webhook_allow_insecure_conns.tooltip": "忽略 SSL/TLS 证书错误可能导致数据泄露或被篡改。建议仅在可信网络下启用。",
|
||||||
"access.form.webhook_allow_insecure_conns.switch.on": "允许",
|
"access.form.webhook_allow_insecure_conns.switch.on": "允许",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user