mirror of
https://github.com/bitwarden/browser
synced 2025-12-20 18:23:31 +00:00
* [PM-10395] Add new item type ssh key (#10360) * Implement ssh-key cipher type * Fix linting * Fix edit and view components for ssh-keys on desktop * Fix tests * Remove ssh key type references * Remove add ssh key option * Fix typo * Add tests * [PM-10399] Add ssh key import export for bitwarden json (#10529) * Add ssh key import export for bitwarden json * Remove key type from ssh key export * [PM-10406] Add privatekey publickey and fingerprint to both add-edit and view co… (#11046) * Add privatekey publickey and fingerprint to both add-edit and view components * Remove wrong a11y title * Fix testid * [PM-10098] SSH Agent & SSH Key creation for Bitwarden Desktop (#10293) * Add ssh agent, generator & import * Move ssh agent code to bitwarden-russh crate * Remove generator component * Cleanup * Cleanup * Remove left over sshGenerator reference * Cleanup * Add documentation to sshkeyimportstatus * Fix outdated variable name * Update apps/desktop/src/platform/preload.ts Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * Rename renderersshagent * Rename MainSshAgentService * Improve clarity of 'id' variables being used * Improve clarity of 'id' variables being used * Update apps/desktop/src/vault/app/vault/add-edit.component.html Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * Fix outdated cipher/messageid names * Rename SSH to Ssh * Make agent syncing more reactive * Move constants to top of class * Make sshkey cipher filtering clearer * Add stricter equality check on ssh key unlock * Fix build and messages * Fix incorrect featureflag name * Replace anonymous async function with switchmap pipe * Fix build * Update apps/desktop/desktop_native/napi/src/lib.rs Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * Revert incorrectly renamed 'Ssh' usages to SSH * Run cargo fmt * Clean up ssh agent sock path logic * Cleanup and split to platform specific files * Small cleanup * Pull out generator and importer into core * Rename renderersshagentservice to sshagentservice * Rename cipheruuid to cipher_id * Drop ssh dependencies from napi crate * Clean up windows build * Small cleanup * Small cleanup * Cleanup * Add rxjs pipeline for agent services * [PM-12555] Pkcs8 sshkey import & general ssh key import tests (#11048) * Add pkcs8 import and tests * Add key type unsupported error * Remove unsupported formats * Remove code for unsupported formats * Fix encrypted pkcs8 import * Add ed25519 pkcs8 unencrypted test file * SSH agent rxjs tweaks (#11148) * feat: rewrite sshagent.signrequest as purely observable * feat: fail the request when unlock times out * chore: clean up, add some clarifying comments * chore: remove unused dependency * fix: result `undefined` crashing in NAPI -> Rust * Allow concurrent SSH requests in rust * Remove unwraps * Cleanup and add init service init call * Fix windows * Fix timeout behavior on locked vault --------- Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> * Fix libc dependency being duplicated * fix SSH casing (#11840) * Move ssh agent behind feature flag (#11841) * Move ssh agent behind feature flag * Add separate flag for ssh agent * [PM-14215] fix unsupported key type error message (#11788) * Fix error message for import of unsupported ssh keys * Use triple equals in add-edit component for ssh keys --------- Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com> Co-authored-by: aj-bw <81774843+aj-bw@users.noreply.github.com>
94 lines
4.6 KiB
TypeScript
94 lines
4.6 KiB
TypeScript
/**
|
|
* Feature flags.
|
|
*
|
|
* Flags MUST be short lived and SHALL be removed once enabled.
|
|
*/
|
|
export enum FeatureFlag {
|
|
BrowserFilelessImport = "browser-fileless-import",
|
|
ItemShare = "item-share",
|
|
GeneratorToolsModernization = "generator-tools-modernization",
|
|
EnableConsolidatedBilling = "enable-consolidated-billing",
|
|
AC1795_UpdatedSubscriptionStatusSection = "AC-1795_updated-subscription-status-section",
|
|
ExtensionRefresh = "extension-refresh",
|
|
PersistPopupView = "persist-popup-view",
|
|
PM4154_BulkEncryptionService = "PM-4154-bulk-encryption-service",
|
|
UseTreeWalkerApiForPageDetailsCollection = "use-tree-walker-api-for-page-details-collection",
|
|
EmailVerification = "email-verification",
|
|
InlineMenuFieldQualification = "inline-menu-field-qualification",
|
|
MemberAccessReport = "ac-2059-member-access-report",
|
|
TwoFactorComponentRefactor = "two-factor-component-refactor",
|
|
InlineMenuPositioningImprovements = "inline-menu-positioning-improvements",
|
|
ProviderClientVaultPrivacyBanner = "ac-2833-provider-client-vault-privacy-banner",
|
|
VaultBulkManagementAction = "vault-bulk-management-action",
|
|
IdpAutoSubmitLogin = "idp-auto-submit-login",
|
|
UnauthenticatedExtensionUIRefresh = "unauth-ui-refresh",
|
|
EnableUpgradePasswordManagerSub = "AC-2708-upgrade-password-manager-sub",
|
|
GenerateIdentityFillScriptRefactor = "generate-identity-fill-script-refactor",
|
|
EnableNewCardCombinedExpiryAutofill = "enable-new-card-combined-expiry-autofill",
|
|
DelayFido2PageScriptInitWithinMv2 = "delay-fido2-page-script-init-within-mv2",
|
|
AccountDeprovisioning = "pm-10308-account-deprovisioning",
|
|
SSHKeyVaultItem = "ssh-key-vault-item",
|
|
SSHAgent = "ssh-agent",
|
|
NotificationBarAddLoginImprovements = "notification-bar-add-login-improvements",
|
|
AC2476_DeprecateStripeSourcesAPI = "AC-2476-deprecate-stripe-sources-api",
|
|
CipherKeyEncryption = "cipher-key-encryption",
|
|
VerifiedSsoDomainEndpoint = "pm-12337-refactor-sso-details-endpoint",
|
|
PM11901_RefactorSelfHostingLicenseUploader = "PM-11901-refactor-self-hosting-license-uploader",
|
|
AccessIntelligence = "pm-13227-access-intelligence",
|
|
Pm13322AddPolicyDefinitions = "pm-13322-add-policy-definitions",
|
|
LimitCollectionCreationDeletionSplit = "pm-10863-limit-collection-creation-deletion-split",
|
|
CriticalApps = "pm-14466-risk-insights-critical-application",
|
|
}
|
|
|
|
export type AllowedFeatureFlagTypes = boolean | number | string;
|
|
|
|
// Helper to ensure the value is treated as a boolean.
|
|
const FALSE = false as boolean;
|
|
|
|
/**
|
|
* Default value for feature flags.
|
|
*
|
|
* DO NOT enable previously disabled flags, REMOVE them instead.
|
|
* We support true as a value as we prefer flags to "enable" not "disable".
|
|
*/
|
|
export const DefaultFeatureFlagValue = {
|
|
[FeatureFlag.BrowserFilelessImport]: FALSE,
|
|
[FeatureFlag.ItemShare]: FALSE,
|
|
[FeatureFlag.GeneratorToolsModernization]: FALSE,
|
|
[FeatureFlag.EnableConsolidatedBilling]: FALSE,
|
|
[FeatureFlag.AC1795_UpdatedSubscriptionStatusSection]: FALSE,
|
|
[FeatureFlag.ExtensionRefresh]: FALSE,
|
|
[FeatureFlag.PersistPopupView]: FALSE,
|
|
[FeatureFlag.PM4154_BulkEncryptionService]: FALSE,
|
|
[FeatureFlag.UseTreeWalkerApiForPageDetailsCollection]: FALSE,
|
|
[FeatureFlag.EmailVerification]: FALSE,
|
|
[FeatureFlag.InlineMenuFieldQualification]: FALSE,
|
|
[FeatureFlag.MemberAccessReport]: FALSE,
|
|
[FeatureFlag.TwoFactorComponentRefactor]: FALSE,
|
|
[FeatureFlag.InlineMenuPositioningImprovements]: FALSE,
|
|
[FeatureFlag.ProviderClientVaultPrivacyBanner]: FALSE,
|
|
[FeatureFlag.VaultBulkManagementAction]: FALSE,
|
|
[FeatureFlag.IdpAutoSubmitLogin]: FALSE,
|
|
[FeatureFlag.UnauthenticatedExtensionUIRefresh]: FALSE,
|
|
[FeatureFlag.EnableUpgradePasswordManagerSub]: FALSE,
|
|
[FeatureFlag.GenerateIdentityFillScriptRefactor]: FALSE,
|
|
[FeatureFlag.EnableNewCardCombinedExpiryAutofill]: FALSE,
|
|
[FeatureFlag.DelayFido2PageScriptInitWithinMv2]: FALSE,
|
|
[FeatureFlag.AccountDeprovisioning]: FALSE,
|
|
[FeatureFlag.SSHKeyVaultItem]: FALSE,
|
|
[FeatureFlag.SSHAgent]: FALSE,
|
|
[FeatureFlag.NotificationBarAddLoginImprovements]: FALSE,
|
|
[FeatureFlag.AC2476_DeprecateStripeSourcesAPI]: FALSE,
|
|
[FeatureFlag.CipherKeyEncryption]: FALSE,
|
|
[FeatureFlag.VerifiedSsoDomainEndpoint]: FALSE,
|
|
[FeatureFlag.PM11901_RefactorSelfHostingLicenseUploader]: FALSE,
|
|
[FeatureFlag.AccessIntelligence]: FALSE,
|
|
[FeatureFlag.Pm13322AddPolicyDefinitions]: FALSE,
|
|
[FeatureFlag.LimitCollectionCreationDeletionSplit]: FALSE,
|
|
[FeatureFlag.CriticalApps]: FALSE,
|
|
} satisfies Record<FeatureFlag, AllowedFeatureFlagTypes>;
|
|
|
|
export type DefaultFeatureFlagValueType = typeof DefaultFeatureFlagValue;
|
|
|
|
export type FeatureFlagValueType<Flag extends FeatureFlag> = DefaultFeatureFlagValueType[Flag];
|