1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-15 15:53:27 +00:00
Commit Graph

665 Commits

Author SHA1 Message Date
Oscar Hinton
fc26a21b85 DIRT - Prefer signal & change detection (#16939) 2025-10-24 11:17:58 -05:00
rr-bw
ce84d2f117 fix(sso-config): (Auth) [PM-27244] Refactor KC URL Handling (#16995)
Addresses some bugs with the Key Connector URL form field.
2025-10-23 15:02:37 -07:00
Oscar Hinton
e3f943364f Billing - Prefer signal & change detection (#16944) 2025-10-23 15:02:01 -05:00
Alex
d6785037ba PM-27254 Fix password change progress card reactivity (#16984) 2025-10-23 14:53:39 -04:00
Oscar Hinton
3790e09673 AC - Prefer signal & change detection (#16948)
* Modernize Angular

* Remove conflicted files
2025-10-23 11:25:48 -04:00
Brandon Treston
0691583b50 [PM-23133] refactor members component (#16703)
* WIP: added new services, refactor members to use billing service and member action service

* replace dialog logic and user logic with service implementations

* WIP

* wip add tests

* add tests, continue refactoring

* clean up

* move BillingConstraintService to billing ownership

* fix import

* fix seat count not updating if feature flag is disabled

* refactor billingMetadata, clean up
2025-10-23 11:16:17 -04:00
Oscar Hinton
29dccd6352 Auth - Prefer signal & change detection (#16950) 2025-10-22 21:28:47 -04:00
Leslie Tilton
03d636108d [PM-23680] Report Applications data (#16819)
* Move files to folders. Delete unused component. Move model to file

* Move risk insights services to folder structure capturing domains, api, and view organization. Move mock data

* Remove legacy risk insight report code

* Move api model to file

* Separate data service and orchestration of data to make the data service a facade

* Add orchestration updates for fetching applications as well as migrating data.

* Updated migration of critical applications and merged old saved data to new critical applications on report object

* Update test cases

* Fixed test case after merge. Cleaned up per comments on review

* Fixed decryption and encryption issue when not using existing content key

* Fix type errors

* Fix test update

* Fixe remove critical applications

* Fix report generating flag not being reset

* Removed extra logs
2025-10-22 10:36:51 -05:00
Vijay Oommen
cc954ed123 [PM-27204] New Feature Flag for datadog and crowdstrike (#16968) 2025-10-22 10:10:56 -05:00
Alex Morask
5b2682ff21 [PM-26356] Remove client-side pre-consolidated billing code (#16707)
* Remove legacy provider files

* Removing index files to make file re-org easier

* Move manage-clients.component and associated API invocation to AC

* Move add-existing-organization-dialog.component to AC

* Move manage-client-name-dialog.component and associated API call to AC

* Move misc clients files to AC

* Move create-client-dialog.component and associated API call to AC

* Move manage-client-subscription-dialog.component to AC

* Update provider-layout.component

* Cleanup

* Fix linting
2025-10-21 14:15:29 -05:00
Alex
a5dd42396c [PM-27024] password progress card at risk detection (#16955)
* [PM-27024] Fix password change progress card to track only critical apps and detect new at-risk passwords
- Filter at-risk password count to critical applications only
- Update state logic to transition back to assign tasks when new at-risk passwords detected
- Only create security tasks for critical applications with at-risk passwords
- Show 'X new passwords at-risk' message when tasks exist and new at-risk passwords appear

* spec
2025-10-21 08:02:44 -07:00
Vijay Oommen
d19e1efb77 PM-26956 enable help link for cards (#16938) 2025-10-21 08:43:16 -05:00
tangowithfoxtrot
cd08a71a0b fix: add Datadog org integration service to SM integrations module (#16866) 2025-10-16 10:34:32 -05:00
rr-bw
df1dd168dc fix(sso-config): (Auth) [PM-26927] Bugfix for Key Connector URL (#16863)
The Key Connector URL was getting overwritten back to the default URL on `submit()` because `valueChanges` gets triggered during `submit()`. This fix adds a check to make sure we only set the default URL when changing TO Key Connector from a different decryption option. In other words, don't overwrite back to the default URL during `submit()`.

Also removes the trailing slash `/` from the default URL.
2025-10-15 13:45:05 -07:00
Alex
8a76b28e08 fix text (#16857) 2025-10-13 19:38:23 +00:00
Kyle Denney
6ee41343a5 [PM-25379] Refactor org metadata (#16759)
* removing unused properties from org metadata

* removing further properties from the response and replacing them with data already available

* [PM-25379] new org metadata service for new endpoint

* don't need strict ignore

* forgot unit tests

* added cache busting to metadata service

not used yet - waiting for a decision on moving a portion of this to AC
2025-10-13 10:49:52 -05:00
Addison Beck
14e7ee4818 build(web): integrate nx (#16706) 2025-10-13 06:31:17 -04:00
Alex
85113f2f0a [PM-26203] new apps dialog (#16696) 2025-10-09 11:22:12 -04:00
Vijay Oommen
ab995045fd PM-26508 when password change is requested, the all-activity table count will change (#16753) 2025-10-08 14:15:59 -05:00
rr-bw
2127f71f5d feat(sso-config): (Auth) [PM-18470] Pre-populate Key Connector URL (#16536)
On the SSO Config page, when Key Connector is a valid option, setup a listener to changes to the Member Decryption Options form radio selection:

- If radio selection is Key Connector: set a default URL
- If radio selection is NOT Key Connector: clear the URL
2025-10-07 08:35:18 -07:00
Graham Walker
801700d441 PM-26015 Datadog integration card (#16559)
* PM-26015 adding Datadog integration card

* PM-26015 removing 2 changes

* PM-26015 Removing 1 change

* PM-26015 adding datadog integration card

* PM-26015 fixing code to accept new toast owner changes

* PM-26015 fixing linting error

* PM-26015 fixing pr comment
2025-10-07 09:37:59 -05:00
Derek Nance
9aed9aa08e [PM-25910] Refactor webpack config (#16616)
This commit restructures the webpack configs for each project (i.e. web, browser, desktop, cli) such that each project has a base config that is shared in a way that requires less hard-coding of info, and more like simply calling a function with a few properties.
2025-10-06 15:31:06 -05:00
Alex
f29e5e223d [PM-26185] new app metric card (#16658)
* new messages.json keys

* button changes for dirt activity card

* dummy data

* newApplicationsCount and temp toast

* Added third dirt-activity-card component after the existing two cards

* added newApplications to setAllAppsReportSummary

* make button smaller

* cleanup/nice-to-haves

* remove comment

* simplify activity card icon logic to use nullable iconClass

* use buttonText presence to determine button display in activity card

* apps needing review card
- I think accidentally deleted when resolving merge conflicts

* buttonClick.observed && buttonText
2025-10-06 12:29:59 -07:00
Leslie Tilton
8c81ccc1c5 [PM-25611][PM-25612] Update components to use persistance code (#16655)
* Add password trigger logic to report service. Also updated api to use classes that properly handle encstring with placeholders for upcoming usage

* Fix merged test case conflict

* Fix type errors and test cases. Make create data functions for report and summary

* Update Risk Insights Report Data Type

* Update encryption usage and test cases. Moved mock data

* Remove unused variable

* Move all-application constructor

* Update all applications and risk insights to look at fetched logic

* Fix name of variable. Fetch last report run

* Cleanup all and critical application tabs drawer dependencies

* Rename components from tool to dirt. Hook up all applications to use reportResult summary

* Critical application cleanup. Trigger refetch of report for enriching when critical applications change

* Fix type errors

* Rename loader from tools to dirt. Cleanup

* Add activity tab updates using data service

* Use safeProviders in access intelligence

* Fix refresh button not appearing. Change "refresh" to "run report"

* Remove multiple async calls for isRunningReport

* Fix report button not showing

* Add no report ran message

* Fix password change on critical applications
2025-10-06 12:01:06 -05:00
Oscar Hinton
8cf379d997 [PM-22305] Upgrade typescript to 5.8 (#15044)
Upgrade to the latest supported typescript version in Angular.

Resolved TS errors by:
  - adding `: any` which is what the compiler previously implied and now warns about.
  - adding `toJSON` to satisfy requirement.
2025-10-06 12:39:40 -04:00
Vijay Oommen
a3696ea3c1 PM-26495 Activity tab empty state changed (#16726) 2025-10-03 12:03:00 -05:00
Vijay Oommen
856903e661 PM-26416 updated description of at-risk members card (#16724) 2025-10-03 10:32:09 -05:00
Vijay Oommen
0443c87867 [PM-26018] All Activity tab - Password change metric (#16644) 2025-10-03 08:58:07 -05:00
cd-bitwarden
cb20889a94 [SM-1489] machine account event logs (#15997)
* Adding enums for additional event logs for secrets

* updating messages

* Updating messages to be consistent for logs

* Displaying project logs, and fixing search query param searching in projects list, having deleted log for secrets and projects not show as a link

* Viewing secret and project event logs in event modal, adding to the context menu for secrets and projects the ability to view the logs if user has permission. Restricting logs to SM projs and Secs if the logged in user has event log access but not SM access.

* lint

* Lint Fixes

* fix to messages file

* fixing lint

* Adding machine account event logs

* lint fix

* Update event.service.ts

* removing duplicate function issue from merge

* Update service-accounts-list.component.ts

* fixing message

* Fixes to QA bugs

* lint fix

* linter for messages is annoying

* lint
2025-10-03 09:52:00 +02:00
rr-bw
de3759fa85 refactor(sso-config-tweaks): [Auth/PM-933] Tweaks to SSO Config Page (#16374)
Makes some tweaks to the SSO config page:
- SSO Identifier: update hint text
- Single Sign-On Service URL: make required, remove hint text
- Client Secret: make hidden by default (add view/hide toggle)
2025-10-01 08:54:33 -07:00
Alex Morask
d9d8050998 [PM-25463] Work towards complete usage of Payments domain (#16532)
* Use payment domain

* Fixing lint and test issue

* Fix organization plans tax issue

* PM-26297: Use existing billing address for tax calculation if it exists

* PM-26344: Check existing payment method on submit
2025-10-01 10:26:47 -05:00
Vijay Oommen
6499ecb6ee PM-26329 bug fixes to the cards (#16665) 2025-09-30 11:55:27 -05:00
Vijay Oommen
0bfc5daa7c [PM-26074] All Activities tab - Updated UI (#16587)
* PM-26074 simplified and update the all-activities tab

* PM-26074 removed learn more

* PM-26074 fixing missing line
2025-09-29 20:19:14 +00:00
Leslie Tilton
e784622f67 [PM-25613] Add report trigger logic (#16615)
* Add password trigger logic to report service. Also updated api to use classes that properly handle encstring with placeholders for upcoming usage

* Fix merged test case conflict

* Fix type errors and test cases. Make create data functions for report and summary
2025-09-29 14:37:23 -05:00
Vijay Oommen
4f79cc8c52 PM-26073 remove learn more (#16571) 2025-09-29 14:23:59 -05:00
Alex
3da89ee4e3 [PM-25616] Refactor app-table-row-scrollable component to use openApplication (#16523) 2025-09-29 10:28:55 -04:00
Vijay Oommen
90fb57817a [PM-25931] Integrations - can save only if owner (#16570) 2025-09-29 08:27:21 -05:00
Alex
979e370235 [PM-26031] Drawer Service State Refactoring (#16580)
* refactor(risk-insights-data.service): unify drawer state management with BehaviorSubject

- Replace individual drawer properties with unified drawerDetailsSubject
- Add reactive Observable getters for drawer state checking
- Update all drawer methods to use centralized state management

* risk-insights.component: add special case drawer state sync in component

- Add private _isDrawerOpen property for internal state tracking
- Subscribe to drawerDetails$ changes with takeUntilDestroyed cleanup
- Implement getter/setter for isDrawerOpen to sync component <-> service
- Enable two-way binding while maintaining reactive patterns

* risk-insights.component.html: replace drawer template with unified observable patterns

- Replace dataService.openDrawer with isDrawerOpen special case getter
- Wrap drawer in @if block with drawerDetails$ | async for single subscription
- Update isActiveDrawerType() calls to reactive isActiveDrawerType$() | async
- Replace direct property access with unified drawerDetails object
- Use modern @if control flow syntax for better performance

* all-applications.component.html: replace drawer state with reactive observable patterns

- Replace dataService.drawerInvokerId with drawerDetails$ | async in card highlighting
- Update app-table-row-scrollable input from isDrawerIsOpenForThisRecord function to openApplication string

* critical-applications.component.html: replace drawer state with reactive observable patterns

- Replace dataService.drawerInvokerId with drawerDetails$ | async in card highlighting
- Update table component binding from isDrawerIsOpenForThisRecord to openApplication
- Use reactive drawer state checking for consistent behavior with all-applications

* all-applications.component.ts: remove deprecated drawer state functions

- Remove unused trackByFunction that's no longer needed in template
- Remove getSelectedUrls function that's not used anywhere
- Remove isDrawerOpenForTableRow replaced by reactive openApplication binding
- Clean up unused ApplicationHealthReportDetail import
- Simplifies component interface following reactive pattern migration

* critical-applications.component.ts: remove deprecated drawer state functions

- Remove unused trackByFunction that's no longer needed in template
- Remove isDrawerOpenForTableRow replaced by reactive openApplication binding

* app-table-row-scrollable.component.html: replace drawer function calls with string comparison

- Replace isDrawerIsOpenForThisRecord(row.applicationName) with row.applicationName === openApplication
- Use direct string comparison instead of function calls for better performance
- Matches updated component input from function to string property
- Simplifies template logic following reactive pattern migration

* fix(risk-insights-data.service.ts): restore drawer toggle behavior in setter methods

- Add toggle logic to check if same drawer type and invoker are already open
- Close drawer when clicking same button twice (preserves original UX)
- Switch drawer content when clicking different button
- Maintains reactive patterns while restoring expected behavior

* revert to drawer state functions to maintain scope of task
- the logic replacing these functions will be in pr16523

* fix(risk-insights-data.service.ts): restore boolean isActiveDrawerType function per review feedback

- Keep original isActiveDrawerType() as boolean function using drawerDetailsSubject.value
- Maintain isActiveDrawerType$() as Observable version for reactive templates
- Apply same pattern to isDrawerOpenForInvoker() for consistency
- Addresses review feedback to preserve existing function signatures

* refactor(risk-insights-data.service.ts): use destructuring in drawer setter methods per review feedback

* refactor(all-applications.component.html): optimize single subscription for drawer state per review feedback

* refactor(critical-applications.component.html): optimize single subscription for drawer state per review feedback

* refactor(risk-insights.component.html): use boolean drawer type functions per review feedback

* fix(browser-system-notification.service.ts): restore eslint disable comment removed by prettier

---------

Co-authored-by: Tom <144813356+ttalty@users.noreply.github.com>
2025-09-26 15:25:16 -05:00
Alex
8ba22f3080 [PM-25609] use password health service (#16482)
* isValidCipher and findWeakPasswordDetails

* auditPasswordLeaks$

* missing deps fix

* refactor: remove unused dependencies from RiskInsightsReportService

- Remove PasswordStrengthServiceAbstraction and AuditService from constructor
- Update module dependency injection to only provide these services to PasswordHealthService
- Remove unused imports and mock services from test file
- Ensure proper separation of concerns where password health logic is centralized in PasswordHealthService
2025-09-26 14:59:38 -04:00
Leslie Tilton
466bf18d51 [PM-25614] Add Encrichment Logic for Risk Insights Data Service (#16577)
* Add encryption logic. Minor updates to critical apps service

* Fix possibly null type
2025-09-26 09:53:08 -05:00
Alex
1c823ed9f6 Enhance accessibility by adding tabindex attributes to sortable table headers and options button in app-table-row-scrollable.component.html (#16597) 2025-09-25 20:03:08 -04:00
cd-bitwarden
c57d7955e8 fixing spacing issues (#16378) 2025-09-23 10:44:52 -04:00
rr-bw
ce84125473 Revert "feat(sso-config): Auth/[PM-18470] Pre-populate Key Connector URL (#16…" (#16534)
This reverts commit debe7b1f19.
2025-09-22 10:13:29 -07:00
rr-bw
debe7b1f19 feat(sso-config): Auth/[PM-18470] Pre-populate Key Connector URL (#16506)
When Key Connector is a valid selection, setup a listener to changes to the Member Decryption Options form radio selection:
- If radio selection is Key Connector, set a default KC URL
- If radio selection is NOT Key Connector, clear the KC URL
2025-09-22 10:02:20 -07:00
Rui Tomé
b455cb5986 [PM-24146] Remove stateProvider.activeUserId from ProviderService (#16258)
* Refactor provider service calls to include userId parameter

- Updated multiple components and services to pass userId when fetching provider data.
- Adjusted the ProviderService interface to require userId for get, get$, and getAll methods.
- Ensured consistent handling of userId across various components, enhancing data retrieval based on active user context.

* Remove deprecated type safety comments and use the getById utility for fetching providers.

* Update ProviderService methods to return undefined for non-existent providers

- Modified the return types of get$ and get methods in ProviderService to allow for undefined values, enhancing type safety.
- Adjusted the providers$ method to return only defined Provider arrays, ensuring consistent handling of provider data.

* Enhance provider permissions guard tests to include userId parameter

- Updated test cases in provider-permissions.guard.spec.ts to pass userId when calling ProviderService methods.
- Mocked AccountService to provide active account details for improved test coverage.
- Ensured consistent handling of userId across all relevant test scenarios.

* remove promise based api's from provider service, continue refactor

* cleanup observable logic

* cleanup

---------

Co-authored-by: Brandon <btreston@bitwarden.com>
2025-09-22 11:06:28 -04:00
Vijay Oommen
9ff7c0f714 PM-25983 Toast on successful save/delete (#16528) 2025-09-22 09:18:10 -05:00
Alex
57734a7a5c [PM-19322] Risk Insights Accessibility (#16221)
* pm-19322 / replace a tag with button

* pm-19324 / focusable dirt cards

* pm-19324 / focus for all apps dirt cards

* pm-19325 / items in table focusable

* wrap dirt cards in button

* wrap span in button

* safari fixes
2025-09-22 09:16:15 -05:00
Alex Morask
d8339f0196 [PM-23513] Complete usage of OrganizationWarningsService (#16272)
* Use OrganizationWarningsService in AC VaultComponent

* Use OrganizationWarningsService in OrgSwitcherComponent

* Use OrganizationWarningsService in VaultFilterComponent

* Use OrganizationWarningsService in VaultComponent

* Use OrganizationWarningsService in SM OverviewComponent

* Remove TrialFlowService from unused codepaths

* Remove TrialFlowService

* Refresh free trial warning on standard payment method update

* Fix lint errors

* Fix lint errors

* Remove FF

* Fix free trial banner on deprecated ac vault component
2025-09-19 11:26:48 -05:00
Will Martin
cf929edb9c [Cl-726] layout spacing updates (#15979) 2025-09-19 08:32:30 -07:00
Vijay Oommen
792f7e9c55 Fix table header sort indicator and enable drawer open on row click (#16439) (#16440)
Co-authored-by: Maximilian Power <post@maximilianpower.com>
2025-09-19 10:01:46 -05:00