Merge pull request #782 from fudiwei/bugfix

bugfix
This commit is contained in:
RHQYZ 2025-06-14 21:47:26 +08:00 committed by GitHub
commit ce67cc5a39
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 27 additions and 14 deletions

View File

@ -202,6 +202,7 @@ func (d *DeployerProvider) updateListenerCertificate(ctx context.Context, cloudA
listListenerCertificatesReq := &aliga.ListListenerCertificatesRequest{
RegionId: tea.String("cn-hangzhou"),
AcceleratorId: tea.String(d.config.AcceleratorId),
ListenerId: tea.String(d.config.ListenerId),
NextToken: listListenerCertificatesNextToken,
MaxResults: tea.Int32(20),
}

View File

@ -23,7 +23,7 @@ type DeployerConfig struct {
SecretKey string `json:"secretKey"`
// 站点 ID。
ZoneId string `json:"zoneId"`
// 加速域名(支持泛域名)。
// 加速域名(支持泛域名)。
Domain string `json:"domain"`
}

View File

@ -38,7 +38,7 @@ const DeployNodeConfigFormTencentCloudEOConfig = ({
.trim(),
domain: z
.string({ message: t("workflow_node.deploy.form.tencentcloud_eo_domain.placeholder") })
.refine((v) => validDomainName(v), t("common.errmsg.domain_invalid")),
.refine((v) => validDomainName(v, { allowWildcard: true }), t("common.errmsg.domain_invalid")),
});
const formRule = createSchemaFieldRule(formSchema);

View File

@ -47,7 +47,7 @@ const DeployNodeConfigFormTencentCloudSSLDeployConfig = ({
if (!v) return false;
return String(v)
.split(MULTIPLE_INPUT_SEPARATOR)
.every((e) => /^[A-Za-z0-9*._-|]+$/.test(e));
.every((e) => /^[A-Za-z0-9*._\-|]+$/.test(e));
}, t("workflow_node.deploy.form.tencentcloud_ssl_deploy_resource_ids.errmsg.invalid")),
});
const formRule = createSchemaFieldRule(formSchema);

View File

@ -667,7 +667,7 @@
"workflow_node.deploy.form.tencentcloud_eo_zone_id.placeholder": "请输入腾讯云 EdgeOne 站点 ID",
"workflow_node.deploy.form.tencentcloud_eo_zone_id.tooltip": "这是什么?请参阅 <a href=\"https://console.cloud.tencent.com/edgeone\" target=\"_blank\">https://console.cloud.tencent.com/edgeone</a>",
"workflow_node.deploy.form.tencentcloud_eo_domain.label": "腾讯云 EdgeOne 加速域名",
"workflow_node.deploy.form.tencentcloud_eo_domain.placeholder": "请输入腾讯云 EdgeOne 加速域名",
"workflow_node.deploy.form.tencentcloud_eo_domain.placeholder": "请输入腾讯云 EdgeOne 加速域名(支持泛域名)",
"workflow_node.deploy.form.tencentcloud_eo_domain.tooltip": "这是什么?请参阅 <a href=\"https://console.cloud.tencent.com/edgeone\" target=\"_blank\">https://console.cloud.tencent.com/edgeone</a>",
"workflow_node.deploy.form.tencentcloud_scf_region.label": "腾讯云 SCF 产品地域",
"workflow_node.deploy.form.tencentcloud_scf_region.placeholder": "输入腾讯云 SCF 产品地域例如ap-guangzhou",

View File

@ -1,4 +1,6 @@
import { validCronExpression as _validCronExpression } from "./cron";
import { z } from "zod";
import { validCronExpression as _validCronExpression } from "./cron";
export const validCronExpression = (value: string) => {
return _validCronExpression(value);
@ -10,20 +12,30 @@ export const validDomainName = (value: string, { allowWildcard = false }: { allo
};
export const validEmailAddress = (value: string) => {
const re = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
return re.test(value);
try {
z.string().email().parse(value);
return true;
} catch (_) {
return false;
}
};
export const validIPv4Address = (value: string) => {
const re =
/^(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$/;
return re.test(value);
try {
z.string().ip({ version: "v4" }).parse(value);
return true;
} catch (_) {
return false;
}
};
export const validIPv6Address = (value: string) => {
const re =
/^([\da-fA-F]{1,4}:){6}((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)|::([\dafAF]1,4:)0,4((25[05]|2[04]\d|[01]?\d\d?)\.)3(25[05]|2[04]\d|[01]?\d\d?)|::([\dafAF]1,4:)0,4((25[05]|2[04]\d|[01]?\d\d?)\.)3(25[05]|2[04]\d|[01]?\d\d?)|^([\da-fA-F]{1,4}:):([\da-fA-F]{1,4}:){0,3}((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)|([\dafAF]1,4:)2:([\dafAF]1,4:)0,2((25[05]|2[04]\d|[01]?\d\d?)\.)3(25[05]|2[04]\d|[01]?\d\d?)|([\dafAF]1,4:)2:([\dafAF]1,4:)0,2((25[05]|2[04]\d|[01]?\d\d?)\.)3(25[05]|2[04]\d|[01]?\d\d?)|^([\da-fA-F]{1,4}:){3}:([\da-fA-F]{1,4}:){0,1}((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)|([\dafAF]1,4:)4:((25[05]|2[04]\d|[01]?\d\d?)\.)3(25[05]|2[04]\d|[01]?\d\d?)|([\dafAF]1,4:)4:((25[05]|2[04]\d|[01]?\d\d?)\.)3(25[05]|2[04]\d|[01]?\d\d?)|^([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}|:((:[\dafAF]1,4)1,6|:)|:((:[\dafAF]1,4)1,6|:)|^[\da-fA-F]{1,4}:((:[\da-fA-F]{1,4}){1,5}|:)|([\dafAF]1,4:)2((:[\dafAF]1,4)1,4|:)|([\dafAF]1,4:)2((:[\dafAF]1,4)1,4|:)|^([\da-fA-F]{1,4}:){3}((:[\da-fA-F]{1,4}){1,3}|:)|([\dafAF]1,4:)4((:[\dafAF]1,4)1,2|:)|([\dafAF]1,4:)4((:[\dafAF]1,4)1,2|:)|^([\da-fA-F]{1,4}:){5}:([\da-fA-F]{1,4})?|([\dafAF]1,4:)6:|([\dafAF]1,4:)6:/;
return re.test(value);
try {
z.string().ip({ version: "v6" }).parse(value);
return true;
} catch (_) {
return false;
}
};
export const validHttpOrHttpsUrl = (value: string) => {
@ -36,5 +48,5 @@ export const validHttpOrHttpsUrl = (value: string) => {
};
export const validPortNumber = (value: string | number) => {
return parseInt(value + "") === +value && +value >= 1 && +value <= 65535;
return parseInt(value + "") === +value && String(+value) === String(value) && +value >= 1 && +value <= 65535;
};