* [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>
* Await in `has` calls.
* Add disk cache to browser synced items
Note: `Map` doesn't serialize nicely so it's easier to swap over to a
`Record` object for out cache
* Mock and await init promises in tests
* Remove redundant settings checks
* Move event.service to it's own folder
Move abstractions/event.service to abstractions/event/event.service
Move services/event.service to services/event/event.service
Fix all the imports
* Extract event-upload from event.service
Move `uploadEvents` from `EventService` to `EventUploadService`
Create event-upload-service-factory
Fix wiring up all the dependencies
* Remove clearEvents from EventService
clearEvents is only related to uploading events and can be moved into EventUploadService
Change the logout-method to only call EventUploadService.uploadEvents as that also calls clearEvents internally
* Rename EventService to EventCollectionService
Rename libs\common\abstraction\event\event.service.ts to libs\common\abstractions\event\event-collection.service.ts
Rename libs\common\services\event\event.service.ts to libs\common\services\event\event-collection.service.ts
Fix all the imports
Fix up service regristration/instantiation
Reanme \browser\src\background\service_factories\event-service.factory.ts to \browser\src\background\service_factories\event-collection-service.factory.ts
* Move interval to upload events to EventUploadSvc
Move the `init()` from event-collection.service to event-upload.service
Change call-site in web, desktop, browser
* [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>
* [CL-50] feat: scaffold checkbox component
* [CL-50] feat: implement control value accessor for checbox
* [CL-50] feat: add form-field support to checkbox
* [CL-50] feat: implement non-selected checkbox styling
* [CL-50] feat: implement checkbox checked styles
* [CL-50] feat: improve checkbox form-field compat
* [CL-50] fix: checkbox border hover wrong color
* [CL-50] feat: use svg instead of bwi font
* [CL-50] feat: scaffold radio button
* [EC-50] feat: implement radio logic
* [CL-50] feat: add radio group tests
* [CL-50] feat: add radio-button tests
* [CL-50] feat: implement radio button styles
* [CL-50] fix: checkbox style tweaks
* [CL-50] feat: smooth radio button selection transition
* [CL-50] chore: various fixes and cleanups
* [CL-50] feat: add form field support
* [EC-50] feat-wip: simplify checkbox styling
* [EC-50] feat: extract checkbox into separate component
* [CL-50] feat: add standalone form control component
* [CL-50] feat: remove unnecessary checkbox-control
It wasn't really doing anything, might as well use form control directly
* [CL-50] chore: create separate folder with form examples
* [CL-50] feat: switch to common bit-label
* [CL-50] feat: let radio group act as form control
* [CL-50] chore: restore form-field component
* [CL-50] feat: add support for hint and error
* [CL-50] fix: storybook build issue
* [CL-50] fix: radio group label wrong text color
* [CL-50] fix: translation
* [CL-50] fix: put hint and errors outside label
* [CL-50] feat:
* [CL-50] feat: add custom checkbox example story
* [CL-50] chore: remove 1 from full example name
* [CL-50] chore: clean up unused icon
* [CL-50] chore: clean up unused tailwind plugin
* [CL-50] fix: ring offset color in custom example
* [CL-50] chore: clean up unused icon
* [CL-50] chore: add design link
* [CL-50] chore: remove unused import
* [CL-50] fix: pr review comments
* [CL-50] fix: improve id handling
* Remove a previously set password from a Send
* Only refresh if the send item was selected before
* Display menuItem only when a password has been set
* [EC-584] Update ApiService to remove any appendages to ClientVersion
* [EC-584] Extract application version number logic from ApiService to PlatformUtils
* Update libs/electron/src/services/electronPlatformUtils.service.ts
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* [EC-584] Use getApplicationVersion as source for getApplicationVersionNumber
* [EC-584] Remove defaulting to dash on getApplicationVersionNumber and add unit tests
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* correct issue of "allVaults" string literal being used
* make "(Organisation is disabled)" part of the `appA11yTitle`
* add folder name to the edit folder button's `appA11yTitle`
Co-authored-by: Daniel James Smith <djsmith@web.de>
* PS-1061 - replace out of date url references
* PS-1061 - reverse position of error case handling to reduce nesting
* PS-1061 - remove unnecessary constructor parameters, move downloadUrl construction to separate function
* PS-1061 - move constants outside of class, readability improvements
* PS-1061 - use standard notation for property assignment
* PS-1061 - initialize downloadUrl with default value
* Do not use object constructors for names
Minification was selecting different class names for different instances
of services, which was causing them not to sync properly.
This was happening _only_ in production mode for some reason, perhaps
due to minifying post chunking?
* Add tests for additional synced properties
* Register alarms and listen to them
* Wire up alarms and actions
Register actions(commands) which can be executed by an alarm
Create methods in alarm-state to persists actions and execution times
Flesh out AlarmListener to iterate over registered commands and check if they need to execute
Simplify clearClipboard action as it only handles the action instead of also worrying if it should fire.
Enable previously disabled clear-clipboard tests (#3532)
Adjust clear-clipboard tests to new simpler execution
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
* Make linter happy
* Revert accidentally commited with merging master
* Add jsdoc per PR comment
* Fixed types to simplify adding new alarm actions
Create a new alarm action (i.e `clear-clipboard.ts`)
Export a name for the alarm action (`clearClipboardAlarmName`)
`alarm-state.ts`
Import alarm action name
Extend `alarmKeys` and `alarmState`
`on-alarm-listener`
Import alarm action method and alarm action name
Add it to the switch case
* Add comment to clearClipboard action
Add comment to replace clearClipboard impl once clipboardApi's are accessible by service-workers
https://bugs.chromium.org/p/chromium/issues/detail?id=1160302
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
Renamed folders:
./apps/desktop/src/models/nativeMessaging
./apps/desktop/src/models/nativeMessaging/encryptedMessagePayloads
./apps/desktop/src/models/nativeMessaging/encryptedMessageResponses
Renamed all files
Cleaned up entries in whitelist-capital-letters.txt
* Elevate Map <-> Record JSON helpers to Utils
* Build Account from a StateService provided AccountDeserializer
* Allow Manifest V2 usage of session sync
Expands use of SessionSyncer to all Subject types. Correctly handles
replay buffer for each type to ignore the flood of data upon
subscription to each Subject type.
* Create browser-synced Policy Service
* Move BrowserFolderService
* Libs account serialization improvements
* Serialize Browser Accounts
* Separate StateService in background/visualizations
Visualizer state services share storages with background page, which
nicely emulates mv3 synchronization through session/local storage. There
should not be multithreading issues since all of these services are
still running through a single thread, we just now have multiple places
we are reading/writing data from.
Smaller improvements
* Rename browser's state service to BrowserStateService
* Remove unused WithPrototype decorator :celebrate:
* Removed conversion on withPrototypeForArrayMembers. It's reasonable to
think that if the type is maintained, it doesn't need conversion.
Eventually, we should be able to remove the withPrototypeForArrayMembers
decorator as well, but that will require a bit more work on
(de)serialization of the Accounts.data property.
* Make Record <-> Map idempotent
Should we get in a situation where we _think_ an object has been
jsonified, but hasn't been, we need to correctly deal with the object
received to create our target.
* Check all requirements while duck typing
* Name client services after the client
* Use union type to limit initialize options
* Fixup usages of `initializeAs`
* Add OrganizationService to synced services
Co-Authored-By: Daniel James Smith <djsmith85@users.noreply.github.com>
* Add Settings service to synced services
Co-Authored-By: Daniel James Smith <djsmith85@users.noreply.github.com>
* Add missing BrowserStateService
* Fix factories to use browser-specific service overides
* Fix org-service registration in services.module
* Revert "Add missing BrowserStateService"
This reverts commit 81cf384e87.
* Fix session syncer tests
* Fix synced item metadata tests
* Early return null json objects
* Prefer abstract service dependencies
* Prefer minimal browser service overrides
* [SG-632] - Change forwarded providers radio buttons list to dropdown (#4045)
* SG-632 - Changed forwarded providers list of radio buttons to dropdown
* SG-632 - Added role attributes to improve accessibility.
* SG-632 - Added sorting to array and empty option
* SG-632 - Fix styling to match standards.
* rename cipehrs component to vault items component (#4081)
* Update the version hash for the QA Web build artifact to follow SemVer syntax (#4102)
* Remove extra call to toJSON() (#4101)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith@web.de>
Co-authored-by: Carlos Gonçalves <carlosmaccam@gmail.com>
Co-authored-by: Jake Fink <jfink@bitwarden.com>
Co-authored-by: Joseph Flinn <58369717+joseph-flinn@users.noreply.github.com>
Co-authored-by: Robyn MacCallum <robyntmaccallum@gmail.com>