refactor: clean code

This commit is contained in:
Fu Diwei
2025-11-12 13:19:55 +08:00
parent 6dad585b07
commit 5e03bb331d
24 changed files with 209 additions and 168 deletions
@@ -12,7 +12,6 @@ type ProviderFactoryFunc func(options *ProviderFactoryOptions) (core.ACMEChallen
type ProviderFactoryOptions struct {
ProviderAccessConfig map[string]any
ProviderExtendedConfig map[string]any
DnsPropagationWait int
DnsPropagationTimeout int
DnsTTL int
}
-1
View File
@@ -105,7 +105,6 @@ func (c *ACMEClient) sendObtainCertificateRequest(request *ObtainCertificateRequ
provider, err := providerFactory(&applicators.ProviderFactoryOptions{
ProviderAccessConfig: request.ProviderAccessConfig,
ProviderExtendedConfig: request.ProviderExtendedConfig,
DnsPropagationWait: request.DnsPropagationWait,
DnsPropagationTimeout: request.DnsPropagationTimeout,
DnsTTL: request.DnsTTL,
})
@@ -17,11 +17,11 @@ func init() {
}
provider, err := tencentcloudcdn.NewSSLDeployerProvider(&tencentcloudcdn.SSLDeployerProviderConfig{
SecretId: credentials.SecretId,
SecretKey: credentials.SecretKey,
Endpoint: xmaps.GetString(options.ProviderExtendedConfig, "endpoint"),
MatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "matchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
SecretId: credentials.SecretId,
SecretKey: credentials.SecretKey,
Endpoint: xmaps.GetString(options.ProviderExtendedConfig, "endpoint"),
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
})
return provider, err
})
@@ -17,11 +17,11 @@ func init() {
}
provider, err := tencentcloudecdn.NewSSLDeployerProvider(&tencentcloudecdn.SSLDeployerProviderConfig{
SecretId: credentials.SecretId,
SecretKey: credentials.SecretKey,
Endpoint: xmaps.GetString(options.ProviderExtendedConfig, "endpoint"),
MatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "matchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
SecretId: credentials.SecretId,
SecretKey: credentials.SecretKey,
Endpoint: xmaps.GetString(options.ProviderExtendedConfig, "endpoint"),
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
})
return provider, err
})
@@ -20,12 +20,12 @@ func init() {
}
provider, err := tencentcloudeo.NewSSLDeployerProvider(&tencentcloudeo.SSLDeployerProviderConfig{
SecretId: credentials.SecretId,
SecretKey: credentials.SecretKey,
Endpoint: xmaps.GetString(options.ProviderExtendedConfig, "endpoint"),
ZoneId: xmaps.GetString(options.ProviderExtendedConfig, "zoneId"),
MatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "matchPattern"),
Domains: lo.Filter(strings.Split(xmaps.GetString(options.ProviderExtendedConfig, "domains"), ";"), func(s string, _ int) bool { return s != "" }),
SecretId: credentials.SecretId,
SecretKey: credentials.SecretKey,
Endpoint: xmaps.GetString(options.ProviderExtendedConfig, "endpoint"),
ZoneId: xmaps.GetString(options.ProviderExtendedConfig, "zoneId"),
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
Domains: lo.Filter(strings.Split(xmaps.GetString(options.ProviderExtendedConfig, "domains"), ";"), func(s string, _ int) bool { return s != "" }),
})
return provider, err
})
@@ -17,10 +17,10 @@ func init() {
}
provider, err := volcenginecdn.NewSSLDeployerProvider(&volcenginecdn.SSLDeployerProviderConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
MatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "matchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
})
return provider, err
})
@@ -17,10 +17,10 @@ func init() {
}
provider, err := volcenginelive.NewSSLDeployerProvider(&volcenginelive.SSLDeployerProviderConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
MatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "matchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
})
return provider, err
})
+37
View File
@@ -0,0 +1,37 @@
package migrations
import (
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
tracer := NewTracer("v0.4.5")
tracer.Printf("go ...")
// adapt to new workflow data structure
{
if _, err := app.DB().NewQuery("UPDATE workflow SET graphDraft = REPLACE(graphDraft, '\"matchPattern\"', '\"domainMatchPattern\"')").Execute(); err != nil {
return err
}
if _, err := app.DB().NewQuery("UPDATE workflow SET graphContent = REPLACE(graphContent, '\"matchPattern\"', '\"domainMatchPattern\"')").Execute(); err != nil {
return err
}
if _, err := app.DB().NewQuery("UPDATE workflow_run SET graph = REPLACE(graph, '\"matchPattern\"', '\"domainMatchPattern\"')").Execute(); err != nil {
return err
}
if _, err := app.DB().NewQuery("UPDATE workflow_output SET nodeConfig = REPLACE(nodeConfig, '\"matchPattern\"', '\"domainMatchPattern\"')").Execute(); err != nil {
return err
}
}
tracer.Printf("done")
return nil
}, func(app core.App) error {
return nil
})
}
@@ -2,9 +2,9 @@ package tencentcloudcdn
const (
// 匹配模式:精确匹配。
MATCH_PATTERN_EXACT = "exact"
DOMAIN_MATCH_PATTERN_EXACT = "exact"
// 匹配模式:通配符匹配。
MATCH_PATTERN_WILDCARD = "wildcard"
DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard"
// 匹配模式:证书 SAN 匹配。
MATCH_PATTERN_CERTSAN = "certsan"
DOMAIN_MATCH_PATTERN_CERTSAN = "certsan"
)
@@ -26,8 +26,8 @@ type SSLDeployerProviderConfig struct {
// 腾讯云接口端点。
Endpoint string `json:"endpoint,omitempty"`
// 域名匹配模式。
// 零值时默认值 [MATCH_PATTERN_EXACT]。
MatchPattern string `json:"matchPattern,omitempty"`
// 零值时默认值 [DOMAIN_MATCH_PATTERN_EXACT]。
DomainMatchPattern string `json:"domainMatchPattern,omitempty"`
// 加速域名(支持泛域名)。
Domain string `json:"domain"`
}
@@ -91,8 +91,8 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
// 获取待部署的 CDN 实例
domains := make([]string, 0)
switch d.config.MatchPattern {
case "", MATCH_PATTERN_EXACT:
switch d.config.DomainMatchPattern {
case "", DOMAIN_MATCH_PATTERN_EXACT:
{
if d.config.Domain == "" {
return nil, errors.New("config `domain` is required")
@@ -101,7 +101,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
domains = append(domains, d.config.Domain)
}
case MATCH_PATTERN_WILDCARD:
case DOMAIN_MATCH_PATTERN_WILDCARD:
{
if d.config.Domain == "" {
return nil, errors.New("config `domain` is required")
@@ -119,7 +119,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
}
}
case MATCH_PATTERN_CERTSAN:
case DOMAIN_MATCH_PATTERN_CERTSAN:
{
temp, err := d.getMatchedDomainsByCertId(ctx, upres.CertId)
if err != nil {
@@ -130,7 +130,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
}
default:
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.MatchPattern)
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.DomainMatchPattern)
}
// 遍历更新域名证书
@@ -2,9 +2,9 @@ package tencentcloudecdn
const (
// 匹配模式:精确匹配。
MATCH_PATTERN_EXACT = "exact"
DOMAIN_MATCH_PATTERN_EXACT = "exact"
// 匹配模式:通配符匹配。
MATCH_PATTERN_WILDCARD = "wildcard"
DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard"
// 匹配模式:证书 SAN 匹配。
MATCH_PATTERN_CERTSAN = "certsan"
DOMAIN_MATCH_PATTERN_CERTSAN = "certsan"
)
@@ -26,8 +26,8 @@ type SSLDeployerProviderConfig struct {
// 腾讯云接口端点。
Endpoint string `json:"endpoint,omitempty"`
// 域名匹配模式。
// 零值时默认值 [MATCH_PATTERN_EXACT]。
MatchPattern string `json:"matchPattern,omitempty"`
// 零值时默认值 [DOMAIN_MATCH_PATTERN_EXACT]。
DomainMatchPattern string `json:"domainMatchPattern,omitempty"`
// 加速域名(支持泛域名)。
Domain string `json:"domain"`
}
@@ -91,8 +91,8 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
// 获取待部署的 ECDN 实例
domains := make([]string, 0)
switch d.config.MatchPattern {
case "", MATCH_PATTERN_EXACT:
switch d.config.DomainMatchPattern {
case "", DOMAIN_MATCH_PATTERN_EXACT:
{
if d.config.Domain == "" {
return nil, errors.New("config `domain` is required")
@@ -101,7 +101,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
domains = append(domains, d.config.Domain)
}
case MATCH_PATTERN_WILDCARD:
case DOMAIN_MATCH_PATTERN_WILDCARD:
{
if d.config.Domain == "" {
return nil, errors.New("config `domain` is required")
@@ -119,7 +119,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
}
}
case MATCH_PATTERN_CERTSAN:
case DOMAIN_MATCH_PATTERN_CERTSAN:
{
temp, err := d.getMatchedDomainsByCertId(ctx, upres.CertId)
if err != nil {
@@ -130,7 +130,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
}
default:
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.MatchPattern)
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.DomainMatchPattern)
}
// 遍历更新域名证书
@@ -2,7 +2,7 @@ package tencentcloudeo
const (
// 匹配模式:精确匹配。
MATCH_PATTERN_EXACT = "exact"
DOMAIN_MATCH_PATTERN_EXACT = "exact"
// 匹配模式:通配符匹配。
MATCH_PATTERN_WILDCARD = "wildcard"
DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard"
)
@@ -28,8 +28,8 @@ type SSLDeployerProviderConfig struct {
// 站点 ID。
ZoneId string `json:"zoneId"`
// 域名匹配模式。
// 零值时默认值 [MATCH_PATTERN_EXACT]。
MatchPattern string `json:"matchPattern,omitempty"`
// 零值时默认值 [DOMAIN_MATCH_PATTERN_EXACT]。
DomainMatchPattern string `json:"domainMatchPattern,omitempty"`
// 加速域名列表(支持泛域名)。
Domains []string `json:"domains"`
}
@@ -99,8 +99,8 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
}
var domains []string
switch d.config.MatchPattern {
case "", MATCH_PATTERN_EXACT:
switch d.config.DomainMatchPattern {
case "", DOMAIN_MATCH_PATTERN_EXACT:
{
if len(d.config.Domains) == 0 {
return nil, errors.New("config `domains` is required")
@@ -109,7 +109,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
domains = d.config.Domains
}
case MATCH_PATTERN_WILDCARD:
case DOMAIN_MATCH_PATTERN_WILDCARD:
{
if len(d.config.Domains) == 0 {
return nil, errors.New("config `domains` is required")
@@ -135,7 +135,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
}
default:
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.MatchPattern)
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.DomainMatchPattern)
}
// 配置域名证书
@@ -2,9 +2,9 @@ package volcenginecdn
const (
// 匹配模式:精确匹配。
MATCH_PATTERN_EXACT = "exact"
DOMAIN_MATCH_PATTERN_EXACT = "exact"
// 匹配模式:通配符匹配。
MATCH_PATTERN_WILDCARD = "wildcard"
DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard"
// 匹配模式:证书 SAN 匹配。
MATCH_PATTERN_CERTSAN = "certsan"
DOMAIN_MATCH_PATTERN_CERTSAN = "certsan"
)
@@ -22,8 +22,8 @@ type SSLDeployerProviderConfig struct {
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
// 域名匹配模式。
// 零值时默认值 [MATCH_PATTERN_EXACT]。
MatchPattern string `json:"matchPattern,omitempty"`
// 零值时默认值 [DOMAIN_MATCH_PATTERN_EXACT]。
DomainMatchPattern string `json:"domainMatchPattern,omitempty"`
// 加速域名(支持泛域名)。
Domain string `json:"domain"`
}
@@ -84,8 +84,8 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
// 获取待部署的 CDN 实例
domains := make([]string, 0)
switch d.config.MatchPattern {
case "", MATCH_PATTERN_EXACT:
switch d.config.DomainMatchPattern {
case "", DOMAIN_MATCH_PATTERN_EXACT:
{
if d.config.Domain == "" {
return nil, errors.New("config `domain` is required")
@@ -94,7 +94,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
domains = append(domains, d.config.Domain)
}
case MATCH_PATTERN_WILDCARD:
case DOMAIN_MATCH_PATTERN_WILDCARD:
{
if d.config.Domain == "" {
return nil, errors.New("config `domain` is required")
@@ -112,7 +112,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
}
}
case MATCH_PATTERN_CERTSAN:
case DOMAIN_MATCH_PATTERN_CERTSAN:
{
temp, err := d.getMatchedDomainsByCertId(ctx, upres.CertId)
if err != nil {
@@ -123,7 +123,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
}
default:
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.MatchPattern)
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.DomainMatchPattern)
}
// 遍历绑定证书
@@ -2,7 +2,7 @@ package volcenginelive
const (
// 匹配模式:精确匹配。
MATCH_PATTERN_EXACT = "exact"
DOMAIN_MATCH_PATTERN_EXACT = "exact"
// 匹配模式:通配符匹配。
MATCH_PATTERN_WILDCARD = "wildcard"
DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard"
)
@@ -21,8 +21,8 @@ type SSLDeployerProviderConfig struct {
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
// 域名匹配模式。
// 零值时默认值 [MATCH_PATTERN_EXACT]。
MatchPattern string `json:"matchPattern,omitempty"`
// 零值时默认值 [DOMAIN_MATCH_PATTERN_EXACT]。
DomainMatchPattern string `json:"domainMatchPattern,omitempty"`
// 直播流域名(支持泛域名)。
Domain string `json:"domain"`
}
@@ -82,8 +82,8 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
// 获取待部署的直播实例
domains := make([]string, 0)
switch d.config.MatchPattern {
case "", MATCH_PATTERN_EXACT:
switch d.config.DomainMatchPattern {
case "", DOMAIN_MATCH_PATTERN_EXACT:
{
if d.config.Domain == "" {
return nil, errors.New("config `domain` is required")
@@ -92,7 +92,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
domains = append(domains, d.config.Domain)
}
case MATCH_PATTERN_WILDCARD:
case DOMAIN_MATCH_PATTERN_WILDCARD:
{
if d.config.Domain == "" {
return nil, errors.New("config `domain` is required")
@@ -111,7 +111,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
}
default:
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.MatchPattern)
return nil, fmt.Errorf("unsupported match pattern: '%s'", d.config.DomainMatchPattern)
}
// 遍历绑定证书
@@ -8,9 +8,9 @@ import { validDomainName } from "@/utils/validators";
import { useFormNestedFieldsContext } from "./_context";
const MATCH_PATTERN_EXACT = "exact" as const;
const MATCH_PATTERN_WILDCARD = "wildcard" as const;
const MATCH_PATTERN_CERTSAN = "certsan" as const;
const DOMAIN_MATCH_PATTERN_EXACT = "exact" as const;
const DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard" as const;
const DOMAIN_MATCH_PATTERN_CERTSAN = "certsan" as const;
const BizDeployNodeConfigFieldsProviderTencentCloudCDN = () => {
const { i18n, t } = useTranslation();
@@ -23,7 +23,7 @@ const BizDeployNodeConfigFieldsProviderTencentCloudCDN = () => {
const formInst = Form.useFormInstance();
const initialValues = getInitialValues();
const fieldDomainPattern = Form.useWatch([parentNamePath, "matchPattern"], { form: formInst, preserve: true });
const fieldDomainMatchPattern = Form.useWatch([parentNamePath, "domainMatchPattern"], { form: formInst, preserve: true });
return (
<>
@@ -38,14 +38,14 @@ const BizDeployNodeConfigFieldsProviderTencentCloudCDN = () => {
</Form.Item>
<Form.Item
name={[parentNamePath, "matchPattern"]}
initialValue={initialValues.matchPattern}
name={[parentNamePath, "domainMatchPattern"]}
initialValue={initialValues.domainMatchPattern}
label={t("workflow_node.deploy.form.shared_domain_match_pattern.label")}
extra={<span dangerouslySetInnerHTML={{ __html: t("workflow_node.deploy.form.shared_domain_match_pattern.help_wildcard") }}></span>}
rules={[formRule]}
>
<Radio.Group
options={[MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD, MATCH_PATTERN_CERTSAN].map((s) => ({
options={[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD, DOMAIN_MATCH_PATTERN_CERTSAN].map((s) => ({
key: s,
label: t(`workflow_node.deploy.form.shared_domain_match_pattern.option.${s}.label`),
value: s,
@@ -53,7 +53,7 @@ const BizDeployNodeConfigFieldsProviderTencentCloudCDN = () => {
/>
</Form.Item>
<Show when={fieldDomainPattern !== MATCH_PATTERN_CERTSAN}>
<Show when={fieldDomainMatchPattern !== DOMAIN_MATCH_PATTERN_CERTSAN}>
<Form.Item
name={[parentNamePath, "domain"]}
initialValue={initialValues.domain}
@@ -69,7 +69,7 @@ const BizDeployNodeConfigFieldsProviderTencentCloudCDN = () => {
const getInitialValues = (): Nullish<z.infer<ReturnType<typeof getSchema>>> => {
return {
matchPattern: MATCH_PATTERN_EXACT,
domainMatchPattern: DOMAIN_MATCH_PATTERN_EXACT,
domain: "",
};
};
@@ -80,17 +80,17 @@ const getSchema = ({ i18n = getI18n() }: { i18n?: ReturnType<typeof getI18n> })
return z
.object({
endpoint: z.string().nullish(),
matchPattern: z.enum(
[MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD, MATCH_PATTERN_CERTSAN],
domainMatchPattern: z.enum(
[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD, DOMAIN_MATCH_PATTERN_CERTSAN],
t("workflow_node.deploy.form.shared_domain_match_pattern.placeholder")
),
domain: z.string().nullish(),
})
.superRefine((values, ctx) => {
if (values.matchPattern) {
switch (values.matchPattern) {
case MATCH_PATTERN_EXACT:
case MATCH_PATTERN_WILDCARD:
if (values.domainMatchPattern) {
switch (values.domainMatchPattern) {
case DOMAIN_MATCH_PATTERN_EXACT:
case DOMAIN_MATCH_PATTERN_WILDCARD:
{
if (!validDomainName(values.domain!, { allowWildcard: true })) {
ctx.addIssue({
@@ -8,9 +8,9 @@ import { validDomainName } from "@/utils/validators";
import { useFormNestedFieldsContext } from "./_context";
const MATCH_PATTERN_EXACT = "exact" as const;
const MATCH_PATTERN_WILDCARD = "wildcard" as const;
const MATCH_PATTERN_CERTSAN = "certsan" as const;
const DOMAIN_MATCH_PATTERN_EXACT = "exact" as const;
const DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard" as const;
const DOMAIN_MATCH_PATTERN_CERTSAN = "certsan" as const;
const BizDeployNodeConfigFieldsProviderTencentCloudECDN = () => {
const { i18n, t } = useTranslation();
@@ -23,7 +23,7 @@ const BizDeployNodeConfigFieldsProviderTencentCloudECDN = () => {
const formInst = Form.useFormInstance();
const initialValues = getInitialValues();
const fieldDomainPattern = Form.useWatch([parentNamePath, "matchPattern"], { form: formInst, preserve: true });
const fieldDomainMatchPattern = Form.useWatch([parentNamePath, "domainMatchPattern"], { form: formInst, preserve: true });
return (
<>
@@ -38,14 +38,14 @@ const BizDeployNodeConfigFieldsProviderTencentCloudECDN = () => {
</Form.Item>
<Form.Item
name={[parentNamePath, "matchPattern"]}
initialValue={initialValues.matchPattern}
name={[parentNamePath, "domainMatchPattern"]}
initialValue={initialValues.domainMatchPattern}
label={t("workflow_node.deploy.form.shared_domain_match_pattern.label")}
extra={<span dangerouslySetInnerHTML={{ __html: t("workflow_node.deploy.form.shared_domain_match_pattern.help_wildcard") }}></span>}
rules={[formRule]}
>
<Radio.Group
options={[MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD, MATCH_PATTERN_CERTSAN].map((s) => ({
options={[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD, DOMAIN_MATCH_PATTERN_CERTSAN].map((s) => ({
key: s,
label: t(`workflow_node.deploy.form.shared_domain_match_pattern.option.${s}.label`),
value: s,
@@ -53,7 +53,7 @@ const BizDeployNodeConfigFieldsProviderTencentCloudECDN = () => {
/>
</Form.Item>
<Show when={fieldDomainPattern !== MATCH_PATTERN_CERTSAN}>
<Show when={fieldDomainMatchPattern !== DOMAIN_MATCH_PATTERN_CERTSAN}>
<Form.Item
name={[parentNamePath, "domain"]}
initialValue={initialValues.domain}
@@ -69,7 +69,7 @@ const BizDeployNodeConfigFieldsProviderTencentCloudECDN = () => {
const getInitialValues = (): Nullish<z.infer<ReturnType<typeof getSchema>>> => {
return {
matchPattern: MATCH_PATTERN_EXACT,
domainMatchPattern: DOMAIN_MATCH_PATTERN_EXACT,
domain: "",
};
};
@@ -80,17 +80,17 @@ const getSchema = ({ i18n = getI18n() }: { i18n?: ReturnType<typeof getI18n> })
return z
.object({
endpoint: z.string().nullish(),
matchPattern: z.enum(
[MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD, MATCH_PATTERN_CERTSAN],
domainMatchPattern: z.enum(
[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD, DOMAIN_MATCH_PATTERN_CERTSAN],
t("workflow_node.deploy.form.shared_domain_match_pattern.placeholder")
),
domain: z.string().nullish(),
})
.superRefine((values, ctx) => {
if (values.matchPattern) {
switch (values.matchPattern) {
case MATCH_PATTERN_EXACT:
case MATCH_PATTERN_WILDCARD:
if (values.domainMatchPattern) {
switch (values.domainMatchPattern) {
case DOMAIN_MATCH_PATTERN_EXACT:
case DOMAIN_MATCH_PATTERN_WILDCARD:
{
if (!validDomainName(values.domain!, { allowWildcard: true })) {
ctx.addIssue({
@@ -9,8 +9,8 @@ import { validDomainName } from "@/utils/validators";
import { useFormNestedFieldsContext } from "./_context";
const MULTIPLE_INPUT_SEPARATOR = ";";
const MATCH_PATTERN_EXACT = "exact" as const;
const MATCH_PATTERN_WILDCARD = "wildcard" as const;
const DOMAIN_MATCH_PATTERN_EXACT = "exact" as const;
const DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard" as const;
const BizDeployNodeConfigFieldsProviderTencentCloudEO = () => {
const { i18n, t } = useTranslation();
@@ -45,14 +45,14 @@ const BizDeployNodeConfigFieldsProviderTencentCloudEO = () => {
</Form.Item>
<Form.Item
name={[parentNamePath, "matchPattern"]}
initialValue={initialValues.matchPattern}
name={[parentNamePath, "domainMatchPattern"]}
initialValue={initialValues.domainMatchPattern}
label={t("workflow_node.deploy.form.shared_domain_match_pattern.label")}
extra={<span dangerouslySetInnerHTML={{ __html: t("workflow_node.deploy.form.shared_domain_match_pattern.help_wildcard") }}></span>}
rules={[formRule]}
>
<Radio.Group
options={[MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD].map((s) => ({
options={[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD].map((s) => ({
key: s,
label: t(`workflow_node.deploy.form.shared_domain_match_pattern.option.${s}.label`),
value: s,
@@ -80,7 +80,7 @@ const BizDeployNodeConfigFieldsProviderTencentCloudEO = () => {
const getInitialValues = (): Nullish<z.infer<ReturnType<typeof getSchema>>> => {
return {
matchPattern: MATCH_PATTERN_EXACT,
domainMatchPattern: DOMAIN_MATCH_PATTERN_EXACT,
zoneId: "",
domains: "",
};
@@ -92,7 +92,10 @@ const getSchema = ({ i18n = getI18n() }: { i18n?: ReturnType<typeof getI18n> })
return z.object({
endpoint: z.string().nullish(),
zoneId: z.string().nonempty(t("workflow_node.deploy.form.tencentcloud_eo_zone_id.placeholder")),
matchPattern: z.enum([MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD], t("workflow_node.deploy.form.shared_domain_match_pattern.placeholder")),
domainMatchPattern: z.enum(
[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD],
t("workflow_node.deploy.form.shared_domain_match_pattern.placeholder")
),
domains: z.string().refine((v) => {
if (!v) return false;
return String(v)
@@ -8,9 +8,9 @@ import { validDomainName } from "@/utils/validators";
import { useFormNestedFieldsContext } from "./_context";
const MATCH_PATTERN_EXACT = "exact" as const;
const MATCH_PATTERN_WILDCARD = "wildcard" as const;
const MATCH_PATTERN_CERTSAN = "certsan" as const;
const DOMAIN_MATCH_PATTERN_EXACT = "exact" as const;
const DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard" as const;
const DOMAIN_MATCH_PATTERN_CERTSAN = "certsan" as const;
const BizDeployNodeConfigFieldsProviderVolcEngineCDN = () => {
const { i18n, t } = useTranslation();
@@ -23,19 +23,19 @@ const BizDeployNodeConfigFieldsProviderVolcEngineCDN = () => {
const formInst = Form.useFormInstance();
const initialValues = getInitialValues();
const fieldDomainPattern = Form.useWatch([parentNamePath, "matchPattern"], { form: formInst, preserve: true });
const fieldDomainMatchPattern = Form.useWatch([parentNamePath, "domainMatchPattern"], { form: formInst, preserve: true });
return (
<>
<Form.Item
name={[parentNamePath, "matchPattern"]}
initialValue={initialValues.matchPattern}
name={[parentNamePath, "domainMatchPattern"]}
initialValue={initialValues.domainMatchPattern}
label={t("workflow_node.deploy.form.shared_domain_match_pattern.label")}
extra={<span dangerouslySetInnerHTML={{ __html: t("workflow_node.deploy.form.shared_domain_match_pattern.help_wildcard") }}></span>}
rules={[formRule]}
>
<Radio.Group
options={[MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD, MATCH_PATTERN_CERTSAN].map((s) => ({
options={[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD, DOMAIN_MATCH_PATTERN_CERTSAN].map((s) => ({
key: s,
label: t(`workflow_node.deploy.form.shared_domain_match_pattern.option.${s}.label`),
value: s,
@@ -43,7 +43,7 @@ const BizDeployNodeConfigFieldsProviderVolcEngineCDN = () => {
/>
</Form.Item>
<Show when={fieldDomainPattern !== MATCH_PATTERN_CERTSAN}>
<Show when={fieldDomainMatchPattern !== DOMAIN_MATCH_PATTERN_CERTSAN}>
<Form.Item
name={[parentNamePath, "domain"]}
initialValue={initialValues.domain}
@@ -59,7 +59,7 @@ const BizDeployNodeConfigFieldsProviderVolcEngineCDN = () => {
const getInitialValues = (): Nullish<z.infer<ReturnType<typeof getSchema>>> => {
return {
matchPattern: MATCH_PATTERN_EXACT,
domainMatchPattern: DOMAIN_MATCH_PATTERN_EXACT,
domain: "",
};
};
@@ -69,17 +69,17 @@ const getSchema = ({ i18n = getI18n() }: { i18n?: ReturnType<typeof getI18n> })
return z
.object({
matchPattern: z.enum(
[MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD, MATCH_PATTERN_CERTSAN],
domainMatchPattern: z.enum(
[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD, DOMAIN_MATCH_PATTERN_CERTSAN],
t("workflow_node.deploy.form.shared_domain_match_pattern.placeholder")
),
domain: z.string().nullish(),
})
.superRefine((values, ctx) => {
if (values.matchPattern) {
switch (values.matchPattern) {
case MATCH_PATTERN_EXACT:
case MATCH_PATTERN_WILDCARD:
if (values.domainMatchPattern) {
switch (values.domainMatchPattern) {
case DOMAIN_MATCH_PATTERN_EXACT:
case DOMAIN_MATCH_PATTERN_WILDCARD:
{
if (!validDomainName(values.domain!, { allowWildcard: true })) {
ctx.addIssue({
@@ -7,8 +7,8 @@ import { validDomainName } from "@/utils/validators";
import { useFormNestedFieldsContext } from "./_context";
const MATCH_PATTERN_EXACT = "exact" as const;
const MATCH_PATTERN_WILDCARD = "wildcard" as const;
const DOMAIN_MATCH_PATTERN_EXACT = "exact" as const;
const DOMAIN_MATCH_PATTERN_WILDCARD = "wildcard" as const;
const BizDeployNodeConfigFieldsProviderVolcEngineLive = () => {
const { i18n, t } = useTranslation();
@@ -23,13 +23,13 @@ const BizDeployNodeConfigFieldsProviderVolcEngineLive = () => {
return (
<>
<Form.Item
name={[parentNamePath, "matchPattern"]}
initialValue={initialValues.matchPattern}
name={[parentNamePath, "domainMatchPattern"]}
initialValue={initialValues.domainMatchPattern}
label={t("workflow_node.deploy.form.shared_domain_match_pattern.label")}
rules={[formRule]}
>
<Radio.Group
options={[MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD].map((s) => ({
options={[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD].map((s) => ({
key: s,
label: t(`workflow_node.deploy.form.shared_domain_match_pattern.option.${s}.label`),
value: s,
@@ -51,7 +51,7 @@ const BizDeployNodeConfigFieldsProviderVolcEngineLive = () => {
const getInitialValues = (): Nullish<z.infer<ReturnType<typeof getSchema>>> => {
return {
matchPattern: MATCH_PATTERN_EXACT,
domainMatchPattern: DOMAIN_MATCH_PATTERN_EXACT,
domain: "",
};
};
@@ -61,14 +61,17 @@ const getSchema = ({ i18n = getI18n() }: { i18n?: ReturnType<typeof getI18n> })
return z
.object({
matchPattern: z.enum([MATCH_PATTERN_EXACT, MATCH_PATTERN_WILDCARD], t("workflow_node.deploy.form.shared_domain_match_pattern.placeholder")),
domainMatchPattern: z.enum(
[DOMAIN_MATCH_PATTERN_EXACT, DOMAIN_MATCH_PATTERN_WILDCARD],
t("workflow_node.deploy.form.shared_domain_match_pattern.placeholder")
),
domain: z.string().nullish(),
})
.superRefine((values, ctx) => {
if (values.matchPattern) {
switch (values.matchPattern) {
case MATCH_PATTERN_EXACT:
case MATCH_PATTERN_WILDCARD:
if (values.domainMatchPattern) {
switch (values.domainMatchPattern) {
case DOMAIN_MATCH_PATTERN_EXACT:
case DOMAIN_MATCH_PATTERN_WILDCARD:
{
if (!validDomainName(values.domain!, { allowWildcard: true })) {
ctx.addIssue({
+33 -33
View File
@@ -227,7 +227,7 @@
"workflow_node.deploy.form.aliyun_alb_listener_id.placeholder": "请输入阿里云 ALB 监听器 ID",
"workflow_node.deploy.form.aliyun_alb_listener_id.tooltip": "这是什么?请参阅 <a href=\"https://slb.console.aliyun.com/alb\" target=\"_blank\">https://slb.console.aliyun.com/alb</a>",
"workflow_node.deploy.form.aliyun_alb_snidomain.label": "阿里云 ALB 扩展域名(可选)",
"workflow_node.deploy.form.aliyun_alb_snidomain.placeholder": "请输入阿里云 ALB 扩展域名(支持泛域名)",
"workflow_node.deploy.form.aliyun_alb_snidomain.placeholder": "请输入阿里云 ALB 扩展域名",
"workflow_node.deploy.form.aliyun_alb_snidomain.help": "提示:不填写时,将替换监听器的默认证书;否则,将替换扩展域名证书。",
"workflow_node.deploy.form.aliyun_apigw_service_type.label": "阿里云 API 网关服务类型",
"workflow_node.deploy.form.aliyun_apigw_service_type.placeholder": "请选择阿里云 API 网关服务类型",
@@ -243,7 +243,7 @@
"workflow_node.deploy.form.aliyun_apigw_group_id.placeholder": "请输入阿里云 API 分组 ID",
"workflow_node.deploy.form.aliyun_apigw_group_id.tooltip": "这是什么?请参阅 <a href=\"https://apigateway.console.aliyun.com\" target=\"_blank\">https://apigateway.console.aliyun.com</a>",
"workflow_node.deploy.form.aliyun_apigw_domain.label": "阿里云 API 网关自定义域名",
"workflow_node.deploy.form.aliyun_apigw_domain.placeholder": "请输入阿里云 API 网关自定义域名(支持泛域名)",
"workflow_node.deploy.form.aliyun_apigw_domain.placeholder": "请输入阿里云 API 网关自定义域名",
"workflow_node.deploy.form.aliyun_cas_region.label": "阿里云 CAS 服务地域",
"workflow_node.deploy.form.aliyun_cas_region.placeholder": "请输入阿里云 CAS 服务地域(例如:cn-hangzhou)",
"workflow_node.deploy.form.aliyun_cas_region.tooltip": "这是什么?请参阅 <a href=\"https://help.aliyun.com/zh/ssl-certificate/developer-reference/endpoints\" target=\"_blank\">https://help.aliyun.com/zh/ssl-certificate/developer-reference/endpoints</a>",
@@ -279,23 +279,23 @@
"workflow_node.deploy.form.aliyun_clb_listener_port.placeholder": "请输入阿里云 CLB 监听端口",
"workflow_node.deploy.form.aliyun_clb_listener_port.tooltip": "这是什么?请参阅 <a href=\"https://slb.console.aliyun.com/clb\" target=\"_blank\">https://slb.console.aliyun.com/clb</a>",
"workflow_node.deploy.form.aliyun_clb_snidomain.label": "阿里云 CLB 扩展域名(可选)",
"workflow_node.deploy.form.aliyun_clb_snidomain.placeholder": "请输入阿里云 CLB 扩展域名(支持泛域名)",
"workflow_node.deploy.form.aliyun_clb_snidomain.placeholder": "请输入阿里云 CLB 扩展域名",
"workflow_node.deploy.form.aliyun_clb_snidomain.help": "提示:不填写时,将替换监听器的默认证书;否则,将替换扩展域名证书。",
"workflow_node.deploy.form.aliyun_cdn_region.label": "阿里云 CDN 服务地域",
"workflow_node.deploy.form.aliyun_cdn_region.placeholder": "请输入阿里云 CDN 服务地域(例如:cn-hangzhou)",
"workflow_node.deploy.form.aliyun_cdn_region.tooltip": "中国站请填写 <strong>cn-hangzhou</strong>;<br>国际站请填写 <strong>ap-southeast-1</strong>。",
"workflow_node.deploy.form.aliyun_cdn_domain.label": "阿里云 CDN 加速域名",
"workflow_node.deploy.form.aliyun_cdn_domain.placeholder": "请输入阿里云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.aliyun_cdn_domain.placeholder": "请输入阿里云 CDN 加速域名",
"workflow_node.deploy.form.aliyun_dcdn_region.label": "阿里云 DCDN 服务地域",
"workflow_node.deploy.form.aliyun_dcdn_region.placeholder": "请输入阿里云 DCDN 服务地域(例如:cn-hangzhou)",
"workflow_node.deploy.form.aliyun_dcdn_region.tooltip": "中国站请填写 <strong>cn-hangzhou</strong>;<br>国际站请填写 <strong>ap-southeast-1</strong>。",
"workflow_node.deploy.form.aliyun_dcdn_domain.label": "阿里云 DCDN 加速域名",
"workflow_node.deploy.form.aliyun_dcdn_domain.placeholder": "请输入阿里云 DCDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.aliyun_dcdn_domain.placeholder": "请输入阿里云 DCDN 加速域名",
"workflow_node.deploy.form.aliyun_ddospro_region.label": "阿里云 DDoS 高防服务地域",
"workflow_node.deploy.form.aliyun_ddospro_region.placeholder": "请输入阿里云 DDoS 高防服务地域(例如:cn-hangzhou)",
"workflow_node.deploy.form.aliyun_ddospro_region.tooltip": "这是什么?请参阅 <a href=\"https://help.aliyun.com/zh/anti-ddos/anti-ddos-pro-and-premium/developer-reference/api-ddoscoo-2020-01-01-endpoint\" target=\"_blank\">https://help.aliyun.com/zh/anti-ddos/anti-ddos-pro-and-premium/developer-reference/api-ddoscoo-2020-01-01-endpoint</a>",
"workflow_node.deploy.form.aliyun_ddospro_domain.label": "阿里云 DDoS 高防网站域名",
"workflow_node.deploy.form.aliyun_ddospro_domain.placeholder": "请输入阿里云 DDoS 高防网站域名(支持泛域名)",
"workflow_node.deploy.form.aliyun_ddospro_domain.placeholder": "请输入阿里云 DDoS 高防网站域名",
"workflow_node.deploy.form.aliyun_esa_region.label": "阿里云 ESA 服务地域",
"workflow_node.deploy.form.aliyun_esa_region.placeholder": "请输入阿里云 ESA 服务地域(例如:cn-hangzhou)",
"workflow_node.deploy.form.aliyun_esa_region.tooltip": "这是什么?请参阅 <a href=\"https://help.aliyun.com/zh/edge-security-acceleration/esa/api-esa-2024-09-10-endpoint\" target=\"_blank\">https://help.aliyun.com/zh/edge-security-acceleration/esa/api-esa-2024-09-10-endpoint</a>",
@@ -308,7 +308,7 @@
"workflow_node.deploy.form.aliyun_fc_service_version.label": "阿里云 FC 服务版本",
"workflow_node.deploy.form.aliyun_fc_service_version.placeholder": "请选择阿里云 FC 服务版本",
"workflow_node.deploy.form.aliyun_fc_domain.label": "阿里云 FC 自定义域名",
"workflow_node.deploy.form.aliyun_fc_domain.placeholder": "请输入阿里云 FC 自定义域名(支持泛域名)",
"workflow_node.deploy.form.aliyun_fc_domain.placeholder": "请输入阿里云 FC 自定义域名",
"workflow_node.deploy.form.aliyun_ga_resource_type.label": "证书部署方式",
"workflow_node.deploy.form.aliyun_ga_resource_type.placeholder": "请选择证书部署方式",
"workflow_node.deploy.form.aliyun_ga_resource_type.option.accelerator.label": "替换指定全球加速器下的全部 HTTPS 监听的证书",
@@ -326,7 +326,7 @@
"workflow_node.deploy.form.aliyun_live_region.placeholder": "请输入阿里云视频直播服务地域(例如:cn-hangzhou)",
"workflow_node.deploy.form.aliyun_live_region.tooltip": "这是什么?请参阅 <a href=\"https://help.aliyun.com/zh/live/product-overview/supported-regions\" target=\"_blank\">https://help.aliyun.com/zh/live/product-overview/supported-regions</a>",
"workflow_node.deploy.form.aliyun_live_domain.label": "阿里云视频直播流域名",
"workflow_node.deploy.form.aliyun_live_domain.placeholder": "请输入阿里云视频直播流域名(支持泛域名)",
"workflow_node.deploy.form.aliyun_live_domain.placeholder": "请输入阿里云视频直播流域名",
"workflow_node.deploy.form.aliyun_nlb_region.label": "阿里云 NLB 服务地域",
"workflow_node.deploy.form.aliyun_nlb_region.placeholder": "请输入阿里云 NLB 服务地域(例如:cn-hangzhou)",
"workflow_node.deploy.form.aliyun_nlb_region.tooltip": "这是什么?请参阅 <a href=\"https://help.aliyun.com/zh/slb/network-load-balancer/product-overview/regions-that-support-nlb\" target=\"_blank\">https://help.aliyun.com/zh/slb/network-load-balancer/product-overview/regions-that-support-nlb</a>",
@@ -361,7 +361,7 @@
"workflow_node.deploy.form.aliyun_waf_instance_id.placeholder": "请输入阿里云 WAF 实例 ID",
"workflow_node.deploy.form.aliyun_waf_instance_id.tooltip": "这是什么?请参阅 <a href=\"https://waf.console.aliyun.com\" target=\"_blank\">https://waf.console.aliyun.com</a><br>仅支持 CNAME 接入。",
"workflow_node.deploy.form.aliyun_waf_domain.label": "阿里云 WAF 接入域名(可选)",
"workflow_node.deploy.form.aliyun_waf_domain.placeholder": "请输入阿里云 WAF 接入域名(支持泛域名)",
"workflow_node.deploy.form.aliyun_waf_domain.placeholder": "请输入阿里云 WAF 接入域名",
"workflow_node.deploy.form.aliyun_waf_domain.help": "提示:不填写时,将替换实例的默认证书;否则,将替换扩展域名证书。",
"workflow_node.deploy.form.apisix_resource_type.label": "证书部署方式",
"workflow_node.deploy.form.apisix_resource_type.placeholder": "请选择证书部署方式",
@@ -411,7 +411,7 @@
"workflow_node.deploy.form.baiducloud_appblb_listener_port.placeholder": "请输入百度智能云 BLB 监听端口",
"workflow_node.deploy.form.baiducloud_appblb_listener_port.tooltip": "这是什么?请参阅 <a href=\"https://console.bce.baidu.com/blb/#/appblb/list\" target=\"_blank\">https://console.bce.baidu.com/blb/#/appblb/list</a>",
"workflow_node.deploy.form.baiducloud_appblb_snidomain.label": "百度智能云 BLB 扩展域名(可选)",
"workflow_node.deploy.form.baiducloud_appblb_snidomain.placeholder": "请输入百度智能云 BLB 扩展域名(支持泛域名)",
"workflow_node.deploy.form.baiducloud_appblb_snidomain.placeholder": "请输入百度智能云 BLB 扩展域名",
"workflow_node.deploy.form.baiducloud_appblb_snidomain.help": "提示:不填写时,将替换监听器的默认证书;否则,将替换扩展域名证书。",
"workflow_node.deploy.form.baiducloud_blb_region.label": "百度智能云 BLB 服务地域",
"workflow_node.deploy.form.baiducloud_blb_region.placeholder": "请输入百度智能云 BLB 服务地域(例如:bj)",
@@ -427,12 +427,12 @@
"workflow_node.deploy.form.baiducloud_blb_listener_port.placeholder": "请输入百度智能云 BLB 监听端口",
"workflow_node.deploy.form.baiducloud_blb_listener_port.tooltip": "这是什么?请参阅 <a href=\"https://console.bce.baidu.com/blb/#/blb/list\" target=\"_blank\">https://console.bce.baidu.com/blb/#/blb/list</a>",
"workflow_node.deploy.form.baiducloud_blb_snidomain.label": "百度智能云 BLB 扩展域名(可选)",
"workflow_node.deploy.form.baiducloud_blb_snidomain.placeholder": "请输入百度智能云 BLB 扩展域名(支持泛域名)",
"workflow_node.deploy.form.baiducloud_blb_snidomain.placeholder": "请输入百度智能云 BLB 扩展域名",
"workflow_node.deploy.form.baiducloud_blb_snidomain.help": "提示:不填写时,将替换监听器的默认证书;否则,将替换扩展域名证书。",
"workflow_node.deploy.form.baiducloud_cdn_domain.label": "百度智能云 CDN 加速域名",
"workflow_node.deploy.form.baiducloud_cdn_domain.placeholder": "请输入百度智能云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.baiducloud_cdn_domain.placeholder": "请输入百度智能云 CDN 加速域名",
"workflow_node.deploy.form.baishan_cdn_domain.label": "白山云 CDN 加速域名",
"workflow_node.deploy.form.baishan_cdn_domain.placeholder": "请输入白山云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.baishan_cdn_domain.placeholder": "请输入白山云 CDN 加速域名",
"workflow_node.deploy.form.baishan_cdn_certificate_id.label": "白山云 CDN 原证书 ID(可选)",
"workflow_node.deploy.form.baishan_cdn_certificate_id.placeholder": "请输入白山云 CDN 原证书 ID",
"workflow_node.deploy.form.baishan_cdn_certificate_id.help": "提示:不填写时,将上传为新证书;否则,将替换原证书。",
@@ -469,7 +469,7 @@
"workflow_node.deploy.form.bunny_cdn_hostname.placeholder": "请输入 Bunny CDN 主机名",
"workflow_node.deploy.form.bunny_cdn_hostname.tooltip": "这是什么?请参阅 <a href=\"https://dash.bunny.net/cdn\" target=\"_blank\">https://dash.bunny.net/cdn</a>",
"workflow_node.deploy.form.byteplus_cdn_domain.label": "BytePlus CDN 域名",
"workflow_node.deploy.form.byteplus_cdn_domain.placeholder": "请输入 BytePlus CDN 域名(支持泛域名)",
"workflow_node.deploy.form.byteplus_cdn_domain.placeholder": "请输入 BytePlus CDN 域名",
"workflow_node.deploy.form.cdnfly_resource_type.label": "证书部署方式",
"workflow_node.deploy.form.cdnfly_resource_type.placeholder": "请选择证书部署方式",
"workflow_node.deploy.form.cdnfly_resource_type.option.site.label": "替换指定网站的证书",
@@ -481,9 +481,9 @@
"workflow_node.deploy.form.cdnfly_certificate_id.placeholder": "请输入 Cdnfly 证书 ID",
"workflow_node.deploy.form.cdnfly_certificate_id.tooltip": "请登录 Cdnfly 控制台查看",
"workflow_node.deploy.form.ctcccloud_ao_domain.label": "天翼云 AccessOne 加速域名",
"workflow_node.deploy.form.ctcccloud_ao_domain.placeholder": "请输入天翼云 AccessOne 加速域名(支持泛域名)",
"workflow_node.deploy.form.ctcccloud_ao_domain.placeholder": "请输入天翼云 AccessOne 加速域名",
"workflow_node.deploy.form.ctcccloud_cdn_domain.label": "天翼云 CDN 加速域名",
"workflow_node.deploy.form.ctcccloud_cdn_domain.placeholder": "请输入天翼云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.ctcccloud_cdn_domain.placeholder": "请输入天翼云 CDN 加速域名",
"workflow_node.deploy.form.ctcccloud_elb_region_id.label": "天翼云 ELB 资源池 ID",
"workflow_node.deploy.form.ctcccloud_elb_region_id.placeholder": "请输入天翼云 ELB 资源池 ID",
"workflow_node.deploy.form.ctcccloud_elb_region_id.tooltip": "这是什么?请参阅 <a href=\"https://www.ctyun.cn/document/10026755/10196575\" target=\"_blank\">https://www.ctyun.cn/document/10026755/10196575</a>",
@@ -498,7 +498,7 @@
"workflow_node.deploy.form.ctcccloud_elb_listener_id.placeholder": "请输入天翼云 ELB 监听器 ID",
"workflow_node.deploy.form.ctcccloud_elb_listener_id.tooltip": "这是什么?请参阅 <a href=\"https://console.ctyun.cn/network/index/#/elb/elbList\" target=\"_blank\">https://console.ctyun.cn/network/index/#/elb/elbList</a>",
"workflow_node.deploy.form.ctcccloud_icdn_domain.label": "天翼云 ICDN 加速域名",
"workflow_node.deploy.form.ctcccloud_icdn_domain.placeholder": "请输入天翼云 ICDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.ctcccloud_icdn_domain.placeholder": "请输入天翼云 ICDN 加速域名",
"workflow_node.deploy.form.ctcccloud_lvdn_domain.label": "天翼云 LVDN 加速域名",
"workflow_node.deploy.form.ctcccloud_lvdn_domain.placeholder": "请输入天翼云 LVDN 加速域名",
"workflow_node.deploy.form.dogecloud_cdn_domain.label": "多吉云 CDN 加速域名",
@@ -526,7 +526,7 @@
"workflow_node.deploy.form.huaweicloud_cdn_region.placeholder": "请输入华为云 CDN 服务区域(例如:cn-north-1)",
"workflow_node.deploy.form.huaweicloud_cdn_region.tooltip": "这是什么?请参阅 <a href=\"https://console.huaweicloud.com/apiexplorer/#/endpoint\" target=\"_blank\">https://console.huaweicloud.com/apiexplorer/#/endpoint</a>",
"workflow_node.deploy.form.huaweicloud_cdn_domain.label": "华为云 CDN 加速域名",
"workflow_node.deploy.form.huaweicloud_cdn_domain.placeholder": "请输入华为云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.huaweicloud_cdn_domain.placeholder": "请输入华为云 CDN 加速域名",
"workflow_node.deploy.form.huaweicloud_obs_region.label": "华为云 OBS 服务区域",
"workflow_node.deploy.form.huaweicloud_obs_region.placeholder": "请输入华为云 OBS 服务区域(例如:cn-north-1)",
"workflow_node.deploy.form.huaweicloud_obs_region.tooltip": "这是什么?请参阅 <a href=\"https://console.huaweicloud.com/apiexplorer/#/endpoint\" target=\"_blank\">https://console.huaweicloud.com/apiexplorer/#/endpoint</a>",
@@ -563,7 +563,7 @@
"workflow_node.deploy.form.huaweicloud_waf_certificate_id.placeholder": "请输入华为云 WAF 证书 ID",
"workflow_node.deploy.form.huaweicloud_waf_certificate_id.tooltip": "这是什么?请参阅 <a href=\"https://console.huaweicloud.com/console/#/waf/certificateManagement\" target=\"_blank\">https://console.huaweicloud.com/console/#/waf/certificateManagement</a>",
"workflow_node.deploy.form.huaweicloud_waf_domain.label": "华为云 WAF 防护域名",
"workflow_node.deploy.form.huaweicloud_waf_domain.placeholder": "请输入华为云 WAF 防护域名(支持泛域名)",
"workflow_node.deploy.form.huaweicloud_waf_domain.placeholder": "请输入华为云 WAF 防护域名",
"workflow_node.deploy.form.jdcloud_alb_region_id.label": "京东云 ALB 服务地域 ID",
"workflow_node.deploy.form.jdcloud_alb_region_id.placeholder": "请输入京东云 ALB 服务地域 ID(例如:cn-north-1",
"workflow_node.deploy.form.jdcloud_alb_region_id.tooltip": "这是什么?请参阅 <a href=\"https://docs.jdcloud.com/cn/common-declaration/api/introduction\" target=\"_blank\">https://docs.jdcloud.com/cn/common-declaration/api/introduction</a>",
@@ -578,10 +578,10 @@
"workflow_node.deploy.form.jdcloud_alb_listener_id.placeholder": "请输入京东云 ALB 监听器 ID",
"workflow_node.deploy.form.jdcloud_alb_listener_id.tooltip": "这是什么?请参阅 <a href=\"https://cns-console.jdcloud.com/host/loadBalance/list\" target=\"_blank\">https://cns-console.jdcloud.com/host/loadBalance/list</a>",
"workflow_node.deploy.form.jdcloud_alb_snidomain.label": "京东云 ALB 扩展域名(可选)",
"workflow_node.deploy.form.jdcloud_alb_snidomain.placeholder": "请输入京东云 ALB 扩展域名(支持泛域名)",
"workflow_node.deploy.form.jdcloud_alb_snidomain.placeholder": "请输入京东云 ALB 扩展域名",
"workflow_node.deploy.form.jdcloud_alb_snidomain.help": "提示:不填写时,将替换监听器的默认证书;否则,将替换扩展域名证书。",
"workflow_node.deploy.form.jdcloud_cdn_domain.label": "京东云 CDN 加速域名",
"workflow_node.deploy.form.jdcloud_cdn_domain.placeholder": "请输入京东云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.jdcloud_cdn_domain.placeholder": "请输入京东云 CDN 加速域名",
"workflow_node.deploy.form.jdcloud_live_domain.label": "京东云视频直播播放域名",
"workflow_node.deploy.form.jdcloud_live_domain.placeholder": "请输入京东云视频直播播放域名",
"workflow_node.deploy.form.jdcloud_vod_domain.label": "京东云视频点播加速域名",
@@ -621,7 +621,7 @@
"workflow_node.deploy.form.kong_certificate_id.placeholder": "请输入 Kong 证书 ID",
"workflow_node.deploy.form.kong_certificate_id.tooltip": "请登录 Kong 控制台查看",
"workflow_node.deploy.form.ksyun_cdn_domain.label": "金山云 CDN 加速域名",
"workflow_node.deploy.form.ksyun_cdn_domain.placeholder": "请输入金山云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.ksyun_cdn_domain.placeholder": "请输入金山云 CDN 加速域名",
"workflow_node.deploy.form.ksyun_cdn_certificate_id.label": "金山云 CDN 原证书 ID(可选)",
"workflow_node.deploy.form.ksyun_cdn_certificate_id.placeholder": "请输入金山云 CDN 原证书 ID",
"workflow_node.deploy.form.ksyun_cdn_certificate_id.help": "提示:不填写时,将上传新证书;否则,将替换原证书。",
@@ -690,7 +690,7 @@
"workflow_node.deploy.form.proxmoxve_node_name.placeholder": "请输入 Proxmox VE 集群节点名称",
"workflow_node.deploy.form.proxmoxve_auto_restart.label": "部署后自动重启 Proxmox VE 服务",
"workflow_node.deploy.form.qiniu_cdn_domain.label": "七牛云 CDN 加速域名",
"workflow_node.deploy.form.qiniu_cdn_domain.placeholder": "请输入七牛云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.qiniu_cdn_domain.placeholder": "请输入七牛云 CDN 加速域名",
"workflow_node.deploy.form.qiniu_kodo_domain.label": "七牛云对象存储自定义域名",
"workflow_node.deploy.form.qiniu_kodo_domain.placeholder": "请输入七牛云对象存储自定义域名",
"workflow_node.deploy.form.qiniu_pili_hub.label": "七牛云视频直播空间名",
@@ -702,7 +702,7 @@
"workflow_node.deploy.form.rainyun_rcdn_instance_id.placeholder": "请输入雨云 RCDN 实例 ID",
"workflow_node.deploy.form.rainyun_rcdn_instance_id.tooltip": "这是什么?请参阅 <a href=\"https://app.rainyun.com/apps/rcdn/list\" target=\"_blank\">https://app.rainyun.com/apps/rcdn/list</a>",
"workflow_node.deploy.form.rainyun_rcdn_domain.label": "雨云 RCDN 加速域名",
"workflow_node.deploy.form.rainyun_rcdn_domain.placeholder": "请输入雨云 RCDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.rainyun_rcdn_domain.placeholder": "请输入雨云 RCDN 加速域名",
"workflow_node.deploy.form.ratpanel_site_name.label": "耗子面板网站名称",
"workflow_node.deploy.form.ratpanel_site_name.placeholder": "请输入耗子面板网站名称",
"workflow_node.deploy.form.ratpanel_site_name.tooltip": "请登录耗子面板查看",
@@ -763,7 +763,7 @@
"workflow_node.deploy.form.tencentcloud_cdn_endpoint.placeholder": "请输入腾讯云 CDN 接口端点(例如:cdn.tencentcloudapi.com)",
"workflow_node.deploy.form.tencentcloud_cdn_endpoint.tooltip": "这是什么?请参阅 <a href=\"https://cloud.tencent.com/document/product/228/30976\" target=\"_blank\">https://cloud.tencent.com/document/product/228/30976</a><br>国际站用户请填写 <em>cdn.intl.tencentcloudapi.com</em>。",
"workflow_node.deploy.form.tencentcloud_cdn_domain.label": "腾讯云 CDN 加速域名",
"workflow_node.deploy.form.tencentcloud_cdn_domain.placeholder": "请输入腾讯云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.tencentcloud_cdn_domain.placeholder": "请输入腾讯云 CDN 加速域名",
"workflow_node.deploy.form.tencentcloud_clb_endpoint.label": "腾讯云 CLB 接口端点(可选)",
"workflow_node.deploy.form.tencentcloud_clb_endpoint.placeholder": "请输入腾讯云 CLB 接口端点(例如:clb.tencentcloudapi.com)",
"workflow_node.deploy.form.tencentcloud_clb_endpoint.tooltip": "这是什么?请参阅 <a href=\"https://cloud.tencent.com/document/product/214/30669\" target=\"_blank\">https://cloud.tencent.com/document/product/214/30669</a><br>国际站用户请填写 <em>clb.intl.tencentcloudapi.com</em>。",
@@ -799,7 +799,7 @@
"workflow_node.deploy.form.tencentcloud_ecdn_endpoint.placeholder": "请输入腾讯云 ECDN 接口端点(例如:cdn.tencentcloudapi.com)",
"workflow_node.deploy.form.tencentcloud_ecdn_endpoint.tooltip": "这是什么?请参阅 <a href=\"https://cloud.tencent.com/document/product/214/30669\" target=\"_blank\">https://cloud.tencent.com/document/product/214/30669</a><br>国际站用户请填写 <em>cdn.intl.tencentcloudapi.com</em>。",
"workflow_node.deploy.form.tencentcloud_ecdn_domain.label": "腾讯云 ECDN 加速域名",
"workflow_node.deploy.form.tencentcloud_ecdn_domain.placeholder": "请输入腾讯云 ECDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.tencentcloud_ecdn_domain.placeholder": "请输入腾讯云 ECDN 加速域名",
"workflow_node.deploy.form.tencentcloud_eo_endpoint.label": "腾讯云 EdgeOne 接口端点(可选)",
"workflow_node.deploy.form.tencentcloud_eo_endpoint.placeholder": "请输入腾讯云 EdgeOne 接口端点(例如:teo.tencentcloudapi.com)",
"workflow_node.deploy.form.tencentcloud_eo_endpoint.tooltip": "这是什么?请参阅 <a href=\"https://cloud.tencent.com/document/product/1552/80723\" target=\"_blank\">https://cloud.tencent.com/document/product/1552/80723</a><br>国际站用户请填写 <em>teo.intl.tencentcloudapi.com</em>。",
@@ -810,7 +810,7 @@
"workflow_node.deploy.form.tencentcloud_eo_domains.placeholder": "请输入腾讯云 EdgeOne 加速域名(支持泛域名;多个值请用半角分号隔开)",
"workflow_node.deploy.form.tencentcloud_eo_domains.help": "提示:多个域名请用半角分号隔开。",
"workflow_node.deploy.form.tencentcloud_eo_domains.multiple_input_modal.title": "修改腾讯云 EdgeOne 加速域名",
"workflow_node.deploy.form.tencentcloud_eo_domains.multiple_input_modal.placeholder": "请输入腾讯云 EdgeOne 加速域名(支持泛域名)",
"workflow_node.deploy.form.tencentcloud_eo_domains.multiple_input_modal.placeholder": "请输入腾讯云 EdgeOne 加速域名",
"workflow_node.deploy.form.tencentcloud_gaap_endpoint.label": "腾讯云 GAAP 接口端点(可选)",
"workflow_node.deploy.form.tencentcloud_gaap_endpoint.placeholder": "请输入腾讯云 GAAP 接口端点(例如:gaap.tencentcloudapi.com)",
"workflow_node.deploy.form.tencentcloud_gaap_endpoint.tooltip": "这是什么?请参阅 <a href=\"https://cloud.tencent.com/document/product/608/36934\" target=\"_blank\">https://cloud.tencent.com/document/product/608/36934</a><br>国际站用户请填写 <em>gaap.intl.tencentcloudapi.com</em>。",
@@ -916,7 +916,7 @@
"workflow_node.deploy.form.unicloud_webhost_domain.placeholder": "请输入 uniCloud 前端网页托管网站域名",
"workflow_node.deploy.form.upyun_cdn.guide": "由于又拍云未公开相关 API,这里将使用网页模拟登录方式部署,但无法保证稳定性。如遇又拍云接口变更,请到 GitHub 发起 Issue 告知。",
"workflow_node.deploy.form.upyun_cdn_domain.label": "又拍云 CDN 加速域名",
"workflow_node.deploy.form.upyun_cdn_domain.placeholder": "请输入又拍云 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.upyun_cdn_domain.placeholder": "请输入又拍云 CDN 加速域名",
"workflow_node.deploy.form.upyun_file.guide": "由于又拍云未公开相关 API,这里将使用网页模拟登录方式部署,但无法保证稳定性。如遇又拍云接口变更,请到 GitHub 发起 Issue 告知。",
"workflow_node.deploy.form.upyun_file_domain.label": "又拍云云存储自定义域名",
"workflow_node.deploy.form.upyun_file_domain.placeholder": "请输入又拍云云存储自定义域名",
@@ -934,10 +934,10 @@
"workflow_node.deploy.form.volcengine_alb_listener_id.placeholder": "请输入火山引擎 ALB 监听器 ID",
"workflow_node.deploy.form.volcengine_alb_listener_id.tooltip": "这是什么?请参阅 <a href=\"https://console.volcengine.com/alb\" target=\"_blank\">https://console.volcengine.com/alb</a>",
"workflow_node.deploy.form.volcengine_alb_snidomain.label": "火山引擎 ALB 扩展域名(可选)",
"workflow_node.deploy.form.volcengine_alb_snidomain.placeholder": "请输入火山引擎 ALB 扩展域名(支持泛域名)",
"workflow_node.deploy.form.volcengine_alb_snidomain.placeholder": "请输入火山引擎 ALB 扩展域名",
"workflow_node.deploy.form.volcengine_alb_snidomain.help": "提示:不填写时,将替换监听器的默认证书;否则,将替换扩展域名证书。",
"workflow_node.deploy.form.volcengine_cdn_domain.label": "火山引擎 CDN 加速域名",
"workflow_node.deploy.form.volcengine_cdn_domain.placeholder": "请输入火山引擎 CDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.volcengine_cdn_domain.placeholder": "请输入火山引擎 CDN 加速域名",
"workflow_node.deploy.form.volcengine_certcenter_region.label": "火山引擎证书中心服务地域",
"workflow_node.deploy.form.volcengine_certcenter_region.placeholder": "请输入火山引擎证书中心服务地域(例如:cn-beijing)",
"workflow_node.deploy.form.volcengine_clb_resource_type.label": "证书部署方式",
@@ -954,7 +954,7 @@
"workflow_node.deploy.form.volcengine_clb_listener_id.placeholder": "请输入火山引擎 CLB 监听器 ID",
"workflow_node.deploy.form.volcengine_clb_listener_id.tooltip": "这是什么?请参阅 <a href=\"https://console.volcengine.com/clb/LoadBalancer\" target=\"_blank\">https://console.volcengine.com/clb/LoadBalancer</a>",
"workflow_node.deploy.form.volcengine_dcdn_domain.label": "火山引擎 DCDN 加速域名",
"workflow_node.deploy.form.volcengine_dcdn_domain.placeholder": "请输入火山引擎 DCDN 加速域名(支持泛域名)",
"workflow_node.deploy.form.volcengine_dcdn_domain.placeholder": "请输入火山引擎 DCDN 加速域名",
"workflow_node.deploy.form.volcengine_imagex_region.label": "火山引擎 ImageX 服务地域",
"workflow_node.deploy.form.volcengine_imagex_region.placeholder": "请输入火山引擎 ImageX 服务地域(例如:cn-north-1)",
"workflow_node.deploy.form.volcengine_imagex_region.tooltip": "这是什么?请参阅 <a href=\"https://www.volcengine.com/docs/508/23757\" target=\"_blank\">https://www.volcengine.com/docs/508/23757</a>",
@@ -964,7 +964,7 @@
"workflow_node.deploy.form.volcengine_imagex_domain.label": "火山引擎 ImageX 绑定域名",
"workflow_node.deploy.form.volcengine_imagex_domain.placeholder": "请输入火山引擎 ImageX 绑定域名",
"workflow_node.deploy.form.volcengine_live_domain.label": "火山引擎视频直播流域名",
"workflow_node.deploy.form.volcengine_live_domain.placeholder": "请输入火山引擎视频直播流域名(支持泛域名)",
"workflow_node.deploy.form.volcengine_live_domain.placeholder": "请输入火山引擎视频直播流域名",
"workflow_node.deploy.form.volcengine_tos_region.label": "火山引擎 TOS 服务地域",
"workflow_node.deploy.form.volcengine_tos_region.placeholder": "请输入火山引擎 TOS 服务地域(例如:cn-beijing)",
"workflow_node.deploy.form.volcengine_tos_region.tooltip": "这是什么?请参阅 <a href=\"https://www.volcengine.com/docs/6349/107356\" target=\"_blank\">https://www.volcengine.com/docs/6349/107356</a>",
@@ -982,7 +982,7 @@
"workflow_node.deploy.form.wangsu_cdnpro_environment.option.production.label": "生产环境",
"workflow_node.deploy.form.wangsu_cdnpro_environment.option.staging.label": "演练环境",
"workflow_node.deploy.form.wangsu_cdnpro_domain.label": "网宿云 CDN Pro 加速域名",
"workflow_node.deploy.form.wangsu_cdnpro_domain.placeholder": "请输入网宿云 CDN Pro 加速域名(支持泛域名)",
"workflow_node.deploy.form.wangsu_cdnpro_domain.placeholder": "请输入网宿云 CDN Pro 加速域名",
"workflow_node.deploy.form.wangsu_cdnpro_certificate_id.label": "网宿云 CDN Pro 原证书 ID(可选)",
"workflow_node.deploy.form.wangsu_cdnpro_certificate_id.placeholder": "请输入网宿云 CDN Pro 原证书 ID",
"workflow_node.deploy.form.wangsu_cdnpro_certificate_id.help": "提示:不填写时,将上传新证书;否则,将替换原证书。",