Repository navigation
[PM-45107] feat: Autoscale Privileged Controls seats when members get access #8812
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
kdenney
wants to merge
51
commits into
main
Choose a base branch
from
billing/PM-45107/autoscale-pam-seats-on-access-grant
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+4,937
β490
Open
Changes from all commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
4b1dbb3
[PM-45107] feat: Autoscale Privileged Controls seats on sales-initiatβ¦
kdenney 115de3a
[PM-45107] feat: Add a command to give back autoscaled Privileged Conβ¦
kdenney ecc27f1
[PM-45107] feat: Register Privileged Controls seat autoscaling in eveβ¦
kdenney 543ea24
[PM-45107] feat: Add a command that reserves Privileged Controls seatβ¦
kdenney 00e3476
[PM-45107] refactor: Rename the Privileged Controls seat occupancy heβ¦
kdenney cd45da8
[PM-45107] feat: Email Owners when a joining member needs a Privilegeβ¦
kdenney 1967134
[PM-45107] feat: Autoscale Privileged Controls seats when an admin giβ¦
kdenney 143e5a1
[PM-45107] feat: Autoscale Privileged Controls seats when bulk activaβ¦
kdenney fc6ee4e
[PM-45107] feat: Autoscale Privileged Controls seats when restoring mβ¦
kdenney 40f8103
[PM-45107] feat: Autoscale Privileged Controls seats when inviting stβ¦
kdenney a12f54c
[PM-45107] feat: Let staged members join by invite link without Priviβ¦
kdenney 195f7e7
[PM-45107] feat: Let staged members sign in through SSO without Priviβ¦
kdenney d0589f5
[PM-45107] fix: Reserve the Privileged Controls seat before creating β¦
kdenney e0c6192
[PM-45107] fix: Release Privileged Controls seats when inviting stageβ¦
kdenney 2ef71ac
[PM-45107] fix: Skip Privileged Controls seat reservation when an orgβ¦
kdenney 819782f
[PM-45107] refactor: Move the self-hosted Privileged Controls seat erβ¦
kdenney a6904f0
[PM-45107] fix: Keep rejecting Privileged Controls autoscaling withouβ¦
kdenney 51a81fd
[PM-45107] fix: Email Owners about a missing Privileged Controls seatβ¦
kdenney 29486cc
[PM-45107] fix: Reserve Password Manager seats before Privileged Contβ¦
kdenney 795d74e
[PM-45107] test: Cover the Privileged Controls seat limit end to end β¦
kdenney 0ccd547
[PM-45107] fix: Give back Password Manager seats when a restore is blβ¦
kdenney 03ab2d8
[PM-45107] fix: Reserve Privileged Controls seats when an invite promβ¦
kdenney 32d904d
[PM-45107] fix: Require a subscription only when Privileged Controls β¦
kdenney 66cf762
[PM-45107] fix: Give back seats when the Privileged Controls step faiβ¦
kdenney 4b6da19
[PM-45107] refactor: Group Subscriptions.Organization commands into fβ¦
kdenney d2113ed
[PM-45107] refactor: Return Privileged Controls seat reservation failβ¦
kdenney 3e6f7bb
[PM-45107] test: Point self-hosted and seat autoscale integration tesβ¦
kdenney 5c9661f
[PM-45107] refactor: Leave the Privileged Controls seat reservation uβ¦
kdenney 3231fe2
[PM-45107] refactor: Give back restore seats from the captured seat cβ¦
kdenney 71a83e8
[PM-45107] refactor: Clarify the Privileged Controls seat count and cβ¦
kdenney 292f7c2
[PM-45107] fix: Word the seat-needed email for restores as well as joins
kdenney 349ef27
[PM-45107] refactor: Point the Privileged Controls purchase handler aβ¦
kdenney 4424d5b
[PM-45107] fix: Give back staged invite Privileged Controls seats befβ¦
kdenney f8cd3f9
[PM-45107] refactor: Spell out Privileged Controls in names this branβ¦
kdenney 9eca4de
[PM-45107] refactor: Reserve a Privileged Controls seat only for joinβ¦
kdenney 3ee9862
[PM-45107] refactor: Point the Privileged Controls removal handler atβ¦
kdenney e8d08e4
[PM-45107] test: Give the invite-link not-staged test an existing invβ¦
kdenney 3c5882a
Merge branch 'main' into billing/PM-45107/autoscale-pam-seats-on-acceβ¦
kdenney f09471c
Merge branch 'main' into billing/PM-45107/autoscale-pam-seats-on-acceβ¦
kdenney 4b75d98
[PM-45107] fix: Apply design-approved copy to the Privileged Controlsβ¦
kdenney fe1167f
[PM-45107] fix: Align the Privileged Controls seat email copy and subβ¦
kdenney 7b3b283
Merge branch 'main' into billing/PM-45107/autoscale-pam-seats-on-acceβ¦
kdenney f115788
[PM-45107] fix: Let Privileged Controls autoscale proceed without a sβ¦
kdenney 9b4182c
Merge branch 'main' into billing/PM-45107/autoscale-pam-seats-on-acceβ¦
kdenney 30ae970
Merge branch 'main' into billing/PM-45107/autoscale-pam-seats-on-acceβ¦
kdenney bbe50b4
[PM-45107] refactor: Replace OrganizationService.ReplaceAndUpdateCachβ¦
kdenney 7162305
[PM-45107] feat: Gate Privileged Controls seat autoscaling on the bilβ¦
kdenney 32f30e6
Merge remote-tracking branch 'origin/main' into billing/PM-45107/autoβ¦
kdenney b9d2de9
Update bitwarden_license/src/Sso/Controllers/AccountController.cs
kdenney b527eee
Merge branch 'main' into billing/PM-45107/autoscale-pam-seats-on-acceβ¦
kdenney a9bf862
[PM-45107] test: Enable the billing support flag in Privileged Controβ¦
kdenney File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
β : @ike-kottlowski asked a great question here. Why does the
_reservePrivilegedControlsSeatsCommand.RunAsyncnot own the error handling of calling_sendPrivilegedControlsSeatNeededEmailCommand.RunAsync?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we do change behavior here, then #8822 will need to be updated as well. Feel free to modify those tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the reserve command sent the email, it would go out before the member is saved, which is handled by the calling code. For some SSO paths, steps after the reservation can still fail and roll the join back. The Owners would then be emailed about a member who never took the seat, and again on every retry. Sending the email from the caller after the save avoids that. It's the same reason the Password Manager autoscale limit email goes out only after the seats are saved.