From 6b2640633114f63ea15517fa5bb0ae4b46ad79e8 Mon Sep 17 00:00:00 2001 From: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com> Date: Thu, 4 May 2023 14:57:11 -0400 Subject: [PATCH 01/32] Defect/PM-1196 - SSO with Email 2FA Flow - Email Required error fixed (#5280) * PM-1196- First draft of solution for solving SSO login with email 2FA not working; this is a working solution but we need to leverage it to build a better solution with a different server generated token vs a OTP. * PM-1196 - Swap from OTP to SSO Email 2FA session token. Working now, but going to revisit whether or not email should come down from the server. Need to clean up the commented out items if we decide email stays encrypted in the session token. * PM-1196 - Email needs to come down from server after SSO in order to flow through to the 2FA comp and be sent to the server * PM-1196 - For email 2FA, if the email is no longer available due to the auth service 2 min expiration clearing the auth state, then we need to show a message explaining that (same message as when a OTP is submitted after expiration) vs actually sending the request without an email and getting a validation error from the server * PM-1196 - (1) Make optional properties optional (2) Update tests to pass (3) Add new test for Email 2FA having additional auth result information * PM-1196 - Remove unnecessary optional chaining operator b/c I go my wires crossed on how it works and the login strategy is not going to be null or undefined... --- .../auth/components/two-factor.component.ts | 10 ++++++ .../src/auth/abstractions/auth.service.ts | 1 + .../login-strategies/login.strategy.spec.ts | 36 +++++++++++++++++++ .../auth/login-strategies/login.strategy.ts | 2 ++ .../login-strategies/sso-login.strategy.ts | 14 ++++++-- .../src/auth/models/domain/auth-result.ts | 2 ++ .../request/two-factor-email.request.ts | 1 + .../response/identity-two-factor.response.ts | 7 +++- libs/common/src/auth/services/auth.service.ts | 9 ++++- 9 files changed, 78 insertions(+), 4 deletions(-) diff --git a/libs/angular/src/auth/components/two-factor.component.ts b/libs/angular/src/auth/components/two-factor.component.ts index 255fb8aa2d..c7bf5075cd 100644 --- a/libs/angular/src/auth/components/two-factor.component.ts +++ b/libs/angular/src/auth/components/two-factor.component.ts @@ -232,10 +232,20 @@ export class TwoFactorComponent extends CaptchaProtectedComponent implements OnI return; } + if (this.authService.email == null) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("sessionTimeout") + ); + return; + } + try { const request = new TwoFactorEmailRequest(); request.email = this.authService.email; request.masterPasswordHash = this.authService.masterPasswordHash; + request.ssoEmail2FaSessionToken = this.authService.ssoEmail2FaSessionToken; request.deviceIdentifier = await this.appIdService.getAppId(); request.authRequestAccessCode = this.authService.accessCode; request.authRequestId = this.authService.authRequestId; diff --git a/libs/common/src/auth/abstractions/auth.service.ts b/libs/common/src/auth/abstractions/auth.service.ts index 2fec2fcd11..4a59f0ac4e 100644 --- a/libs/common/src/auth/abstractions/auth.service.ts +++ b/libs/common/src/auth/abstractions/auth.service.ts @@ -18,6 +18,7 @@ export abstract class AuthService { email: string; accessCode: string; authRequestId: string; + ssoEmail2FaSessionToken: string; logIn: ( credentials: diff --git a/libs/common/src/auth/login-strategies/login.strategy.spec.ts b/libs/common/src/auth/login-strategies/login.strategy.spec.ts index 7c7b1ad8fa..3f7e8fb8c1 100644 --- a/libs/common/src/auth/login-strategies/login.strategy.spec.ts +++ b/libs/common/src/auth/login-strategies/login.strategy.spec.ts @@ -223,6 +223,9 @@ describe("LogInStrategy", () => { TwoFactorProviders2: { 0: null }, error: "invalid_grant", error_description: "Two factor required.", + // only sent for emailed 2FA + email: undefined, + ssoEmail2faSessionToken: undefined, }); apiService.postIdentityToken.mockResolvedValue(tokenResponse); @@ -238,6 +241,39 @@ describe("LogInStrategy", () => { expect(result).toEqual(expected); }); + it("rejects login if 2FA via email is required + maps required information", async () => { + // Sample response where Email 2FA required + + const userEmail = "kyle@bitwarden.com"; + const ssoEmail2FaSessionToken = + "BwSsoEmail2FaSessionToken_CfDJ8AMrVzKqBFpKqzzsahUx8ubIi9AhHm6aLHDLpCUYc3QV3qC14iuSVkNg57Q7-kGQUn1z87bGY1WP58jFMNJ6ndaurIgQWNfPNN4DG-dBhvzarOAZ0RKY5oKT5futWm6_k9NMMGd8PcGGHg5Pq1_koOIwRtiXO3IpD-bemB7m8oEvbj__JTQP3Mcz-UediFlCbYBKU3wyIiBL_tF8hW5D4RAUa5ZzXIuauJiiCdDS7QOzBcqcusVAPGFfKjfIdAwFfKSOYd5KmYrhK7Y7ymjweP_igPYKB5aMfcVaYr5ux-fdffeJTGqtJorwNjLUYNv7KA"; + + const tokenResponse = new IdentityTwoFactorResponse({ + TwoFactorProviders: ["1"], + TwoFactorProviders2: { "1": { Email: "k***@bitwarden.com" } }, + error: "invalid_grant", + error_description: "Two factor required.", + // only sent for emailed 2FA + email: userEmail, + ssoEmail2faSessionToken: ssoEmail2FaSessionToken, + }); + + apiService.postIdentityToken.mockResolvedValue(tokenResponse); + + const result = await passwordLogInStrategy.logIn(credentials); + + expect(stateService.addAccount).not.toHaveBeenCalled(); + expect(messagingService.send).not.toHaveBeenCalled(); + + const expected = new AuthResult(); + expected.twoFactorProviders = new Map(); + expected.twoFactorProviders.set(1, { Email: "k***@bitwarden.com" }); + expected.email = userEmail; + expected.ssoEmail2FaSessionToken = ssoEmail2FaSessionToken; + + expect(result).toEqual(expected); + }); + it("sends stored 2FA token to server", async () => { tokenService.getTwoFactorToken.mockResolvedValue(twoFactorToken); apiService.postIdentityToken.mockResolvedValue(identityTokenResponseFactory()); diff --git a/libs/common/src/auth/login-strategies/login.strategy.ts b/libs/common/src/auth/login-strategies/login.strategy.ts index 286e90a26c..2bcbee88e0 100644 --- a/libs/common/src/auth/login-strategies/login.strategy.ts +++ b/libs/common/src/auth/login-strategies/login.strategy.ts @@ -163,6 +163,8 @@ export abstract class LogInStrategy { this.twoFactorService.setProviders(response); this.captchaBypassToken = response.captchaToken ?? null; + result.ssoEmail2FaSessionToken = response.ssoEmail2faSessionToken; + result.email = response.email; return result; } diff --git a/libs/common/src/auth/login-strategies/sso-login.strategy.ts b/libs/common/src/auth/login-strategies/sso-login.strategy.ts index 7d3f9e519e..2285d1b6b4 100644 --- a/libs/common/src/auth/login-strategies/sso-login.strategy.ts +++ b/libs/common/src/auth/login-strategies/sso-login.strategy.ts @@ -18,6 +18,12 @@ export class SsoLogInStrategy extends LogInStrategy { tokenRequest: SsoTokenRequest; orgId: string; + // A session token server side to serve as an authentication factor for the user + // in order to send email OTPs to the user's configured 2FA email address + // as we don't have a master password hash or other verifiable secret when using SSO. + ssoEmail2FaSessionToken?: string; + email?: string; // email not preserved through SSO process so get from server + constructor( cryptoService: CryptoService, apiService: ApiService, @@ -65,7 +71,11 @@ export class SsoLogInStrategy extends LogInStrategy { await this.buildDeviceRequest() ); - const [authResult] = await this.startLogIn(); - return authResult; + const [ssoAuthResult] = await this.startLogIn(); + + this.email = ssoAuthResult.email; + this.ssoEmail2FaSessionToken = ssoAuthResult.ssoEmail2FaSessionToken; + + return ssoAuthResult; } } diff --git a/libs/common/src/auth/models/domain/auth-result.ts b/libs/common/src/auth/models/domain/auth-result.ts index bfc6236d65..6ce1e568e1 100644 --- a/libs/common/src/auth/models/domain/auth-result.ts +++ b/libs/common/src/auth/models/domain/auth-result.ts @@ -8,6 +8,8 @@ export class AuthResult { resetMasterPassword = false; forcePasswordReset: ForceResetPasswordReason = ForceResetPasswordReason.None; twoFactorProviders: Map = null; + ssoEmail2FaSessionToken?: string; + email: string; get requiresCaptcha() { return !Utils.isNullOrWhitespace(this.captchaSiteKey); diff --git a/libs/common/src/auth/models/request/two-factor-email.request.ts b/libs/common/src/auth/models/request/two-factor-email.request.ts index 22cb638e9d..769f6171c6 100644 --- a/libs/common/src/auth/models/request/two-factor-email.request.ts +++ b/libs/common/src/auth/models/request/two-factor-email.request.ts @@ -4,4 +4,5 @@ export class TwoFactorEmailRequest extends SecretVerificationRequest { email: string; deviceIdentifier: string; authRequestId: string; + ssoEmail2FaSessionToken?: string; } diff --git a/libs/common/src/auth/models/response/identity-two-factor.response.ts b/libs/common/src/auth/models/response/identity-two-factor.response.ts index ec0cfa0f31..e2848bd336 100644 --- a/libs/common/src/auth/models/response/identity-two-factor.response.ts +++ b/libs/common/src/auth/models/response/identity-two-factor.response.ts @@ -7,7 +7,9 @@ export class IdentityTwoFactorResponse extends BaseResponse { twoFactorProviders: TwoFactorProviderType[]; twoFactorProviders2 = new Map(); captchaToken: string; - masterPasswordPolicy: MasterPasswordPolicyResponse; + ssoEmail2faSessionToken: string; + email?: string; + masterPasswordPolicy?: MasterPasswordPolicyResponse; constructor(response: any) { super(response); @@ -25,5 +27,8 @@ export class IdentityTwoFactorResponse extends BaseResponse { this.masterPasswordPolicy = new MasterPasswordPolicyResponse( this.getResponseProperty("MasterPasswordPolicy") ); + + this.ssoEmail2faSessionToken = this.getResponseProperty("SsoEmail2faSessionToken"); + this.email = this.getResponseProperty("Email"); } } diff --git a/libs/common/src/auth/services/auth.service.ts b/libs/common/src/auth/services/auth.service.ts index f5a19bf636..f8028c6944 100644 --- a/libs/common/src/auth/services/auth.service.ts +++ b/libs/common/src/auth/services/auth.service.ts @@ -46,7 +46,8 @@ export class AuthService implements AuthServiceAbstraction { get email(): string { if ( this.logInStrategy instanceof PasswordLogInStrategy || - this.logInStrategy instanceof PasswordlessLogInStrategy + this.logInStrategy instanceof PasswordlessLogInStrategy || + this.logInStrategy instanceof SsoLogInStrategy ) { return this.logInStrategy.email; } @@ -72,6 +73,12 @@ export class AuthService implements AuthServiceAbstraction { : null; } + get ssoEmail2FaSessionToken(): string { + return this.logInStrategy instanceof SsoLogInStrategy + ? this.logInStrategy.ssoEmail2FaSessionToken + : null; + } + private logInStrategy: | UserApiLogInStrategy | PasswordLogInStrategy From 432250fad8838cca09c760111ff64cc30056a415 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 5 May 2023 10:05:43 +0200 Subject: [PATCH 02/32] Autosync the updated translations (#5373) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/desktop/src/locales/cs/messages.json | 2 +- apps/desktop/src/locales/fr/messages.json | 2 +- apps/desktop/src/locales/or/messages.json | 84 +++++++++++------------ 3 files changed, 44 insertions(+), 44 deletions(-) diff --git a/apps/desktop/src/locales/cs/messages.json b/apps/desktop/src/locales/cs/messages.json index 278ed33cac..391f2311ec 100644 --- a/apps/desktop/src/locales/cs/messages.json +++ b/apps/desktop/src/locales/cs/messages.json @@ -2226,7 +2226,7 @@ "message": "Slabé a odhalené hlavní heslo" }, "weakAndBreachedMasterPasswordDesc": { - "message": "Slabeé heslo bylo nalezeno mezi odhalenými hesly. K zabezpečení Vašeho účtu používejte silné a jedinečné heslo. Opravdu chcete používat toto heslo?" + "message": "Slabé heslo bylo nalezeno mezi odhalenými hesly. K zabezpečení Vašeho účtu používejte silné a jedinečné heslo. Opravdu chcete používat toto heslo?" }, "checkForBreaches": { "message": "Zkontrolovat heslo, zda nebylo odhaleno" diff --git a/apps/desktop/src/locales/fr/messages.json b/apps/desktop/src/locales/fr/messages.json index 22fd3f5773..83504d30ba 100644 --- a/apps/desktop/src/locales/fr/messages.json +++ b/apps/desktop/src/locales/fr/messages.json @@ -1117,7 +1117,7 @@ "message": "Actualisation terminée" }, "passwordHistory": { - "message": "Historique des mots de passe" + "message": "Historique du mot de passe" }, "clear": { "message": "Effacer", diff --git a/apps/desktop/src/locales/or/messages.json b/apps/desktop/src/locales/or/messages.json index 13b91e222b..b5750b7d07 100644 --- a/apps/desktop/src/locales/or/messages.json +++ b/apps/desktop/src/locales/or/messages.json @@ -3,7 +3,7 @@ "message": "Bitwarden" }, "filters": { - "message": "Filters" + "message": "ଶୋଧକ" }, "allItems": { "message": "All items" @@ -21,16 +21,16 @@ "message": "Card" }, "typeIdentity": { - "message": "Identity" + "message": "ପରିଚୟ" }, "typeSecureNote": { "message": "Secure note" }, "folders": { - "message": "Folders" + "message": "ଫୋଲ୍ଡର୍" }, "collections": { - "message": "Collections" + "message": "ସଂଗ୍ରହ" }, "searchVault": { "message": "Search vault" @@ -70,7 +70,7 @@ "message": "View item" }, "name": { - "message": "Name" + "message": "ନାମ" }, "uri": { "message": "URI" @@ -89,10 +89,10 @@ "message": "New URI" }, "username": { - "message": "Username" + "message": "ଉପଭୋକ୍ତା ନାମ" }, "password": { - "message": "Password" + "message": "ପାସ୍‌ୱର୍ଡ଼" }, "passphrase": { "message": "Passphrase" @@ -139,7 +139,7 @@ "message": "Cardholder name" }, "number": { - "message": "Number" + "message": "ସଂଖ୍ୟା" }, "brand": { "message": "Brand" @@ -166,7 +166,7 @@ "message": "License number" }, "email": { - "message": "Email" + "message": "ଇମେଲ୍" }, "phone": { "message": "Phone" @@ -184,65 +184,65 @@ "message": "An error has occurred." }, "error": { - "message": "Error" + "message": "ତ୍ରୁଟି" }, "january": { - "message": "January" + "message": "ଜାନୁଆରୀ" }, "february": { - "message": "February" + "message": "ଫେବୃଆରୀ" }, "march": { - "message": "March" + "message": "ମାର୍ଚ୍ଚ" }, "april": { - "message": "April" + "message": "ଅପ୍ରେଲ" }, "may": { - "message": "May" + "message": "ମଇ" }, "june": { - "message": "June" + "message": "ଜୁନ" }, "july": { - "message": "July" + "message": "ଜୁଲାଇ" }, "august": { - "message": "August" + "message": "ଅଗଷ୍ଟ" }, "september": { - "message": "September" + "message": "ସେପ୍ଟେମ୍ବର" }, "october": { - "message": "October" + "message": "ଅକ୍ଟୋବର" }, "november": { - "message": "November" + "message": "ନଵେମ୍ବର" }, "december": { - "message": "December" + "message": "ଡିସେମ୍ବର" }, "ex": { - "message": "ex.", + "message": "ଯଥା", "description": "Short abbreviation for 'example'." }, "title": { - "message": "Title" + "message": "ଆଖ୍ୟା" }, "mr": { - "message": "Mr" + "message": "ଶ୍ରୀମାନ୍" }, "mrs": { - "message": "Mrs" + "message": "ଶ୍ରୀମତୀ" }, "ms": { - "message": "Ms" + "message": "ସୁଶ୍ରୀ" }, "mx": { - "message": "Mx" + "message": "ଶ୍ରୀ" }, "dr": { - "message": "Dr" + "message": "ଡଃ" }, "expirationMonth": { "message": "Expiration month" @@ -254,34 +254,34 @@ "message": "Select" }, "other": { - "message": "Other" + "message": "ଅନ୍ୟ" }, "generatePassword": { "message": "Generate password" }, "type": { - "message": "Type" + "message": "ପ୍ରକାର" }, "firstName": { - "message": "First name" + "message": "ପ୍ରଥମ ନାମ" }, "middleName": { - "message": "Middle name" + "message": "ମଝି ନାମ" }, "lastName": { - "message": "Last name" + "message": "ଶେଷ ନାମ" }, "fullName": { - "message": "Full name" + "message": "ପୁରା ନାମ" }, "address1": { - "message": "Address 1" + "message": "ଠିକଣା ୧" }, "address2": { - "message": "Address 2" + "message": "ଠିକଣା ୨" }, "address3": { - "message": "Address 3" + "message": "ଠିକଣା ୩" }, "cityTown": { "message": "City / Town" @@ -293,7 +293,7 @@ "message": "Zip / Postal code" }, "country": { - "message": "Country" + "message": "ଦେଶ" }, "save": { "message": "Save" @@ -308,13 +308,13 @@ "message": "Favorite" }, "edit": { - "message": "Edit" + "message": "ସମ୍ପାଦନା" }, "authenticatorKeyTotp": { "message": "Authenticator key (TOTP)" }, "folder": { - "message": "Folder" + "message": "ଫୋଲ୍ଡର୍" }, "newCustomField": { "message": "New custom field" @@ -346,7 +346,7 @@ "message": "Remove" }, "nameRequired": { - "message": "Name is required." + "message": "ନାଁ ଆଵଶ୍ୟକ ଅଟେ।" }, "addedItem": { "message": "Item added" From 9aad5b231e80bf3a2d62cd3227803cdd7c50b6b5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 5 May 2023 10:08:39 +0200 Subject: [PATCH 03/32] Autosync the updated translations (#5374) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/browser/src/_locales/ar/messages.json | 3 +++ apps/browser/src/_locales/az/messages.json | 3 +++ apps/browser/src/_locales/be/messages.json | 15 +++++++++------ apps/browser/src/_locales/bg/messages.json | 3 +++ apps/browser/src/_locales/bn/messages.json | 3 +++ apps/browser/src/_locales/bs/messages.json | 3 +++ apps/browser/src/_locales/ca/messages.json | 3 +++ apps/browser/src/_locales/cs/messages.json | 5 ++++- apps/browser/src/_locales/cy/messages.json | 3 +++ apps/browser/src/_locales/da/messages.json | 3 +++ apps/browser/src/_locales/de/messages.json | 3 +++ apps/browser/src/_locales/el/messages.json | 3 +++ apps/browser/src/_locales/en_GB/messages.json | 3 +++ apps/browser/src/_locales/en_IN/messages.json | 3 +++ apps/browser/src/_locales/es/messages.json | 3 +++ apps/browser/src/_locales/et/messages.json | 3 +++ apps/browser/src/_locales/eu/messages.json | 3 +++ apps/browser/src/_locales/fa/messages.json | 3 +++ apps/browser/src/_locales/fi/messages.json | 3 +++ apps/browser/src/_locales/fil/messages.json | 3 +++ apps/browser/src/_locales/fr/messages.json | 3 +++ apps/browser/src/_locales/gl/messages.json | 3 +++ apps/browser/src/_locales/he/messages.json | 3 +++ apps/browser/src/_locales/hi/messages.json | 3 +++ apps/browser/src/_locales/hr/messages.json | 3 +++ apps/browser/src/_locales/hu/messages.json | 3 +++ apps/browser/src/_locales/id/messages.json | 3 +++ apps/browser/src/_locales/it/messages.json | 3 +++ apps/browser/src/_locales/ja/messages.json | 3 +++ apps/browser/src/_locales/ka/messages.json | 3 +++ apps/browser/src/_locales/km/messages.json | 3 +++ apps/browser/src/_locales/kn/messages.json | 3 +++ apps/browser/src/_locales/ko/messages.json | 3 +++ apps/browser/src/_locales/lt/messages.json | 3 +++ apps/browser/src/_locales/lv/messages.json | 3 +++ apps/browser/src/_locales/ml/messages.json | 3 +++ apps/browser/src/_locales/my/messages.json | 3 +++ apps/browser/src/_locales/nb/messages.json | 3 +++ apps/browser/src/_locales/ne/messages.json | 3 +++ apps/browser/src/_locales/nl/messages.json | 3 +++ apps/browser/src/_locales/nn/messages.json | 3 +++ apps/browser/src/_locales/or/messages.json | 3 +++ apps/browser/src/_locales/pl/messages.json | 3 +++ apps/browser/src/_locales/pt_BR/messages.json | 3 +++ apps/browser/src/_locales/pt_PT/messages.json | 3 +++ apps/browser/src/_locales/ro/messages.json | 3 +++ apps/browser/src/_locales/ru/messages.json | 3 +++ apps/browser/src/_locales/si/messages.json | 3 +++ apps/browser/src/_locales/sk/messages.json | 3 +++ apps/browser/src/_locales/sl/messages.json | 3 +++ apps/browser/src/_locales/sr/messages.json | 3 +++ apps/browser/src/_locales/sv/messages.json | 3 +++ apps/browser/src/_locales/te/messages.json | 3 +++ apps/browser/src/_locales/th/messages.json | 3 +++ apps/browser/src/_locales/tr/messages.json | 3 +++ apps/browser/src/_locales/uk/messages.json | 3 +++ apps/browser/src/_locales/vi/messages.json | 3 +++ apps/browser/src/_locales/zh_CN/messages.json | 3 +++ apps/browser/src/_locales/zh_TW/messages.json | 3 +++ 59 files changed, 184 insertions(+), 7 deletions(-) diff --git a/apps/browser/src/_locales/ar/messages.json b/apps/browser/src/_locales/ar/messages.json index 5e95165a32..a74774e2fe 100644 --- a/apps/browser/src/_locales/ar/messages.json +++ b/apps/browser/src/_locales/ar/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/az/messages.json b/apps/browser/src/_locales/az/messages.json index fae3bb8e6e..e43c377cbe 100644 --- a/apps/browser/src/_locales/az/messages.json +++ b/apps/browser/src/_locales/az/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Yeni bir pəncərədə açılır" } } diff --git a/apps/browser/src/_locales/be/messages.json b/apps/browser/src/_locales/be/messages.json index 587584c298..ea4d5c4727 100644 --- a/apps/browser/src/_locales/be/messages.json +++ b/apps/browser/src/_locales/be/messages.json @@ -1465,13 +1465,13 @@ "message": "Прызначыць асноўны пароль" }, "currentMasterPass": { - "message": "Current master password" + "message": "Бягучы асноўны пароль" }, "newMasterPass": { - "message": "New master password" + "message": "Новы асноўны пароль" }, "confirmNewMasterPass": { - "message": "Confirm new master password" + "message": "Пацвердзіць новы асноўны пароль" }, "masterPasswordPolicyInEffect": { "message": "Адна або больш палітык арганізацыі патрабуе, каб ваш асноўны пароль адпавядаў наступным патрабаванням:" @@ -1854,7 +1854,7 @@ "message": "Ваш асноўны пароль нядаўна быў зменены адміністратарам арганізацыі. Для таго, каб атрымаць доступ да вашага сховішча, вы павінны абнавіць яго зараз. Гэта прывядзе да завяршэння бягучага сеанса і вам неабходна будзе ўвайсці паўторна. Сеансы на іншых прыладах могуць заставацца актыўнымі на працягу адной гадзіны." }, "updateWeakMasterPasswordWarning": { - "message": "Your master password does not meet one or more of your organization policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + "message": "Ваш асноўны пароль не адпавядае адной або некалькім палітыкам арганізацыі. Для атрымання доступу да сховішча, вы павінны абнавіць яго. Працягваючы, вы выйдзіце з бягучага сеанса і вам неабходна будзе ўвайсці паўторна. Актыўныя сеансы на іншых прыладах могуць заставацца актыўнымі на працягу адной гадзіны." }, "resetPasswordPolicyAutoEnroll": { "message": "Аўтаматычная рэгістрацыя" @@ -1888,7 +1888,7 @@ } }, "vaultTimeoutPolicyWithActionInEffect": { - "message": "Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is $HOURS$ hour(s) and $MINUTES$ minute(s). Your vault timeout action is set to $ACTION$.", + "message": "Палітыка вашай арганізацыі ўплывае на час чакання сховішча. Максімальны дазволены час чакання сховішча складае гадзін: $HOURS$; хвілін: $MINUTES$. Для часу чакання вашага сховішча прызначана дзеянне $ACTION$.", "placeholders": { "hours": { "content": "$1", @@ -1905,7 +1905,7 @@ } }, "vaultTimeoutActionPolicyInEffect": { - "message": "Your organization policies have set your vault timeout action to $ACTION$.", + "message": "Палітыкай вашай арганізацыі прызначана дзеянне $ACTION$ для часу чакання вашага сховішча.", "placeholders": { "action": { "content": "$1", @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Адкрываць у новым акне" } } diff --git a/apps/browser/src/_locales/bg/messages.json b/apps/browser/src/_locales/bg/messages.json index f6c815de5a..1c1b73e086 100644 --- a/apps/browser/src/_locales/bg/messages.json +++ b/apps/browser/src/_locales/bg/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/bn/messages.json b/apps/browser/src/_locales/bn/messages.json index 418a0821c6..6b3f925bbe 100644 --- a/apps/browser/src/_locales/bn/messages.json +++ b/apps/browser/src/_locales/bn/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/bs/messages.json b/apps/browser/src/_locales/bs/messages.json index c9ae2e1660..56a0d53210 100644 --- a/apps/browser/src/_locales/bs/messages.json +++ b/apps/browser/src/_locales/bs/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/ca/messages.json b/apps/browser/src/_locales/ca/messages.json index 11952dde01..3266b2ea29 100644 --- a/apps/browser/src/_locales/ca/messages.json +++ b/apps/browser/src/_locales/ca/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/cs/messages.json b/apps/browser/src/_locales/cs/messages.json index f99484f102..055c2dd8a9 100644 --- a/apps/browser/src/_locales/cs/messages.json +++ b/apps/browser/src/_locales/cs/messages.json @@ -2135,7 +2135,7 @@ "message": "Slabé a odhalené hlavní heslo" }, "weakAndBreachedMasterPasswordDesc": { - "message": "Slabeé heslo bylo nalezeno mezi odhalenými hesly. K zabezpečení Vašeho účtu používejte silné a jedinečné heslo. Opravdu chcete používat toto heslo?" + "message": "Slabé heslo bylo nalezeno mezi odhalenými hesly. K zabezpečení Vašeho účtu používejte silné a jedinečné heslo. Opravdu chcete používat toto heslo?" }, "checkForBreaches": { "message": "Zkontrolovat heslo, zda nebylo odhaleno" @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Otevře se v novém okně" } } diff --git a/apps/browser/src/_locales/cy/messages.json b/apps/browser/src/_locales/cy/messages.json index 9a97e79cbe..1b8c6315be 100644 --- a/apps/browser/src/_locales/cy/messages.json +++ b/apps/browser/src/_locales/cy/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/da/messages.json b/apps/browser/src/_locales/da/messages.json index e3892253e7..edbd0961e2 100644 --- a/apps/browser/src/_locales/da/messages.json +++ b/apps/browser/src/_locales/da/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Åbnes i et nyt vindue" } } diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json index 2857d76d40..f1d8a5ce9b 100644 --- a/apps/browser/src/_locales/de/messages.json +++ b/apps/browser/src/_locales/de/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Wird in einem neuen Fenster geöffnet" } } diff --git a/apps/browser/src/_locales/el/messages.json b/apps/browser/src/_locales/el/messages.json index 41a380da6a..5dc10d1617 100644 --- a/apps/browser/src/_locales/el/messages.json +++ b/apps/browser/src/_locales/el/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Ανοίγει σε νέο παράθυρο" } } diff --git a/apps/browser/src/_locales/en_GB/messages.json b/apps/browser/src/_locales/en_GB/messages.json index 35f4bef23f..dd1c666335 100644 --- a/apps/browser/src/_locales/en_GB/messages.json +++ b/apps/browser/src/_locales/en_GB/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/en_IN/messages.json b/apps/browser/src/_locales/en_IN/messages.json index ec9105d30b..5172dfc11f 100644 --- a/apps/browser/src/_locales/en_IN/messages.json +++ b/apps/browser/src/_locales/en_IN/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/es/messages.json b/apps/browser/src/_locales/es/messages.json index 5ab38e853b..aac3a113a7 100644 --- a/apps/browser/src/_locales/es/messages.json +++ b/apps/browser/src/_locales/es/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Abre en una nueva ventana" } } diff --git a/apps/browser/src/_locales/et/messages.json b/apps/browser/src/_locales/et/messages.json index 4b235b26b7..6ce6c51b3f 100644 --- a/apps/browser/src/_locales/et/messages.json +++ b/apps/browser/src/_locales/et/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Avaneb uues aknas" } } diff --git a/apps/browser/src/_locales/eu/messages.json b/apps/browser/src/_locales/eu/messages.json index 7cb87c9939..30d572f374 100644 --- a/apps/browser/src/_locales/eu/messages.json +++ b/apps/browser/src/_locales/eu/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/fa/messages.json b/apps/browser/src/_locales/fa/messages.json index 4e594b0e02..2f6085a823 100644 --- a/apps/browser/src/_locales/fa/messages.json +++ b/apps/browser/src/_locales/fa/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/fi/messages.json b/apps/browser/src/_locales/fi/messages.json index 8e67983d06..d57201abb8 100644 --- a/apps/browser/src/_locales/fi/messages.json +++ b/apps/browser/src/_locales/fi/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/fil/messages.json b/apps/browser/src/_locales/fil/messages.json index dcc1a71620..23424cf364 100644 --- a/apps/browser/src/_locales/fil/messages.json +++ b/apps/browser/src/_locales/fil/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/fr/messages.json b/apps/browser/src/_locales/fr/messages.json index 7387c5c055..5294fd5956 100644 --- a/apps/browser/src/_locales/fr/messages.json +++ b/apps/browser/src/_locales/fr/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "S'ouvre dans une nouvelle fenêtre" } } diff --git a/apps/browser/src/_locales/gl/messages.json b/apps/browser/src/_locales/gl/messages.json index 9a97e79cbe..1b8c6315be 100644 --- a/apps/browser/src/_locales/gl/messages.json +++ b/apps/browser/src/_locales/gl/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/he/messages.json b/apps/browser/src/_locales/he/messages.json index 6ee364e0f2..d70758ae9f 100644 --- a/apps/browser/src/_locales/he/messages.json +++ b/apps/browser/src/_locales/he/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json index 3d63f1ce8e..803fff98e4 100644 --- a/apps/browser/src/_locales/hi/messages.json +++ b/apps/browser/src/_locales/hi/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json index a85bc97aba..07fc5b06cc 100644 --- a/apps/browser/src/_locales/hr/messages.json +++ b/apps/browser/src/_locales/hr/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/hu/messages.json b/apps/browser/src/_locales/hu/messages.json index 2a21117131..6f291f0779 100644 --- a/apps/browser/src/_locales/hu/messages.json +++ b/apps/browser/src/_locales/hu/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Megnyitás új ablakban" } } diff --git a/apps/browser/src/_locales/id/messages.json b/apps/browser/src/_locales/id/messages.json index 147a80e801..0e8f9cc18e 100644 --- a/apps/browser/src/_locales/id/messages.json +++ b/apps/browser/src/_locales/id/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json index 87d434d7b4..4b41d79376 100644 --- a/apps/browser/src/_locales/it/messages.json +++ b/apps/browser/src/_locales/it/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Si apre in una nuova finestra" } } diff --git a/apps/browser/src/_locales/ja/messages.json b/apps/browser/src/_locales/ja/messages.json index a70a3a151c..de347a3541 100644 --- a/apps/browser/src/_locales/ja/messages.json +++ b/apps/browser/src/_locales/ja/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "新しいウィンドウで開く" } } diff --git a/apps/browser/src/_locales/ka/messages.json b/apps/browser/src/_locales/ka/messages.json index cb647f18dc..574eda35cf 100644 --- a/apps/browser/src/_locales/ka/messages.json +++ b/apps/browser/src/_locales/ka/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/km/messages.json b/apps/browser/src/_locales/km/messages.json index 9a97e79cbe..1b8c6315be 100644 --- a/apps/browser/src/_locales/km/messages.json +++ b/apps/browser/src/_locales/km/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/kn/messages.json b/apps/browser/src/_locales/kn/messages.json index 91d52d757d..7b84ce9198 100644 --- a/apps/browser/src/_locales/kn/messages.json +++ b/apps/browser/src/_locales/kn/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/ko/messages.json b/apps/browser/src/_locales/ko/messages.json index e206ba1964..66512ce285 100644 --- a/apps/browser/src/_locales/ko/messages.json +++ b/apps/browser/src/_locales/ko/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/lt/messages.json b/apps/browser/src/_locales/lt/messages.json index fe5ab8db0c..2cd47cfb4e 100644 --- a/apps/browser/src/_locales/lt/messages.json +++ b/apps/browser/src/_locales/lt/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/lv/messages.json b/apps/browser/src/_locales/lv/messages.json index c697a15f97..8ea13fd637 100644 --- a/apps/browser/src/_locales/lv/messages.json +++ b/apps/browser/src/_locales/lv/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Atver jaunā logā" } } diff --git a/apps/browser/src/_locales/ml/messages.json b/apps/browser/src/_locales/ml/messages.json index b07fb3d825..a704fc73f8 100644 --- a/apps/browser/src/_locales/ml/messages.json +++ b/apps/browser/src/_locales/ml/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/my/messages.json b/apps/browser/src/_locales/my/messages.json index 9a97e79cbe..1b8c6315be 100644 --- a/apps/browser/src/_locales/my/messages.json +++ b/apps/browser/src/_locales/my/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json index 2e6e149d13..5dfa54f864 100644 --- a/apps/browser/src/_locales/nb/messages.json +++ b/apps/browser/src/_locales/nb/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/ne/messages.json b/apps/browser/src/_locales/ne/messages.json index 9a97e79cbe..1b8c6315be 100644 --- a/apps/browser/src/_locales/ne/messages.json +++ b/apps/browser/src/_locales/ne/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/nl/messages.json b/apps/browser/src/_locales/nl/messages.json index fb19d76339..93b4404eea 100644 --- a/apps/browser/src/_locales/nl/messages.json +++ b/apps/browser/src/_locales/nl/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/nn/messages.json b/apps/browser/src/_locales/nn/messages.json index 9a97e79cbe..1b8c6315be 100644 --- a/apps/browser/src/_locales/nn/messages.json +++ b/apps/browser/src/_locales/nn/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/or/messages.json b/apps/browser/src/_locales/or/messages.json index 9a97e79cbe..1b8c6315be 100644 --- a/apps/browser/src/_locales/or/messages.json +++ b/apps/browser/src/_locales/or/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/pl/messages.json b/apps/browser/src/_locales/pl/messages.json index 5602194d75..4e850d0097 100644 --- a/apps/browser/src/_locales/pl/messages.json +++ b/apps/browser/src/_locales/pl/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Otwiera w nowym oknie" } } diff --git a/apps/browser/src/_locales/pt_BR/messages.json b/apps/browser/src/_locales/pt_BR/messages.json index df3281a595..d8d6fee31c 100644 --- a/apps/browser/src/_locales/pt_BR/messages.json +++ b/apps/browser/src/_locales/pt_BR/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/pt_PT/messages.json b/apps/browser/src/_locales/pt_PT/messages.json index ae5649477c..16646bc752 100644 --- a/apps/browser/src/_locales/pt_PT/messages.json +++ b/apps/browser/src/_locales/pt_PT/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/ro/messages.json b/apps/browser/src/_locales/ro/messages.json index 199ea672d8..6f23171346 100644 --- a/apps/browser/src/_locales/ro/messages.json +++ b/apps/browser/src/_locales/ro/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/ru/messages.json b/apps/browser/src/_locales/ru/messages.json index b076d2017f..43b61b62ef 100644 --- a/apps/browser/src/_locales/ru/messages.json +++ b/apps/browser/src/_locales/ru/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Откроется в новом окне" } } diff --git a/apps/browser/src/_locales/si/messages.json b/apps/browser/src/_locales/si/messages.json index 074813b021..847d422fc8 100644 --- a/apps/browser/src/_locales/si/messages.json +++ b/apps/browser/src/_locales/si/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/sk/messages.json b/apps/browser/src/_locales/sk/messages.json index d1c9fd7ae7..0021695bd6 100644 --- a/apps/browser/src/_locales/sk/messages.json +++ b/apps/browser/src/_locales/sk/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Otvárať v novom okne" } } diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json index e5fa0c23e7..065cb4b200 100644 --- a/apps/browser/src/_locales/sl/messages.json +++ b/apps/browser/src/_locales/sl/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json index 08ed28cf8c..5f43d3ebed 100644 --- a/apps/browser/src/_locales/sr/messages.json +++ b/apps/browser/src/_locales/sr/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/sv/messages.json b/apps/browser/src/_locales/sv/messages.json index 67e14d7eb9..206bd0eac9 100644 --- a/apps/browser/src/_locales/sv/messages.json +++ b/apps/browser/src/_locales/sv/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/te/messages.json b/apps/browser/src/_locales/te/messages.json index 9a97e79cbe..1b8c6315be 100644 --- a/apps/browser/src/_locales/te/messages.json +++ b/apps/browser/src/_locales/te/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/th/messages.json b/apps/browser/src/_locales/th/messages.json index 1abd08cf04..f3e2320417 100644 --- a/apps/browser/src/_locales/th/messages.json +++ b/apps/browser/src/_locales/th/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/tr/messages.json b/apps/browser/src/_locales/tr/messages.json index 25066f7b5c..9779b1bc50 100644 --- a/apps/browser/src/_locales/tr/messages.json +++ b/apps/browser/src/_locales/tr/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Yeni pencerede açılır" } } diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json index afda5c290a..1276348d96 100644 --- a/apps/browser/src/_locales/uk/messages.json +++ b/apps/browser/src/_locales/uk/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/vi/messages.json b/apps/browser/src/_locales/vi/messages.json index d1cdfc0113..5d237c939f 100644 --- a/apps/browser/src/_locales/vi/messages.json +++ b/apps/browser/src/_locales/vi/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json index fb49cfcf92..61c0fb1a66 100644 --- a/apps/browser/src/_locales/zh_CN/messages.json +++ b/apps/browser/src/_locales/zh_CN/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "在新窗口中打开" } } diff --git a/apps/browser/src/_locales/zh_TW/messages.json b/apps/browser/src/_locales/zh_TW/messages.json index 8da41079ca..e444763b3f 100644 --- a/apps/browser/src/_locales/zh_TW/messages.json +++ b/apps/browser/src/_locales/zh_TW/messages.json @@ -2202,5 +2202,8 @@ "example": "CTRL+Shift+L" } } + }, + "opensInANewWindow": { + "message": "Opens in a new window" } } From 2ae93f1fd135e8b22febaac4e7ce004c25aee620 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 5 May 2023 10:14:36 +0200 Subject: [PATCH 04/32] Autosync the updated translations (#5375) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/web/src/locales/af/messages.json | 10 ++-- apps/web/src/locales/ar/messages.json | 10 ++-- apps/web/src/locales/az/messages.json | 10 ++-- apps/web/src/locales/be/messages.json | 10 ++-- apps/web/src/locales/bg/messages.json | 12 ++--- apps/web/src/locales/bn/messages.json | 10 ++-- apps/web/src/locales/bs/messages.json | 10 ++-- apps/web/src/locales/ca/messages.json | 10 ++-- apps/web/src/locales/cs/messages.json | 10 ++-- apps/web/src/locales/cy/messages.json | 10 ++-- apps/web/src/locales/da/messages.json | 10 ++-- apps/web/src/locales/de/messages.json | 10 ++-- apps/web/src/locales/el/messages.json | 10 ++-- apps/web/src/locales/en_GB/messages.json | 10 ++-- apps/web/src/locales/en_IN/messages.json | 10 ++-- apps/web/src/locales/eo/messages.json | 10 ++-- apps/web/src/locales/es/messages.json | 10 ++-- apps/web/src/locales/et/messages.json | 10 ++-- apps/web/src/locales/eu/messages.json | 10 ++-- apps/web/src/locales/fa/messages.json | 10 ++-- apps/web/src/locales/fi/messages.json | 10 ++-- apps/web/src/locales/fil/messages.json | 10 ++-- apps/web/src/locales/fr/messages.json | 10 ++-- apps/web/src/locales/gl/messages.json | 10 ++-- apps/web/src/locales/he/messages.json | 10 ++-- apps/web/src/locales/hi/messages.json | 10 ++-- apps/web/src/locales/hr/messages.json | 10 ++-- apps/web/src/locales/hu/messages.json | 12 ++--- apps/web/src/locales/id/messages.json | 10 ++-- apps/web/src/locales/it/messages.json | 10 ++-- apps/web/src/locales/ja/messages.json | 12 ++--- apps/web/src/locales/ka/messages.json | 10 ++-- apps/web/src/locales/km/messages.json | 10 ++-- apps/web/src/locales/kn/messages.json | 10 ++-- apps/web/src/locales/ko/messages.json | 10 ++-- apps/web/src/locales/lv/messages.json | 10 ++-- apps/web/src/locales/ml/messages.json | 10 ++-- apps/web/src/locales/my/messages.json | 10 ++-- apps/web/src/locales/nb/messages.json | 10 ++-- apps/web/src/locales/ne/messages.json | 10 ++-- apps/web/src/locales/nl/messages.json | 16 +++---- apps/web/src/locales/nn/messages.json | 10 ++-- apps/web/src/locales/or/messages.json | 10 ++-- apps/web/src/locales/pl/messages.json | 10 ++-- apps/web/src/locales/pt_BR/messages.json | 10 ++-- apps/web/src/locales/pt_PT/messages.json | 10 ++-- apps/web/src/locales/ro/messages.json | 10 ++-- apps/web/src/locales/ru/messages.json | 12 ++--- apps/web/src/locales/si/messages.json | 10 ++-- apps/web/src/locales/sk/messages.json | 12 ++--- apps/web/src/locales/sl/messages.json | 10 ++-- apps/web/src/locales/sr/messages.json | 10 ++-- apps/web/src/locales/sr_CS/messages.json | 10 ++-- apps/web/src/locales/sv/messages.json | 10 ++-- apps/web/src/locales/te/messages.json | 10 ++-- apps/web/src/locales/th/messages.json | 10 ++-- apps/web/src/locales/tr/messages.json | 12 ++--- apps/web/src/locales/uk/messages.json | 10 ++-- apps/web/src/locales/vi/messages.json | 10 ++-- apps/web/src/locales/zh_CN/messages.json | 12 ++--- apps/web/src/locales/zh_TW/messages.json | 60 ++++++++++++------------ 61 files changed, 340 insertions(+), 340 deletions(-) diff --git a/apps/web/src/locales/af/messages.json b/apps/web/src/locales/af/messages.json index a7e8771971..33ac9fe5c8 100644 --- a/apps/web/src/locales/af/messages.json +++ b/apps/web/src/locales/af/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/ar/messages.json b/apps/web/src/locales/ar/messages.json index 3fd1118c63..767421e747 100644 --- a/apps/web/src/locales/ar/messages.json +++ b/apps/web/src/locales/ar/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/az/messages.json b/apps/web/src/locales/az/messages.json index c7591088f9..ad45b9b2f0 100644 --- a/apps/web/src/locales/az/messages.json +++ b/apps/web/src/locales/az/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Aşağı KDF iterasiyaları" }, - "lowKdfIterationsDesc": { - "message": "Hesabınızın güvənliyini artırmaq üçün KDF şifrələmə tənzimləmələrinizi yüksəldin." - }, - "changeKdfSettings": { - "message": "KDF tənzimləmələrini dəyişdir" + "updateLowKdfIterationsDesc": { + "message": "Yeni güvənlik tövsiyələrini qarşılamaq və hesab qorumasını təkmilləşdirmək üçün şifrələmə tənzimləmələrinizi güncəlləyin." }, "changeKdfLoggedOutWarning": { "message": "Proses, bütün aktiv seanslardan çıxış etməyinizi təmin edəcək. Təkrar giriş etməyiniz və iki mərhələli giriş quraşdırmasını tamamlamağınız lazımdır. Məlumat itkisinin qarşısını almaq üçün şifrələmə tənzimləmələrinizi dəyişdirməzdən əvvəl anbarınızı xaricə köçürməyinizi tövsiyə edirik." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Aşağıdakı layihələr silinə bilməz. Davam etmək istəyirsiniz?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "KDF tənzimləmələrini güncəllə" } } diff --git a/apps/web/src/locales/be/messages.json b/apps/web/src/locales/be/messages.json index cdb68f97c2..fb45646ea0 100644 --- a/apps/web/src/locales/be/messages.json +++ b/apps/web/src/locales/be/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Нізкае значэнне ітэрацыі KDF" }, - "lowKdfIterationsDesc": { - "message": "Наладзьце ўзровень шыфравання KDF, каб удасканаліць бяспеку вашага ўліковага запісу." - }, - "changeKdfSettings": { - "message": "Змяніце налады KDF" + "updateLowKdfIterationsDesc": { + "message": "Абнавіце свае налады шыфравання, каб адпавядаць новым рэкамендацыям бяспекі і палепшыць абарону ўліковага запісу." }, "changeKdfLoggedOutWarning": { "message": "Калі вы працягніце, то гэта прывядзе да выхаду з усіх актыўных сеансаў. Вам неабходна будзе паўторна выканаць уваход і прайсці двухэтапную праверку. Перад зменай наладаў шыфравання мы рэкамендуем экспартаваць ваша сховішча, каб прадухіліць магчымую страту даных." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Наступныя праекты не могуць быць выдалены. Вы сапраўды хочаце працягнуць?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Абнавіце налады KDF" } } diff --git a/apps/web/src/locales/bg/messages.json b/apps/web/src/locales/bg/messages.json index d15a2dca56..f9bc8494f8 100644 --- a/apps/web/src/locales/bg/messages.json +++ b/apps/web/src/locales/bg/messages.json @@ -697,7 +697,7 @@ "message": "Повторното въвеждане на главната парола е задължително." }, "masterPasswordMinlength": { - "message": "Master password must be at least $VALUE$ characters long.", + "message": "Главната парола трябва да е дълга поне $VALUE$ знака.", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Малко повторения за KDF" }, - "lowKdfIterationsDesc": { - "message": "Увеличете настройките си за шифроване чрез KDF, за да защитите по-добре регистрацията си." - }, - "changeKdfSettings": { - "message": "Промяна на настройките за KDF" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Следните проекти не могат да бъдат изтрити. Искате ли да продължите?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/bn/messages.json b/apps/web/src/locales/bn/messages.json index 8458c7c99f..850c4421c4 100644 --- a/apps/web/src/locales/bn/messages.json +++ b/apps/web/src/locales/bn/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/bs/messages.json b/apps/web/src/locales/bs/messages.json index 2b7bc7c07d..246fe677b6 100644 --- a/apps/web/src/locales/bs/messages.json +++ b/apps/web/src/locales/bs/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/ca/messages.json b/apps/web/src/locales/ca/messages.json index 2a5258f456..2702139c7f 100644 --- a/apps/web/src/locales/ca/messages.json +++ b/apps/web/src/locales/ca/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Iteracions de KDF baixes" }, - "lowKdfIterationsDesc": { - "message": "Augmenteu la configuració de xifratge KDF per millorar la seguretat del compte." - }, - "changeKdfSettings": { - "message": "Canvia la configuració de KDF" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Si continueu, tancareu totes les sessions actives. Haureu de tornar a iniciar sessió i completar la configuració d'inici de sessió en dos passos. Recomanem que exporteu la caixa forta abans de canviar la configuració d'encriptació per evitar la pèrdua de dades." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Els projectes següents no es poden suprimir. Voleu continuar?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/cs/messages.json b/apps/web/src/locales/cs/messages.json index e251cc7ed1..15134f913c 100644 --- a/apps/web/src/locales/cs/messages.json +++ b/apps/web/src/locales/cs/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Aktualizujte své nastavení šifrování tak, aby splňovalo nová bezpečnostní doporučení a zlepšilo ochranu účtu." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Následující projekty nelze smazat. Chcete pokračovat?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Aktualizovat nastavení KDF" } } diff --git a/apps/web/src/locales/cy/messages.json b/apps/web/src/locales/cy/messages.json index 0885b8fa79..3e1c79ab5b 100644 --- a/apps/web/src/locales/cy/messages.json +++ b/apps/web/src/locales/cy/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/da/messages.json b/apps/web/src/locales/da/messages.json index 18b9d9d628..ed964a57b9 100644 --- a/apps/web/src/locales/da/messages.json +++ b/apps/web/src/locales/da/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Få KDF-iterationer" }, - "lowKdfIterationsDesc": { - "message": "Forøg KDF-krypteringsindstillinger for at forbedre kontosikkerheden." - }, - "changeKdfSettings": { - "message": "Skift KDF-indstillinger" + "updateLowKdfIterationsDesc": { + "message": "Opdatér krypteringsindstillingerne for at opfylde nye sikkerhedsanbefalinger og forbedre kontobeskyttelsen." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Flg. projekter kan ikke slettes. Fortsæt?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Opdatér KDF-indstillinger" } } diff --git a/apps/web/src/locales/de/messages.json b/apps/web/src/locales/de/messages.json index 075a806e99..5c84330cfc 100644 --- a/apps/web/src/locales/de/messages.json +++ b/apps/web/src/locales/de/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Geringe KDF-Iterationen" }, - "lowKdfIterationsDesc": { - "message": "Erhöhe deine KDF-Verschlüsselungseinstellungen, um die Sicherheit deines Kontos zu verbessern." - }, - "changeKdfSettings": { - "message": "KDF-Einstellungen ändern" + "updateLowKdfIterationsDesc": { + "message": "Aktualisiere deine Verschlüsselungseinstellungen, um neue Sicherheitsempfehlungen zu erfüllen und den Kontoschutz zu verbessern." }, "changeKdfLoggedOutWarning": { "message": "Wenn du fortfährst, wirst du von allen aktiven Sitzungen abgemeldet. Du musst dich erneut anmelden und die Zwei-Faktor-Authentifizierung durchführen. Wir empfehlen, deinen Tresor zu exportieren, bevor du deine Verschlüsselungseinstellungen änderst, um Datenverluste zu vermeiden." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Die folgenden Projekte können nicht gelöscht werden. Möchtest du fortfahren?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "KDF-Einstellungen aktualisieren" } } diff --git a/apps/web/src/locales/el/messages.json b/apps/web/src/locales/el/messages.json index 3f302f1b90..90896c61f5 100644 --- a/apps/web/src/locales/el/messages.json +++ b/apps/web/src/locales/el/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/en_GB/messages.json b/apps/web/src/locales/en_GB/messages.json index 88a3707568..34c334edc2 100644 --- a/apps/web/src/locales/en_GB/messages.json +++ b/apps/web/src/locales/en_GB/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/en_IN/messages.json b/apps/web/src/locales/en_IN/messages.json index 8ae0992b16..ae212268e4 100644 --- a/apps/web/src/locales/en_IN/messages.json +++ b/apps/web/src/locales/en_IN/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/eo/messages.json b/apps/web/src/locales/eo/messages.json index c1f5337027..78961d3f93 100644 --- a/apps/web/src/locales/eo/messages.json +++ b/apps/web/src/locales/eo/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/es/messages.json b/apps/web/src/locales/es/messages.json index be9098fbce..bc6f5e48e1 100644 --- a/apps/web/src/locales/es/messages.json +++ b/apps/web/src/locales/es/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Iteraciones KDF bajas" }, - "lowKdfIterationsDesc": { - "message": "Aumente los ajustes de cifrado de KDF para mejorar la seguridad de su cuenta." - }, - "changeKdfSettings": { - "message": "Cambiar ajustes de KDF" + "updateLowKdfIterationsDesc": { + "message": "Actualice sus ajustes de cifrado para cumplir con las nuevas recomendaciones de seguridad y mejorar la protección de la cuenta." }, "changeKdfLoggedOutWarning": { "message": "Al continuar, saldrá de todas las sesiones activas. Deberá volver a iniciar sesión y completar la configuración de inicio de sesión en dos pasos. Le recomendamos que exporte su caja fuerte antes de cambiar la configuración de cifrado para evitar la pérdida de datos." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Los siguientes proyectos no pueden ser eliminados. ¿Desea continuar?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Actualizar ajustes de KDF" } } diff --git a/apps/web/src/locales/et/messages.json b/apps/web/src/locales/et/messages.json index f337a7e95e..1049d17f39 100644 --- a/apps/web/src/locales/et/messages.json +++ b/apps/web/src/locales/et/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/eu/messages.json b/apps/web/src/locales/eu/messages.json index a194bb3a79..2c7ef744e3 100644 --- a/apps/web/src/locales/eu/messages.json +++ b/apps/web/src/locales/eu/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/fa/messages.json b/apps/web/src/locales/fa/messages.json index e339146976..207551ef63 100644 --- a/apps/web/src/locales/fa/messages.json +++ b/apps/web/src/locales/fa/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "تکرار KDF کم" }, - "lowKdfIterationsDesc": { - "message": "تنظیمات رمزگذاری KDF خود را برای بهبود امنیت حساب خود افزایش دهید." - }, - "changeKdfSettings": { - "message": "تغییر تنظیمات KDF" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/fi/messages.json b/apps/web/src/locales/fi/messages.json index 1a30bb8424..082cf1560e 100644 --- a/apps/web/src/locales/fi/messages.json +++ b/apps/web/src/locales/fi/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Alhainen KDF-toistomäärä" }, - "lowKdfIterationsDesc": { - "message": "Paranna tilisi suojausta korottamalla KDF-salausasetuksiasi." - }, - "changeKdfSettings": { - "message": "Muuta KDF-asetuksia" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Jos jatkat, kirjataan kaikki aktiiviset istunnot ulos, jonka jälkeen sinun on kirjauduttava sisään uudelleen ja suoritettava kaksivaiheisen todennuksen määritys. Tietojesi säilyvyyden varmistamiseksi suosittelemme, että viet holvisi sisällön ennen kuin muutat salausasetuksiasi." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Seuraavia projekteja ei voi poistaa. Haluatko jatkaa?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/fil/messages.json b/apps/web/src/locales/fil/messages.json index 1520986e8d..b3bd7e66b7 100644 --- a/apps/web/src/locales/fil/messages.json +++ b/apps/web/src/locales/fil/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Mababang KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Dagdagan ang iyong mga setting ng pag encrypt ng KDF upang mapabuti ang seguridad ng iyong account." - }, - "changeKdfSettings": { - "message": "Baguhin ang mga setting ng KDF" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/fr/messages.json b/apps/web/src/locales/fr/messages.json index bf71424199..a6414b1d49 100644 --- a/apps/web/src/locales/fr/messages.json +++ b/apps/web/src/locales/fr/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Itérations KDF basses" }, - "lowKdfIterationsDesc": { - "message": "Augmentez vos paramètres de chiffrement KDF pour améliorer la sécurité de votre compte." - }, - "changeKdfSettings": { - "message": "Changer les paramètres KDF" + "updateLowKdfIterationsDesc": { + "message": "Mettez à jour vos paramètres de chiffrement pour répondre à de nouvelles recommandations de sécurité et améliorer la protection de votre compte." }, "changeKdfLoggedOutWarning": { "message": "En poursuivant, vous serez déconnecté de toutes les sessions actives. Vous devrez vous reconnecter et terminer le paramétrage de l'authentification à deux facteurs. Nous vous recommandons d'exporter votre coffre avant de modifier vos paramètres de chiffrement afin d'éviter toute perte de données." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Les projets suivants ne peuvent pas être supprimés. Voulez-vous continuer ?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Mettre à jour les paramètres KDF" } } diff --git a/apps/web/src/locales/gl/messages.json b/apps/web/src/locales/gl/messages.json index 0885b8fa79..3e1c79ab5b 100644 --- a/apps/web/src/locales/gl/messages.json +++ b/apps/web/src/locales/gl/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/he/messages.json b/apps/web/src/locales/he/messages.json index e472144743..cfbdb543be 100644 --- a/apps/web/src/locales/he/messages.json +++ b/apps/web/src/locales/he/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/hi/messages.json b/apps/web/src/locales/hi/messages.json index 19e27791e8..942d485470 100644 --- a/apps/web/src/locales/hi/messages.json +++ b/apps/web/src/locales/hi/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/hr/messages.json b/apps/web/src/locales/hr/messages.json index 18e6888075..ca13fad9b3 100644 --- a/apps/web/src/locales/hr/messages.json +++ b/apps/web/src/locales/hr/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Niske KDF iteracije" }, - "lowKdfIterationsDesc": { - "message": "Povećaj KDF iteracije za bolju sigurnost tvog računa." - }, - "changeKdfSettings": { - "message": "Promijeni KDF postavke" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Nastavkom ćeš se odjaviti iz svih aktivnih sesija. Morat ćeš se ponovno prijaviti i dovršiti postavljanje prijave dvostrukom autentifikacijom. Preporučujemo izvoz trezora prije promjene postavki enkripcije kako bi se spriječio gubitak podataka." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/hu/messages.json b/apps/web/src/locales/hu/messages.json index 3da42bb887..72e1db9f7f 100644 --- a/apps/web/src/locales/hu/messages.json +++ b/apps/web/src/locales/hu/messages.json @@ -5429,7 +5429,7 @@ "description": "This is used by screen readers to indicate the organization that is currently being shown to the user." }, "accountLoggedInAsName": { - "message": "Account: Logged in as $NAME$", + "message": "Fiók: Bejelentkezve mint $NAME$", "placeholders": { "name": { "content": "$1", @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Alacsony KDF iterációk" }, - "lowKdfIterationsDesc": { - "message": "Növeljük meg a KDF titkosítási beállításait a fiók biztonságának javítása érdekében." - }, - "changeKdfSettings": { - "message": "KDF beállítások megváltoztatása" + "updateLowKdfIterationsDesc": { + "message": "Frissítsük a titkosítási beállításokat, hogy megfeleljünk az új biztonsági ajánlásoknak és javítsuk a fiókvédelmet." }, "changeKdfLoggedOutWarning": { "message": "A folytatással minden aktív munkamenetből kijelentkezik. Újra be kell jelentkeznie, és ki kell töltenie a kétlépcsős bejelentkezési beállításokat. Az adatvesztés elkerülése érdekében javasoljuk, hogy a titkosítási beállítások módosítása előtt exportálja a széfet." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "A következő projektek nem törölhetők. Szeretnénk folytatni?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "KDF beállítások frissítése" } } diff --git a/apps/web/src/locales/id/messages.json b/apps/web/src/locales/id/messages.json index d2fee06457..b17afab162 100644 --- a/apps/web/src/locales/id/messages.json +++ b/apps/web/src/locales/id/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/it/messages.json b/apps/web/src/locales/it/messages.json index 79d25c2050..a57769c264 100644 --- a/apps/web/src/locales/it/messages.json +++ b/apps/web/src/locales/it/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Iterazioni KDF basse" }, - "lowKdfIterationsDesc": { - "message": "Aumenta le impostazioni di criptografia KDF per migliorare la sicurezza del tuo account." - }, - "changeKdfSettings": { - "message": "Cambia impostazioni KDF" + "updateLowKdfIterationsDesc": { + "message": "Aggiorna le tue impostazioni di criptografia per soddisfare le nuove raccomandazioni sulla sicurezza e migliorare la protezione del tuo account." }, "changeKdfLoggedOutWarning": { "message": "Procedere ti farà uscire da tutte le sessioni attive. Dovrai accedere di nuovo e completare la configurazione della verifica in due passaggi. Ti consigliamo di esportare la tua cassaforte prima di cambiare le impostazioni di criptografia per prevenire perdite di dati." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Questi progetti non possono essere eliminati. Vuoi continuare?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Aggiorna impostazioni KDF" } } diff --git a/apps/web/src/locales/ja/messages.json b/apps/web/src/locales/ja/messages.json index a57f46a1b9..aed6b7ac84 100644 --- a/apps/web/src/locales/ja/messages.json +++ b/apps/web/src/locales/ja/messages.json @@ -5429,7 +5429,7 @@ "description": "This is used by screen readers to indicate the organization that is currently being shown to the user." }, "accountLoggedInAsName": { - "message": "Account: Logged in as $NAME$", + "message": "アカウント: $NAME$ としてログインしました", "placeholders": { "name": { "content": "$1", @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "低 KDF イテレーション" }, - "lowKdfIterationsDesc": { - "message": "KDF 暗号化設定を増やし、アカウントのセキュリティを向上してください。" - }, - "changeKdfSettings": { - "message": "KDF 設定の変更" + "updateLowKdfIterationsDesc": { + "message": "新しいセキュリティの推奨事項に対応し、アカウントの保護を向上させるために、暗号化設定を更新してください。" }, "changeKdfLoggedOutWarning": { "message": "続行すると、すべてのアクティブなセッションからログアウトします。再度ログインし、2段階認証を完了する必要があります。 暗号化設定を変更する前に、保管庫をエクスポートしてデータの損失を防ぐことをおすすめします。" @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "次のプロジェクトは削除できません。続行しますか?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "KDF の設定を更新する" } } diff --git a/apps/web/src/locales/ka/messages.json b/apps/web/src/locales/ka/messages.json index 9d7cfd455a..8031b32a61 100644 --- a/apps/web/src/locales/ka/messages.json +++ b/apps/web/src/locales/ka/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/km/messages.json b/apps/web/src/locales/km/messages.json index 0885b8fa79..3e1c79ab5b 100644 --- a/apps/web/src/locales/km/messages.json +++ b/apps/web/src/locales/km/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/kn/messages.json b/apps/web/src/locales/kn/messages.json index 5fc48f3345..3bf3c90700 100644 --- a/apps/web/src/locales/kn/messages.json +++ b/apps/web/src/locales/kn/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/ko/messages.json b/apps/web/src/locales/ko/messages.json index fa02e61325..65df0cb841 100644 --- a/apps/web/src/locales/ko/messages.json +++ b/apps/web/src/locales/ko/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/lv/messages.json b/apps/web/src/locales/lv/messages.json index 081257e409..3cf4a32bda 100644 --- a/apps/web/src/locales/lv/messages.json +++ b/apps/web/src/locales/lv/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Zems KDF atkārtojumu skaits" }, - "lowKdfIterationsDesc": { - "message": "Jāpaaugstina KDF šifrēšanas iestatījumi, lai uzlabotu konta drošību." - }, - "changeKdfSettings": { - "message": "Mainīt KDF iestatījumus" + "updateLowKdfIterationsDesc": { + "message": "Jāatjaunina šifrēšanas iestatījumi, lai atbilstu jaunajiem drošības ieteikumiem un uzlabotu konta aizsardzību." }, "changeKdfLoggedOutWarning": { "message": "Turpinot notiks atteikšanās no visām aktīvām sesijām. Jums būs atkārtoti jāpiesakās un jāveic divpakapāju autentifikācijas uzstādīšana. Mēs iesakām eksportēt savu glabātavu pirms šifrēšanas iestatījumu maiņas lai novērstu datu zudumu." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Zemāk esošos projektus nevar izdzēst. Vai turpināt?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Atjaunināt KDF iestatījumus" } } diff --git a/apps/web/src/locales/ml/messages.json b/apps/web/src/locales/ml/messages.json index 7c4ced3b53..3276c1dbf8 100644 --- a/apps/web/src/locales/ml/messages.json +++ b/apps/web/src/locales/ml/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/my/messages.json b/apps/web/src/locales/my/messages.json index 0885b8fa79..3e1c79ab5b 100644 --- a/apps/web/src/locales/my/messages.json +++ b/apps/web/src/locales/my/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/nb/messages.json b/apps/web/src/locales/nb/messages.json index 30e724e7dc..9d04b8c131 100644 --- a/apps/web/src/locales/nb/messages.json +++ b/apps/web/src/locales/nb/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/ne/messages.json b/apps/web/src/locales/ne/messages.json index 5997101fe4..f90bae4fd5 100644 --- a/apps/web/src/locales/ne/messages.json +++ b/apps/web/src/locales/ne/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/nl/messages.json b/apps/web/src/locales/nl/messages.json index ad5bfddf03..17bbd5d772 100644 --- a/apps/web/src/locales/nl/messages.json +++ b/apps/web/src/locales/nl/messages.json @@ -5429,7 +5429,7 @@ "description": "This is used by screen readers to indicate the organization that is currently being shown to the user." }, "accountLoggedInAsName": { - "message": "Account: Logged in as $NAME$", + "message": "Account: Ingelogd als $NAME$", "placeholders": { "name": { "content": "$1", @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Weinig KDF-iteraties" }, - "lowKdfIterationsDesc": { - "message": "Verhoog je KDF-versleutelingsinstellingen om je account beter te beveiligen." - }, - "changeKdfSettings": { - "message": "KDF-instellingen wijzigen" + "updateLowKdfIterationsDesc": { + "message": "Werk je versleutelingsinstellingen bij om aan de nieuwe beveiligingsaanbevelingen te voldoen en de bescherming van je account te verbeteren." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6730,7 +6727,7 @@ } }, "masterPasswordMinimumlength": { - "message": "Master password must be at least $LENGTH$ characters long.", + "message": "Hoofdwachtwoord moet minstens $LENGTH$ karakters lang zijn.", "placeholders": { "length": { "content": "$1", @@ -6742,7 +6739,7 @@ "message": "Sluiten" }, "notAvailableForFreeOrganization": { - "message": "This feature is not available for free organizations. Contact your organization owner to upgrade." + "message": "Deze functie is niet beschikbaar voor gratis organisaties. Contacteer uw organisatie-eigenaar om te upgraden." }, "smProjectSecretsNoItemsNoAccess": { "message": "Neem contact op met de beheerder van je organisatie om geheimen voor dit project te beheren.", @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "De volgende projecten kunnen niet verwijderd worden. Wil je doorgaan?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "KDF instellingen bijwerken" } } diff --git a/apps/web/src/locales/nn/messages.json b/apps/web/src/locales/nn/messages.json index 98c37b3615..d278862d6d 100644 --- a/apps/web/src/locales/nn/messages.json +++ b/apps/web/src/locales/nn/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/or/messages.json b/apps/web/src/locales/or/messages.json index 0885b8fa79..3e1c79ab5b 100644 --- a/apps/web/src/locales/or/messages.json +++ b/apps/web/src/locales/or/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/pl/messages.json b/apps/web/src/locales/pl/messages.json index ec84ae066e..91cdb35ebd 100644 --- a/apps/web/src/locales/pl/messages.json +++ b/apps/web/src/locales/pl/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Niska liczba iteracji KDF" }, - "lowKdfIterationsDesc": { - "message": "Zwiększ ustawienia szyfrowania KDF, aby poprawić bezpieczeństwo swojego konta." - }, - "changeKdfSettings": { - "message": "Zmień ustawienia KDF" + "updateLowKdfIterationsDesc": { + "message": "Zaktualizuj ustawienia szyfrowania, aby spełnić nowe zalecenia bezpieczeństwa i poprawić ochronę konta." }, "changeKdfLoggedOutWarning": { "message": "Kontynuowanie spowoduje wylogowanie ze wszystkich aktywnych sesji. Będzie trzeba zalogować się ponownie i ukończyć konfigurację logowania dwuetapowego. Zalecamy wyeksportowanie sejfu przed zmianą ustawień szyfrowania, aby zapobiec utracie danych." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Następujące projekty nie mogą zostać usunięte. Czy chcesz kontynuować?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Zaktualizuj ustawienia KDF" } } diff --git a/apps/web/src/locales/pt_BR/messages.json b/apps/web/src/locales/pt_BR/messages.json index beb0b85fb0..1aa1d3750e 100644 --- a/apps/web/src/locales/pt_BR/messages.json +++ b/apps/web/src/locales/pt_BR/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/pt_PT/messages.json b/apps/web/src/locales/pt_PT/messages.json index 9282d69ca1..202b41424d 100644 --- a/apps/web/src/locales/pt_PT/messages.json +++ b/apps/web/src/locales/pt_PT/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/ro/messages.json b/apps/web/src/locales/ro/messages.json index 989eb32960..6b821f1d58 100644 --- a/apps/web/src/locales/ro/messages.json +++ b/apps/web/src/locales/ro/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/ru/messages.json b/apps/web/src/locales/ru/messages.json index 37e6dc1e93..1968bb7349 100644 --- a/apps/web/src/locales/ru/messages.json +++ b/apps/web/src/locales/ru/messages.json @@ -5429,7 +5429,7 @@ "description": "This is used by screen readers to indicate the organization that is currently being shown to the user." }, "accountLoggedInAsName": { - "message": "Account: Logged in as $NAME$", + "message": "Аккаунт: авторизован $NAME$", "placeholders": { "name": { "content": "$1", @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Низкие итерации KDF" }, - "lowKdfIterationsDesc": { - "message": "Увеличьте параметры шифрования KDF, чтобы повысить безопасность аккаунта." - }, - "changeKdfSettings": { - "message": "Изменить параметры KDF" + "updateLowKdfIterationsDesc": { + "message": "Обновите настройки шифрования в соответствии с новыми рекомендациями по безопасности и улучшите защиту аккаунта." }, "changeKdfLoggedOutWarning": { "message": "При продолжении все активные сессии будут завершены. Вам потребуется авторизоваться повторно и выполнить настройку двухэтапной аутентификации. Мы рекомендуем экспортировать хранилище перед изменением настроек шифрования, чтобы предотвратить потерю данных." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Следующие проекты не могут быть удалены. Продолжить?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Обновить параметры KDF" } } diff --git a/apps/web/src/locales/si/messages.json b/apps/web/src/locales/si/messages.json index 6f19450c4d..48d36371d8 100644 --- a/apps/web/src/locales/si/messages.json +++ b/apps/web/src/locales/si/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/sk/messages.json b/apps/web/src/locales/sk/messages.json index a91601d181..5a84bda5ef 100644 --- a/apps/web/src/locales/sk/messages.json +++ b/apps/web/src/locales/sk/messages.json @@ -5429,7 +5429,7 @@ "description": "This is used by screen readers to indicate the organization that is currently being shown to the user." }, "accountLoggedInAsName": { - "message": "Account: Logged in as $NAME$", + "message": "Konto: Prihlásený ako $NAME$", "placeholders": { "name": { "content": "$1", @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Nízky počet iterácií KDF" }, - "lowKdfIterationsDesc": { - "message": "Zvýšte nastavenia šifrovania KDF, aby ste zvýšili bezpečnosť svojho účtu." - }, - "changeKdfSettings": { - "message": "Zmeniť nastavenia KDF" + "updateLowKdfIterationsDesc": { + "message": "Aktualizujte vaše nastavenie šifrovania aby ste boli v súlade s bezpečnostnými odporúčaniami a vylepšili si tak ochranu vášho konta." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Následujúce projekty na nedajú odstrániť. Chcete pokračovať?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Aktualizovať nastavenia KDF" } } diff --git a/apps/web/src/locales/sl/messages.json b/apps/web/src/locales/sl/messages.json index 250a6e12fa..83b0bd661f 100644 --- a/apps/web/src/locales/sl/messages.json +++ b/apps/web/src/locales/sl/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/sr/messages.json b/apps/web/src/locales/sr/messages.json index 3a333108cf..46c8f66d6e 100644 --- a/apps/web/src/locales/sr/messages.json +++ b/apps/web/src/locales/sr/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Ниска KDF понављања" }, - "lowKdfIterationsDesc": { - "message": "Повећајте KDF подешавања шифровања да бисте побољшали безбедност налога." - }, - "changeKdfSettings": { - "message": "Променити KDF подешавања" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Ако наставите, одјавићете се са свих активних сесија. Мораћете поново да се пријавите и завршите подешавање пријаве у два корака. Препоручујемо да извезете трезор пре него што промените подешавања шифровања да бисте спречили губитак података." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Следећи пројекти се не могу брисати. Да ли желите да наставите?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/sr_CS/messages.json b/apps/web/src/locales/sr_CS/messages.json index 09bf856be9..aa92389d40 100644 --- a/apps/web/src/locales/sr_CS/messages.json +++ b/apps/web/src/locales/sr_CS/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/sv/messages.json b/apps/web/src/locales/sv/messages.json index cfd3d77255..9c97c2c99b 100644 --- a/apps/web/src/locales/sv/messages.json +++ b/apps/web/src/locales/sv/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/te/messages.json b/apps/web/src/locales/te/messages.json index 0885b8fa79..3e1c79ab5b 100644 --- a/apps/web/src/locales/te/messages.json +++ b/apps/web/src/locales/te/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/th/messages.json b/apps/web/src/locales/th/messages.json index fb93997d2e..3fb88b729b 100644 --- a/apps/web/src/locales/th/messages.json +++ b/apps/web/src/locales/th/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Change KDF settings" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/tr/messages.json b/apps/web/src/locales/tr/messages.json index a55d08c220..4200a79fb0 100644 --- a/apps/web/src/locales/tr/messages.json +++ b/apps/web/src/locales/tr/messages.json @@ -5429,7 +5429,7 @@ "description": "This is used by screen readers to indicate the organization that is currently being shown to the user." }, "accountLoggedInAsName": { - "message": "Account: Logged in as $NAME$", + "message": "Hesap: $NAME$ olarak giriş yapıldı", "placeholders": { "name": { "content": "$1", @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Düşük KDF iterasyonu" }, - "lowKdfIterationsDesc": { - "message": "Hesabınızın güvenliğini artırmak için KDF şifreleme ayarlarınızı yükseltin." - }, - "changeKdfSettings": { - "message": "KDF ayarlarını değiştir" + "updateLowKdfIterationsDesc": { + "message": "Yeni güvenlik önerilerini karşılamak ve hesap korumasını iyileştirmek için şifreleme ayarlarınızı güncelleyin." }, "changeKdfLoggedOutWarning": { "message": "İşlem, tüm aktif oturumlardan çıkış yapmanızı sağlayacaktır. Tekrar oturum açmanız ve iki adımlı oturum açma kurulumunu tamamlamanız gerekecek. Veri kaybını önlemek için şifreleme ayarlarınızı değiştirmeden önce kasanızı dışa aktarmanızı öneririz." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Aşağıdaki projeler silinemez. Devam etmek istiyor musunuz?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "KDF ayarlarını güncelle" } } diff --git a/apps/web/src/locales/uk/messages.json b/apps/web/src/locales/uk/messages.json index cba4e2ba75..e02081ef0a 100644 --- a/apps/web/src/locales/uk/messages.json +++ b/apps/web/src/locales/uk/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Низький показник KDF-ітерацій" }, - "lowKdfIterationsDesc": { - "message": "Налаштуйте вищий рівень KDF-шифрування для вдосконалення безпеки облікового запису." - }, - "changeKdfSettings": { - "message": "Змінити налаштування KDF" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Продовжуючи, ви вийдете з усіх активних сеансів. Необхідно буде повторно виконати вхід і пройти двоетапну перевірку. Перед зміною налаштувань шифрування ми рекомендуємо експортувати ваше сховище, щоб запобігти можливій втраті даних." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "Неможливо видалити зазначені проєкти. Бажаєте продовжити?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/vi/messages.json b/apps/web/src/locales/vi/messages.json index e9e9fa1180..0196a2c222 100644 --- a/apps/web/src/locales/vi/messages.json +++ b/apps/web/src/locales/vi/messages.json @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "Thay đổi cài đặt KDF" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json index 4f5ccdd78d..a794e0dd72 100644 --- a/apps/web/src/locales/zh_CN/messages.json +++ b/apps/web/src/locales/zh_CN/messages.json @@ -5429,7 +5429,7 @@ "description": "This is used by screen readers to indicate the organization that is currently being shown to the user." }, "accountLoggedInAsName": { - "message": "Account: Logged in as $NAME$", + "message": "账户: 以 $NAME$ 登录", "placeholders": { "name": { "content": "$1", @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "较低的 KDF 迭代" }, - "lowKdfIterationsDesc": { - "message": "增加您的 KDF 加密设置,以提高您账户的安全性。" - }, - "changeKdfSettings": { - "message": "更改 KDF 设置" + "updateLowKdfIterationsDesc": { + "message": "更新您的加密设置以满足新的安全建议以及增强账户保护。" }, "changeKdfLoggedOutWarning": { "message": "接下来将会注销您所有的活动会话。您将需要重新登录并完成两步登录设置。我们建议在更改您的加密设置之前导出您的密码库,以防数据丢失。" @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "无法删除下列项目。是否继续?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "更新 KDF 设置" } } diff --git a/apps/web/src/locales/zh_TW/messages.json b/apps/web/src/locales/zh_TW/messages.json index ef1a977a78..3b435b7348 100644 --- a/apps/web/src/locales/zh_TW/messages.json +++ b/apps/web/src/locales/zh_TW/messages.json @@ -289,11 +289,11 @@ "description": "Search Card type" }, "searchIdentity": { - "message": "Search identities", + "message": "搜尋身分", "description": "Search Identity type" }, "searchSecureNote": { - "message": "Search secure notes", + "message": "搜尋安全筆記", "description": "Search Secure Note type" }, "searchVault": { @@ -480,13 +480,13 @@ "message": "篩選" }, "moveSelectedToOrg": { - "message": "移動所選至組織" + "message": "移動選取的項目至組織" }, "deleteSelected": { - "message": "刪除所選" + "message": "刪除選取的項目" }, "moveSelected": { - "message": "移動所選" + "message": "移動選取的項目" }, "selectAll": { "message": "全選" @@ -697,7 +697,7 @@ "message": "必須再次輸入主密碼。" }, "masterPasswordMinlength": { - "message": "Master password must be at least $VALUE$ characters long.", + "message": "主密碼至少需 $VALUE$ 個字元。", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -756,7 +756,7 @@ "message": "沒有可列出的項目。" }, "noPermissionToViewAllCollectionItems": { - "message": "You do not have permission to view all items in this collection." + "message": "您沒有檢視此集合中所有項目的權限。" }, "noCollectionsInList": { "message": "沒有可列出的集合。" @@ -768,7 +768,7 @@ "message": "沒有可列出的使用者。" }, "noMembersInList": { - "message": "There are no members to list." + "message": "沒有可列出的成員。" }, "noEventsInList": { "message": "沒有可列出的事件。" @@ -915,7 +915,7 @@ } }, "deleteSelectedCollectionsDesc": { - "message": "$COUNT$ collection(s) will be permanently deleted.", + "message": "$COUNT$ 個集合將被永久刪除。", "placeholders": { "count": { "content": "$1", @@ -1001,7 +1001,7 @@ "message": "確認檔案密碼" }, "accountRestrictedOptionDescription": { - "message": "Use your account encryption key, derived from your account's username and Master Password, to encrypt the export and restrict import to only the current Bitwarden account." + "message": "使用衍生自您帳號的使用者名稱與主密碼的加密密鑰,加密此匯出檔案,並限制只能匯入到目前的 Bitwarden 帳號。" }, "passwordProtectedOptionDescription": { "message": "設定一組密碼來加密匯出的資料,並使用此密碼解密以匯入至任意 Bitwarden 帳戶。" @@ -1096,7 +1096,7 @@ "message": "繼續操作將變更您的帳戶電子郵件位址。這不會變更用兩步驟登入的電子郵件地址。您可以在兩步驟登入設定中變更它。" }, "newEmail": { - "message": "新的電子郵件" + "message": "新的電子郵件地址" }, "code": { "message": "代碼" @@ -1114,7 +1114,7 @@ "message": "接下來會登出目前工作階段,並要求您重新登入帳戶。其他裝置上的工作階段最多會保持一個小時。" }, "emailChanged": { - "message": "電子郵件已儲存" + "message": "已變更電子郵件地址" }, "logBackIn": { "message": "請重新登入。" @@ -1156,7 +1156,7 @@ } }, "kdfIterationsWarning": { - "message": "若將 KDF 迭代次數設定太高會導致在 CPU 較慢的裝置上登入(與解鎖)Bitwarden 時降低效能。我們建議您以 $INCREMENT$ 的增量值遞增並在所有的裝置上測試。", + "message": "若將 KDF 迭代次數設太高會導致在 CPU 較慢的裝置上登入 ( 與解鎖) Bitwarden 時降低效能。我們建議您增加 $INCREMENT$ 的值並且在所有的裝置上測試。", "placeholders": { "increment": { "content": "$1", @@ -1169,13 +1169,13 @@ "description": "Memory refers to computer memory (RAM). MB is short for megabytes." }, "argon2Warning": { - "message": "Setting your KDF iterations, memory, and parallelism too high could result in poor performance when logging into (and unlocking) Bitwarden on slower or older devices. We recommend changing these individually in small increments and then test all of your devices." + "message": "若將 KDF 疊代次數、記憶體占用與平行數量設定太高,可能導致在老舊裝置上登入(以及解鎖)時的效能不佳。我們建議分別並小量更動這些設定並在您所有的裝置上測試。" }, "kdfParallelism": { "message": "KDF 平行數量" }, "argon2Desc": { - "message": "Higher KDF iterations, memory, and parallelism can help protect your master password from being brute forced by an attacker." + "message": "更高的 KDF 疊代次數、記憶體占用與平行數量可以避免您的主密碼遭到攻擊者的暴力破解。" }, "changeKdf": { "message": "變更 KDF" @@ -1256,7 +1256,7 @@ "message": "資料匯入成功" }, "importSuccessNumberOfItems": { - "message": "A total of $AMOUNT$ items were imported.", + "message": "一共匯入了 $AMOUNT$ 個項目。", "placeholders": { "amount": { "content": "$1", @@ -1265,7 +1265,7 @@ } }, "dataExportSuccess": { - "message": "Data successfully exported" + "message": "資料匯出成功" }, "importWarning": { "message": "即將匯入資料至 $ORGANIZATION$。您的資料可能會與該組織中的成員共用,確定要繼續嗎?", @@ -1919,7 +1919,7 @@ } }, "premiumPriceWithFamilyPlan": { - "message": "Go premium for just $PRICE$ /year, or get premium accounts for $FAMILYPLANUSERCOUNT$ users and unlimited family sharing with a ", + "message": "升級到進階會員只需 $PRICE$/年,或是可為 $FAMILYPLANUSERCOUNT$ 個使用者取得進階會員與無限制的家庭共享只需: ", "placeholders": { "price": { "content": "$1", @@ -2029,7 +2029,7 @@ "message": "取消訂閱" }, "subscriptionExpiration": { - "message": "Subscription expiration" + "message": "訂閱到期時間" }, "subscriptionCanceled": { "message": "已取消訂閱" @@ -2077,7 +2077,7 @@ "message": "管理訂閱" }, "launchCloudSubscription": { - "message": "Launch Cloud Subscription" + "message": "啟動雲端訂閱" }, "storage": { "message": "儲存空間" @@ -2472,7 +2472,7 @@ "message": "您確定要刪除這個群組?" }, "deleteMultipleGroupsConfirmation": { - "message": "Are you sure you want to delete the following $QUANTITY$ group(s)?", + "message": "您確定要刪除如下 $QUANTITY$ 個群組嗎?", "placeholders": { "quantity": { "content": "$1", @@ -2499,7 +2499,7 @@ "message": "外部 ID 可用於參考,或將此資源與使用者目錄等外部系統連結起來。" }, "nestCollectionUnder": { - "message": "Nest collection under" + "message": "將集合嵌套在" }, "accessControl": { "message": "存取控制" @@ -2532,7 +2532,7 @@ "message": "編輯成員" }, "fieldOnTabRequiresAttention": { - "message": "A field on the '$TAB$' tab requires your attention.", + "message": "「$TAB$」分頁的欄位需要您的注意。", "placeholders": { "tab": { "content": "$1", @@ -2805,7 +2805,7 @@ } }, "deletedCollections": { - "message": "Deleted collections" + "message": "已刪除的集合" }, "deletedCollectionId": { "message": "已刪除集合 $ID$。", @@ -2853,7 +2853,7 @@ } }, "deletedManyGroups": { - "message": "Deleted $QUANTITY$ group(s).", + "message": "已刪除 $QUANTITY$ 個群組。", "placeholders": { "quantity": { "content": "$1", @@ -6563,11 +6563,8 @@ "lowKdfIterations": { "message": "Low KDF Iterations" }, - "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." - }, - "changeKdfSettings": { - "message": "變更 KDF 設定" + "updateLowKdfIterationsDesc": { + "message": "Update your encryption settings to meet new security recommendations and improve account protection." }, "changeKdfLoggedOutWarning": { "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." @@ -6758,5 +6755,8 @@ "smProjectsDeleteBulkConfirmation": { "message": "The following projects can not be deleted. Would you like to continue?", "description": "The message shown to the user when bulk deleting projects and the user doesn't have access to some projects." + }, + "updateKdfSettings": { + "message": "Update KDF settings" } } From d8b8bf521899f654b36f5e35ad724e160422658d Mon Sep 17 00:00:00 2001 From: Oscar Hinton Date: Fri, 5 May 2023 17:13:54 +0200 Subject: [PATCH 05/32] [PM-2136] Change banner button to use bitLink (#5378) --- libs/components/src/banner/banner.stories.ts | 5 +++-- .../src/stories/banner-docs.stories.mdx | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/libs/components/src/banner/banner.stories.ts b/libs/components/src/banner/banner.stories.ts index 55477314f7..e636124fe0 100644 --- a/libs/components/src/banner/banner.stories.ts +++ b/libs/components/src/banner/banner.stories.ts @@ -3,6 +3,7 @@ import { Meta, moduleMetadata, Story } from "@storybook/angular"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { IconButtonModule } from "../icon-button"; +import { LinkModule } from "../link"; import { SharedModule } from "../shared/shared.module"; import { I18nMockService } from "../utils/i18n-mock.service"; @@ -13,7 +14,7 @@ export default { component: BannerComponent, decorators: [ moduleMetadata({ - imports: [SharedModule, IconButtonModule], + imports: [SharedModule, IconButtonModule, LinkModule], providers: [ { provide: I18nService, @@ -45,7 +46,7 @@ const Template: Story = (args: BannerComponent) => ({ template: ` Content Really Long Text Lorem Ipsum Ipsum Ipsum - + `, }); diff --git a/libs/components/src/stories/banner-docs.stories.mdx b/libs/components/src/stories/banner-docs.stories.mdx index 7459a5ddf3..bee0da8bd6 100644 --- a/libs/components/src/stories/banner-docs.stories.mdx +++ b/libs/components/src/stories/banner-docs.stories.mdx @@ -4,15 +4,16 @@ import { Meta, Story } from "@storybook/addon-docs"; # Banner -Banners are used for important communication with the user that needs to be seen right away, but has little effect on the experience. Banners appear at the top of the user's screen on page load and persist across all pages a user navigates to. - -- They should always be dismissable and never use a timeout. If a user dismisses a banner, it should not reappear during that same active session. - -- Use banners sparingly, as they can feel intrusive to the user if they appear unexpectedly. Their effectiveness may decrease if too many are used. +Banners are used for important communication with the user that needs to be seen right away, but has little effect on +the experience. Banners appear at the top of the user's screen on page load and persist across all pages a user +navigates to. +- They should always be dismissable and never use a timeout. If a user dismisses a banner, it should not reappear + during that same active session. +- Use banners sparingly, as they can feel intrusive to the user if they appear unexpectedly. Their effectiveness may + decrease if too many are used. - Avoid stacking multiple banners. - -- Banners support a button link (text button). +- Banners supports buttons and anchors using [bitLink](?path=/story/component-library-link--anchors). ## Types @@ -46,4 +47,5 @@ Rarely used, but may be used to alert users over critical messages or very outda ## Accessibility -Include `role="status" aria-live="polite"` attributes to ensure screen readers announce the content prior to the test of the page. +Dialogs sets the `role="status"` and `aria-live="polite"` attributes to ensure screen readers announce the content +prior to the test of the page. This behaviour can be disabled by setting `[useAlertRole]="false"`. From 53c81a2ee3815453f8e4f3c170646af7f6adfda6 Mon Sep 17 00:00:00 2001 From: Will Martin Date: Fri, 5 May 2023 14:48:12 -0400 Subject: [PATCH 06/32] [SM-673] redirect from SM root to overview page (#5202) * remove deprecated CanActivate; use CanActivateFn; redirect to available org from SM root * fix route * not working: redirect after login * add sync service workaround --- .../secrets-manager/secrets-manager.module.ts | 2 - .../app/secrets-manager/sm-routing.module.ts | 101 ++++++++++-------- .../src/app/secrets-manager/sm.guard.ts | 48 +++++++-- 3 files changed, 96 insertions(+), 55 deletions(-) diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/secrets-manager.module.ts b/bitwarden_license/bit-web/src/app/secrets-manager/secrets-manager.module.ts index 754eca2453..1468af322a 100644 --- a/bitwarden_license/bit-web/src/app/secrets-manager/secrets-manager.module.ts +++ b/bitwarden_license/bit-web/src/app/secrets-manager/secrets-manager.module.ts @@ -5,10 +5,8 @@ import { SharedModule } from "@bitwarden/web-vault/app/shared"; import { LayoutModule } from "./layout/layout.module"; import { SecretsManagerSharedModule } from "./shared/sm-shared.module"; import { SecretsManagerRoutingModule } from "./sm-routing.module"; -import { SMGuard } from "./sm.guard"; @NgModule({ imports: [SharedModule, SecretsManagerSharedModule, SecretsManagerRoutingModule, LayoutModule], - providers: [SMGuard], }) export class SecretsManagerModule {} diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/sm-routing.module.ts b/bitwarden_license/bit-web/src/app/secrets-manager/sm-routing.module.ts index 236881c20b..f279314b43 100644 --- a/bitwarden_license/bit-web/src/app/secrets-manager/sm-routing.module.ts +++ b/bitwarden_license/bit-web/src/app/secrets-manager/sm-routing.module.ts @@ -13,59 +13,70 @@ import { ProjectsModule } from "./projects/projects.module"; import { SecretsModule } from "./secrets/secrets.module"; import { ServiceAccountsModule } from "./service-accounts/service-accounts.module"; import { SettingsModule } from "./settings/settings.module"; -import { SMGuard } from "./sm.guard"; +import { canActivateSM } from "./sm.guard"; import { TrashModule } from "./trash/trash.module"; const routes: Routes = [ buildFlaggedRoute("secretsManager", { - path: ":organizationId", - component: LayoutComponent, - canActivate: [AuthGuard, OrganizationPermissionsGuard, SMGuard], - data: { - organizationPermissions: (org: Organization) => org.canAccessSecretsManager, - }, + path: "", children: [ { path: "", - component: NavigationComponent, - outlet: "sidebar", - }, - { - path: "secrets", - loadChildren: () => SecretsModule, - data: { - titleId: "secrets", - }, - }, - { - path: "projects", - loadChildren: () => ProjectsModule, - data: { - titleId: "projects", - }, - }, - { - path: "service-accounts", - loadChildren: () => ServiceAccountsModule, - data: { - titleId: "serviceAccounts", - }, - }, - { - path: "trash", - loadChildren: () => TrashModule, - data: { - titleId: "trash", - }, - }, - { - path: "settings", - loadChildren: () => SettingsModule, - }, - { - path: "", - loadChildren: () => OverviewModule, + canActivate: [canActivateSM], pathMatch: "full", + children: [], + }, + { + path: ":organizationId", + component: LayoutComponent, + canActivate: [AuthGuard, OrganizationPermissionsGuard], + data: { + organizationPermissions: (org: Organization) => org.canAccessSecretsManager, + }, + children: [ + { + path: "", + component: NavigationComponent, + outlet: "sidebar", + }, + { + path: "secrets", + loadChildren: () => SecretsModule, + data: { + titleId: "secrets", + }, + }, + { + path: "projects", + loadChildren: () => ProjectsModule, + data: { + titleId: "projects", + }, + }, + { + path: "service-accounts", + loadChildren: () => ServiceAccountsModule, + data: { + titleId: "serviceAccounts", + }, + }, + { + path: "trash", + loadChildren: () => TrashModule, + data: { + titleId: "trash", + }, + }, + { + path: "settings", + loadChildren: () => SettingsModule, + }, + { + path: "", + loadChildren: () => OverviewModule, + pathMatch: "full", + }, + ], }, ], }), diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/sm.guard.ts b/bitwarden_license/bit-web/src/app/secrets-manager/sm.guard.ts index b937c3ec07..340f0484f7 100644 --- a/bitwarden_license/bit-web/src/app/secrets-manager/sm.guard.ts +++ b/bitwarden_license/bit-web/src/app/secrets-manager/sm.guard.ts @@ -1,10 +1,42 @@ -import { Injectable } from "@angular/core"; -import { ActivatedRouteSnapshot, CanActivate } from "@angular/router"; +import { inject } from "@angular/core"; +import { + ActivatedRouteSnapshot, + CanActivateFn, + createUrlTreeFromSnapshot, + RouterStateSnapshot, +} from "@angular/router"; -@Injectable() -export class SMGuard implements CanActivate { - async canActivate(route: ActivatedRouteSnapshot) { - // TODO: Verify org - return true; +import { AuthGuard } from "@bitwarden/angular/auth/guards/auth.guard"; +import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; +import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service"; +import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status"; +import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction"; + +/** + * Redirects from root `/sm` to first organization with access to SM + */ +export const canActivateSM: CanActivateFn = async ( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot +) => { + const syncService = inject(SyncService); + const authService = inject(AuthService); + const orgService = inject(OrganizationService); + const authGuard = inject(AuthGuard); + + /** Workaround to avoid service initialization race condition. */ + if ((await syncService.getLastSync()) == null) { + await syncService.fullSync(false); } -} + + if ((await authService.getAuthStatus()) !== AuthenticationStatus.Unlocked) { + return authGuard.canActivate(route, state); + } + + const orgs = await orgService.getAll(); + const smOrg = orgs.find((o) => o.canAccessSecretsManager); + if (smOrg) { + return createUrlTreeFromSnapshot(route, ["/sm", smOrg.id]); + } + return createUrlTreeFromSnapshot(route, ["/vault"]); +}; From a9ab32b476fed8204688aebba0cd8ade57222581 Mon Sep 17 00:00:00 2001 From: Opeyemi <54288773+Eeebru@users.noreply.github.com> Date: Fri, 5 May 2023 21:17:19 +0100 Subject: [PATCH 07/32] Devops 1323 pin actions versions (#5346) * update all actions for version pin * Fix typo * Actions version pin final push * upadte set-up DCT job to use latest gh action --- .../workflows/automatic-issue-responses.yml | 10 +- .../automatic-pull-request-responses.yml | 6 +- .github/workflows/brew-bump-cli.yml | 4 +- .github/workflows/brew-bump-desktop.yml | 6 +- .github/workflows/build-browser.yml | 44 +++--- .github/workflows/build-cli.yml | 40 +++--- .github/workflows/build-desktop.yml | 134 +++++++++--------- .github/workflows/build-web.yml | 40 +++--- .github/workflows/chromatic.yml | 8 +- .github/workflows/crowdin-pull.yml | 8 +- .github/workflows/deploy-non-prod-web.yml | 12 +- .github/workflows/enforce-labels.yml | 2 +- .../workflows/label-issue-pull-request.yml | 2 +- .github/workflows/lint.yml | 4 +- .github/workflows/release-browser.yml | 18 +-- .github/workflows/release-cli.yml | 46 +++--- .github/workflows/release-desktop-beta.yml | 116 +++++++-------- .github/workflows/release-desktop.yml | 44 +++--- .github/workflows/release-qa-web.yml | 12 +- .github/workflows/release-web.yml | 30 ++-- .github/workflows/staged-rollout-desktop.yml | 4 +- .github/workflows/stale-bot.yml | 2 +- .github/workflows/test.yml | 10 +- .github/workflows/version-auto-bump.yml | 2 +- .github/workflows/version-bump.yml | 8 +- .github/workflows/workflow-linter.yml | 2 +- 26 files changed, 307 insertions(+), 307 deletions(-) diff --git a/.github/workflows/automatic-issue-responses.yml b/.github/workflows/automatic-issue-responses.yml index badc10d334..90d561c922 100644 --- a/.github/workflows/automatic-issue-responses.yml +++ b/.github/workflows/automatic-issue-responses.yml @@ -14,7 +14,7 @@ jobs: # Feature request - if: github.event.label.name == 'feature-request' name: Feature request - uses: peter-evans/close-issue@849549ba7c3a595a064c4b2c56f206ee78f93515 # v2.0.0 + uses: peter-evans/close-issue@276d7966e389d888f011539a86c8920025ea0626 # v3.0.1 with: comment: | We use GitHub issues as a place to track bugs and other development related issues. The [Bitwarden Community Forums](https://community.bitwarden.com/) has a [Feature Requests](https://community.bitwarden.com/c/feature-requests) section for submitting, voting for, and discussing requests like this one. @@ -25,7 +25,7 @@ jobs: # Intended behavior - if: github.event.label.name == 'intended-behavior' name: Intended behaviour - uses: peter-evans/close-issue@849549ba7c3a595a064c4b2c56f206ee78f93515 # v2.0.0 + uses: peter-evans/close-issue@276d7966e389d888f011539a86c8920025ea0626 # v3.0.1 with: comment: | Your issue appears to be describing the intended behavior of the software. If you want this to be changed, it would be a feature request. @@ -38,7 +38,7 @@ jobs: # Customer support request - if: github.event.label.name == 'customer-support' name: Customer Support request - uses: peter-evans/close-issue@849549ba7c3a595a064c4b2c56f206ee78f93515 # v2.0.0 + uses: peter-evans/close-issue@276d7966e389d888f011539a86c8920025ea0626 # v3.0.1 with: comment: | We use GitHub issues as a place to track bugs and other development related issues. Your issue appears to be a support request, or would otherwise be better handled by our dedicated Customer Success team. @@ -49,14 +49,14 @@ jobs: # Resolved - if: github.event.label.name == 'resolved' name: Resolved - uses: peter-evans/close-issue@849549ba7c3a595a064c4b2c56f206ee78f93515 # v2.0.0 + uses: peter-evans/close-issue@276d7966e389d888f011539a86c8920025ea0626 # v3.0.1 with: comment: | We’ve closed this issue, as it appears the original problem has been resolved. If this happens again or continues to be a problem, please respond to this issue with any additional detail to assist with reproduction and root cause analysis. # Stale - if: github.event.label.name == 'stale' name: Stale - uses: peter-evans/close-issue@849549ba7c3a595a064c4b2c56f206ee78f93515 # v2.0.0 + uses: peter-evans/close-issue@276d7966e389d888f011539a86c8920025ea0626 # v3.0.1 with: comment: | As we haven’t heard from you about this problem in some time, this issue will now be closed. diff --git a/.github/workflows/automatic-pull-request-responses.yml b/.github/workflows/automatic-pull-request-responses.yml index e994c2f59b..261cd5c255 100644 --- a/.github/workflows/automatic-pull-request-responses.yml +++ b/.github/workflows/automatic-pull-request-responses.yml @@ -14,11 +14,11 @@ jobs: # Translation PR / Crowdin - if: github.event.label.name == 'translation-pr' name: Translation-PR - uses: peter-evans/close-issue@849549ba7c3a595a064c4b2c56f206ee78f93515 # v2.0.0 + uses: peter-evans/close-issue@276d7966e389d888f011539a86c8920025ea0626 # v3.0.1 with: comment: | We really appreciate you taking the time to improve our translations. - + However we use a translation tool called [Crowdin](https://crowdin.com/) to help manage our localization efforts across many different languages. Our translations can only be updated using Crowdin, so we'll have to close this PR, but would really appreciate if you'd consider joining our awesome translation community over at Crowdin. - + More information can be found in the [localization section](https://contributing.bitwarden.com/contributing/#localization-l10n) of our [Contribution Guidelines](https://contributing.bitwarden.com/contributing/) diff --git a/.github/workflows/brew-bump-cli.yml b/.github/workflows/brew-bump-cli.yml index f06517cec6..b90e750414 100644 --- a/.github/workflows/brew-bump-cli.yml +++ b/.github/workflows/brew-bump-cli.yml @@ -17,13 +17,13 @@ jobs: runs-on: macos-11 steps: - name: Login to Azure - uses: Azure/login@1f63701bf3e6892515f1b7ce2d2bf1708b46beaf + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "brew-bump-workflow-pat" diff --git a/.github/workflows/brew-bump-desktop.yml b/.github/workflows/brew-bump-desktop.yml index 32999bba4a..f204d4ff8c 100644 --- a/.github/workflows/brew-bump-desktop.yml +++ b/.github/workflows/brew-bump-desktop.yml @@ -17,19 +17,19 @@ jobs: runs-on: macos-11 steps: - name: Login to Azure - uses: Azure/login@1f63701bf3e6892515f1b7ce2d2bf1708b46beaf + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "brew-bump-workflow-pat" - name: Update Homebrew cask - uses: macauley/action-homebrew-bump-cask@445c42390d790569d938f9068d01af39ca030feb + uses: macauley/action-homebrew-bump-cask@445c42390d790569d938f9068d01af39ca030feb # v1.0.0 with: # Required, custom GitHub access token with the 'public_repo' and 'workflow' scopes token: ${{ steps.retrieve-secrets.outputs.brew-bump-workflow-pat }} diff --git a/.github/workflows/build-browser.yml b/.github/workflows/build-browser.yml index a551fb9d5a..26382e0c5b 100644 --- a/.github/workflows/build-browser.yml +++ b/.github/workflows/build-browser.yml @@ -41,7 +41,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3.0.0 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up cloc run: | @@ -79,7 +79,7 @@ jobs: working-directory: apps/browser steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3.0.0 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Testing locales - extName length run: | @@ -119,7 +119,7 @@ jobs: working-directory: apps/browser steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3.0.0 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3.3.0 @@ -173,56 +173,56 @@ jobs: working-directory: ./ - name: Upload Opera artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: dist-opera-${{ env._BUILD_NUMBER }}.zip path: apps/browser/dist/dist-opera.zip if-no-files-found: error - name: Upload Opera MV3 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: dist-opera-MV3-${{ env._BUILD_NUMBER }}.zip path: apps/browser/dist/dist-opera-mv3.zip if-no-files-found: error - name: Upload Chrome artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: dist-chrome-${{ env._BUILD_NUMBER }}.zip path: apps/browser/dist/dist-chrome.zip if-no-files-found: error - name: Upload Chrome MV3 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: dist-chrome-MV3-${{ env._BUILD_NUMBER }}.zip path: apps/browser/dist/dist-chrome-mv3.zip if-no-files-found: error - name: Upload Firefox artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: dist-firefox-${{ env._BUILD_NUMBER }}.zip path: apps/browser/dist/dist-firefox.zip if-no-files-found: error - name: Upload Edge artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: dist-edge-${{ env._BUILD_NUMBER }}.zip path: apps/browser/dist/dist-edge.zip if-no-files-found: error - name: Upload Edge MV3 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: dist-edge-MV3-${{ env._BUILD_NUMBER }}.zip path: apps/browser/dist/dist-edge-mv3.zip if-no-files-found: error - name: Upload browser source - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: browser-source-${{ env._BUILD_NUMBER }}.zip path: browser-source.zip @@ -230,7 +230,7 @@ jobs: - name: Upload coverage artifact if: false - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: coverage-${{ env._BUILD_NUMBER }}.zip path: apps/browser/coverage/coverage-${{ env._BUILD_NUMBER }}.zip @@ -246,10 +246,10 @@ jobs: _BUILD_NUMBER: ${{ needs.setup.outputs.adj_build_number }} steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3.0.0 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node - uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3.3.0 + uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3.3.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -330,7 +330,7 @@ jobs: ls -la - name: Upload Safari artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: dist-safari-${{ env._BUILD_NUMBER }}.zip path: apps/browser/dist/dist-safari.zip @@ -345,22 +345,22 @@ jobs: - build-safari steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3.0.0 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Login to Azure - uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@471ae4aec27405f16c5b796e288f54262c406e5d + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "crowdin-api-token" - name: Upload Sources - uses: crowdin/github-action@ecd7eb0ef6f3cfa16293c79e9cbc4bc5b5fd9c49 # v1.4.9 + uses: crowdin/github-action@3cabba4ddfd0579a1236b3fb68405236dc489ccc # v1.8.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} @@ -408,7 +408,7 @@ jobs: fi - name: Login to Azure - Prod Subscription - uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 if: failure() with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} @@ -416,13 +416,13 @@ jobs: - name: Retrieve secrets id: retrieve-secrets if: failure() - uses: bitwarden/gh-actions/get-keyvault-secrets@471ae4aec27405f16c5b796e288f54262c406e5d + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "devops-alerts-slack-webhook-url" - name: Notify Slack on failure - uses: act10ns/slack@da3191ebe2e67f49b46880b4633f5591a96d1d33 # v1.5.0 + uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f # v2.0.0 if: failure() env: SLACK_WEBHOOK_URL: ${{ steps.retrieve-secrets.outputs.devops-alerts-slack-webhook-url }} diff --git a/.github/workflows/build-cli.yml b/.github/workflows/build-cli.yml index 58e80442b7..f0b1e0c650 100644 --- a/.github/workflows/build-cli.yml +++ b/.github/workflows/build-cli.yml @@ -38,7 +38,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up cloc run: | @@ -56,7 +56,7 @@ jobs: package_version: ${{ steps.retrieve-version.outputs.package_version }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Get Package Version id: retrieve-version @@ -79,7 +79,7 @@ jobs: _WIN_PKG_VERSION: 3.4 steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Setup Unix Vars run: | @@ -88,7 +88,7 @@ jobs: awk '{print tolower($0)}')" >> $GITHUB_ENV - name: Set up Node - uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -129,14 +129,14 @@ jobs: | awk '{split($0, a); print a[1]}' > bw-${{ env.LOWER_RUNNER_OS }}-sha256-${{ env._PACKAGE_VERSION }}.txt - name: Upload unix zip asset - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip path: apps/cli/dist/bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip if-no-files-found: error - name: Upload unix checksum asset - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bw-${{ env.LOWER_RUNNER_OS }}-sha256-${{ env._PACKAGE_VERSION }}.txt path: apps/cli/dist/bw-${{ env.LOWER_RUNNER_OS }}-sha256-${{ env._PACKAGE_VERSION }}.txt @@ -153,7 +153,7 @@ jobs: _WIN_PKG_VERSION: 3.4 steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Setup Windows builder run: | @@ -162,7 +162,7 @@ jobs: choco install nasm --no-progress - name: Set up Node - uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -264,28 +264,28 @@ jobs: -t sha256 | Out-File -Encoding ASCII ./dist/bw-windows-sha256-${env:_PACKAGE_VERSION}.txt - name: Upload windows zip asset - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bw-windows-${{ env._PACKAGE_VERSION }}.zip path: apps/cli/dist/bw-windows-${{ env._PACKAGE_VERSION }}.zip if-no-files-found: error - name: Upload windows checksum asset - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bw-windows-sha256-${{ env._PACKAGE_VERSION }}.txt path: apps/cli/dist/bw-windows-sha256-${{ env._PACKAGE_VERSION }}.txt if-no-files-found: error - name: Upload Chocolatey asset - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden-cli.${{ env._PACKAGE_VERSION }}.nupkg path: apps/cli/dist/chocolatey/bitwarden-cli.${{ env._PACKAGE_VERSION }}.nupkg if-no-files-found: error - name: Upload NPM Build Directory asset - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden-cli-${{ env._PACKAGE_VERSION }}-npm-build.zip path: apps/cli/build @@ -299,7 +299,7 @@ jobs: _PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Print environment run: | @@ -309,7 +309,7 @@ jobs: echo "BW Package Version: $_PACKAGE_VERSION" - name: Get bw linux cli - uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 + uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: name: bw-linux-${{ env._PACKAGE_VERSION }}.zip path: apps/cli/dist/snap @@ -322,7 +322,7 @@ jobs: ls -alth - name: Build snap - uses: snapcore/action-build@ea14cdeb353272f75977040488ca191880509a8c # v1.1.0 + uses: snapcore/action-build@ea14cdeb353272f75977040488ca191880509a8c # v1.1.0 with: path: apps/cli/dist/snap @@ -351,14 +351,14 @@ jobs: run: sudo snap remove bw - name: Upload snap asset - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bw_${{ env._PACKAGE_VERSION }}_amd64.snap path: apps/cli/dist/snap/bw_${{ env._PACKAGE_VERSION }}_amd64.snap if-no-files-found: error - name: Upload snap checksum asset - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bw-snap-sha256-${{ env._PACKAGE_VERSION }}.txt path: apps/cli/dist/snap/bw-snap-sha256-${{ env._PACKAGE_VERSION }}.txt @@ -396,7 +396,7 @@ jobs: fi - name: Login to Azure - Prod Subscription - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 # v1.1 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 if: failure() with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} @@ -404,13 +404,13 @@ jobs: - name: Retrieve secrets id: retrieve-secrets if: failure() - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "devops-alerts-slack-webhook-url" - name: Notify Slack on failure - uses: act10ns/slack@da3191ebe2e67f49b46880b4633f5591a96d1d33 + uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f # v2.0.0 if: failure() env: SLACK_WEBHOOK_URL: ${{ steps.retrieve-secrets.outputs.devops-alerts-slack-webhook-url }} diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index f863d47009..8c7e05a216 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -40,7 +40,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up cloc run: | @@ -55,7 +55,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Verify run: | @@ -83,7 +83,7 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Get Package Version id: retrieve-version @@ -143,10 +143,10 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -180,7 +180,7 @@ jobs: working-directory: ./ - name: Cache Native Module - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 id: cache with: path: | @@ -204,42 +204,42 @@ jobs: run: npm run dist:lin - name: Upload .deb artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-amd64.deb path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-amd64.deb if-no-files-found: error - name: Upload .rpm artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.rpm path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.rpm if-no-files-found: error - name: Upload .freebsd artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x64.freebsd path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x64.freebsd if-no-files-found: error - name: Upload .snap artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden_${{ env._PACKAGE_VERSION }}_amd64.snap path: apps/desktop/dist/bitwarden_${{ env._PACKAGE_VERSION }}_amd64.snap if-no-files-found: error - name: Upload .AppImage artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.AppImage path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.AppImage if-no-files-found: error - name: Upload auto-update artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: ${{ needs.setup.outputs.release_channel }}-linux.yml path: apps/desktop/dist/${{ needs.setup.outputs.release_channel }}-linux.yml @@ -259,10 +259,10 @@ jobs: _PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -277,7 +277,7 @@ jobs: node-gyp install $(node -v) - name: Install AST - uses: bitwarden/gh-actions/install-ast@471ae4aec27405f16c5b796e288f54262c406e5d + uses: bitwarden/gh-actions/install-ast@34ecb67b2a357795dc893549df0795e7383ff50f - name: Set up environmentF run: choco install checksum --no-progress @@ -296,13 +296,13 @@ jobs: rustup show - name: Login to Azure - uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@471ae4aec27405f16c5b796e288f54262c406e5d + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "code-signing-vault-url, @@ -316,7 +316,7 @@ jobs: working-directory: ./ - name: Cache Native Module - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 id: cache with: path: apps/desktop/desktop_native/*.node @@ -369,91 +369,91 @@ jobs: -NewName bitwarden-${{ env._PACKAGE_VERSION }}-arm64.nsis.7z - name: Upload portable exe artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-Portable-${{ env._PACKAGE_VERSION }}.exe path: apps/desktop/dist/Bitwarden-Portable-${{ env._PACKAGE_VERSION }}.exe if-no-files-found: error - name: Upload installer exe artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-Installer-${{ env._PACKAGE_VERSION }}.exe path: apps/desktop/dist/nsis-web/Bitwarden-Installer-${{ env._PACKAGE_VERSION }}.exe if-no-files-found: error - name: Upload appx ia32 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-ia32.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-ia32.appx if-no-files-found: error - name: Upload store appx ia32 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-ia32-store.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-ia32-store.appx if-no-files-found: error - name: Upload NSIS ia32 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden-${{ env._PACKAGE_VERSION }}-ia32.nsis.7z path: apps/desktop/dist/nsis-web/bitwarden-${{ env._PACKAGE_VERSION }}-ia32.nsis.7z if-no-files-found: error - name: Upload appx x64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x64.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x64.appx if-no-files-found: error - name: Upload store appx x64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x64-store.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x64-store.appx if-no-files-found: error - name: Upload NSIS x64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden-${{ env._PACKAGE_VERSION }}-x64.nsis.7z path: apps/desktop/dist/nsis-web/bitwarden-${{ env._PACKAGE_VERSION }}-x64.nsis.7z if-no-files-found: error - name: Upload appx ARM64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-arm64.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-arm64.appx if-no-files-found: error - name: Upload store appx ARM64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-arm64-store.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-arm64-store.appx if-no-files-found: error - name: Upload NSIS ARM64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden-${{ env._PACKAGE_VERSION }}-arm64.nsis.7z path: apps/desktop/dist/nsis-web/bitwarden-${{ env._PACKAGE_VERSION }}-arm64.nsis.7z if-no-files-found: error - name: Upload nupkg artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden.${{ env._PACKAGE_VERSION }}.nupkg path: apps/desktop/dist/chocolatey/bitwarden.${{ env._PACKAGE_VERSION }}.nupkg if-no-files-found: error - name: Upload auto-update artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: ${{ needs.setup.outputs.release_channel }}.yml path: apps/desktop/dist/nsis-web/${{ needs.setup.outputs.release_channel }}.yml @@ -472,10 +472,10 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -503,14 +503,14 @@ jobs: - name: Cache Build id: build-cache - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/desktop/build key: ${{ runner.os }}-${{ github.run_id }}-build - name: Cache Safari id: safari-cache - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/browser/dist/Safari key: ${{ runner.os }}-${{ github.run_id }}-safari-extension @@ -588,7 +588,7 @@ jobs: working-directory: ./ - name: Cache Native Module - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 id: cache with: path: apps/desktop/desktop_native/*.node @@ -624,10 +624,10 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -655,14 +655,14 @@ jobs: - name: Get Build Cache id: build-cache - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/desktop/build key: ${{ runner.os }}-${{ github.run_id }}-build - name: Setup Safari Cache id: safari-cache - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/browser/dist/Safari key: ${{ runner.os }}-${{ github.run_id }}-safari-extension @@ -740,7 +740,7 @@ jobs: working-directory: ./ - name: Cache Native Module - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 id: cache with: path: apps/desktop/desktop_native/*.node @@ -756,7 +756,7 @@ jobs: run: npm run build - name: Download Browser artifact - uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 + uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: path: ${{ github.workspace }}/browser-build-artifacts @@ -779,28 +779,28 @@ jobs: run: npm run pack:mac - name: Upload .zip artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-universal-mac.zip path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-universal-mac.zip if-no-files-found: error - name: Upload .dmg artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-universal.dmg path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-universal.dmg if-no-files-found: error - name: Upload .dmg blockmap artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-universal.dmg.blockmap path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-universal.dmg.blockmap if-no-files-found: error - name: Upload auto-update artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: ${{ needs.setup.outputs.release_channel }}-mac.yml path: apps/desktop/dist/${{ needs.setup.outputs.release_channel }}-mac.yml @@ -821,10 +821,10 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -852,14 +852,14 @@ jobs: - name: Get Build Cache id: build-cache - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/desktop/build key: ${{ runner.os }}-${{ github.run_id }}-build - name: Setup Safari Cache id: safari-cache - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/browser/dist/Safari key: ${{ runner.os }}-${{ github.run_id }}-safari-extension @@ -937,7 +937,7 @@ jobs: working-directory: ./ - name: Cache Native Module - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 id: cache with: path: apps/desktop/desktop_native/*.node @@ -953,7 +953,7 @@ jobs: run: npm run build - name: Download Browser artifact - uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 + uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: path: ${{ github.workspace }}/browser-build-artifacts @@ -976,7 +976,7 @@ jobs: CSC_FOR_PULL_REQUEST: true - name: Upload .pkg artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-universal.pkg path: apps/desktop/dist/mas-universal/Bitwarden-${{ env._PACKAGE_VERSION }}-universal.pkg @@ -1010,10 +1010,10 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -1036,14 +1036,14 @@ jobs: - name: Get Build Cache id: build-cache - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/desktop/build key: ${{ runner.os }}-${{ github.run_id }}-build - name: Setup Safari Cache id: safari-cache - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/browser/dist/Safari key: ${{ runner.os }}-${{ github.run_id }}-safari-extension @@ -1121,7 +1121,7 @@ jobs: working-directory: ./ - name: Cache Native Module - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 id: cache with: path: apps/desktop/desktop_native/*.node @@ -1137,7 +1137,7 @@ jobs: run: npm run build - name: Download Browser artifact - uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 + uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: path: ${{ github.workspace }}/browser-build-artifacts @@ -1163,7 +1163,7 @@ jobs: run: zip -r Bitwarden-${{ env.PACKAGE_VERSION }}-masdev-universal.zip Bitwarden.app - name: Upload masdev artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-masdev-universal.zip path: apps/desktop/dist/mas-universal/Bitwarden-${{ env._PACKAGE_VERSION }}-masdev-universal.zip @@ -1181,22 +1181,22 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Login to Azure - uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@471ae4aec27405f16c5b796e288f54262c406e5d + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "crowdin-api-token" - name: Upload Sources - uses: crowdin/github-action@ecd7eb0ef6f3cfa16293c79e9cbc4bc5b5fd9c49 + uses: crowdin/github-action@3cabba4ddfd0579a1236b3fb68405236dc489ccc # v1.8.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} @@ -1261,7 +1261,7 @@ jobs: fi - name: Login to Azure - Prod Subscription - uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 if: failure() with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} @@ -1269,13 +1269,13 @@ jobs: - name: Retrieve secrets id: retrieve-secrets if: failure() - uses: bitwarden/gh-actions/get-keyvault-secrets@471ae4aec27405f16c5b796e288f54262c406e5d + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "devops-alerts-slack-webhook-url" - name: Notify Slack on failure - uses: act10ns/slack@da3191ebe2e67f49b46880b4633f5591a96d1d33 + uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f # v2.0.0 if: failure() env: SLACK_WEBHOOK_URL: ${{ steps.retrieve-secrets.outputs.devops-alerts-slack-webhook-url }} diff --git a/.github/workflows/build-web.yml b/.github/workflows/build-web.yml index 49e0d419a0..d957a1f2d2 100644 --- a/.github/workflows/build-web.yml +++ b/.github/workflows/build-web.yml @@ -37,7 +37,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up cloc run: | @@ -56,7 +56,7 @@ jobs: version: ${{ steps.version.outputs.value }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Get GitHub sha as version id: version @@ -87,10 +87,10 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node - uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # v3.4.1 + uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # v3.4.1 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -126,7 +126,7 @@ jobs: run: zip -r web-${{ env._VERSION }}-${{ matrix.name }}.zip build - name: Upload ${{ matrix.name }} artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: web-${{ env._VERSION }}-${{ matrix.name }}.zip path: apps/web/web-${{ env._VERSION }}-${{ matrix.name }}.zip @@ -156,7 +156,7 @@ jobs: _VERSION: ${{ needs.setup.outputs.version }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Check Branch to Publish env: @@ -173,7 +173,7 @@ jobs: ########## ACRs ########## - name: Login to Azure - QA - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 # v1.1 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_QA_KV_CREDENTIALS }} @@ -181,7 +181,7 @@ jobs: run: az acr login -n bitwardenqa - name: Login to Azure - Prod - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 # v1.1 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} @@ -189,7 +189,7 @@ jobs: run: az acr login -n bitwardenprod - name: Download ${{ matrix.artifact_name }} artifact - uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 + uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: name: web-${{ env._VERSION }}-${{ matrix.artifact_name }}.zip path: apps/web @@ -229,13 +229,13 @@ jobs: run: unzip web-${{ env._VERSION }}-${{ matrix.artifact_name }}.zip - name: Login to Azure - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 # v1.1 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve github PAT secrets id: retrieve-secret-pat - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "github-pat-bitwarden-devops-bot-repo-scope" @@ -243,13 +243,13 @@ jobs: - name: Setup DCT if: ${{ env.is_publish_branch == 'true' }} id: setup-dct - uses: bitwarden/gh-actions/setup-docker-trust@a8c384a05a974c05c48374c818b004be221d43ff + uses: bitwarden/gh-actions/setup-docker-trust@ea03b38348a42e18ac63c17f97004697f65e0dc6 with: azure-creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} azure-keyvault-name: "bitwarden-ci" - name: Build Docker image - uses: docker/build-push-action@c56af957549030174b10d6867f20e78cfd7debc5 + uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 # v3.2.0 with: context: apps/web file: apps/web/Dockerfile @@ -282,22 +282,22 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 # v2.3.4 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Login to Azure - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 # v1.1 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "crowdin-api-token" - name: Upload Sources - uses: crowdin/github-action@ecd7eb0ef6f3cfa16293c79e9cbc4bc5b5fd9c49 # v1.4.9 + uses: crowdin/github-action@ecd7eb0ef6f3cfa16293c79e9cbc4bc5b5fd9c49 # v1.4.9 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} @@ -344,7 +344,7 @@ jobs: fi - name: Login to Azure - Prod Subscription - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 # v1.1 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 if: failure() with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} @@ -352,13 +352,13 @@ jobs: - name: Retrieve secrets id: retrieve-secrets if: failure() - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "devops-alerts-slack-webhook-url" - name: Notify Slack on failure - uses: act10ns/slack@da3191ebe2e67f49b46880b4633f5591a96d1d33 # v1.5.1 + uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f # v2.0.0 if: failure() env: SLACK_WEBHOOK_URL: ${{ steps.retrieve-secrets.outputs.devops-alerts-slack-webhook-url }} diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index 7da4123674..0bcfdc1858 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -13,18 +13,18 @@ jobs: steps: - name: Set up Node - uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea # v2.1.5 + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: node-version: "16" - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: fetch-depth: 0 - name: Cache npm id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: "~/.npm" key: ${{ runner.os }}-npm-chromatic-${{ hashFiles('**/package-lock.json') }} @@ -33,7 +33,7 @@ jobs: run: npm ci - name: Publish to Chromatic - uses: chromaui/action@c72f0b48c8887c0ef0abe18ad865a6c1e01e73c6 + uses: chromaui/action@d51b84e79d164fbe8fc5bb7175695d88ddd04b72 # v1.0.0 with: token: ${{ secrets.GITHUB_TOKEN }} projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml index cda1f39262..1bacc203cd 100644 --- a/.github/workflows/crowdin-pull.yml +++ b/.github/workflows/crowdin-pull.yml @@ -23,22 +23,22 @@ jobs: crowdin_project_id: "308189" steps: - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Login to Azure - uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase" - name: Download translations - uses: bitwarden/gh-actions/crowdin@05052c5c575ceb09ceea397fe241879e199ed44b + uses: bitwarden/gh-actions/crowdin@34ecb67b2a357795dc893549df0795e7383ff50f env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} diff --git a/.github/workflows/deploy-non-prod-web.yml b/.github/workflows/deploy-non-prod-web.yml index f5ca49964d..143f520ad1 100644 --- a/.github/workflows/deploy-non-prod-web.yml +++ b/.github/workflows/deploy-non-prod-web.yml @@ -50,7 +50,7 @@ jobs: _ENVIRONMENT_ARTIFACT: ${{ needs.setup.outputs.environment-artifact }} steps: - name: Create GitHub deployment - uses: chrnorm/deployment-action@1b599fe41a0ef1f95191e7f2eec4743f2d7dfc48 + uses: chrnorm/deployment-action@d42cde7132fcec920de534fffc3be83794335c00 # v2.0.5 id: deployment with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -60,10 +60,10 @@ jobs: description: 'Deployment from branch ${{ github.ref_name }}' - name: Checkout Repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Download latest cloud asset - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-web.yml path: apps/web @@ -76,7 +76,7 @@ jobs: run: unzip ${{ env._ENVIRONMENT_ARTIFACT }} - name: Checkout Repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: ref: ${{ env._ENVIRONMENT_BRANCH }} path: deployment @@ -107,7 +107,7 @@ jobs: - name: Update deployment status to Success if: ${{ success() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' environment-url: ${{ env._ENVIRONMENT_URL }} @@ -116,7 +116,7 @@ jobs: - name: Update deployment status to Failure if: ${{ failure() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' environment-url: ${{ env._ENVIRONMENT_URL }} diff --git a/.github/workflows/enforce-labels.yml b/.github/workflows/enforce-labels.yml index 6528c94f1f..213cde0ebf 100644 --- a/.github/workflows/enforce-labels.yml +++ b/.github/workflows/enforce-labels.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Enforce Label - uses: yogevbd/enforce-label-action@8d1e1709b1011e6d90400a0e6cf7c0b77aa5efeb # v2.1.0 + uses: yogevbd/enforce-label-action@a3c219da6b8fa73f6ba62b68ff09c469b3a1c024 # v2.2.2 with: BANNED_LABELS: "hold,needs-qa" BANNED_LABELS_DESCRIPTION: "PRs with the hold or needs-qa labels cannot be merged" diff --git a/.github/workflows/label-issue-pull-request.yml b/.github/workflows/label-issue-pull-request.yml index 9975bd6ef2..8b25d8947e 100644 --- a/.github/workflows/label-issue-pull-request.yml +++ b/.github/workflows/label-issue-pull-request.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Add label to pull request - uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 + uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 # v1.0.4 if: ${{ !github.event.pull_request.head.repo.fork }} with: add-labels: "needs-qa" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 6d0314a052..99be92c941 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3.0.0 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Lint filenames (no capital characters) run: | @@ -39,7 +39,7 @@ jobs: diff <(sort .github/whitelist-capital-letters.txt) <(sort tmp.txt) - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' diff --git a/.github/workflows/release-browser.yml b/.github/workflows/release-browser.yml index ae22876b4c..e7ac530c84 100644 --- a/.github/workflows/release-browser.yml +++ b/.github/workflows/release-browser.yml @@ -27,7 +27,7 @@ jobs: release-version: ${{ steps.version.outputs.version }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Branch check if: ${{ github.event.inputs.release_type != 'Dry Run' }} @@ -41,7 +41,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@ea9fab01d76940267b4147cc1c4542431246b9f6 + uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f with: release-type: ${{ github.event.inputs.release_type }} project-type: ts @@ -56,7 +56,7 @@ jobs: needs: setup steps: - name: Checkout repo - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Testing locales - extName length run: | @@ -92,7 +92,7 @@ jobs: - locales-test steps: - name: Create GitHub deployment - uses: chrnorm/deployment-action@1b599fe41a0ef1f95191e7f2eec4743f2d7dfc48 + uses: chrnorm/deployment-action@d42cde7132fcec920de534fffc3be83794335c00 # v2.0.5 id: deployment with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -103,7 +103,7 @@ jobs: - name: Download latest Release build artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-browser.yml workflow_conclusion: success @@ -116,7 +116,7 @@ jobs: - name: Dry Run - Download latest master build artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-browser.yml workflow_conclusion: success @@ -139,7 +139,7 @@ jobs: - name: Create release if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: ncipollo/release-action@40bb172bd05f266cf9ba4ff965cb61e9ee5f6d01 + uses: ncipollo/release-action@a2e71bdd4e7dab70ca26a852f29600c98b33153e # v1.12.0 with: artifacts: 'browser-source-${{ needs.setup.outputs.release-version }}.zip, dist-chrome-${{ needs.setup.outputs.release-version }}.zip, @@ -155,7 +155,7 @@ jobs: - name: Update deployment status to Success if: ${{ success() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'success' @@ -163,7 +163,7 @@ jobs: - name: Update deployment status to Failure if: ${{ failure() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'failure' diff --git a/.github/workflows/release-cli.yml b/.github/workflows/release-cli.yml index 603459876b..f09d1e8a8d 100644 --- a/.github/workflows/release-cli.yml +++ b/.github/workflows/release-cli.yml @@ -43,7 +43,7 @@ jobs: release-version: ${{ steps.version.outputs.version }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Branch check if: ${{ github.event.inputs.release_type != 'Dry Run' }} @@ -57,7 +57,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@ea9fab01d76940267b4147cc1c4542431246b9f6 + uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f with: release-type: ${{ github.event.inputs.release_type }} project-type: ts @@ -67,7 +67,7 @@ jobs: - name: Create GitHub deployment if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: chrnorm/deployment-action@1b599fe41a0ef1f95191e7f2eec4743f2d7dfc48 + uses: chrnorm/deployment-action@d42cde7132fcec920de534fffc3be83794335c00 # v2.0.5 id: deployment with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -78,7 +78,7 @@ jobs: - name: Download all Release artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-cli.yml path: apps/cli @@ -87,7 +87,7 @@ jobs: - name: Dry Run - Download all artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-cli.yml path: apps/cli @@ -96,7 +96,7 @@ jobs: - name: Create release if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: ncipollo/release-action@58ae73b360456532aafd58ee170c045abbeaee37 # v1.10.0 + uses: ncipollo/release-action@a2e71bdd4e7dab70ca26a852f29600c98b33153e # v1.12.0 env: PKG_VERSION: ${{ steps.version.outputs.version }} with: @@ -118,7 +118,7 @@ jobs: - name: Update deployment status to Success if: ${{ github.event.inputs.release_type != 'Dry Run' && success() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'success' @@ -126,7 +126,7 @@ jobs: - name: Update deployment status to Failure if: ${{ github.event.inputs.release_type != 'Dry Run' && failure() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'failure' @@ -141,16 +141,16 @@ jobs: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Login to Azure - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 # v1.1 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "snapcraft-store-token" @@ -162,7 +162,7 @@ jobs: - name: Download artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-cli.yml path: apps/cli @@ -172,7 +172,7 @@ jobs: - name: Dry Run - Download artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-cli.yml path: apps/cli @@ -195,16 +195,16 @@ jobs: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Login to Azure - uses: Azure/login@24848bc889cfc0a8313c2b3e378ac0d625b9bc16 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "cli-choco-api-key" @@ -220,7 +220,7 @@ jobs: - name: Download artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-cli.yml path: apps/cli/dist @@ -230,7 +230,7 @@ jobs: - name: Dry Run - Download artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-cli.yml path: apps/cli/dist @@ -254,23 +254,23 @@ jobs: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Login to Azure - uses: Azure/login@24848bc889cfc0a8313c2b3e378ac0d625b9bc16 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "npm-api-key" - name: Download artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-cli.yml path: apps/cli/build @@ -280,7 +280,7 @@ jobs: - name: Dry Run - Download artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-cli.yml path: apps/cli/build diff --git a/.github/workflows/release-desktop-beta.yml b/.github/workflows/release-desktop-beta.yml index 614b84cdc8..76db07eb6e 100644 --- a/.github/workflows/release-desktop-beta.yml +++ b/.github/workflows/release-desktop-beta.yml @@ -23,7 +23,7 @@ jobs: build_number: ${{ steps.increment-version.outputs.build_number }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Branch check run: | @@ -47,7 +47,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@ea9fab01d76940267b4147cc1c4542431246b9f6 + uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f with: release-type: 'Initial Release' project-type: ts @@ -115,12 +115,12 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: ref: ${{ needs.setup.outputs.branch-name }} - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -157,42 +157,42 @@ jobs: run: npm run dist:lin - name: Upload .deb artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-amd64.deb path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-amd64.deb if-no-files-found: error - name: Upload .rpm artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.rpm path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.rpm if-no-files-found: error - name: Upload .freebsd artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x64.freebsd path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x64.freebsd if-no-files-found: error - name: Upload .snap artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden_${{ env._PACKAGE_VERSION }}_amd64.snap path: apps/desktop/dist/bitwarden_${{ env._PACKAGE_VERSION }}_amd64.snap if-no-files-found: error - name: Upload .AppImage artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.AppImage path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x86_64.AppImage if-no-files-found: error - name: Upload auto-update artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: ${{ needs.setup.outputs.release-channel }}-linux.yml path: apps/desktop/dist/${{ needs.setup.outputs.release-channel }}-linux.yml @@ -211,12 +211,12 @@ jobs: _PACKAGE_VERSION: ${{ needs.setup.outputs.release-version }} steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: ref: ${{ needs.setup.outputs.branch-name }} - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -231,7 +231,7 @@ jobs: node-gyp install $(node -v) - name: Install AST - uses: bitwarden/gh-actions/install-ast@f135c42c8596cb535c5bcb7523c0b2eef89709ac + uses: bitwarden/gh-actions/install-ast@34ecb67b2a357795dc893549df0795e7383ff50f - name: Set up environment run: choco install checksum --no-progress @@ -243,13 +243,13 @@ jobs: choco --version - name: Login to Azure - uses: Azure/login@1f63701bf3e6892515f1b7ce2d2bf1708b46beaf + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "code-signing-vault-url, @@ -304,91 +304,91 @@ jobs: -NewName bitwarden-${{ env._PACKAGE_VERSION }}-arm64.nsis.7z - name: Upload portable exe artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-Portable-${{ env._PACKAGE_VERSION }}.exe path: apps/desktop/dist/Bitwarden-Portable-${{ env._PACKAGE_VERSION }}.exe if-no-files-found: error - name: Upload installer exe artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-Installer-${{ env._PACKAGE_VERSION }}.exe path: apps/desktop/dist/nsis-web/Bitwarden-Installer-${{ env._PACKAGE_VERSION }}.exe if-no-files-found: error - name: Upload appx ia32 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-ia32.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-ia32.appx if-no-files-found: error - name: Upload store appx ia32 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-ia32-store.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-ia32-store.appx if-no-files-found: error - name: Upload NSIS ia32 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden-${{ env._PACKAGE_VERSION }}-ia32.nsis.7z path: apps/desktop/dist/nsis-web/bitwarden-${{ env._PACKAGE_VERSION }}-ia32.nsis.7z if-no-files-found: error - name: Upload appx x64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x64.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x64.appx if-no-files-found: error - name: Upload store appx x64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-x64-store.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-x64-store.appx if-no-files-found: error - name: Upload NSIS x64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden-${{ env._PACKAGE_VERSION }}-x64.nsis.7z path: apps/desktop/dist/nsis-web/bitwarden-${{ env._PACKAGE_VERSION }}-x64.nsis.7z if-no-files-found: error - name: Upload appx ARM64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-arm64.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-arm64.appx if-no-files-found: error - name: Upload store appx ARM64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-arm64-store.appx path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-arm64-store.appx if-no-files-found: error - name: Upload NSIS ARM64 artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden-${{ env._PACKAGE_VERSION }}-arm64.nsis.7z path: apps/desktop/dist/nsis-web/bitwarden-${{ env._PACKAGE_VERSION }}-arm64.nsis.7z if-no-files-found: error - name: Upload nupkg artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: bitwarden.${{ env._PACKAGE_VERSION }}.nupkg path: apps/desktop/dist/chocolatey/bitwarden.${{ env._PACKAGE_VERSION }}.nupkg if-no-files-found: error - name: Upload auto-update artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: ${{ needs.setup.outputs.release-channel }}.yml path: apps/desktop/dist/nsis-web/${{ needs.setup.outputs.release-channel }}.yml @@ -406,12 +406,12 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: ref: ${{ needs.setup.outputs.branch-name }} - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -434,14 +434,14 @@ jobs: - name: Cache Build id: build-cache - uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/desktop/build key: ${{ runner.os }}-${{ github.run_id }}-build - name: Cache Safari id: safari-cache - uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/browser/dist/Safari key: ${{ runner.os }}-${{ github.run_id }}-safari-extension @@ -535,12 +535,12 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: ref: ${{ needs.setup.outputs.branch-name }} - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -563,14 +563,14 @@ jobs: - name: Get Build Cache id: build-cache - uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/desktop/build key: ${{ runner.os }}-${{ github.run_id }}-build - name: Setup Safari Cache id: safari-cache - uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/browser/dist/Safari key: ${{ runner.os }}-${{ github.run_id }}-safari-extension @@ -653,7 +653,7 @@ jobs: - name: Download artifact from hotfix-rc if: github.ref == 'refs/heads/hotfix-rc' - uses: dawidd6/action-download-artifact@b2abf1705491048a2d7074f7d90513044fd25d39 # v2.19.0 + uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 with: workflow: build-browser.yml workflow_conclusion: success @@ -662,7 +662,7 @@ jobs: - name: Download artifact from rc if: github.ref == 'refs/heads/rc' - uses: dawidd6/action-download-artifact@b2abf1705491048a2d7074f7d90513044fd25d39 # v2.19.0 + uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 with: workflow: build-browser.yml workflow_conclusion: success @@ -671,7 +671,7 @@ jobs: - name: Download artifact from master if: ${{ github.ref != 'refs/heads/rc' && github.ref != 'refs/heads/hotfix-rc' }} - uses: dawidd6/action-download-artifact@b2abf1705491048a2d7074f7d90513044fd25d39 # v2.19.0 + uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 with: workflow: build-browser.yml workflow_conclusion: success @@ -696,28 +696,28 @@ jobs: run: npm run pack:mac - name: Upload .zip artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-universal-mac.zip path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-universal-mac.zip if-no-files-found: error - name: Upload .dmg artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-universal.dmg path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-universal.dmg if-no-files-found: error - name: Upload .dmg blockmap artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-universal.dmg.blockmap path: apps/desktop/dist/Bitwarden-${{ env._PACKAGE_VERSION }}-universal.dmg.blockmap if-no-files-found: error - name: Upload auto-update artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: ${{ needs.setup.outputs.release-channel }}-mac.yml path: apps/desktop/dist/${{ needs.setup.outputs.release-channel }}-mac.yml @@ -737,12 +737,12 @@ jobs: working-directory: apps/desktop steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: ref: ${{ needs.setup.outputs.branch-name }} - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -765,14 +765,14 @@ jobs: - name: Get Build Cache id: build-cache - uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/desktop/build key: ${{ runner.os }}-${{ github.run_id }}-build - name: Setup Safari Cache id: safari-cache - uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: apps/browser/dist/Safari key: ${{ runner.os }}-${{ github.run_id }}-safari-extension @@ -855,7 +855,7 @@ jobs: - name: Download artifact from hotfix-rc if: github.ref == 'refs/heads/hotfix-rc' - uses: dawidd6/action-download-artifact@b2abf1705491048a2d7074f7d90513044fd25d39 # v2.19.0 + uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 with: workflow: build-browser.yml workflow_conclusion: success @@ -864,7 +864,7 @@ jobs: - name: Download artifact from rc if: github.ref == 'refs/heads/rc' - uses: dawidd6/action-download-artifact@b2abf1705491048a2d7074f7d90513044fd25d39 # v2.19.0 + uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 with: workflow: build-browser.yml workflow_conclusion: success @@ -873,7 +873,7 @@ jobs: - name: Download artifact from master if: ${{ github.ref != 'refs/heads/rc' && github.ref != 'refs/heads/hotfix-rc' }} - uses: dawidd6/action-download-artifact@b2abf1705491048a2d7074f7d90513044fd25d39 # v2.19.0 + uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 with: workflow: build-browser.yml workflow_conclusion: success @@ -898,7 +898,7 @@ jobs: APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} - name: Upload .pkg artifact - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: Bitwarden-${{ env._PACKAGE_VERSION }}-universal.pkg path: apps/desktop/dist/mas-universal/Bitwarden-${{ env._PACKAGE_VERSION }}-universal.pkg @@ -916,7 +916,7 @@ jobs: - macos-package-mas steps: - name: Create GitHub deployment - uses: chrnorm/deployment-action@1b599fe41a0ef1f95191e7f2eec4743f2d7dfc48 + uses: chrnorm/deployment-action@d42cde7132fcec920de534fffc3be83794335c00 # v2.0.5 id: deployment with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -926,13 +926,13 @@ jobs: task: release - name: Login to Azure - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "aws-electron-access-id, @@ -944,7 +944,7 @@ jobs: cf-prod-account" - name: Download all artifacts - uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 + uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: path: apps/desktop/artifacts @@ -983,7 +983,7 @@ jobs: - name: Update deployment status to Success if: ${{ success() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'success' @@ -991,7 +991,7 @@ jobs: - name: Update deployment status to Failure if: ${{ failure() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'failure' @@ -1011,7 +1011,7 @@ jobs: - release steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Setup git config run: | diff --git a/.github/workflows/release-desktop.yml b/.github/workflows/release-desktop.yml index b4fa338897..2ddeba4516 100644 --- a/.github/workflows/release-desktop.yml +++ b/.github/workflows/release-desktop.yml @@ -53,7 +53,7 @@ jobs: release-channel: ${{ steps.release-channel.outputs.channel }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Branch check if: ${{ github.event.inputs.release_type != 'Dry Run' }} @@ -67,7 +67,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@ea9fab01d76940267b4147cc1c4542431246b9f6 + uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f with: release-type: ${{ github.event.inputs.release_type }} project-type: ts @@ -94,7 +94,7 @@ jobs: - name: Create GitHub deployment if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: chrnorm/deployment-action@1b599fe41a0ef1f95191e7f2eec4743f2d7dfc48 + uses: chrnorm/deployment-action@d42cde7132fcec920de534fffc3be83794335c00 # v2.0.5 id: deployment with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -104,13 +104,13 @@ jobs: task: release - name: Login to Azure - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "aws-electron-access-id, @@ -123,7 +123,7 @@ jobs: - name: Download all artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-desktop.yml workflow_conclusion: success @@ -132,7 +132,7 @@ jobs: - name: Dry Run - Download all artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-desktop.yml workflow_conclusion: success @@ -185,13 +185,13 @@ jobs: --endpoint-url https://${CF_ACCOUNT}.r2.cloudflarestorage.com - name: Get checksum files - uses: bitwarden/gh-actions/get-checksum@8b6a560c8ad3b9dab81659ae6cd1e319d8771a91 + uses: bitwarden/gh-actions/get-checksum@34ecb67b2a357795dc893549df0795e7383ff50f with: packages_dir: "apps/desktop/artifacts" file_path: "apps/desktop/artifacts/sha256-checksums.txt" - name: Create Release - uses: ncipollo/release-action@95215a3cb6e6a1908b3c44e00b4fdb15548b1e09 + uses: ncipollo/release-action@a2e71bdd4e7dab70ca26a852f29600c98b33153e # v1.12.0 if: ${{ steps.release-channel.outputs.channel == 'latest' && github.event.inputs.release_type != 'Dry Run' && github.event.inputs.github_release }} env: PKG_VERSION: ${{ steps.version.outputs.version }} @@ -231,7 +231,7 @@ jobs: - name: Update deployment status to Success if: ${{ github.event.inputs.release_type != 'Dry Run' && success() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'success' @@ -239,7 +239,7 @@ jobs: - name: Update deployment status to Failure if: ${{ github.event.inputs.release_type != 'Dry Run' && failure() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' state: 'failure' @@ -254,22 +254,22 @@ jobs: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} steps: - name: Checkout Repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Login to Azure - uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "snapcraft-store-token" - name: Install Snap - uses: samuelmeuli/action-snapcraft@10d7d0a84d9d86098b19f872257df314b0bd8e2d # v1.2.0 + uses: samuelmeuli/action-snapcraft@d33c176a9b784876d966f80fb1b461808edc0641 # v2.1.1 with: snapcraft_token: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }} @@ -279,7 +279,7 @@ jobs: - name: Download Snap artifact if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-desktop.yml workflow_conclusion: success @@ -289,7 +289,7 @@ jobs: - name: Dry Run - Download Snap artifact if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-desktop.yml workflow_conclusion: success @@ -313,7 +313,7 @@ jobs: _PKG_VERSION: ${{ needs.setup.outputs.release-version }} steps: - name: Checkout Repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Print Environment run: | @@ -321,13 +321,13 @@ jobs: dotnet nuget --version - name: Login to Azure - uses: Azure/login@24848bc889cfc0a8313c2b3e378ac0d625b9bc16 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "cli-choco-api-key" @@ -345,7 +345,7 @@ jobs: - name: Download choco artifact if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-desktop.yml workflow_conclusion: success @@ -355,7 +355,7 @@ jobs: - name: Dry Run - Download choco artifact if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-desktop.yml workflow_conclusion: success diff --git a/.github/workflows/release-qa-web.yml b/.github/workflows/release-qa-web.yml index dea34a2e6f..2b55d7b22e 100644 --- a/.github/workflows/release-qa-web.yml +++ b/.github/workflows/release-qa-web.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Create GitHub deployment - uses: chrnorm/deployment-action@1b599fe41a0ef1f95191e7f2eec4743f2d7dfc48 + uses: chrnorm/deployment-action@d42cde7132fcec920de534fffc3be83794335c00 # v2.0.5 id: deployment with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -20,10 +20,10 @@ jobs: description: 'Deployment from branch ${{ github.ref_name }}' - name: Checkout Repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Download latest cloud asset - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-web.yml path: apps/web @@ -36,7 +36,7 @@ jobs: run: unzip web-*-cloud-QA.zip - name: Checkout Repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: ref: cf-pages-qa path: deployment @@ -67,7 +67,7 @@ jobs: - name: Update deployment status to Success if: ${{ success() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' environment-url: http://vault.qa.bitwarden.pw @@ -76,7 +76,7 @@ jobs: - name: Update deployment status to Failure if: ${{ failure() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' environment-url: http://vault.qa.bitwarden.pw diff --git a/.github/workflows/release-web.yml b/.github/workflows/release-web.yml index 223198c805..75e4aeb48c 100644 --- a/.github/workflows/release-web.yml +++ b/.github/workflows/release-web.yml @@ -24,7 +24,7 @@ jobs: tag_version: ${{ steps.version.outputs.tag }} steps: - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Branch check if: ${{ github.event.inputs.release_type != 'Dry Run' }} @@ -38,7 +38,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@8f055ef543c7433c967a1b9b04a0f230923233bb + uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f with: release-type: ${{ github.event.inputs.release_type }} project-type: ts @@ -65,12 +65,12 @@ jobs: echo "Github Release Option: $_RELEASE_OPTION" - name: Checkout repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 ########## DockerHub ########## - name: Setup DCT id: setup-dct - uses: bitwarden/gh-actions/setup-docker-trust@a8c384a05a974c05c48374c818b004be221d43ff + uses: bitwarden/gh-actions/setup-docker-trust@34ecb67b2a357795dc893549df0795e7383ff50f with: azure-creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} azure-keyvault-name: "bitwarden-ci" @@ -105,7 +105,7 @@ jobs: ########## ACR ########## - name: Login to Azure - PROD Subscription - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 # v1.1 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} @@ -150,11 +150,11 @@ jobs: _TAG_VERSION: ${{ needs.setup.outputs.release_version }} steps: - name: Checkout Repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Download latest cloud asset if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-web.yml path: apps/web @@ -164,7 +164,7 @@ jobs: - name: Dry Run - Download latest cloud asset if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-web.yml path: apps/web @@ -177,7 +177,7 @@ jobs: run: unzip web-*-cloud-COMMERCIAL.zip - name: Checkout Repo - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 with: ref: cf-pages path: deployment @@ -228,7 +228,7 @@ jobs: steps: - name: Create GitHub deployment if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: chrnorm/deployment-action@1b599fe41a0ef1f95191e7f2eec4743f2d7dfc48 + uses: chrnorm/deployment-action@d42cde7132fcec920de534fffc3be83794335c00 # v2.0.5 id: deployment with: token: '${{ secrets.GITHUB_TOKEN }}' @@ -240,7 +240,7 @@ jobs: - name: Download latest build artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-web.yml path: apps/web/artifacts @@ -251,7 +251,7 @@ jobs: - name: Dry Run - Download latest build artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@850faad0cf6c02a8c0dc46eddde2363fbd6c373a + uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f with: workflow: build-web.yml path: apps/web/artifacts @@ -268,7 +268,7 @@ jobs: - name: Create release if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: ncipollo/release-action@58ae73b360456532aafd58ee170c045abbeaee37 # v1.10.0 + uses: ncipollo/release-action@a2e71bdd4e7dab70ca26a852f29600c98b33153e # v1.12.0 with: name: "Web v${{ needs.setup.outputs.release_version }}" commit: ${{ github.sha }} @@ -281,7 +281,7 @@ jobs: - name: Update deployment status to Success if: ${{ github.event.inputs.release_type != 'Dry Run' && success() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' environment-url: http://vault.bitwarden.com @@ -290,7 +290,7 @@ jobs: - name: Update deployment status to Failure if: ${{ github.event.inputs.release_type != 'Dry Run' && failure() }} - uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86 + uses: chrnorm/deployment-status@2afb7d27101260f4a764219439564d954d10b5b0 # v2.0.1 with: token: '${{ secrets.GITHUB_TOKEN }}' environment-url: http://vault.bitwarden.com diff --git a/.github/workflows/staged-rollout-desktop.yml b/.github/workflows/staged-rollout-desktop.yml index 04c0b8472f..b33bdb9ae3 100644 --- a/.github/workflows/staged-rollout-desktop.yml +++ b/.github/workflows/staged-rollout-desktop.yml @@ -20,13 +20,13 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Login to Azure - uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 with: creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "aws-electron-access-id, diff --git a/.github/workflows/stale-bot.yml b/.github/workflows/stale-bot.yml index 5cd154cf28..98f3b9d172 100644 --- a/.github/workflows/stale-bot.yml +++ b/.github/workflows/stale-bot.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: 'Run stale action' - uses: actions/stale@3cc123766321e9f15a6676375c154ccffb12a358 # v5.0.0 + uses: actions/stale@1160a2240286f5da8ec72b1c0816ce2481aabf84 # v8.0.0 with: stale-issue-label: 'needs-reply' stale-pr-label: 'needs-changes' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 15496b01e0..49dc9db453 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,10 +25,10 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Set up Node - uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' @@ -52,7 +52,7 @@ jobs: run: npm run test - name: Report test results - uses: dorny/test-reporter@c9b3d0e2bd2a4e96aaf424dbaa31c46b42318226 + uses: dorny/test-reporter@c9b3d0e2bd2a4e96aaf424dbaa31c46b42318226 # v1.6.0 if: always() with: name: Test Results @@ -79,10 +79,10 @@ jobs: sudo apt-get install -y gnome-keyring dbus-x11 - name: Checkout repo - uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Install rust - uses: actions-rs/toolchain@88dc2356392166efad76775c878094f4e83ff746 + uses: actions-rs/toolchain@88dc2356392166efad76775c878094f4e83ff746 # v1.0.6 with: toolchain: stable profile: minimal diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml index 4274022f8f..a1de93ae44 100644 --- a/.github/workflows/version-auto-bump.yml +++ b/.github/workflows/version-auto-bump.yml @@ -18,7 +18,7 @@ jobs: version_number: ${{ steps.version.outputs.new-version }} steps: - name: Checkout Branch - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 - name: Calculate bumped version id: version diff --git a/.github/workflows/version-bump.yml b/.github/workflows/version-bump.yml index 0727e927a9..9c74f8b8fc 100644 --- a/.github/workflows/version-bump.yml +++ b/.github/workflows/version-bump.yml @@ -49,7 +49,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af + uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f with: keyvault: "bitwarden-ci" secrets: "github-gpg-private-key, github-gpg-private-key-passphrase" @@ -86,14 +86,14 @@ jobs: - name: Bump Browser Version - Manifest if: ${{ github.event.inputs.client == 'Browser' || github.event.inputs.client == 'All' }} - uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + uses: bitwarden/gh-actions/version-bump@34ecb67b2a357795dc893549df0795e7383ff50f with: version: ${{ github.event.inputs.version_number }} file_path: "apps/browser/src/manifest.json" - name: Bump Browser Version - Manifest v3 if: ${{ github.event.inputs.client == 'Browser' || github.event.inputs.client == 'All' }} - uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + uses: bitwarden/gh-actions/version-bump@34ecb67b2a357795dc893549df0795e7383ff50f with: version: ${{ github.event.inputs.version_number }} file_path: "apps/browser/src/manifest.v3.json" @@ -187,4 +187,4 @@ jobs: ## Objective Automated ${{ github.event.inputs.client }} version bump to ${{ github.event.inputs.version_number }}" - + diff --git a/.github/workflows/workflow-linter.yml b/.github/workflows/workflow-linter.yml index 9fda2eee0a..9db5d644aa 100644 --- a/.github/workflows/workflow-linter.yml +++ b/.github/workflows/workflow-linter.yml @@ -8,4 +8,4 @@ on: jobs: call-workflow: - uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@master + uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@34ecb67b2a357795dc893549df0795e7383ff50f From e13dd1dfefc1ae149c0982facf0c1a5276ca5695 Mon Sep 17 00:00:00 2001 From: Andreas Coroiu Date: Mon, 8 May 2023 08:25:14 +0200 Subject: [PATCH 08/32] feat: tweak error onBlur/touched/untouched behavior (#5292) --- libs/components/src/input/input.directive.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/libs/components/src/input/input.directive.ts b/libs/components/src/input/input.directive.ts index 2c4cb61eb2..60589208d5 100644 --- a/libs/components/src/input/input.directive.ts +++ b/libs/components/src/input/input.directive.ts @@ -78,15 +78,9 @@ export class BitInputDirective implements BitFormFieldControl { return this.id; } - private isActive = true; - @HostListener("blur") - onBlur() { - this.isActive = true; - } - @HostListener("input") onInput() { - this.isActive = false; + this.ngControl?.control?.markAsUntouched(); } get hasError() { @@ -97,7 +91,7 @@ export class BitInputDirective implements BitFormFieldControl { this.ngControl?.errors != null ); } else { - return this.ngControl?.status === "INVALID" && this.ngControl?.touched && this.isActive; + return this.ngControl?.status === "INVALID" && this.ngControl?.touched; } } From f51ed1092ddcf0521ddc7e0d84f340d71dff1b6b Mon Sep 17 00:00:00 2001 From: Oscar Hinton Date: Mon, 8 May 2023 14:46:05 +0200 Subject: [PATCH 09/32] Disable koa-bodyparser from being updated by renovate (#5380) --- .github/renovate.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/renovate.json b/.github/renovate.json index 62559235cd..f086b8785e 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -28,5 +28,13 @@ "matchUpdateTypes": "patch" } ], - "ignoreDeps": ["bootstrap", "electron-builder", "electron", "node-ipc", "regedit", "zone.js"] + "ignoreDeps": [ + "@types/koa-bodyparser", + "bootstrap", + "electron-builder", + "electron", + "node-ipc", + "regedit", + "zone.js" + ] } From d53f79e32517ceede7288345c7017a8c3f427ef3 Mon Sep 17 00:00:00 2001 From: Oscar Hinton Date: Mon, 8 May 2023 14:46:59 +0200 Subject: [PATCH 10/32] Update CL documentation (#5379) --- .prettierrc.json | 10 +- .../src/async-actions/in-forms.stories.mdx | 49 +++--- .../src/async-actions/overview.stories.mdx | 12 +- .../src/async-actions/standalone.stories.mdx | 22 +-- .../src/form-field/form-field.stories.ts | 12 +- .../src/radio-button/radio-button.stories.ts | 159 ++++++------------ .../src/stories/Introduction.stories.mdx | 12 +- .../src/stories/banner-docs.stories.mdx | 24 +-- .../src/stories/button-docs.stories.mdx | 71 +++++--- .../components/src/stories/colors.stories.mdx | 11 ++ .../src/stories/forms-docs.stories.mdx | 51 ++++++ libs/components/src/stories/icons.stories.mdx | 6 +- .../src/stories/input-docs.stories.mdx | 13 +- .../src/stories/table-docs.stories.mdx | 79 +++++++-- 14 files changed, 313 insertions(+), 218 deletions(-) create mode 100644 libs/components/src/stories/forms-docs.stories.mdx diff --git a/.prettierrc.json b/.prettierrc.json index de753c537d..29ca392ce1 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,3 +1,11 @@ { - "printWidth": 100 + "printWidth": 100, + "overrides": [ + { + "files": "*.mdx", + "options": { + "proseWrap": "always" + } + } + ] } diff --git a/libs/components/src/async-actions/in-forms.stories.mdx b/libs/components/src/async-actions/in-forms.stories.mdx index 07db5f4e2a..e0715fed41 100644 --- a/libs/components/src/async-actions/in-forms.stories.mdx +++ b/libs/components/src/async-actions/in-forms.stories.mdx @@ -4,10 +4,12 @@ import { Meta } from "@storybook/addon-docs"; # Async Actions In Forms -These directives should be used when building forms with buttons that trigger long running tasks in the background, -eg. Submit or Delete buttons. For buttons that are not associated with a form see [Standalone Async Actions](?path=/story/component-library-async-actions-standalone-documentation--page). +These directives should be used when building forms with buttons that trigger long running tasks in +the background, eg. Submit or Delete buttons. For buttons that are not associated with a form see +[Standalone Async Actions](?path=/story/component-library-async-actions-standalone-documentation--page). -There are two separately supported use-cases: Submit buttons and standalone form buttons (eg. Delete buttons). +There are two separately supported use-cases: Submit buttons and standalone form buttons (eg. Delete +buttons). ## Usage: Submit buttons @@ -15,17 +17,19 @@ Adding async actions to submit buttons requires the following 3 steps ### 1. Add a handler to your `Component` -A handler is a function that returns a promise or an observable. Functions that return `void` are also supported which is -useful because `return;` can be used to abort an action. +A handler is a function that returns a promise or an observable. Functions that return `void` are +also supported which is useful because `return;` can be used to abort an action. -**NOTE:** Defining the handlers as arrow-functions assigned to variables is mandatory if the handler needs access to the parent -component using the variable `this`. +**NOTE:** Defining the handlers as arrow-functions assigned to variables is mandatory if the handler +needs access to the parent component using the variable `this`. -**NOTE:** `formGroup.invalid` will always return `true` after the first `await` operation, event if the form is not actually -invalid. This is due to the form getting disabled by the `bitSubmit` directive while waiting for the async action to complete. +**NOTE:** `formGroup.invalid` will always return `true` after the first `await` operation, event if +the form is not actually invalid. This is due to the form getting disabled by the `bitSubmit` +directive while waiting for the async action to complete. -**NOTE:** Handlers do not need to check if any previous requests have finished because the directives have built in protection against -users attempting to trigger new actions before the previous ones have finished. +**NOTE:** Handlers do not need to check if any previous requests have finished because the +directives have built in protection against users attempting to trigger new actions before the +previous ones have finished. ```ts @Component({...}) @@ -51,8 +55,8 @@ class Component { Add the `bitSubmit` directive and supply the handler defined in step 1. -**NOTE:** The `directive` is defined using the input syntax: `[input]="handler"`. -This is different from how submit handlers are usually defined with the output syntax `(ngSubmit)="handler()"`. +**NOTE:** The `directive` is defined using the input syntax: `[input]="handler"`. This is different +from how submit handlers are usually defined with the output syntax `(ngSubmit)="handler()"`. **NOTE:** `[bitSubmit]` is used instead of `(ngSubmit)`. Using both is not supported. @@ -76,14 +80,15 @@ Adding async actions to standalone form buttons requires the following 3 steps. ### 1. Add a handler to your `Component` -A handler is a function that returns a promise or an observable. Functions that return `void` are also supported which is -useful for aborting an action. +A handler is a function that returns a promise or an observable. Functions that return `void` are +also supported which is useful for aborting an action. -**NOTE:** Defining the handlers as arrow-functions assigned to variables is mandatory if the handler needs access to the parent -component using the variable `this`. +**NOTE:** Defining the handlers as arrow-functions assigned to variables is mandatory if the handler +needs access to the parent component using the variable `this`. -**NOTE:** Handlers do not need to check if any previous requests have finished because the directives have built in protection against -users attempting to trigger new actions before the previous ones have finished. +**NOTE:** Handlers do not need to check if any previous requests have finished because the +directives have built in protection against users attempting to trigger new actions before the +previous ones have finished. ```ts @Component({...}) @@ -113,7 +118,8 @@ The `bitSubmit` directive is required because of its coordinating role inside of ### 3. Add directives to the `button` element -Add `bitButton`, `bitFormButton`, `bitAction` directives to the button. Make sure to supply a handler. +Add `bitButton`, `bitFormButton`, `bitAction` directives to the button. Make sure to supply a +handler. **NOTE:** A summary of what each directive does can be found inside the source code. @@ -124,7 +130,8 @@ Add `bitButton`, `bitFormButton`, `bitAction` directives to the button. Make sur ## `[bitSubmit]` Disabled Form Submit -If you need your form to be able to submit even when the form is disabled, then add `[allowDisabledFormSubmit]="true"` to your `
` +If you need your form to be able to submit even when the form is disabled, then add +`[allowDisabledFormSubmit]="true"` to your `` ```html ...
diff --git a/libs/components/src/async-actions/overview.stories.mdx b/libs/components/src/async-actions/overview.stories.mdx index 9ec792aefd..7cffd379b8 100644 --- a/libs/components/src/async-actions/overview.stories.mdx +++ b/libs/components/src/async-actions/overview.stories.mdx @@ -4,14 +4,14 @@ import { Meta } from "@storybook/addon-docs"; # Async Actions -The directives in this module makes it easier for developers to reflect the progress of async actions in the UI when using -buttons, while also providing robust and standardized error handling. +The directives in this module makes it easier for developers to reflect the progress of async +actions in the UI when using buttons, while also providing robust and standardized error handling. -These buttons can either be standalone (such as Refresh buttons), submit buttons for forms or as standalone buttons -that are part of a form (such as Delete buttons). +These buttons can either be standalone (such as Refresh buttons), submit buttons for forms or as +standalone buttons that are part of a form (such as Delete buttons). -These directives are meant to replace the older `appApiAction` directive, providing the option to use `observables` and reduce -clutter inside our view `components`. +These directives are meant to replace the older `appApiAction` directive, providing the option to +use `observables` and reduce clutter inside our view `components`. ## When to use? diff --git a/libs/components/src/async-actions/standalone.stories.mdx b/libs/components/src/async-actions/standalone.stories.mdx index 9ff5753388..efde494f2d 100644 --- a/libs/components/src/async-actions/standalone.stories.mdx +++ b/libs/components/src/async-actions/standalone.stories.mdx @@ -4,8 +4,9 @@ import { Meta } from "@storybook/addon-docs"; # Standalone Async Actions -These directives should be used when building a standalone button that triggers a long running task in the background, -eg. Refresh buttons. For non-submit buttons that are associated with forms see [Async Actions In Forms](?path=/story/component-library-async-actions-in-forms-documentation--page). +These directives should be used when building a standalone button that triggers a long running task +in the background, eg. Refresh buttons. For non-submit buttons that are associated with forms see +[Async Actions In Forms](?path=/story/component-library-async-actions-in-forms-documentation--page). ## Usage @@ -13,14 +14,15 @@ Adding async actions to standalone buttons requires the following 2 steps ### 1. Add a handler to your `Component` -A handler is a function that returns a promise or an observable. Functions that return `void` are also supported which is -useful because `return;` can be used to abort an action. +A handler is a function that returns a promise or an observable. Functions that return `void` are +also supported which is useful because `return;` can be used to abort an action. -**NOTE:** Defining the handlers as arrow-functions assigned to variables is mandatory if the handler needs access to the parent -component using the variable `this`. +**NOTE:** Defining the handlers as arrow-functions assigned to variables is mandatory if the handler +needs access to the parent component using the variable `this`. -**NOTE:** Handlers do not need to check if any previous requests have finished because the directives have built in protection against -users attempting to trigger new actions before the previous ones have finished. +**NOTE:** Handlers do not need to check if any previous requests have finished because the +directives have built in protection against users attempting to trigger new actions before the +previous ones have finished. #### Example using promises @@ -48,8 +50,8 @@ class Component { Add the `bitAction` directive and supply the handler defined in step 1. -**NOTE:** The `directive` is defined using the input syntax: `[input]="handler"`. -This is different from how click handlers are usually defined with the output syntax `(click)="handler()"`. +**NOTE:** The `directive` is defined using the input syntax: `[input]="handler"`. This is different +from how click handlers are usually defined with the output syntax `(click)="handler()"`. **NOTE:** `[bitAction]` is used instead of `(click)`. Using both is not supported. diff --git a/libs/components/src/form-field/form-field.stories.ts b/libs/components/src/form-field/form-field.stories.ts index 64080acc66..1b46e6e6c5 100644 --- a/libs/components/src/form-field/form-field.stories.ts +++ b/libs/components/src/form-field/form-field.stories.ts @@ -95,18 +95,12 @@ const Template: Story = (args: BitFormFieldComponent) => ...args, }, template: ` -
+ - Name + Label + Optional Hint - - - Email - - - -
`, }); diff --git a/libs/components/src/radio-button/radio-button.stories.ts b/libs/components/src/radio-button/radio-button.stories.ts index abc7ddb92a..340e76c421 100644 --- a/libs/components/src/radio-button/radio-button.stories.ts +++ b/libs/components/src/radio-button/radio-button.stories.ts @@ -1,5 +1,4 @@ -import { Component, Input } from "@angular/core"; -import { FormsModule, ReactiveFormsModule, FormBuilder } from "@angular/forms"; +import { FormsModule, ReactiveFormsModule, FormControl, FormGroup } from "@angular/forms"; import { Meta, moduleMetadata, Story } from "@storybook/angular"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; @@ -7,70 +6,13 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { I18nMockService } from "../utils/i18n-mock.service"; import { RadioButtonModule } from "./radio-button.module"; - -const template = ` -
- - Group of radio buttons - - {{ option.key }} - This is a hint for the {{option.key}} option - - -
`; - -const TestValue = { - First: 0, - Second: 1, - Third: 2, -}; - -const reverseObject = (obj: Record) => - Object.fromEntries(Object.entries(obj).map(([key, value]) => [value, key])); - -@Component({ - selector: "app-example", - template: template, -}) -class ExampleComponent { - protected TestValue = TestValue; - - protected formObj = this.formBuilder.group({ - radio: TestValue.First, - }); - - @Input() layout: "block" | "inline" = "inline"; - - @Input() label: boolean; - - @Input() set selected(value: number) { - this.formObj.patchValue({ radio: value }); - } - - @Input() set groupDisabled(disable: boolean) { - if (disable) { - this.formObj.disable(); - } else { - this.formObj.enable(); - } - } - - @Input() optionDisabled: number[] = []; - - get blockLayout() { - return this.layout === "block"; - } - - constructor(private formBuilder: FormBuilder) {} -} +import { RadioGroupComponent } from "./radio-group.component"; export default { title: "Component Library/Form/Radio Button", - component: ExampleComponent, + component: RadioGroupComponent, decorators: [ moduleMetadata({ - declarations: [ExampleComponent], imports: [FormsModule, ReactiveFormsModule, RadioButtonModule], providers: [ { @@ -92,56 +34,65 @@ export default { url: "https://www.figma.com/file/Zt3YSeb6E6lebAffrNLa0h/Tailwind-Component-Library?node-id=3930%3A16850&t=xXPx6GJYsJfuMQPE-4", }, }, - args: { - selected: TestValue.First, - groupDisabled: false, - optionDisabled: null, - label: true, - layout: "inline", - }, - argTypes: { - selected: { - options: Object.values(TestValue), - control: { - type: "inline-radio", - labels: reverseObject(TestValue), - }, - }, - optionDisabled: { - options: Object.values(TestValue), - control: { - type: "check", - labels: reverseObject(TestValue), - }, - }, - layout: { - options: ["inline", "block"], - control: { - type: "inline-radio", - labels: ["inline", "block"], - }, - }, - }, } as Meta; -const storyTemplate = ``; +const InlineTemplate: Story = (args: RadioGroupComponent) => ({ + props: { + formObj: new FormGroup({ + radio: new FormControl(0), + }), + }, + template: ` +
+ + Group of radio buttons -const InlineTemplate: Story = (args: ExampleComponent) => ({ - props: args, - template: storyTemplate, + + First + + + + Second + + + + Third + + +
+ `, }); export const Inline = InlineTemplate.bind({}); -Inline.args = { - layout: "inline", -}; -const BlockTemplate: Story = (args: ExampleComponent) => ({ - props: args, - template: storyTemplate, +const BlockTemplate: Story = (args: RadioGroupComponent) => ({ + props: { + formObj: new FormGroup({ + radio: new FormControl(0), + }), + }, + template: ` +
+ + Group of radio buttons + + + First + This is a hint for the first option + + + + Second + This is a hint for the second option + + + + Third + This is a hint for the third option + + +
+ `, }); export const Block = BlockTemplate.bind({}); -Block.args = { - layout: "block", -}; diff --git a/libs/components/src/stories/Introduction.stories.mdx b/libs/components/src/stories/Introduction.stories.mdx index f9cc381398..4fa3af0808 100644 --- a/libs/components/src/stories/Introduction.stories.mdx +++ b/libs/components/src/stories/Introduction.stories.mdx @@ -81,13 +81,13 @@ import { Meta } from "@storybook/addon-docs"; # Bitwarden Component Library -The Bitwarden Component Library is a collection of reusable low level components which empowers designers and -developers to work more efficiently. The primary goal is to ensure a consistent design and behavior across the -different clients and platforms. Currently the primary focus is the web based clients, namely _web_, _browser_ and -_desktop_. +The Bitwarden Component Library is a collection of reusable low level components which empowers +designers and developers to work more efficiently. The primary goal is to ensure a consistent design +and behavior across the different clients and platforms. Currently the primary focus is the web +based clients, namely _web_, _browser_ and _desktop_. -**Roll out status:** we are currently in the process of transitioning the Web Vault to utilize the component library -and the other clients will follow once this work is completed. +**Roll out status:** we are currently in the process of transitioning the Web Vault to utilize the +component library and the other clients will follow once this work is completed.
Configure
diff --git a/libs/components/src/stories/banner-docs.stories.mdx b/libs/components/src/stories/banner-docs.stories.mdx index bee0da8bd6..61b216523b 100644 --- a/libs/components/src/stories/banner-docs.stories.mdx +++ b/libs/components/src/stories/banner-docs.stories.mdx @@ -4,20 +4,21 @@ import { Meta, Story } from "@storybook/addon-docs"; # Banner -Banners are used for important communication with the user that needs to be seen right away, but has little effect on -the experience. Banners appear at the top of the user's screen on page load and persist across all pages a user -navigates to. +Banners are used for important communication with the user that needs to be seen right away, but has +little effect on the experience. Banners appear at the top of the user's screen on page load and +persist across all pages a user navigates to. -- They should always be dismissable and never use a timeout. If a user dismisses a banner, it should not reappear - during that same active session. -- Use banners sparingly, as they can feel intrusive to the user if they appear unexpectedly. Their effectiveness may - decrease if too many are used. +- They should always be dismissable and never use a timeout. If a user dismisses a banner, it should + not reappear during that same active session. +- Use banners sparingly, as they can feel intrusive to the user if they appear unexpectedly. Their + effectiveness may decrease if too many are used. - Avoid stacking multiple banners. -- Banners supports buttons and anchors using [bitLink](?path=/story/component-library-link--anchors). +- Banners support a button link (text button). ## Types -Icons should remain consistent across these types. Do not change the icon without consulting designers. +Icons should remain consistent across these types. Do not change the icon without consulting +designers. Use the following guidelines to help choose the correct type of banner. @@ -47,5 +48,6 @@ Rarely used, but may be used to alert users over critical messages or very outda ## Accessibility -Dialogs sets the `role="status"` and `aria-live="polite"` attributes to ensure screen readers announce the content -prior to the test of the page. This behaviour can be disabled by setting `[useAlertRole]="false"`. +Banners sets the `role="status"` and `aria-live="polite"` attributes to ensure screen readers +announce the content prior to the test of the page. This behaviour can be disabled by setting +`[useAlertRole]="false"`. diff --git a/libs/components/src/stories/button-docs.stories.mdx b/libs/components/src/stories/button-docs.stories.mdx index c598f2d222..3551be8cf6 100644 --- a/libs/components/src/stories/button-docs.stories.mdx +++ b/libs/components/src/stories/button-docs.stories.mdx @@ -4,30 +4,54 @@ import { Meta, Story } from "@storybook/addon-docs"; # Button -Use buttons for actions in forms, dialogs, and more with support for style, block, icon, and state. +Buttons are interactive elements that can be triggered using a mouse, keyboard, or touch. They are +used to indicate actions that can be performed by a user such as submitting a form. -For pairings in the bottom left corner of a page or component, the `primary` call to action will go on the left side of a button group with the `secondary` call to action option on the left. +## Guidelines -Pairings in the top right corner of a page, should have the `primary` call to action on the right. +### Choosing the `` or `