* Increase organization max seat size from 30k to 2b (#1274)
* Increase organization max seat size from 30k to 2b
* PR review. Do not modify unless state matches expected
* Organization sync simultaneous event reporting (#1275)
* Split up azure messages according to max size
* Allow simultaneous login of organization user events
* Early resolve small event lists
* Clarify logic
Co-authored-by: Chad Scharf <3904944+cscharf@users.noreply.github.com>
* Improve readability
This comes at the cost of multiple serializations, but the
improvement in wire-time should more than make up for this
on message where serialization time matters
Co-authored-by: Chad Scharf <3904944+cscharf@users.noreply.github.com>
* Queue emails (#1286)
* Extract common Azure queue methods
* Do not use internal entity framework namespace
* Prefer IEnumerable to IList unless needed
All of these implementations were just using `Count == 1`,
which is easily replicated. This will be used when abstracting Azure queues
* Add model for azure queue message
* Abstract Azure queue for reuse
* Creat service to enqueue mail messages for later processing
Azure queue mail service uses Azure queues.
Blocking just blocks until all the work is done -- This is
how emailing works today
* Provide mail queue service to DI
* Queue organization invite emails for later processing
All emails can later be added to this queue
* Create Admin hosted service to process enqueued mail messages
* Prefer constructors to static generators
* Mass delete organization users (#1287)
* Add delete many to Organization Users
* Correct formatting
* Remove erroneous migration
* Clarify parameter name
* Formatting fixes
* Simplify bump account revision sproc
* Formatting fixes
* Match file names to objects
* Indicate if large import is expected
* Early pull all existing users we were planning on inviting (#1290)
* Early pull all existing users we were planning on inviting
* Improve sproc name
* Batch upsert org users (#1289)
* Add UpsertMany sprocs to OrganizationUser
* Add method to create TVPs from any object.
Uses DbOrder attribute to generate.
Sproc will fail unless TVP column order matches that of the db type
* Combine migrations
* Correct formatting
* Include sql objects in sql project
* Keep consisten parameter names
* Batch deletes for performance
* Correct formatting
* consolidate migrations
* Use batch methods in OrganizationImport
* Declare @BatchSize
* Transaction names limited to 32 chars
Drop sproc before creating it if it exists
* Update import tests
* Allow for more users in org upgrades
* Fix formatting
* Improve class hierarchy structure
* Use name tuple types
* Fix formatting
* Front load all reflection
* Format constructor
* Simplify ToTvp as class-specific extension
Co-authored-by: Chad Scharf <3904944+cscharf@users.noreply.github.com>
* Add API for bulk removal of org users
* Refactor OrganizationService, extract some common code.
* Add tests for DeleteUserAsync
* Add tests for DeleteUsers
* Formating
* Update test/Core.Test/Services/OrganizationServiceTests.cs
added a space
Co-authored-by: Addison Beck <abeck@bitwarden.com>
* [Reset Password] Enterprise Policy
* Created UI for policy/edit policy // Updated TODOs for policy dependent checks
* Updated reset password data model field name to be more descriptive
* Update title to Master Password Reset
* Updated PoliciesModel, Policy Model spacing, and strings
* removing the unneeded docker repo keys
* adding some testing code
* fixing notary install location
* installed notary in home directory without relying on the PATH var
* adding notary config for testing
* commenting out branch conditionals so that the pipeline will run a test on a non-master/rc branch
* trying to track down the docker trust files
* changing to the home directory to install notary
* testing with out all of the notary testing stuff
* uncommenting the code after testing
* updating the release workflow with the delegate-2 key
* [Reset Password] Organization Key Pair
* Fixed type in Organization_ReadAbilites sproc
* Fixed broken unit test by making sure premium addon was false
* Updated PublicKey decorator and removed unecessary validation
* initial success caching test
* updating status testing
* fixing the fail check
* fixing bash if syntax
* changing the way of testing since you can't change workflow inputs between re-runs
* trying out different bash syntax
* removing the export to env
* adding in last run status check
* switching up the last_run_status file handling since it doesn't look like it is working correctly
* adding push trigger
* fixing typo
* adding date to the cache key and adding a bit more logging
* fixing restore key
* trying a different way of logging both successes and failures
* fixing typo
* reorganizing the random success/fail
* trying different bash
* fixing binary operator
* adding in success flag checks
* increasing the odds of success
* trying to fix weird problem
* changing dquotes to squotes
* testing failure and always() flow
* adding in a release pipeline
* adding in the manual trigger for the release pipeline
* fixing the bash for loop for tagging and switching to the rc image for release
* adding docker trust to the pull task
* fixing bash array typo
* removing build task
* adding the dotnet tool restore back in to hopefully restore swagger
* adding an Api build to build the swagger docs
* working on build workflow
* testing cache between jobs
* Adding in steps
* fixing the last line
* updating the build workflow
* adding manual trigger for build workflow
* moving the matrix values to the env section of the task
* changing the envs
* using env template replacement
* removing the unique id since I don't think I need it
* testing the cache
* commenting out the docker push
* adding the env vars back to the cache task
* adding envs to test
* fixing the path issue
* resetting the build workflow back to serial build/docker
* Adding in the qa release workflow
* removing unneccessary dependency
* parameterizing the project file names
* forcing gulp install
* installing gulp globally
* reorganizing to see if gulp works
* removing the awkward paths
* fixing typo
* commenting out all non-api matrix for easier testing
* trying to zip the build for deploy
* adding in the base path for the test
* replacing the web app name
* adding a specific slotname
* adding the env into the package path for the deployment
* trying to fix the zip
* setting up all of the other deploys
* switching the secrets over to be environment secrets
* adding in production automation with the deploys commented out
* removing the master branch from the QA deploy
* adding in the dependancy on the setup
* changing the tag
* trying a different ref
* renaming the deployment slot to staging
* trying a different slot name
* resetting the qa deploy to the original
* moving the secrets
* updating the qa deploy with the db reset/update stubs
* updating the deploy task dependencies
* adding missing update-db command placeholder
* trying a string for the inputs
* moving the input check into the steps instead of the job level so that the job completes
* testing azure kv
* fixing typo
* Change id to retrieve-secrets
* Fix typo
* testing the rest of the QA app service deployments
* updating the name of the QA AZ creds secret and migrating the disabled prod deploy jobs to use the prod AZ secrets
* adding in the additional key vault secrets and fixing some other mistakes
* fixing one of the other preview versions
* removing newline for testing commit
* fixing typo
* fixing a secret name typo
* moving the secrets to the env to test their outputs
* adding missing k
* Update build workflow with environment variables for Docker Trust
* removing the unneeded env vars
* Update build and release workflow using Azure secrets as env variables
* Clean up output of NuGet version
* Fix capitalization
* Fix variable names for Docker Trust Setup
* fixing the dashes in the env ids
* switching the dev tag for qa when pushing
* commenting out the test for the pipeline testing
* removing all of the testing code and blockers
Co-authored-by: Vince Grassia <593223+vgrassia@users.noreply.github.com>
* Fix password reprompt not working in org view
* Also fix Cipher_UpdateWithCollections and CipherDetails_CreateWithCollections. Rename migration script
* [Reset Password] Admin reset actions
* Updated thrown except for permission collision
* Updated GET/PUT password reset to use orgUser.Id for db operations
* Add Cipher attachment upload endpoints
* Add validation bool to attachment storage data
This bool is used to determine whether or not to renew upload links
* Add model to request a new attachment to be made for later upload
* Add model to respond with created attachment.
The two cipher properties represent the two different
cipher model types that can be returned. Cipher Response from
personal items and mini response from organizations
* Create Azure SAS-authorized upload links for both one-shot and block uploads
* Add service methods to handle delayed upload and file size validation
* Add emergency access method for downloading attachments direct from Azure
* Add new attachment storage methods to other services
* Update service interfaces
* Log event grid exceptions
* Limit Send and Attachment Size to 500MB
* capitalize Key property
* Add key validation to Azure Event Grid endpoint
* Delete blob for unexpected blob creation events
* Set Event Grid key at API startup
* Change renew attachment upload url request path to match Send
* Shore up attachment cleanup method.
As long as we have the required information, we should always delete
attachments from each the Repository, the cipher in memory, and the
file storage service to ensure they're all synched.