* Use typescript-strict-plugin to iteratively turn on strict
* Add strict testing to pipeline
Can be executed locally through either `npm run test:types` for full type checking including spec files, or `npx tsc-strict` for only tsconfig.json included files.
* turn on strict for scripts directory
* Use plugin for all tsconfigs in monorepo
vscode is capable of executing tsc with plugins, but uses the most relevant tsconfig to do so. If the plugin is not a part of that config, it is skipped and developers get no feedback of strict compile time issues. These updates remedy that at the cost of slightly more complex removal of the plugin when the time comes.
* remove plugin from configs that extend one that already has it
* Update workspace settings to honor strict plugin
* Apply strict-plugin to native message test runner
* Update vscode workspace to use root tsc version
* `./node_modules/.bin/update-strict-comments` 🤖
This is a one-time operation. All future files should adhere to strict type checking.
* Add fixme to `ts-strict-ignore` comments
* `update-strict-comments` 🤖
repeated for new merge files
* event upload and collection state provider migration
* cipher can be null when exporting org
* Addressing pr comments. Casting UserId from calling methods
* fixing userAuth observable in event collection service
* Adding more documentation for the changes.
* cli needed state provider and account services added
* Addressing pr comments on modifying should update
* No need to auth on event upload
* Simplifying the takeEvents for pulling user events
* Reverting shouldUpdate to previous state
* Removing redundant comment
* Removing account service for event upload
* Modifying the shouldUpdate to evaluate the logic outside of the observable
* Adding back in the auth for event upload service and adding event upload to the cli logout method
* Adding the browser service factories
* Updating the browser services away from get background
* Removing event collect and upload services from browser services
* Removing the audit service import
* Adding the event collection migration and migration test
* Event collection state needs to be stored on disk
* removing event collection from state service and abstraction
* removing event collection from the account data
* Saving the migrations themselves
* Rename service-factory folder
* Move cryptographic service factories
* Move crypto models
* Move crypto services
* Move domain base class
* Platform code owners
* Move desktop log services
* Move log files
* Establish component library ownership
* Move background listeners
* Move background background
* Move localization to Platform
* Move browser alarms to Platform
* Move browser state to Platform
* Move CLI state to Platform
* Move Desktop native concerns to Platform
* Move flag and misc to Platform
* Lint fixes
* Move electron state to platform
* Move web state to Platform
* Move lib state to Platform
* Fix broken tests
* Rename interface to idiomatic TS
* `npm run prettier` 🤖
* Resolve review feedback
* Set platform as owners of web core and shared
* Expand moved services
* Fix test types
---------
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* Return error code when any tsc typecheck fails
* Try with bash
`sh ./scripts/test-types.s` resulted in errors missing `[[`,
which is a bash builtin. It's possible the ubuntu runner is using
some other shell.
* Fix spec type errors
* Switch to node for Windows compatibility
* [PM-1351] Add property to server-config.response. Change config to be able to fetch without being authed.
* [PM-1351] fetch every hour.
* [PM-1351] fetch on vault sync.
* [PM-1351] browser desktop fetch configs on sync complete.
* [PM-1351] Add methods to retrieve feature flags
* [PM-1351] Add enum to use as key to get values feature flag values
* [PM-1351] Remove debug code
* [PM-1351] Get flags when unauthed. Add enums as params. Hourly always fetch.
* [PM-1351] add check for authed user using auth service
* [PM-1351] remove unnecessary timer on account unlock
* [EC-1046] add activate autofill policy to web
* [EC-1046] add local setting if policy needs to be set
* [AC-1046] activate autofill on page load if flag exists
* [AC-1046] move activation to current tab page
* [AC-1046] add warning to autofill policy
* [AC-1046] add useActivateAutofillPolicy to organization reponse
* [AC-1046] autofill to auto-fill
* [SM-63] Secrets List overview (#3239)
The purpose of this PR is to create a new component for the Secrets Manager project where all the secrets associated to a specific organization ID can be viewed.
* [SM-63] Secrets List overview (#3239)
The purpose of this PR is to create a new component for the Secrets Manager project where all the secrets associated to a specific organization ID can be viewed.
* [SM-63] Display dates based off Figma (#3358)
* Display dates based off Figma
* Swapping date to medium format
* [SM-185] Use feature flags for secrets (#3409)
* Fix SM lint errors (#3526)
* Fix SM lint errors
* Update bitwarden_license/bit-web/src/app/sm/secrets/secrets.component.ts
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* [SM-65] Create/Edit Secrets Dialog (#3376)
The purpose of this PR is to add a Create/Edit Secrets dialog component.
* [SM-198] Empty Secrets View (#3585)
* SM-198 Empty Secrets View
* [SM-64] Soft delete secrets (#3549)
* Soft delete secrets
* SM-95-ProjectList (#3508)
* Adding project list and creating a shared module for secrets
* updates to style , temporarily using secrets results until API portion is completed
* removing non project related options from the list, updting api call to call projects now
* Adding view project option from drop down
* Changes requested by Thomas
* Changes requested by Thomas
* suggested fixes
* fixes after merge from master
* Adding decrypting to project list
* Update bitwarden_license/bit-web/src/app/sm/shared/sm-shared.module.ts
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Update bitwarden_license/bit-web/src/app/sm/projects/project.service.ts
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Update bitwarden_license/bit-web/src/app/sm/projects/project.service.ts
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* fix to projectRequest so name is type EncString instead of string
* lint + prettier fixes
* Oscar's suggestions - Removing this. from projectList
* updating to use bitIconButton
* Updating to use BitIconButton
Co-authored-by: CarleyDiaz-Bitwarden <103955722+CarleyDiaz-Bitwarden@users.noreply.github.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Fix double edit secret dialog (#3645)
* Fix typescript errors on secrets init (#3649)
* Resolve breaking changes
* Remove unecessary class
* SM-198 Update empty list text. (#3652)
* [SM-267] Minor visual fixes (#3673)
* SM-96: Add/Edit Project for SM (#3616)
* SM-96: Initial add for Add/Edit project
* Update secrets.module.ts
* Small fixes based on PR comments
* SM-96: Small fixes + fix new project creation
* Fully fix create / edit project
* SM-96: Update toast text
* Remove message with exclamation
* SM-96: Fix broken build
* SM-96: Remove disabled on save buttons for SM dialogs & switch to early exits
* SM-96: Run linter
* [SM-186] Service Accounts - Overview (#3653)
* SM-186 Service Accounts Overview
* Remove duplicate titles (#3659)
* [SM-187] Create Service Account Dialog (#3710)
* SM-187 Create Service Account Dialog
* Fix renamed paths
* SM Modal Updates (#3776)
* Add type=button to cancel button on sm dialogs
* Update new secret/project modal titles to match design
* Add loading spinner for project and secret edit modals
* Add max length to project name
* Use Tailwind CSS class instead of custom and remove click handler
* Fix spinner
* Add buttonType=primary to project dialog save button
* Fix loading change for secret dialog and use tw-text-center
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* [SM-113] Delete Projects Dialog (#3777)
* SM-113 Add Delete Projects Dialog
* [SM-306] Migrate secrets dialog to async form (#3849)
* [SM-310] Prepare secrets manager for merge to master (#3885)
* Remove Built In Validator on Project Delete (#3909)
Handle all Project Delete validation through custom validator
* [SM-312] Mark all inputs as touched when submitting (#3920)
* Use new icon for no item (#3917)
* Create navigation component (#3881)
* [SM-150] Project / Secret mapping (#3912)
* wip
* removing added file
* updates
* handling projects and secrets mapping in UI
* moving files and fixing errors
* Update bitwarden_license/bit-web/src/app/secrets-manager/secrets/secrets-list.component.html
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Decrypt the name
* fixing the secrets-list.component bug
* renaming file and view name
* lint fixes
* removing secret with projects list response, and other misc name changes
* Adding back things I shouldnt have deleted
* Update bitwarden_license/bit-web/src/app/secrets-manager/secrets/responses/secret-with-projects-list.response.ts
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* updating button (#3779)
* [SM-300] Access Tokens (#3955)
* [SM-301] fix: associate labels with inputs (#4058)
* fix: wrap input in label
* fix: update all label in projects and service accounts
* [SM-196] Create Access Token Dialog (#4095)
* Add create access token dialog
* Use ServiceAccountView for access token creation
* Set version to readonly for access token
* DRY up Expiration Date & bug fix
* Break out expiration options component
* Move expiration-options to layout; Match FIGMA
* Create Generic Key generator
* Add getByServiceAccountId
* Change to use keyMaterial and not the full key
* Use access token id, not service account
* Remove generic key generator
* Swap to service account name placeholder
* Swap ExpirationOptions to a CVA
* No longer masking according to FIGMA
* Remove schema comment
* Code review updates
* Update required logic and approach
* Move ExpirationOptionsComponent into access
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* SM-99: Individual Project / Secrets Tab (#4011)
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* Fixes for the demo (#4159)
* [SM-360] Add support for never expiring access tokens (#4150)
* Add support for never expiring access tokens
* Render performance fixes
* Update bitwarden_license/bit-web/src/app/secrets-manager/service-accounts/access/dialogs/expiration-options.component.ts
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* [SM-360] Fix access token display dialog for never expiring tokens (#4164)
* Fix access token display dialog
* Add disableClose to access token display dialog
* [SM-299] Add license checks (#4078)
* [SM-69] feature: create org-switcher, bit-nav-item, bit-nav-group, bit-nav-divider (#4073)
* feat: create nav-item, nav-group, org-switcher
* add tree variant; add stories; move to component library
* render button if no link is present
* fix routerLinkActive; add template comments; fix styles
* update storybook stories
* rename to route
* a11y fixes
* update stories
* simplify tree nesting
* rename nav-base component
* add divider; finish org-switcher; add overview page skeleton
* add nav-divider story
* code review
* rename components to CL naming scheme
* fix iconButton focus color
* apply code review changes
* fix strict template route param
* add ariaLabel input; update org-switcher a11y
* add two way binding for nav-group open state; update stories
* add toggle control to org-switcher
* [SM-310] Disable Secrets Manager in QA (#4199)
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
Co-authored-by: Thomas Avery <tavery@bitwarden.com>
Co-authored-by: CarleyDiaz-Bitwarden <103955722+CarleyDiaz-Bitwarden@users.noreply.github.com>
Co-authored-by: cd-bitwarden <106776772+cd-bitwarden@users.noreply.github.com>
Co-authored-by: Colton Hurst <colton@coltonhurst.com>
Co-authored-by: Will Martin <contact@willmartian.com>
* [EC-342] Add 'UseCustomPermissions' property in Organization.
* [EC-342] Add/Edit message texts for Permission types
* [EC-342] Add check to determine if org can have custom permissions
* [EC-342] Add description to message text
* [EC-342] Checking if the selected user type is 'Custom'
* Update apps/web/src/locales/en/messages.json
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* [EC-342] Update custom permissions check to only look for UseCustomPermissions flag. Create updateUser and inviteUser methods.
* [EC-342] Split Custom Permissions text into 3 parts.
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Add CreationDate to common libs
* Add CreationDate to Browser
* Add CreationDate to CLI
* Add CreationDate to Desktop
* Add CreationDate to Web
* Update tests
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
* Clean up dangling behaviorSubject
* Handle null in utils
* fix null check
* Await promises, even in async functions
* Add to/fromJSON methods to State and Accounts
This is needed since all storage in manifest v3 is key-value-pair-based
and session storage of most data is actually serialized into an
encrypted string.
* Simplify AccountKeys json parsing
* Fix account key (de)serialization
* Remove unused DecodedToken state
* Correct filename typo
* Simplify keys `toJSON` tests
* Explain AccountKeys `toJSON` return type
* Remove unnecessary `any`s
* Remove unique ArrayBuffer serialization
* Initialize items in MemoryStorageService
* Revert "Fix account key (de)serialization"
This reverts commit b1dffb5c2c, which was breaking serializations
* Move fromJSON to owning object
* Add DeepJsonify type
* Use Records for storage
* Add new Account Settings to serialized data
* Fix failing serialization tests
* Extract complex type conversion to helper methods
* Remove unnecessary decorator
* Return null from json deserializers
* Remove unnecessary decorators
* Remove obsolete test
* Use type-fest `Jsonify` formatting rules for external library
* Update jsonify comment
Co-authored-by: @eliykat
* Remove erroneous comment
* Fix unintended deep-jsonify changes
* Fix prettierignore
* Fix formatting of deep-jsonify.ts
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Add structure to display server version on browser
* Add getConfig to State Service interface
* Clean up settings component code
* Switch to ServerConfig, use Observables in the ConfigService, and more
* Fix runtime error
* Sm 90 addison (#3275)
* Use await instead of then
* Rename stateServerConfig -> storedServerConfig
* Move config validation logic to the model
* Use implied check for undefined
* Rename getStateServicerServerConfig -> buildServerConfig
* Rename getApiServiceServerConfig -> pollServerConfig
* Build server config in async
* small fixes and add last seen text
* Move config server to /config folder
* Update with concatMap and other changes
* Config project updates
* Rename fileds to convention and remove unneeded migration
* Update libs/common/src/services/state.service.ts
Update based on Oscar's recommendation
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Update options for Oscar's rec
* Rename abstractions to abstracitons
* Fix null issues and add options
* Combine classes into one file, per Oscar's rec
* Add null checking
* Fix dependency issue
* Add null checks, await, and fix date issue
* Remove unneeded null check
* In progress commit, unsuitable for for more than dev env, just backing up changes made with Oscar
* Fix temp code to force last seen state
* Add localization and escapes in the browser about section
* Call complete on destroy subject rather than unsubscribe
* use mediumDate and formatDate for the last seen date messaging
* Add ThirdPartyServerName in example
* Add deprecated note per Oscar's comment
* [SM-90] Change to using a modal for browser about (#3417)
* Fix inconsistent constructor null checking
* ServerConfig can be null, fixes this
* Switch to call super first, as required
* remove unneeded null checks
* Remove null checks from server-config.data.ts class
* Update via PR comments and add back needed null check in server conf obj
* Remove type annotation from serverConfig$
* Update self-hosted to be <small> per design decision
* Re-fetch config every hour
* Make third party server version <small> and change wording per Oscar's PR comment
* Add expiresSoon function and re-fetch if the serverConfig will expire soon (older than 18 hours)
* Fix misaligned small third party server message text
Co-authored-by: Addison Beck <addisonbeck1@gmail.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Added organizationId to EventData and EventRequest
* Added EventType Organization_ClientExportedVault
* Sending organizationId on Organization Export event
* Checking that the user belongs to the organization
* Added organizationExportResponse model
* Added API method to get Organization vault export data
* Updated getOrganizationDecryptedExport to use new API method