Skip to content

Commit 8a26edd

Browse files
authored
Merge pull request #625 from tapdata/TAP-12033
Tap 12033
2 parents 116364c + c46fe2d commit 8a26edd

12 files changed

Lines changed: 1206 additions & 6 deletions

File tree

apps/daas/src/i18n/langs/en.js

Lines changed: 120 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,84 @@ export default {
868868
'The full Distinguished Name (DN) of the user for authentication, i.e., the identity used to log in to the AD server, e.g., user@example.com',
869869
setting_Ldap_Bind_Password_doc:
870870
'The password corresponding to the Bind DN, used for authentication',
871+
setting_SAML: 'SAML Authentication',
872+
setting_SAML_Login_Enable: 'Use SAML Login',
873+
setting_SP_Entity_ID: 'SP Entity ID',
874+
setting_SP_ACS_URL: 'SP ACS URL',
875+
setting_SP_SLO_URL: 'SP SLO URL',
876+
setting_SP_Certificate: 'SP Certificate',
877+
setting_IdP_Entity_ID: 'IdP Entity ID',
878+
setting_IdP_SSO_URL: 'IdP SSO URL',
879+
setting_IdP_SLO_URL: 'IdP SLO URL',
880+
setting_IdP_Signing_Certificate: 'IdP Signing Certificate',
881+
setting_NameID_Format: 'NameID Format',
882+
setting_Want_Assertions_Signed: 'Require Signed Assertions',
883+
setting_Sign_AuthnRequest: 'Sign AuthnRequest',
884+
setting_Signature_Algorithm: 'Signature Algorithm',
885+
setting_Clock_Skew_Seconds: 'Clock Skew (seconds)',
886+
setting_Claim_Username: 'Username Attribute',
887+
setting_Claim_Email: 'Email Attribute',
888+
setting_Claim_Display_Name: 'Display Name Attribute',
889+
setting_Claim_Groups: 'Groups Attribute',
890+
setting_IdP_Initiated_Enabled: 'Allow IdP-Initiated SSO',
891+
setting_JIT_Provisioning_Enabled: 'Enable JIT Provisioning',
892+
setting_Login_Redirect_URL: 'Post-Login Redirect URL',
893+
setting_Saml_Login_Enable_doc:
894+
'Enable SAML 2.0 single sign-on login',
895+
setting_Saml_Sp_Entity_Id_doc:
896+
'Service Provider unique identifier. Recommended to use the ACS base URL, e.g. https://tapdata.example.com/api/sso/saml',
897+
setting_Saml_Sp_Acs_Url_doc:
898+
'Assertion Consumer Service URL that receives the SAML response. Fixed as https://<your-domain>/api/sso/saml/acs',
899+
setting_Saml_Sp_Slo_Url_doc:
900+
'Single Logout (SLO) URL advertised in the SP metadata, used to receive the IdP LogoutRequest/LogoutResponse. Fixed as https://<your-domain>/api/sso/saml/slo',
901+
setting_Saml_Sp_Private_Key_doc:
902+
'Service Provider private key (encrypted at rest, write-only). Generated together with the SP certificate via "Generate Key Pair".',
903+
setting_Saml_Sp_Certificate_doc:
904+
'Service Provider certificate (public key) in PEM format, included in the exported SP metadata. Generate it via "Generate Key Pair".',
905+
setting_Saml_Idp_Entity_Id_doc:
906+
'Identity Provider Entity ID. Auto-filled by "Import IdP Metadata".',
907+
setting_Saml_Idp_Sso_Url_doc:
908+
'Identity Provider SSO (login) URL. ADFS example: https://adfs.example.com/adfs/ls/',
909+
setting_Saml_Idp_Slo_Url_doc:
910+
'Identity Provider Single Logout (SLO) URL. ADFS example: https://adfs.example.com/adfs/ls/?wa=wsignout1.0',
911+
setting_Saml_Idp_Signing_Certificate_doc:
912+
'Identity Provider signing certificate used to verify assertions. Auto-filled by "Import IdP Metadata".',
913+
setting_Saml_Name_Id_Format_doc:
914+
'SAML NameID format; leave blank for the default. Example: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
915+
setting_Saml_Want_Assertions_Signed_doc:
916+
'Require the IdP to sign assertions; TapData verifies the signature with the IdP signing certificate and rejects unsigned/tampered assertions. ADFS signs by default, keep this on.',
917+
setting_Saml_Sign_Authn_Request_doc:
918+
'Sign the SP-generated AuthnRequest with the SP private key. Enable only when the IdP requires SP-signed requests.',
919+
setting_Saml_Signature_Algorithm_doc:
920+
'XML signature algorithm; leave blank for the default (rsa-sha256). Avoid weak algorithms such as SHA-1/MD5.',
921+
setting_Saml_Clock_Skew_Seconds_doc:
922+
'Allowed clock skew (seconds) when validating assertion time conditions. Default 120; ensure NTP sync across hosts.',
923+
setting_Saml_Claim_Username_doc:
924+
'SAML attribute mapped to the username. ADFS example: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name',
925+
setting_Saml_Claim_Email_doc:
926+
'SAML attribute mapped to the email. ADFS example: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress',
927+
setting_Saml_Claim_Display_Name_doc:
928+
'SAML attribute mapped to the display name. ADFS example: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname',
929+
setting_Saml_Claim_Groups_doc:
930+
'SAML attribute mapped to the user groups. ADFS example: http://schemas.xmlsoap.org/claims/Group',
931+
setting_Saml_Idp_Initiated_Enabled_doc:
932+
'Allow IdP-initiated SSO (disabled by default for security)',
933+
setting_Saml_Jit_Provisioning_Enabled_doc:
934+
'Just-in-time provisioning: auto-create users on first SSO login (disabled by default)',
935+
setting_Saml_Login_Redirect_Url_doc:
936+
'Post-login redirect URL after a successful SSO login',
937+
setting_saml_generate_keypair: 'Generate Key Pair',
938+
setting_saml_export_sp_metadata: 'Export SP Metadata',
939+
setting_saml_import_idp_metadata: 'Import IdP Metadata',
940+
setting_saml_import_idp_metadata_label: 'Upload the IdP metadata XML file',
941+
setting_saml_import_idp_metadata_placeholder:
942+
'Or paste the IdP metadata XML here',
943+
setting_saml_keypair_generated:
944+
'Key pair generated. The private key is stored encrypted; click Save to persist the certificate.',
945+
setting_saml_import_success:
946+
'IdP metadata parsed. IdP fields have been filled; click Save to persist.',
947+
setting_saml_import_empty:
948+
'Please upload or paste the IdP metadata XML first',
871949
setting_Appearance: 'Appearance',
872950
setting_enableEnvTag: 'Environment Tag',
873951
setting_envTagContent: 'Custom Text',
@@ -897,6 +975,37 @@ export default {
897975
user_list_freeze_error: 'Freeze failed',
898976
user_list_check_success: 'Pass the check',
899977
user_list_check_error: 'Check failed',
978+
user_import_batch_import: 'Batch Import',
979+
user_import_dialog_title: 'Batch Import Users',
980+
user_import_dialog_tip:
981+
'Download the template, fill in the user list, then upload to validate and import.',
982+
user_import_download_template: 'Download Template',
983+
user_import_template_download_failed: 'Failed to download the template',
984+
user_import_select_file: 'Please select a file first',
985+
user_import_mode: 'On duplicate user',
986+
user_import_mode_skip: 'Skip',
987+
user_import_mode_update: 'Update',
988+
user_import_validate: 'Validate',
989+
user_import_validating: 'Validating…',
990+
user_import_importing: 'Importing…',
991+
user_import_confirm: 'Confirm Import',
992+
user_import_preview_title: 'Validation result',
993+
user_import_count_total: 'Total {count}',
994+
user_import_count_create: 'Create {count}',
995+
user_import_count_update: 'Update {count}',
996+
user_import_count_skip: 'Skip {count}',
997+
user_import_count_failed: 'Failed {count}',
998+
user_import_col_row: 'Row',
999+
user_import_col_status: 'Status',
1000+
user_import_col_message: 'Message',
1001+
user_import_status_CREATE: 'Create',
1002+
user_import_status_UPDATE: 'Update',
1003+
user_import_status_SKIP: 'Skip',
1004+
user_import_status_FAILED: 'Failed',
1005+
user_import_result_summary:
1006+
'Import finished: created {create}, updated {update}, skipped {skip}, failed {failed}',
1007+
user_import_result_partial:
1008+
'Import partially failed: created {create}, updated {update}, skipped {skip}, failed {failed}',
9001009
user_status_notVerified: 'Not Verified',
9011010
user_status_notActivated: 'Not Activated',
9021011
user_status_activated: 'Activated',
@@ -1295,6 +1404,15 @@ export default {
12951404
'Any requirement, please contact us by scanning WeChat QR below.',
12961405
app_signIn_slogan: 'Use your data, as easy as water from tap',
12971406
app_signIn_signIn: 'Sign in',
1407+
app_signIn_samlLogin: 'Single Sign-On (SAML)',
1408+
app_signIn_ssoProcessing: 'Signing you in...',
1409+
app_signIn_ssoFailed: 'Single sign-on failed. Please try again.',
1410+
app_signIn_ssoUserDisabled:
1411+
'Your account is disabled or frozen. Please contact an administrator.',
1412+
app_signIn_ssoUserPending:
1413+
'Your account is pending approval. Please contact an administrator.',
1414+
app_signIn_ssoUserNotFound:
1415+
'No matching TapData account was found for this SSO identity.',
12981416
app_signIn_keepSignIn: 'Keep signed in',
12991417
app_signIn_email_placeholder: 'Enter your email',
13001418
login_email_and_ad_placeholder: 'Enter your email/LDAP username',
@@ -2407,13 +2525,13 @@ export default {
24072525
webhook_server_url_empty: 'Please enter the server URL',
24082526
webhook_server_url_error: 'Please enter a valid server URL',
24092527
webhook_custom_template: 'Custom Template',
2410-
webhook_custom_template_tip: `{'{'}
2528+
webhook_custom_template_tip: `{'{'}
24112529
"action": "TaskAlter",
24122530
"hookId": "\${'{'}hookId{'}'}",
24132531
"actionTime": "\${'{'}actionTime{'}'}",
24142532
"title": "\${'{'}title{'}'}",
24152533
"content": "\${'{'}content{'}'}",
2416-
"actionData": {'{'}
2534+
"actionData": {'{'}
24172535
"status": "\${'{'}actionData.status{'}'}", // Indicates the current alarm status: ING (ongoing), RECOVER (recovered), CLOSE (closed)
24182536
"statusTxt": "\${'{'}actionData.statusTxt{'}'}", // Indicates the current alarm status text: ongoing, recovered, closed
24192537
"level": "\${'{'}actionData.level{'}'}", // Alarm level: RECOVERY, NORMAL, WARNING, CRITICAL, EMERGENCY, ERROR, WARN, INFO

apps/daas/src/i18n/langs/zh-CN.js

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,79 @@ export default {
814814
setting_Ldap_Bind_DN_doc:
815815
'用于进行身份验证的用户的完整Distinguished Name (DN),即登录AD服务器的身份,示例:user@example.com',
816816
setting_Ldap_Bind_Password_doc: '与Bind DN对应的用户密码,用于身份验证',
817+
setting_SAML: 'SAML登录设置',
818+
setting_SAML_Login_Enable: '使用SAML登录',
819+
setting_SP_Entity_ID: 'SP Entity ID',
820+
setting_SP_ACS_URL: 'SP ACS 地址',
821+
setting_SP_SLO_URL: 'SP SLO 地址',
822+
setting_SP_Certificate: 'SP 证书',
823+
setting_IdP_Entity_ID: 'IdP Entity ID',
824+
setting_IdP_SSO_URL: 'IdP SSO 地址',
825+
setting_IdP_SLO_URL: 'IdP SLO 地址',
826+
setting_IdP_Signing_Certificate: 'IdP 签名证书',
827+
setting_NameID_Format: 'NameID 格式',
828+
setting_Want_Assertions_Signed: '要求断言签名',
829+
setting_Sign_AuthnRequest: '签名 AuthnRequest',
830+
setting_Signature_Algorithm: '签名算法',
831+
setting_Clock_Skew_Seconds: '时钟偏差(秒)',
832+
setting_Claim_Username: '用户名属性',
833+
setting_Claim_Email: '邮箱属性',
834+
setting_Claim_Display_Name: '显示名属性',
835+
setting_Claim_Groups: '用户组属性',
836+
setting_IdP_Initiated_Enabled: '允许 IdP 发起的 SSO',
837+
setting_JIT_Provisioning_Enabled: '启用即时(JIT)预配',
838+
setting_Login_Redirect_URL: '登录后跳转地址',
839+
setting_Saml_Login_Enable_doc: '启用 SAML 2.0 单点登录',
840+
setting_Saml_Sp_Entity_Id_doc:
841+
'SP 唯一标识,建议用 ACS 的基地址。示例:https://tapdata.example.com/api/sso/saml',
842+
setting_Saml_Sp_Acs_Url_doc:
843+
'IdP 回发断言的地址,固定为 https://<你的域名>/api/sso/saml/acs',
844+
setting_Saml_Sp_Slo_Url_doc:
845+
'SP 元数据中公布的单点登出(SLO)地址,用于接收 IdP 的登出请求/响应,固定为 https://<你的域名>/api/sso/saml/slo',
846+
setting_Saml_Sp_Private_Key_doc:
847+
'服务提供方私钥(静态加密存储,只写),与 SP 证书通过「生成密钥对」成对生成',
848+
setting_Saml_Sp_Certificate_doc:
849+
'SP 证书(公钥,PEM),会被打包进导出的 SP 元数据。请通过「生成密钥对」生成',
850+
setting_Saml_Idp_Entity_Id_doc: '身份提供方(IdP)实体 ID,由「导入 IdP 元数据」自动填充',
851+
setting_Saml_Idp_Sso_Url_doc:
852+
'身份提供方 SSO(登录)地址。ADFS 示例:https://adfs.example.com/adfs/ls/',
853+
setting_Saml_Idp_Slo_Url_doc:
854+
'身份提供方单点登出(SLO)地址。ADFS 示例:https://adfs.example.com/adfs/ls/?wa=wsignout1.0',
855+
setting_Saml_Idp_Signing_Certificate_doc:
856+
'身份提供方签名证书,用于验证断言签名,由「导入 IdP 元数据」自动填充',
857+
setting_Saml_Name_Id_Format_doc:
858+
'SAML NameID 格式;留空用默认。示例:urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
859+
setting_Saml_Want_Assertions_Signed_doc:
860+
'要求 IdP 对断言签名;TapData 会用 IdP 签名证书验签,签名不过即拒登,防止伪造/篡改。ADFS 默认签名,建议保持开启',
861+
setting_Saml_Sign_Authn_Request_doc:
862+
'用 SP 私钥对发给 IdP 的登录请求(AuthnRequest)签名;仅当 IdP 要求 SP 签名请求时开启',
863+
setting_Saml_Signature_Algorithm_doc:
864+
'XML 签名算法;留空用默认(rsa-sha256)。避免使用 SHA-1/MD5 等弱算法',
865+
setting_Saml_Clock_Skew_Seconds_doc:
866+
'校验断言时间条件时允许的时钟偏差(秒),默认 120;跨机注意 NTP 同步',
867+
setting_Saml_Claim_Username_doc:
868+
'映射为用户名的 SAML 属性名。ADFS 示例:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name',
869+
setting_Saml_Claim_Email_doc:
870+
'映射为邮箱的 SAML 属性名。ADFS 示例:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress',
871+
setting_Saml_Claim_Display_Name_doc:
872+
'映射为显示名的 SAML 属性名。ADFS 示例:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname',
873+
setting_Saml_Claim_Groups_doc:
874+
'映射为用户组的 SAML 属性名。ADFS 示例:http://schemas.xmlsoap.org/claims/Group',
875+
setting_Saml_Idp_Initiated_Enabled_doc:
876+
'允许 IdP 发起的 SSO(出于安全考虑默认关闭)',
877+
setting_Saml_Jit_Provisioning_Enabled_doc:
878+
'即时(JIT)预配:首次 SSO 登录时自动创建用户(默认关闭)',
879+
setting_Saml_Login_Redirect_Url_doc: 'SSO 登录成功后的跳转地址',
880+
setting_saml_generate_keypair: '生成密钥对',
881+
setting_saml_export_sp_metadata: '导出 SP 元数据',
882+
setting_saml_import_idp_metadata: '导入 IdP 元数据',
883+
setting_saml_import_idp_metadata_label: '上传 IdP 元数据 XML 文件',
884+
setting_saml_import_idp_metadata_placeholder: '或在此粘贴 IdP 元数据 XML',
885+
setting_saml_keypair_generated:
886+
'密钥对已生成,私钥已加密存储;点击「保存」以持久化证书',
887+
setting_saml_import_success:
888+
'IdP 元数据已解析,IdP 字段已回填;点击「保存」以持久化',
889+
setting_saml_import_empty: '请先上传或粘贴 IdP 元数据 XML',
817890
setting_Appearance: '外观',
818891
setting_enableEnvTag: '环境标签',
819892
setting_envTagContent: '自定义文字',
@@ -843,6 +916,36 @@ export default {
843916
user_list_freeze_error: '冻结失败',
844917
user_list_check_success: '通过校验',
845918
user_list_check_error: '校验失败',
919+
user_import_batch_import: '批量导入',
920+
user_import_dialog_title: '批量导入用户',
921+
user_import_dialog_tip: '下载模板并填写用户列表,然后上传进行校验和导入。',
922+
user_import_download_template: '下载模板',
923+
user_import_template_download_failed: '下载模板失败',
924+
user_import_select_file: '请先选择文件',
925+
user_import_mode: '用户已存在时',
926+
user_import_mode_skip: '跳过',
927+
user_import_mode_update: '更新',
928+
user_import_validate: '校验',
929+
user_import_validating: '正在校验…',
930+
user_import_importing: '正在导入…',
931+
user_import_confirm: '确认导入',
932+
user_import_preview_title: '校验结果',
933+
user_import_count_total: '共 {count}',
934+
user_import_count_create: '新建 {count}',
935+
user_import_count_update: '更新 {count}',
936+
user_import_count_skip: '跳过 {count}',
937+
user_import_count_failed: '失败 {count}',
938+
user_import_col_row: '行号',
939+
user_import_col_status: '状态',
940+
user_import_col_message: '说明',
941+
user_import_status_CREATE: '新建',
942+
user_import_status_UPDATE: '更新',
943+
user_import_status_SKIP: '跳过',
944+
user_import_status_FAILED: '失败',
945+
user_import_result_summary:
946+
'导入完成:新建 {create},更新 {update},跳过 {skip},失败 {failed}',
947+
user_import_result_partial:
948+
'导入部分失败:新建 {create},更新 {update},跳过 {skip},失败 {failed}',
846949
user_status_notVerified: '未验证',
847950
user_status_notActivated: '未激活',
848951
user_status_activated: '已激活',
@@ -1222,6 +1325,12 @@ export default {
12221325
'请扫描下方企业微信二维码, 联系我们获取支持',
12231326
app_signIn_slogan: '像自来水一样方便地使用您的数据',
12241327
app_signIn_signIn: '登录',
1328+
app_signIn_samlLogin: '单点登录 (SAML)',
1329+
app_signIn_ssoProcessing: '正在登录...',
1330+
app_signIn_ssoFailed: '单点登录失败,请重试。',
1331+
app_signIn_ssoUserDisabled: '账号已被冻结或禁用,请联系管理员。',
1332+
app_signIn_ssoUserPending: '账号正在等待审批,请联系管理员。',
1333+
app_signIn_ssoUserNotFound: '未找到与此 SSO 身份匹配的 TapData 账号。',
12251334
app_signIn_keepSignIn: '保持登录状态',
12261335
app_signIn_email_placeholder: '请输入邮箱',
12271336
login_email_and_ad_placeholder: '请输入邮箱/LDAP 用户名',

0 commit comments

Comments
 (0)