mirror of
https://github.com/zitadel/zitadel.git
synced 2025-01-11 20:53:41 +00:00
99b2c33ccb
* feat: default custom message text * feat: org custom message text * feat: org custom message text * feat: custom messages query side * feat: default messages * feat: message text user fields * feat: check for inactive user * feat: fix send password reset * feat: fix custom org text * feat: add variables to docs * feat: custom text tests * feat: fix notifications * feat: add custom text feature * feat: add custom text feature * feat: feature in custom message texts * feat: add custom text feature in frontend * feat: merge main * feat: feature tests * feat: change phone message in setup * fix: remove unused code, add event translation * fix: merge main and fix problems * fix: english translation file * fix: migration versions * fix: setup * fix: custom login text * feat: add all possible custom texts for login * feat: iam login texts * feat: org login texts * feat: protos * fix: custom text in admin api * fix: add success login text * fix: docs * fix: add custom login texts to management api * fix: add sub messages to custom login texts * fix: setup custom texts * feat: get org login texts * feat: get org login texts * feat: handler in adminapi * feat: handlers in auth and admin * feat: render login texts * feat: custom login text * feat: add all login text keys * feat: handle correct login texts * feat: custom login texts in command side * feat: custom login texts in command side * feat: fix yaml file * feat: merge master and add confirmation text * feat: fix html * feat: read default login texts * feat: get default text files * feat: get custom texts org * feat: tests * feat: change translator handling * fix translator from authReq * feat: change h1 on login screens * feat: add custom login text for remove * feat: add custom login text for remove * feat: cache translation files * feat: cache translation files * feat: zitadel user in env var * feat: add registration user description * feat: better func naming * feat: tests * feat: add mutex to read file * feat: add mutex to read file * fix mutex for accessing translation map * fix: translation key Co-authored-by: Livio Amstutz <livio.a@gmail.com>
363 lines
18 KiB
Protocol Buffer
363 lines
18 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "zitadel/object.proto";
|
|
import "protoc-gen-openapiv2/options/annotations.proto";
|
|
import "validate/validate.proto";
|
|
|
|
package zitadel.text.v1;
|
|
|
|
option go_package ="github.com/caos/zitadel/pkg/grpc/text";
|
|
|
|
message MessageCustomText {
|
|
zitadel.v1.ObjectDetails details = 1;
|
|
string title = 2 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "custom text for email title"
|
|
}
|
|
];
|
|
string pre_header = 3 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "custom text for email pre header"
|
|
}
|
|
];
|
|
string subject = 4 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "custom text for email subject"
|
|
}
|
|
];
|
|
string greeting = 5 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "custom text for email greeting"
|
|
}
|
|
];
|
|
string text = 6 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "custom text for email text"
|
|
}
|
|
];
|
|
string button_text = 7 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "custom text for email button_text"
|
|
}
|
|
];
|
|
string footer_text = 8 [
|
|
(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
|
|
description: "custom text for email footer_text"
|
|
}
|
|
];
|
|
}
|
|
|
|
message LoginCustomText {
|
|
zitadel.v1.ObjectDetails details = 1;
|
|
SelectAccountScreenText select_account_text = 2;
|
|
LoginScreenText login_text = 3;
|
|
PasswordScreenText password_text = 4;
|
|
UsernameChangeScreenText username_change_text = 5;
|
|
UsernameChangeDoneScreenText username_change_done_text = 6;
|
|
InitPasswordScreenText init_password_text = 7;
|
|
InitPasswordDoneScreenText init_password_done_text = 8;
|
|
EmailVerificationScreenText email_verification_text = 9;
|
|
EmailVerificationDoneScreenText email_verification_done_text = 10;
|
|
InitializeUserScreenText initialize_user_text = 11;
|
|
InitializeUserDoneScreenText initialize_done_text = 12;
|
|
InitMFAPromptScreenText init_mfa_prompt_text = 13;
|
|
InitMFAOTPScreenText init_mfa_otp_text = 14;
|
|
InitMFAU2FScreenText init_mfa_u2f_text = 15;
|
|
InitMFADoneScreenText init_mfa_done_text = 16;
|
|
MFAProvidersText mfa_providers_text = 17;
|
|
VerifyMFAOTPScreenText verify_mfa_otp_text = 18;
|
|
VerifyMFAU2FScreenText verify_mfa_u2f_text = 19;
|
|
PasswordlessScreenText passwordless_text = 20;
|
|
PasswordChangeScreenText password_change_text = 21;
|
|
PasswordChangeDoneScreenText password_change_done_text = 22;
|
|
PasswordResetDoneScreenText password_reset_done_text = 23;
|
|
RegistrationOptionScreenText registration_option_text = 24;
|
|
RegistrationUserScreenText registration_user_text = 25;
|
|
RegistrationOrgScreenText registration_org_text = 26;
|
|
LinkingUserDoneScreenText linking_user_done_text = 27;
|
|
ExternalUserNotFoundScreenText external_user_not_found_text = 28;
|
|
SuccessLoginScreenText success_login_text = 29;
|
|
LogoutDoneScreenText logout_text = 30;
|
|
FooterText footer_text = 31;
|
|
}
|
|
|
|
message SelectAccountScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string title_linking_process = 3 [(validate.rules).string = {max_len: 200}];
|
|
string description_linking_process = 4 [(validate.rules).string = {max_len: 500}];
|
|
string other_user = 5 [(validate.rules).string = {max_len: 500}];
|
|
string session_state_active = 6 [(validate.rules).string = {max_len: 100}];
|
|
string session_state_inactive = 7 [(validate.rules).string = {max_len: 100}];
|
|
string user_must_be_member_of_org = 8 [(validate.rules).string = {max_len: 500}];
|
|
}
|
|
|
|
message LoginScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string title_linking_process = 3 [(validate.rules).string = {max_len: 200}];
|
|
string description_linking_process = 4 [(validate.rules).string = {max_len: 500}];
|
|
string user_must_be_member_of_org = 5 [(validate.rules).string = {max_len: 500}];
|
|
string login_name_label = 6 [(validate.rules).string = {max_len: 200}];
|
|
string register_button_text = 7 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 8 [(validate.rules).string = {max_len: 100}];
|
|
string external_user_description = 9 [(validate.rules).string = {max_len: 500}];
|
|
string user_name_placeholder = 10 [(validate.rules).string = {max_len: 200}];
|
|
string login_name_placeholder = 11 [(validate.rules).string = {max_len: 200}];
|
|
}
|
|
|
|
message PasswordScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string password_label = 3 [(validate.rules).string = {max_len: 200}];
|
|
string reset_link_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
string back_button_text = 5 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 6 [(validate.rules).string = {max_len: 100}];
|
|
string min_length = 7 [(validate.rules).string = {max_len: 100}];
|
|
string has_uppercase = 8 [(validate.rules).string = {max_len: 100}];
|
|
string has_lowercase = 9 [(validate.rules).string = {max_len: 100}];
|
|
string has_number = 10 [(validate.rules).string = {max_len: 100}];
|
|
string has_symbol = 11 [(validate.rules).string = {max_len: 100}];
|
|
string confirmation = 12 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message UsernameChangeScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string username_label = 3 [(validate.rules).string = {max_len: 200}];
|
|
string cancel_button_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 5 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message UsernameChangeDoneScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string next_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message InitPasswordScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string code_label = 3 [(validate.rules).string = {max_len: 200}];
|
|
string new_password_label = 4 [(validate.rules).string = {max_len: 200}];
|
|
string new_password_confirm_label = 5 [(validate.rules).string = {max_len: 200}];
|
|
string next_button_text = 6 [(validate.rules).string = {max_len: 100}];
|
|
string resend_button_text = 7 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message InitPasswordDoneScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string next_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
string cancel_button_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message EmailVerificationScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string code_label = 3 [(validate.rules).string = {max_len: 200}];
|
|
string next_button_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
string resend_button_text = 5 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message EmailVerificationDoneScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string next_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
string cancel_button_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
string login_button_text = 5 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message InitializeUserScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string code_label = 3 [(validate.rules).string = {max_len: 200}];
|
|
string new_password_label = 4 [(validate.rules).string = {max_len: 200}];
|
|
string new_password_confirm_label = 5 [(validate.rules).string = {max_len: 200}];
|
|
string resend_button_text = 6 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 7 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message InitializeUserDoneScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string cancel_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message InitMFAPromptScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string otp_option = 3 [(validate.rules).string = {max_len: 200}];
|
|
string u2f_option = 4 [(validate.rules).string = {max_len: 200}];
|
|
string skip_button_text = 5 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 6 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message InitMFAOTPScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string description_otp = 3 [(validate.rules).string = {max_len: 500}];
|
|
string secret_label = 4 [(validate.rules).string = {max_len: 200}];
|
|
string code_label = 5 [(validate.rules).string = {max_len: 200}];
|
|
string next_button_text = 6 [(validate.rules).string = {max_len: 100}];
|
|
string cancel_button_text = 7 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message InitMFAU2FScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string token_name_label = 3 [(validate.rules).string = {max_len: 200}];
|
|
string not_supported = 4 [(validate.rules).string = {max_len: 500}];
|
|
string register_token_button_text = 5 [(validate.rules).string = {max_len: 100}];
|
|
string error_retry = 6 [(validate.rules).string = {max_len: 500}];
|
|
}
|
|
|
|
message InitMFADoneScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string cancel_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message MFAProvidersText {
|
|
string choose_other = 1 [(validate.rules).string = {max_len: 500}];
|
|
string otp = 2 [(validate.rules).string = {max_len: 200}];
|
|
string u2f = 3 [(validate.rules).string = {max_len: 200}];
|
|
}
|
|
|
|
message VerifyMFAOTPScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string code_label = 3 [(validate.rules).string = {max_len: 200}];
|
|
string next_button_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message VerifyMFAU2FScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string validate_token_text = 3 [(validate.rules).string = {max_len: 500}];
|
|
string not_supported = 4 [(validate.rules).string = {max_len: 500}];
|
|
string error_retry = 5 [(validate.rules).string = {max_len: 500}];
|
|
}
|
|
|
|
message PasswordlessScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string login_with_pw_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
string validate_token_button_text = 4 [(validate.rules).string = {max_len: 200}];
|
|
string not_supported = 5 [(validate.rules).string = {max_len: 500}];
|
|
string error_retry = 6 [(validate.rules).string = {max_len: 500}];
|
|
}
|
|
|
|
message PasswordChangeScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string old_password_label = 3 [(validate.rules).string = {max_len: 200}];
|
|
string new_password_label = 4 [(validate.rules).string = {max_len: 200}];
|
|
string new_password_confirm_label = 5 [(validate.rules).string = {max_len: 200}];
|
|
string cancel_button_text = 6 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 7 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message PasswordChangeDoneScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string next_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message PasswordResetDoneScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string next_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message RegistrationOptionScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string user_name_button_text = 3 [(validate.rules).string = {max_len: 200}];
|
|
string external_login_description = 4 [(validate.rules).string = {max_len: 500}];
|
|
}
|
|
|
|
message RegistrationUserScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string description_org_register = 3 [(validate.rules).string = {max_len: 500}];
|
|
string firstname_label = 4 [(validate.rules).string = {max_len: 200}];
|
|
string lastname_label = 5 [(validate.rules).string = {max_len: 200}];
|
|
string email_label = 6 [(validate.rules).string = {max_len: 200}];
|
|
string username_label = 7 [(validate.rules).string = {max_len: 200}];
|
|
string language_label = 8 [(validate.rules).string = {max_len: 200}];
|
|
string gender_label = 9 [(validate.rules).string = {max_len: 200}];
|
|
string password_label = 10 [(validate.rules).string = {max_len: 200}];
|
|
string password_confirm_label = 11 [(validate.rules).string = {max_len: 200}];
|
|
string tos_and_privacy_label = 12 [(validate.rules).string = {max_len: 200}];
|
|
string tos_confirm = 13 [(validate.rules).string = {max_len: 200}];
|
|
string tos_link = 14 [(validate.rules).string = {max_len: 200}];
|
|
string tos_link_text = 15 [(validate.rules).string = {max_len: 200}];
|
|
string privacy_confirm = 16 [(validate.rules).string = {max_len: 200}];
|
|
string privacy_link = 17 [(validate.rules).string = {max_len: 200}];
|
|
string privacy_link_text = 18 [(validate.rules).string = {max_len: 200}];
|
|
string external_login_description = 19 [(validate.rules).string = {max_len: 500}];
|
|
string next_button_text = 20 [(validate.rules).string = {max_len: 200}];
|
|
string back_button_text = 21 [(validate.rules).string = {max_len: 200}];
|
|
}
|
|
|
|
message RegistrationOrgScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string orgname_label = 3 [(validate.rules).string = {max_len: 200}];
|
|
string firstname_label = 4 [(validate.rules).string = {max_len: 200}];
|
|
string lastname_label = 5 [(validate.rules).string = {max_len: 200}];
|
|
string username_label = 6 [(validate.rules).string = {max_len: 200}];
|
|
string email_label = 7 [(validate.rules).string = {max_len: 200}];
|
|
string password_label = 9 [(validate.rules).string = {max_len: 200}];
|
|
string password_confirm_label = 10 [(validate.rules).string = {max_len: 200}];
|
|
string tos_and_privacy_label = 11 [(validate.rules).string = {max_len: 200}];
|
|
string tos_confirm = 12 [(validate.rules).string = {max_len: 200}];
|
|
string tos_link = 13 [(validate.rules).string = {max_len: 200}];
|
|
string tos_link_text = 14 [(validate.rules).string = {max_len: 200}];
|
|
string privacy_confirm = 15 [(validate.rules).string = {max_len: 200}];
|
|
string privacy_link = 16 [(validate.rules).string = {max_len: 200}];
|
|
string privacy_link_text = 17 [(validate.rules).string = {max_len: 200}];
|
|
string external_login_description = 18 [(validate.rules).string = {max_len: 500}];
|
|
string save_button_text = 19 [(validate.rules).string = {max_len: 200}];
|
|
}
|
|
|
|
message LinkingUserDoneScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string cancel_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message ExternalUserNotFoundScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string link_button_text = 3 [(validate.rules).string = {max_len: 100}];
|
|
string auto_register_button_text = 4 [(validate.rules).string = {max_len: 100}];
|
|
}
|
|
|
|
message SuccessLoginScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
// Text to describe that auto redirect should happen after successful login
|
|
string auto_redirect_description = 2 [(validate.rules).string = {max_len: 500}];
|
|
// Text to describe that the window can be closed after redirect
|
|
string redirected_description = 3 [(validate.rules).string = {max_len: 100}];
|
|
string next_button_text = 4 [(validate.rules).string = {max_len: 200}];
|
|
}
|
|
|
|
message LogoutDoneScreenText {
|
|
string title = 1 [(validate.rules).string = {max_len: 200}];
|
|
string description = 2 [(validate.rules).string = {max_len: 500}];
|
|
string login_button_text = 3 [(validate.rules).string = {max_len: 200}];
|
|
}
|
|
|
|
message FooterText {
|
|
string tos = 1 [(validate.rules).string = {max_len: 200}];
|
|
string tos_link = 2 [(validate.rules).string = {max_len: 500}];
|
|
string privacy_policy = 3 [(validate.rules).string = {max_len: 200}];
|
|
string privacy_policy_link = 4 [(validate.rules).string = {max_len: 500}];
|
|
string help = 5 [(validate.rules).string = {max_len: 200}];
|
|
string help_link = 6 [(validate.rules).string = {max_len: 500}];
|
|
} |