{t("workflow_node.deploy.form.skip_on_last_succeeded.prefix")}
{t("workflow_node.deploy.form.skip_on_last_succeeded.suffix")}
diff --git a/ui/src/components/workflow/node/DeployNodeConfigForm1PanelConsoleConfig.tsx b/ui/src/components/workflow/node/DeployNodeConfigForm1PanelConsoleConfig.tsx
new file mode 100644
index 00000000..349b516e
--- /dev/null
+++ b/ui/src/components/workflow/node/DeployNodeConfigForm1PanelConsoleConfig.tsx
@@ -0,0 +1,56 @@
+import { useTranslation } from "react-i18next";
+import { Form, type FormInstance, Switch } from "antd";
+import { createSchemaFieldRule } from "antd-zod";
+import { z } from "zod";
+
+type DeployNodeConfigForm1PanelConsoleConfigFieldValues = Nullish<{
+ autoRestart?: boolean;
+}>;
+
+export type DeployNodeConfigForm1PanelConsoleConfigProps = {
+ form: FormInstance;
+ formName: string;
+ disabled?: boolean;
+ initialValues?: DeployNodeConfigForm1PanelConsoleConfigFieldValues;
+ onValuesChange?: (values: DeployNodeConfigForm1PanelConsoleConfigFieldValues) => void;
+};
+
+const initFormModel = (): DeployNodeConfigForm1PanelConsoleConfigFieldValues => {
+ return {};
+};
+
+const DeployNodeConfigForm1PanelConsoleConfig = ({
+ form: formInst,
+ formName,
+ disabled,
+ initialValues,
+ onValuesChange,
+}: DeployNodeConfigForm1PanelConsoleConfigProps) => {
+ const { t } = useTranslation();
+
+ const formSchema = z.object({
+ autoRestart: z.boolean().nullish(),
+ });
+ const formRule = createSchemaFieldRule(formSchema);
+
+ const handleFormChange = (_: unknown, values: z.infer) => {
+ onValuesChange?.(values);
+ };
+
+ return (
+
+
+
+
+ );
+};
+
+export default DeployNodeConfigForm1PanelConsoleConfig;
diff --git a/ui/src/components/workflow/node/DeployNodeConfigForm1PanelSiteConfig.tsx b/ui/src/components/workflow/node/DeployNodeConfigForm1PanelSiteConfig.tsx
new file mode 100644
index 00000000..f5a26450
--- /dev/null
+++ b/ui/src/components/workflow/node/DeployNodeConfigForm1PanelSiteConfig.tsx
@@ -0,0 +1,63 @@
+import { useTranslation } from "react-i18next";
+import { Form, type FormInstance, Input } from "antd";
+import { createSchemaFieldRule } from "antd-zod";
+import { z } from "zod";
+
+type DeployNodeConfigForm1PanelSiteConfigFieldValues = Nullish<{
+ websiteId: string | number;
+}>;
+
+export type DeployNodeConfigForm1PanelSiteConfigProps = {
+ form: FormInstance;
+ formName: string;
+ disabled?: boolean;
+ initialValues?: DeployNodeConfigForm1PanelSiteConfigFieldValues;
+ onValuesChange?: (values: DeployNodeConfigForm1PanelSiteConfigFieldValues) => void;
+};
+
+const initFormModel = (): DeployNodeConfigForm1PanelSiteConfigFieldValues => {
+ return {};
+};
+
+const DeployNodeConfigForm1PanelSiteConfig = ({
+ form: formInst,
+ formName,
+ disabled,
+ initialValues,
+ onValuesChange,
+}: DeployNodeConfigForm1PanelSiteConfigProps) => {
+ const { t } = useTranslation();
+
+ const formSchema = z.object({
+ websiteId: z.union([z.string(), z.number()]).refine((v) => {
+ return /^\d+$/.test(v + "") && +v > 0;
+ }, t("workflow_node.deploy.form.1panel_site_website_id.placeholder")),
+ });
+ const formRule = createSchemaFieldRule(formSchema);
+
+ const handleFormChange = (_: unknown, values: z.infer) => {
+ onValuesChange?.(values);
+ };
+
+ return (
+ }
+ >
+
+
+
+ );
+};
+
+export default DeployNodeConfigForm1PanelSiteConfig;
diff --git a/ui/src/components/workflow/node/DeployNodeConfigFormAliyunFCConfig.tsx b/ui/src/components/workflow/node/DeployNodeConfigFormAliyunFCConfig.tsx
new file mode 100644
index 00000000..87212953
--- /dev/null
+++ b/ui/src/components/workflow/node/DeployNodeConfigFormAliyunFCConfig.tsx
@@ -0,0 +1,90 @@
+import { useTranslation } from "react-i18next";
+import { Form, type FormInstance, Input, Select } from "antd";
+import { createSchemaFieldRule } from "antd-zod";
+import { z } from "zod";
+
+import { validDomainName } from "@/utils/validators";
+
+type DeployNodeConfigFormAliyunFCConfigFieldValues = Nullish<{
+ region: string;
+ serviceVersion: string;
+ domain: string;
+}>;
+
+export type DeployNodeConfigFormAliyunFCConfigProps = {
+ form: FormInstance;
+ formName: string;
+ disabled?: boolean;
+ initialValues?: DeployNodeConfigFormAliyunFCConfigFieldValues;
+ onValuesChange?: (values: DeployNodeConfigFormAliyunFCConfigFieldValues) => void;
+};
+
+const initFormModel = (): DeployNodeConfigFormAliyunFCConfigFieldValues => {
+ return {
+ serviceVersion: "3.0",
+ };
+};
+
+const DeployNodeConfigFormAliyunFCConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange }: DeployNodeConfigFormAliyunFCConfigProps) => {
+ const { t } = useTranslation();
+
+ const formSchema = z.object({
+ serviceVersion: z.union([z.literal("2.0"), z.literal("3.0")], {
+ message: t("workflow_node.deploy.form.aliyun_fc_service_version.placeholder"),
+ }),
+ region: z
+ .string({ message: t("workflow_node.deploy.form.aliyun_fc_region.placeholder") })
+ .nonempty(t("workflow_node.deploy.form.aliyun_fc_region.placeholder"))
+ .trim(),
+ domain: z
+ .string({ message: t("workflow_node.deploy.form.aliyun_fc_domain.placeholder") })
+ .refine((v) => validDomainName(v), t("common.errmsg.domain_invalid")),
+ });
+ const formRule = createSchemaFieldRule(formSchema);
+
+ const handleFormChange = (_: unknown, values: z.infer) => {
+ onValuesChange?.(values);
+ };
+
+ return (
+
+
+
+
+ }
+ >
+
+
+
+ }
+ >
+
+
+
+ );
+};
+
+export default DeployNodeConfigFormAliyunFCConfig;
diff --git a/ui/src/components/workflow/node/DeployNodeConfigFormTencentCloudSCFConfig.tsx b/ui/src/components/workflow/node/DeployNodeConfigFormTencentCloudSCFConfig.tsx
new file mode 100644
index 00000000..6758ddbd
--- /dev/null
+++ b/ui/src/components/workflow/node/DeployNodeConfigFormTencentCloudSCFConfig.tsx
@@ -0,0 +1,79 @@
+import { useTranslation } from "react-i18next";
+import { Form, type FormInstance, Input } from "antd";
+import { createSchemaFieldRule } from "antd-zod";
+import { z } from "zod";
+
+import { validDomainName } from "@/utils/validators";
+
+type DeployNodeConfigFormTencentCloudSCFConfigFieldValues = Nullish<{
+ region: string;
+ domain: string;
+}>;
+
+export type DeployNodeConfigFormTencentCloudSCFConfigProps = {
+ form: FormInstance;
+ formName: string;
+ disabled?: boolean;
+ initialValues?: DeployNodeConfigFormTencentCloudSCFConfigFieldValues;
+ onValuesChange?: (values: DeployNodeConfigFormTencentCloudSCFConfigFieldValues) => void;
+};
+
+const initFormModel = (): DeployNodeConfigFormTencentCloudSCFConfigFieldValues => {
+ return {};
+};
+
+const DeployNodeConfigFormTencentCloudSCFConfig = ({
+ form: formInst,
+ formName,
+ disabled,
+ initialValues,
+ onValuesChange,
+}: DeployNodeConfigFormTencentCloudSCFConfigProps) => {
+ const { t } = useTranslation();
+
+ const formSchema = z.object({
+ region: z
+ .string({ message: t("workflow_node.deploy.form.tencentcloud_scf_region.placeholder") })
+ .nonempty(t("workflow_node.deploy.form.tencentcloud_scf_region.placeholder"))
+ .trim(),
+ domain: z
+ .string({ message: t("workflow_node.deploy.form.tencentcloud_scf_domain.placeholder") })
+ .refine((v) => validDomainName(v), t("common.errmsg.domain_invalid")),
+ });
+ const formRule = createSchemaFieldRule(formSchema);
+
+ const handleFormChange = (_: unknown, values: z.infer) => {
+ onValuesChange?.(values);
+ };
+
+ return (
+ }
+ >
+
+
+
+ }
+ >
+
+
+
+ );
+};
+
+export default DeployNodeConfigFormTencentCloudSCFConfig;
diff --git a/ui/src/domain/access.ts b/ui/src/domain/access.ts
index d32960ca..1b5adf45 100644
--- a/ui/src/domain/access.ts
+++ b/ui/src/domain/access.ts
@@ -6,6 +6,7 @@ export interface AccessModel extends BaseModel {
NOTICE: If you add new type, please keep ASCII order.
*/ Record &
(
+ | AccessConfigFor1Panel
| AccessConfigForACMEHttpReq
| AccessConfigForAliyun
| AccessConfigForAWS
@@ -46,6 +47,12 @@ export interface AccessModel extends BaseModel {
}
// #region AccessConfig
+export type AccessConfigFor1Panel = {
+ apiUrl: string;
+ apiKey: string;
+ allowInsecureConnections?: boolean;
+};
+
export type AccessConfigForACMEHttpReq = {
endpoint: string;
mode?: string;
@@ -82,6 +89,7 @@ export type AccessConfigForBaishan = {
export type AccessConfigForBaotaPanel = {
apiUrl: string;
apiKey: string;
+ allowInsecureConnections?: boolean;
};
export type AccessConfigForBytePlus = {
@@ -193,6 +201,7 @@ export type AccessConfigForRainYun = {
export type AccessConfigForSafeLine = {
apiUrl: string;
apiToken: string;
+ allowInsecureConnections?: boolean;
};
export type AccessConfigForSSH = {
@@ -222,6 +231,7 @@ export type AccessConfigForVolcEngine = {
export type AccessConfigForWebhook = {
url: string;
+ allowInsecureConnections?: boolean;
};
export type AccessConfigForWestcn = {
diff --git a/ui/src/domain/provider.ts b/ui/src/domain/provider.ts
index 0841f39d..f3d6deb3 100644
--- a/ui/src/domain/provider.ts
+++ b/ui/src/domain/provider.ts
@@ -4,6 +4,7 @@
NOTICE: If you add new constant, please keep ASCII order.
*/
export const ACCESS_PROVIDERS = Object.freeze({
+ ["1PANEL"]: "1panel",
ACMEHTTPREQ: "acmehttpreq",
ALIYUN: "aliyun",
AWS: "aws",
@@ -84,6 +85,7 @@ export const accessProvidersMap: MapHost provider: The provider that hosts your servers or cloud services for deploying certificates.
Cannot be edited after saving.",
+ "access.form.1panel_api_url.label": "1Panel URL",
+ "access.form.1panel_api_url.placeholder": "Please enter 1Panel URL",
+ "access.form.1panel_api_url.tooltip": "For more information, see https://docs.1panel.pro/dev_manual/api_manual/",
+ "access.form.1panel_api_key.label": "1Panel API key",
+ "access.form.1panel_api_key.placeholder": "Please enter 1Panel API key",
+ "access.form.1panel_api_key.tooltip": "For more information, see https://docs.1panel.pro/dev_manual/api_manual/",
+ "access.form.1panel_allow_insecure_conns.label": "Insecure SSL/TLS connections",
+ "access.form.1panel_allow_insecure_conns.tooltip": "Allowing insecure connections may lead to data leak or tampering. Use this option only when under trusted networks.",
+ "access.form.1panel_allow_insecure_conns.switch.on": "Allow",
+ "access.form.1panel_allow_insecure_conns.switch.off": "Disallow",
"access.form.acmehttpreq_endpoint.label": "Endpoint",
"access.form.acmehttpreq_endpoint.placeholder": "Please enter endpoint",
"access.form.acmehttpreq_endpoint.tooltip": "For more information, see https://go-acme.github.io/lego/dns/httpreq/",
@@ -73,6 +83,10 @@
"access.form.baotapanel_api_key.label": "aaPanel API key",
"access.form.baotapanel_api_key.placeholder": "Please enter aaPanel API key",
"access.form.baotapanel_api_key.tooltip": "For more information, see https://www.bt.cn/bbs/thread-20376-1-1.html",
+ "access.form.baotapanel_allow_insecure_conns.label": "Insecure SSL/TLS connections",
+ "access.form.baotapanel_allow_insecure_conns.tooltip": "Allowing insecure connections may lead to data leak or tampering. Use this option only when under trusted networks.",
+ "access.form.baotapanel_allow_insecure_conns.switch.on": "Allow",
+ "access.form.baotapanel_allow_insecure_conns.switch.off": "Disallow",
"access.form.byteplus_access_key.label": "BytePlus AccessKey",
"access.form.byteplus_access_key.placeholder": "Please enter BytePlus AccessKey",
"access.form.byteplus_access_key.tooltip": "For more information, see https://docs.byteplus.com/en/docs/byteplus-platform/docs-managing-keys",
@@ -194,6 +208,10 @@
"access.form.safeline_api_token.label": "SafeLine API token",
"access.form.safeline_api_token.placeholder": "Please enter SafeLine API token",
"access.form.safeline_api_token.tooltip": "For more information, see https://docs.waf.chaitin.com/en/reference/articles/openapi",
+ "access.form.safeline_allow_insecure_conns.label": "Insecure SSL/TLS connections",
+ "access.form.safeline_allow_insecure_conns.tooltip": "Allowing insecure connections may lead to data leak or tampering. Use this option only when under trusted networks.",
+ "access.form.safeline_allow_insecure_conns.switch.on": "Allow",
+ "access.form.safeline_allow_insecure_conns.switch.off": "Disallow",
"access.form.ssh_host.label": "Server host",
"access.form.ssh_host.placeholder": "Please enter server host",
"access.form.ssh_port.label": "Server port",
@@ -233,6 +251,10 @@
"access.form.volcengine_secret_access_key.tooltip": "For more information, see https://www.volcengine.com/docs/6291/216571",
"access.form.webhook_url.label": "Webhook URL",
"access.form.webhook_url.placeholder": "Please enter Webhook URL",
+ "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.switch.on": "Allow",
+ "access.form.webhook_allow_insecure_conns.switch.off": "Disallow",
"access.form.westcn_username.label": "West.cn username",
"access.form.westcn_username.placeholder": "Please enter West.cn username",
"access.form.westcn_username.tooltip": "For more information, see https://www.west.cn/CustomerCenter/doc/apiv2.html",
diff --git a/ui/src/i18n/locales/en/nls.provider.json b/ui/src/i18n/locales/en/nls.provider.json
index 9ce0bc5c..4c6091e1 100644
--- a/ui/src/i18n/locales/en/nls.provider.json
+++ b/ui/src/i18n/locales/en/nls.provider.json
@@ -1,5 +1,7 @@
{
"provider.1panel": "1Panel",
+ "provider.1panel.console": "1Panel - Console",
+ "provider.1panel.site": "1Panel - Website",
"provider.acmehttpreq": "Http Request (ACME Proxy)",
"provider.aliyun": "Alibaba Cloud",
"provider.aliyun.alb": "Alibaba Cloud - ALB (Application Load Balancer)",
@@ -9,6 +11,7 @@
"provider.aliyun.dcdn": "Alibaba Cloud - DCDN (Dynamic Route for Content Delivery Network)",
"provider.aliyun.dns": "Alibaba Cloud - DNS (Domain Name Service)",
"provider.aliyun.esa": "Alibaba Cloud - ESA (Edge Security Acceleration)",
+ "provider.aliyun.fc": "Alibaba Cloud - FC (Function Compute)",
"provider.aliyun.live": "Alibaba Cloud - ApsaraVideo Live",
"provider.aliyun.nlb": "Alibaba Cloud - NLB (Network Load Balancer)",
"provider.aliyun.oss": "Alibaba Cloud - OSS (Object Storage Service)",
@@ -28,7 +31,7 @@
"provider.baishan.cdn": "Baishan - CDN (Content Delivery Network)",
"provider.baotapanel": "aaPanel (aka BaoTaPanel)",
"provider.baotapanel.console": "aaPanel (aka BaoTaPanel) - Console",
- "provider.baotapanel.site": "aaPanel (aka BaoTaPanel) - Site",
+ "provider.baotapanel.site": "aaPanel (aka BaoTaPanel) - Website",
"provider.byteplus": "BytePlus",
"provider.byteplus.cdn": "BytePlus - CDN (Content Delivery Network)",
"provider.cachefly": "CacheFly",
@@ -83,6 +86,7 @@
"provider.tencentcloud.dns": "Tencent Cloud - DNS (Domain Name Service)",
"provider.tencentcloud.ecdn": "Tencent Cloud - ECDN (Enterprise Content Delivery Network)",
"provider.tencentcloud.eo": "Tencent Cloud - EdgeOne",
+ "provider.tencentcloud.scf": "Tencent Cloud - SCF (Serverless Cloud Function)",
"provider.tencentcloud.ssl_deploy": "Tencent Cloud - via SSL Certificate Service Deployment Job",
"provider.tencentcloud.vod": "Tencent Cloud - VOD (Video on Demand)",
"provider.tencentcloud.waf": "Tencent Cloud - WAF (Web Application Firewall)",
@@ -106,6 +110,7 @@
"provider.category.loadbalance": "Loadbalance",
"provider.category.firewall": "Firewall",
"provider.category.av": "Audio/Video",
+ "provider.category.serverless": "Serverless",
"provider.category.website": "Website",
"provider.category.other": "Other"
}
diff --git a/ui/src/i18n/locales/en/nls.settings.json b/ui/src/i18n/locales/en/nls.settings.json
index 0bb6ba40..f4b3c85f 100644
--- a/ui/src/i18n/locales/en/nls.settings.json
+++ b/ui/src/i18n/locales/en/nls.settings.json
@@ -16,7 +16,7 @@
"settings.password.form.password.errmsg.not_matched": "Passwords do not match",
"settings.notification.tab": "Notification",
- "settings.notification.template.card.title": "Template",
+ "settings.notification.template.card.title": "Certificate expiration notification template",
"settings.notification.template.form.subject.label": "Subject",
"settings.notification.template.form.subject.placeholder": "Please enter notification subject",
"settings.notification.template.form.subject.extra": "Supported variables (${COUNT}: number of expiring soon)",
@@ -24,8 +24,8 @@
"settings.notification.template.form.message.placeholder": "Please enter notification message",
"settings.notification.template.form.message.extra": "Supported variables (${COUNT}: number of expiring soon. ${DOMAINS}: Domain list)",
"settings.notification.channels.card.title": "Channels",
- "settings.notification.channel.enabled.on": "On",
- "settings.notification.channel.enabled.off": "Off",
+ "settings.notification.channel.switch.on": "On",
+ "settings.notification.channel.switch.off": "Off",
"settings.notification.push_test.button": "Send test notification",
"settings.notification.push_test.pushed": "Sent",
"settings.notification.channel.form.bark_server_url.label": "Server URL",
@@ -44,7 +44,7 @@
"settings.notification.channel.form.email_smtp_host.placeholder": "Please enter SMTP host",
"settings.notification.channel.form.email_smtp_port.label": "SMTP port",
"settings.notification.channel.form.email_smtp_port.placeholder": "Please enter SMTP port",
- "settings.notification.channel.form.email_smtp_tls.label": "Use TLS/SSL",
+ "settings.notification.channel.form.email_smtp_tls.label": "Use SSL/TLS",
"settings.notification.channel.form.email_username.label": "Username",
"settings.notification.channel.form.email_username.placeholder": "please enter username",
"settings.notification.channel.form.email_password.label": "Password",
diff --git a/ui/src/i18n/locales/en/nls.workflow.nodes.json b/ui/src/i18n/locales/en/nls.workflow.nodes.json
index 66f43308..4035755c 100644
--- a/ui/src/i18n/locales/en/nls.workflow.nodes.json
+++ b/ui/src/i18n/locales/en/nls.workflow.nodes.json
@@ -90,6 +90,10 @@
"workflow_node.deploy.form.certificate.placeholder": "Please select certificate",
"workflow_node.deploy.form.certificate.tooltip": "The certificate to be deployed comes from the previous application stage node.",
"workflow_node.deploy.form.params_config.label": "Parameter settings",
+ "workflow_node.deploy.form.1panel_console_auto_restart.label": "Auto restart after deployment",
+ "workflow_node.deploy.form.1panel_site_website_id.label": "1Panel website ID",
+ "workflow_node.deploy.form.1panel_site_website_id.placeholder": "Please enter 1Panel website ID",
+ "workflow_node.deploy.form.1panel_site_website_id.tooltip": "You can find it on 1Panel WebUI.",
"workflow_node.deploy.form.aliyun_alb_resource_type.label": "Resource type",
"workflow_node.deploy.form.aliyun_alb_resource_type.placeholder": "Please select resource type",
"workflow_node.deploy.form.aliyun_alb_resource_type.option.loadbalancer.label": "ALB load balancer",
@@ -150,6 +154,14 @@
"workflow_node.deploy.form.aliyun_esa_site_id.label": "Alibaba Cloud ESA site ID",
"workflow_node.deploy.form.aliyun_esa_site_id.placeholder": "Please enter Alibaba Cloud ESA site ID",
"workflow_node.deploy.form.aliyun_esa_site_id.tooltip": "For more information, see https://esa.console.aliyun.com/siteManage/list",
+ "workflow_node.deploy.form.aliyun_fc_region.label": "Alibaba Cloud FC region",
+ "workflow_node.deploy.form.aliyun_fc_region.placeholder": "Please enter Alibaba Cloud FC region (e.g. cn-hangzhou)",
+ "workflow_node.deploy.form.aliyun_fc_region.tooltip": "For more information, see https://www.alibabacloud.com/help/en/functioncompute/fc-3-0/product-overview/supported-regions",
+ "workflow_node.deploy.form.aliyun_fc_service_version.label": "Alibaba Cloud FC version",
+ "workflow_node.deploy.form.aliyun_fc_service_version.placeholder": "Please select Alibaba Cloud FC version",
+ "workflow_node.deploy.form.aliyun_fc_domain.label": "Alibaba Cloud FC domain",
+ "workflow_node.deploy.form.aliyun_fc_domain.placeholder": "Please enter Alibaba Cloud FC domain name",
+ "workflow_node.deploy.form.aliyun_fc_domain.tooltip": "For more information, see https://fcnext.console.aliyun.com",
"workflow_node.deploy.form.aliyun_live_region.label": "Alibaba Cloud Live region",
"workflow_node.deploy.form.aliyun_live_region.placeholder": "Please enter Alibaba Cloud Live region (e.g. cn-hangzhou)",
"workflow_node.deploy.form.aliyun_live_region.tooltip": "For more information, see https://www.alibabacloud.com/help/en/live/product-overview/supported-regions",
@@ -441,6 +453,12 @@
"workflow_node.deploy.form.tencentcloud_eo_domain.label": "Tencent Cloud EdgeOne domain",
"workflow_node.deploy.form.tencentcloud_eo_domain.placeholder": "Please enter Tencent Cloud EdgeOne domain name",
"workflow_node.deploy.form.tencentcloud_eo_domain.tooltip": "For more information, see https://console.tencentcloud.com/edgeone",
+ "workflow_node.deploy.form.tencentcloud_scf_region.label": "Tencent Cloud SCF region",
+ "workflow_node.deploy.form.tencentcloud_scf_region.placeholder": "Please enter Tencent Cloud SCF region (e.g. ap-guangzhou)",
+ "workflow_node.deploy.form.tencentcloud_scf_region.tooltip": "For more information, see https://www.tencentcloud.com/document/product/583/17299",
+ "workflow_node.deploy.form.tencentcloud_scf_domain.label": "Tencent Cloud SCF domain",
+ "workflow_node.deploy.form.tencentcloud_scf_domain.placeholder": "Please enter Tencent Cloud SCF domain name",
+ "workflow_node.deploy.form.tencentcloud_scf_domain.tooltip": "For more information, see https://console.tencentcloud.com/scf",
"workflow_node.deploy.form.tencentcloud_ssl_deploy.guide": "TIPS: You need to go to the Tencent Cloud console to check the actual deployment results by yourself, because Tencent Cloud deployment tasks are running asynchronously.",
"workflow_node.deploy.form.tencentcloud_ssl_deploy_region.label": "Tencent Cloud service region",
"workflow_node.deploy.form.tencentcloud_ssl_deploy_region.placeholder": "Please enter Tencent Cloud service region (e.g. ap-guangzhou)",
@@ -529,8 +547,8 @@
"workflow_node.deploy.form.skip_on_last_succeeded.label": "Repeated deployment",
"workflow_node.deploy.form.skip_on_last_succeeded.prefix": "If the last deployment was successful, ",
"workflow_node.deploy.form.skip_on_last_succeeded.suffix": " to re-deploy.",
- "workflow_node.deploy.form.skip_on_last_succeeded.enabled.on": "skip",
- "workflow_node.deploy.form.skip_on_last_succeeded.enabled.off": "not skip",
+ "workflow_node.deploy.form.skip_on_last_succeeded.switch.on": "skip",
+ "workflow_node.deploy.form.skip_on_last_succeeded.switch.off": "not skip",
"workflow_node.notify.label": "Notification",
"workflow_node.notify.form.subject.label": "Subject",
diff --git a/ui/src/i18n/locales/zh/nls.access.json b/ui/src/i18n/locales/zh/nls.access.json
index 64b034d5..d72cd259 100644
--- a/ui/src/i18n/locales/zh/nls.access.json
+++ b/ui/src/i18n/locales/zh/nls.access.json
@@ -23,6 +23,16 @@
"access.form.provider.label": "提供商",
"access.form.provider.placeholder": "请选择提供商",
"access.form.provider.tooltip": "提供商分为两种类型:
【DNS 提供商】你的 DNS 托管方,通常等同于域名注册商,用于在申请证书时管理您的域名解析记录。
【主机提供商】你的服务器或云服务的托管方,用于部署签发的证书。
该字段保存后不可修改。",
+ "access.form.1panel_api_url.label": "1Panel URL",
+ "access.form.1panel_api_url.placeholder": "请输入 1Panel URL",
+ "access.form.1panel_api_url.tooltip": "这是什么?请参阅 https://1panel.cn/docs/dev_manual/api_manual/",
+ "access.form.1panel_api_key.label": "1Panel 接口密钥",
+ "access.form.1panel_api_key.placeholder": "请输入 1Panel 接口密钥",
+ "access.form.1panel_api_key.tooltip": "这是什么?请参阅 https://1panel.cn/docs/dev_manual/api_manual/",
+ "access.form.1panel_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
+ "access.form.1panel_allow_insecure_conns.tooltip": "忽略 SSL/TLS 证书错误可能导致数据泄露或被篡改。建议仅在可信网络下启用。",
+ "access.form.1panel_allow_insecure_conns.switch.on": "允许",
+ "access.form.1panel_allow_insecure_conns.switch.off": "不允许",
"access.form.acmehttpreq_endpoint.label": "服务端点",
"access.form.acmehttpreq_endpoint.placeholder": "请输入服务端点",
"access.form.acmehttpreq_endpoint.tooltip": "这是什么?请参阅 https://go-acme.github.io/lego/dns/httpreq/",
@@ -73,6 +83,10 @@
"access.form.baotapanel_api_key.label": "宝塔面板接口密钥",
"access.form.baotapanel_api_key.placeholder": "请输入宝塔面板接口密钥",
"access.form.baotapanel_api_key.tooltip": "这是什么?请参阅 https://www.bt.cn/bbs/thread-113890-1-1.html",
+ "access.form.baotapanel_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
+ "access.form.baotapanel_allow_insecure_conns.tooltip": "忽略 SSL/TLS 证书错误可能导致数据泄露或被篡改。建议仅在可信网络下启用。",
+ "access.form.baotapanel_allow_insecure_conns.switch.on": "允许",
+ "access.form.baotapanel_allow_insecure_conns.switch.off": "不允许",
"access.form.byteplus_access_key.label": "BytePlus AccessKey",
"access.form.byteplus_access_key.placeholder": "请输入 BytePlus AccessKey",
"access.form.byteplus_access_key.tooltip": "这是什么?请参阅 https://docs.byteplus.com/zh-CN/docs/byteplus-platform/docs-managing-keys",
@@ -194,6 +208,10 @@
"access.form.safeline_api_token.label": "雷池 API Token",
"access.form.safeline_api_token.placeholder": "请输入雷池 API Token",
"access.form.safeline_api_token.tooltip": "这是什么?请参阅 https://docs.waf-ce.chaitin.cn/zh/更多技术文档/OPENAPI",
+ "access.form.safeline_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
+ "access.form.safeline_allow_insecure_conns.tooltip": "忽略 SSL/TLS 证书错误可能导致数据泄露或被篡改。建议仅在可信网络下启用。",
+ "access.form.safeline_allow_insecure_conns.switch.on": "允许",
+ "access.form.safeline_allow_insecure_conns.switch.off": "不允许",
"access.form.ssh_host.label": "服务器地址",
"access.form.ssh_host.placeholder": "请输入服务器地址",
"access.form.ssh_port.label": "服务器端口",
@@ -233,6 +251,10 @@
"access.form.volcengine_secret_access_key.tooltip": "这是什么?请参阅 https://www.volcengine.com/docs/6291/216571",
"access.form.webhook_url.label": "Webhook 回调地址",
"access.form.webhook_url.placeholder": "请输入 Webhook 回调地址",
+ "access.form.webhook_allow_insecure_conns.label": "忽略 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.off": "不允许",
"access.form.westcn_username.label": "西部数码用户名",
"access.form.westcn_username.placeholder": "请输入西部数码用户名",
"access.form.westcn_username.tooltip": "这是什么?请参阅 https://www.west.cn/CustomerCenter/doc/apiv2.html",
diff --git a/ui/src/i18n/locales/zh/nls.provider.json b/ui/src/i18n/locales/zh/nls.provider.json
index f8d36830..e8580e41 100644
--- a/ui/src/i18n/locales/zh/nls.provider.json
+++ b/ui/src/i18n/locales/zh/nls.provider.json
@@ -1,5 +1,7 @@
{
"provider.1panel": "1Panel",
+ "provider.1panel.console": "1Panel - 面板",
+ "provider.1panel.site": "1Panel - 网站",
"provider.acmehttpreq": "Http Request (ACME Proxy)",
"provider.aliyun": "阿里云",
"provider.aliyun.alb": "阿里云 - 应用型负载均衡 ALB",
@@ -8,6 +10,7 @@
"provider.aliyun.clb": "阿里云 - 传统型负载均衡 CLB",
"provider.aliyun.dcdn": "阿里云 - 全站加速 DCDN",
"provider.aliyun.esa": "阿里云 - 边缘安全加速 ESA",
+ "provider.aliyun.fc": "阿里云 - 函数计算 FC",
"provider.aliyun.dns": "阿里云 - 云解析 DNS",
"provider.aliyun.live": "阿里云 - 视频直播 Live",
"provider.aliyun.nlb": "阿里云 - 网络型负载均衡 NLB",
@@ -83,6 +86,7 @@
"provider.tencentcloud.dns": "腾讯云 - 云解析 DNS",
"provider.tencentcloud.ecdn": "腾讯云 - 全站加速网络 ECDN",
"provider.tencentcloud.eo": "腾讯云 - 边缘安全加速平台 EdgeOne",
+ "provider.tencentcloud.scf": "腾讯云 - 云函数 SCF",
"provider.tencentcloud.ssl_deploy": "腾讯云 - 通过 SSL 证书服务创建部署任务",
"provider.tencentcloud.vod": "腾讯云 - 云点播 VOD",
"provider.tencentcloud.waf": "腾讯云 - Web 应用防火墙 WAF",
@@ -106,6 +110,7 @@
"provider.category.loadbalance": "负载均衡",
"provider.category.firewall": "防火墙",
"provider.category.av": "音视频",
- "provider.category.website": "网站",
+ "provider.category.serverless": "Serverless",
+ "provider.category.website": "网站托管",
"provider.category.other": "其他"
}
diff --git a/ui/src/i18n/locales/zh/nls.settings.json b/ui/src/i18n/locales/zh/nls.settings.json
index c2204d4d..1fcec35d 100644
--- a/ui/src/i18n/locales/zh/nls.settings.json
+++ b/ui/src/i18n/locales/zh/nls.settings.json
@@ -16,16 +16,16 @@
"settings.password.form.password.errmsg.not_matched": "两次密码不一致",
"settings.notification.tab": "消息推送",
- "settings.notification.template.card.title": "通知模板",
+ "settings.notification.template.card.title": "证书过期通知模板(全局)",
"settings.notification.template.form.subject.label": "通知主题",
"settings.notification.template.form.subject.placeholder": "请输入通知主题",
"settings.notification.template.form.subject.extra": "支持的变量(${COUNT}: 即将过期张数)",
"settings.notification.template.form.message.label": "通知内容",
"settings.notification.template.form.message.placeholder": "请输入通知内容",
- "settings.notification.template.form.message.extra": "支持的变量(${COUNT}: 即将过期张数;${DOMAINS}: 域名列表)",
+ "settings.notification.template.form.message.extra": "过期前 20 天发送通知。支持的变量(${COUNT}: 即将过期张数;${DOMAINS}: 域名列表)",
"settings.notification.channels.card.title": "通知渠道",
- "settings.notification.channel.enabled.on": "启用",
- "settings.notification.channel.enabled.off": "停用",
+ "settings.notification.channel.switch.on": "启用",
+ "settings.notification.channel.switch.off": "停用",
"settings.notification.push_test.button": "推送测试消息",
"settings.notification.push_test.pushed": "已推送",
"settings.notification.channel.form.bark_server_url.label": "服务器地址",
@@ -44,7 +44,7 @@
"settings.notification.channel.form.email_smtp_host.placeholder": "请输入 SMTP 服务器地址",
"settings.notification.channel.form.email_smtp_port.label": "SMTP 服务器端口",
"settings.notification.channel.form.email_smtp_port.placeholder": "请输入 SMTP 服务器端口",
- "settings.notification.channel.form.email_smtp_tls.label": "TLS/SSL 连接",
+ "settings.notification.channel.form.email_smtp_tls.label": "SSL/TLS 连接",
"settings.notification.channel.form.email_username.label": "用户名",
"settings.notification.channel.form.email_username.placeholder": "请输入用户名",
"settings.notification.channel.form.email_password.label": "密码",
diff --git a/ui/src/i18n/locales/zh/nls.workflow.nodes.json b/ui/src/i18n/locales/zh/nls.workflow.nodes.json
index 8778b6b5..2ba9e329 100644
--- a/ui/src/i18n/locales/zh/nls.workflow.nodes.json
+++ b/ui/src/i18n/locales/zh/nls.workflow.nodes.json
@@ -90,6 +90,10 @@
"workflow_node.deploy.form.certificate.placeholder": "请选择待部署证书",
"workflow_node.deploy.form.certificate.tooltip": "待部署证书来自之前的申请阶段。如果选项为空请先确保前序节点配置正确。",
"workflow_node.deploy.form.params_config.label": "参数设置",
+ "workflow_node.deploy.form.1panel_console_auto_restart.label": "部署后自动重启面板服务",
+ "workflow_node.deploy.form.1panel_site_website_id.label": "1Panel 网站 ID",
+ "workflow_node.deploy.form.1panel_site_website_id.placeholder": "请输入 1Panel 网站 ID",
+ "workflow_node.deploy.form.1panel_site_website_id.tooltip": "请在 1Panel 管理面板查看。",
"workflow_node.deploy.form.aliyun_alb_resource_type.label": "证书替换方式",
"workflow_node.deploy.form.aliyun_alb_resource_type.placeholder": "请选择证书替换方式",
"workflow_node.deploy.form.aliyun_alb_resource_type.option.loadbalancer.label": "替换指定负载均衡器下的全部 HTTPS/QUIC 监听的证书",
@@ -150,6 +154,14 @@
"workflow_node.deploy.form.aliyun_esa_site_id.label": "阿里云 ESA 站点 ID",
"workflow_node.deploy.form.aliyun_esa_site_id.placeholder": "请输入阿里云 ESA 站点 ID",
"workflow_node.deploy.form.aliyun_esa_site_id.tooltip": "这是什么?请参阅 https://esa.console.aliyun.com/siteManage/list",
+ "workflow_node.deploy.form.aliyun_fc_region.label": "阿里云 FC 服务地域",
+ "workflow_node.deploy.form.aliyun_fc_region.placeholder": "请输入阿里云 FC 服务地域(例如:cn-hangzhou)",
+ "workflow_node.deploy.form.aliyun_fc_region.tooltip": "这是什么?请参阅 https://help.aliyun.com/zh/functioncompute/fc-3-0/product-overview/supported-regions",
+ "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.tooltip": "这是什么?请参阅 see https://fcnext.console.aliyun.com/",
"workflow_node.deploy.form.aliyun_live_region.label": "阿里云视频直播服务地域",
"workflow_node.deploy.form.aliyun_live_region.placeholder": "请输入阿里云视频直播服务地域(例如:cn-hangzhou)",
"workflow_node.deploy.form.aliyun_live_region.tooltip": "这是什么?请参阅 https://help.aliyun.com/zh/live/product-overview/supported-regions",
@@ -441,6 +453,12 @@
"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.tooltip": "这是什么?请参阅 https://console.cloud.tencent.com/edgeone",
+ "workflow_node.deploy.form.tencentcloud_scf_region.label": "腾讯云 SCF 产品地域",
+ "workflow_node.deploy.form.tencentcloud_scf_region.placeholder": "输入腾讯云 SCF 产品地域(例如:ap-guangzhou)",
+ "workflow_node.deploy.form.tencentcloud_scf_region.tooltip": "这是什么?请参阅 https://cloud.tencent.com/document/product/583/17299",
+ "workflow_node.deploy.form.tencentcloud_scf_domain.label": "腾讯云 SCF 自定义域名",
+ "workflow_node.deploy.form.tencentcloud_scf_domain.placeholder": "输入腾讯云 SCF 自定义域名",
+ "workflow_node.deploy.form.tencentcloud_scf_domain.tooltip": "这是什么?请参阅 https://console.tencentcloud.com/scf",
"workflow_node.deploy.form.tencentcloud_ssl_deploy.guide": "小贴士:由于腾讯云证书部署任务是异步的,此节点若执行成功仅代表已创建部署任务,实际部署结果需要你自行前往腾讯云控制台查询。",
"workflow_node.deploy.form.tencentcloud_ssl_deploy_region.label": "腾讯云云产品地域",
"workflow_node.deploy.form.tencentcloud_ssl_deploy_region.placeholder": "请输入腾讯云云产品地域(例如:ap-guangzhou)",
@@ -529,8 +547,8 @@
"workflow_node.deploy.form.skip_on_last_succeeded.label": "重复部署",
"workflow_node.deploy.form.skip_on_last_succeeded.prefix": "当上次部署已成功时",
"workflow_node.deploy.form.skip_on_last_succeeded.suffix": "重新部署。",
- "workflow_node.deploy.form.skip_on_last_succeeded.enabled.on": "跳过",
- "workflow_node.deploy.form.skip_on_last_succeeded.enabled.off": "不跳过",
+ "workflow_node.deploy.form.skip_on_last_succeeded.switch.on": "跳过",
+ "workflow_node.deploy.form.skip_on_last_succeeded.switch.off": "不跳过",
"workflow_node.notify.label": "通知",
"workflow_node.notify.form.subject.label": "通知主题",