* Making export type filter validation optional.
* Removing unnecessary namespaces.
* Updating ValidateExportRequestFilterAttribute to handle strict/lenient mode.
* Fixing some bugs and adding more test
* Fixing an IsDeleted issue on import/history.
* Changing the verb to PUT.
* Getting the isDeleted status from ResourceWrapper instead of caching the wrapper object.
* Update sql server password to MI
* remove admin password from provision-sqlServer build
* remove sqlAdminPassword from pipeline parameters
* revert pipeline changes, add user managed identity
* remove sql admin password from provision-deploy
* remove sql admin password from pr-pipeline
* remove sql admin password from pipeline
* create identity with sql server
* change uami name
* update api version
* updated uami
* change app plan name to managed identity name
* remove storage account properties
* add storage account properties
* remove conditional uami
* key vault depends on sql server
* existing sql server
* revert
* remove update random number
* add back update random
* remove all update random in pr-pipeline
* update from main
* testing v1 no access keys
* disable storage keys in deployment template
* testing AzurePipelinesCredential
* Removing role assignment for now to test tests
* add role assignment for agent to access tests
* Testing login via workload identity
* testing workload identity access on storage
* fixed issue with persisting workload itentity vars
* moved storage assignment temp
* fix token file writing issue
* fix temp change for test
* add back pipeline steps for test
* fix token file gen
* add logging to generate-federated-token-file
* fix ai coding mistake :P
* testing separate SQL server for integration tests
* removed try catch for storage role
* fixed client id for sql server int tests
* fixing variable to get client id
* fix var name
* fix role assignment rensource group
* fixed federated sql server admin
* changed where identity is created
* fix pipeline issues
* fixed template error
* add agent ip for int test server
* fix int sql test connect
* Added custom SQL auth for azure pipelines workload identity
* simplified the custom sql auth provider
* fix case sensitivity issue projitems
* fixed storage credential
* fixing tests
* cleanup pipelines
* merge issues / delete tests not working
* CI and PR pipeline fixes
* add sqlServerNewExisting to pipeline
* fix pipeline issues
* pr pipeline errors
* fix testR4 stage
* uami parameter issue
* fix tests after merge
* simplify SQL deploy
* fixing variable issue
* fix sql deploy
* fix ci deploy typo
* cleanup
* pipeline typo
---------
Co-authored-by: aponakampalli <ponakampalli.a@northeastern.edu>
Co-authored-by: Adithi Ponakampalli <120080886+aponakampalli@users.noreply.github.com>
* a)Changes done on existing Microsoft.Health.Fhir.CosmosDb Project
1.Icollectionupdater copied to Istoreprocedure in cosmos db old project
2.older Istoreprocedure logic moved to new project with filename IStoredProcedureInstaller
3.StoredProcedureInstaller.cs removed from old db(Microsoft.Health.Fhir.CosmosDb) and moved this logic to new project with filename DataPlaneStoredProcedureInstaller.cs
4.Configs folder contains classes like CosmosDataStoreConfiguration,CosmosCollectionConfiguration moved to Microsoft.Health.Fhir.CosmosDb.Core project
5.Following classes moved to Microsoft.Health.Fhir.CosmosDb.Core project
-SystemData
-KnownDocumentProperties
-ICollectionUpdater
-CollectionVersion
-CollectionUpgradeManager
-IUpgradeManager
-CollectionInitializer : we have removed depenedancy for RetryExceptionPolicyFactory in constructor
-ICollectionInitializer
-CosmosClientExtensions
-ICosmosDbDistributedLock
-ICosmosDbDistributedLockFactory
-ICosmosClientTestProvider
6. Following existing Classes/interfaces modified
-ICosmosClientInitializer
-FhirCosmosClientInitializer
-CosmosDbFhirStorageTestsFixture
// TODO: TODO: need modify this class to call new CosmosDB .Initialization functions
// now some existing call are commented
-CosmosContainerProvider
// TODO: TODO: need modify this class to call new CosmosDB .Initialization functions
// now some existing call are commented
b) New Microsoft.Health.Fhir.CosmosDb.Initialization project added
-Initialization of cosmos DB functionality moved here
- Moved Storeprocedure installation logic here Added classes like
DataPlaneStoredProcedureInstaller,StoredProcedureMetadataBase
- Also we have DataPlaneCollectionSetup class which will implement following methods
-CreateDatabaseAsync
- CreateCollection
-UpdateFhirCollectionSettings
c)Unit Test Project Added Microsoft.Health.Fhir.CosmosDb.Initialization.UnitTests project
d)Also Added Microsoft.Health.Fhir.CosmosDb.Core project
- We have moved common functionalities from Microsoft.Health.Fhir.CosmosDb project
#User Story 112343: [Cosmos][OSS] Move Cosmos DB initialization logic to a new assembly
* versions updated for some packages
* Moved to CosmosDB.Core
-StoredProcedureBase
-IStoredProcedure
-IStoredProcedureMetadata
-StoredProcedureMetadata
Moved to CosmosDB.Initialization:
-UpdateUnsupportedSearchParameters
-FhirCollectionSettingsUpdater
* 1. Added ICollectionDataUpdater interface in cosmosdb project
2.Replaced ICollectionUpdater with ICollectionDataUpdater in CosmosDbSearchParameterStatusInitializer
3.moved else part logic from FhirCollectionSettingsUpdater to CosmosDbSearchParameterStatusInitializer
4.FhirCollectionSettingsUpdater is removed from solution
* worked on code review comments
* worked on review comments and cleaned up code
* done with end to end flow testing with CosmosDbFhirStorageTestsFixture class
* resolved installed storeprocedure issue
* Unit test cases updated . DataPlaneCosmosDbRegistarionExtensions issue is resolved
* resolved build issue for hardDelete
* identity package updated to latest version to solve vulnerability issue
* Solve the test failures in PR
Disconnect ICollectionSetup from CosmosClient and Container.
* fixed review comments
* solved issues with unit test
* Added new project refrences to docker file
* updated docker file
* removed extra call to fhircollectionsetting updater
* Refactoring to avoid circle dependency (#3877)
* merging refatoring changes with local branch
* solved merge issues
* fixes namespace issue for Core.Resources
* resolves unit test issue for FHIRCosmosClientInitializer
* Resolves unite test issues
* added missing decorators on DataPlaneCollectionSetupTests
* work on review comments
* Adds classification attibutes
* -Adding newly added project references to R4.slnf and R5.slnf
-Adding simple threadsafe logic for creating CosmosClient instance
* refactoring CreateCosmosClient logic to have validation logic
---------
Co-authored-by: Fernando Henrique Inocêncio Borba Ferreira <fernfe@microsoft.com>
* Add version
* reduced timeout on delete and reduced retries on create
* new name
* force unique database name
* one more unique name
* disable drop
* Semaphore removed
* skip drop if azure
* 100 on custom query
* SQL Azure in correct order
* oops
* simpler is azure
* revert semaphore
* semaphore 32
* 14
* Removed unneccessary interpolation
* Update test/Microsoft.Health.Fhir.Shared.Tests.Integration/Features/ChangeFeed/SqlServerFhirResourceChangeCaptureDisabledTests.cs
Co-authored-by: Brendan Kowitz <bkowitz@microsoft.com>
* Drop dbs yml
* simple loop
* adjusted min version
* drop in separate job
* 120->240
* True fix
* Removed delete job
---------
Co-authored-by: Brendan Kowitz <bkowitz@microsoft.com>
* Deduping last updated against the database
* Fast tests
* removed not used var
* Ignore input version
* corr
* sharing enabled logic
* private
* readonly
* Reset version in resource
* corect consolidation
* Removed date
* readonly
* readonly
* back
* conflict retries test
* extra dedup plus tests
* bad request
* better date
* more import deduping
* 80
* 80
* dedup against db
* better stored proc
* comment
* 81
* merge
* item group back
* -CR
* 81
* 81
* set version on create is back
* naming and nicer
* Create meta for last updated testing
* add last updated to batching
* events test
* identifier
* Fixed old test bug
* Conflicts on out of order versions
* sync
* More tests and Exception
* Pass explicit keppLastUpdated
* -Version in doc
* Description change
* Added test 1-8-9-10
* move to loaded
* correct date comparison
* Add milliseconds truncation logic to import parser
* Add truncate to millisecond to the tests
* Removed filter on negative version in parser
* _
* negatives are history and no conflict.
* preserve offset
* corrections for negative versions
* Special logic to load negatives
* Latest negative test
* Ignore input negatives if not allowed
* Adding default metric emitter
* Fix using statements
* Improve metric emission
* Refactoring metric emitters
* Using statements updated
* New tests to test if methods have the metric emitter filters and remove reference to log in FhirController
* Removed not used code
* Renamining classes with better names
* New metric handler implementation.
* Refactoring interfaces and adding more tests.
* Following coding suggestions.
* Changnd import dupliate file to bad request
* Added check on input controller for duplicate files.
* Update tests for handling at controller
* Updated error message
* Changed unit test to check for input url
* removed duplicate check
* start
* Fix bytes
* dump resource ids before
* do not go to the database
* SuccessOnRetry
* fixed tests
* Moved wait logic request handler
* Removed cancel request from job exec exception
* plus
* test correction
* Adding ability to raise SQL exceptions in E2E tests
* Temp
* Users/sergal/importtests (#3797)
* Adding ability to raise SQL exceptions in E2E tests
* error handling
* removed console
* job hosting tests
* limit to in proc
* no retriable in export
* correct wait
* retriable back in export
* rest
* minus using
* remove pragma
* Remove retriable from export
* tests
* retriable obsolete
* polly retries and simpler tests
* Addressed comments
* After merge fixes plus get import request handler tests
* removed not applicable orch tests
* second place to hide message
* time wait limit
* new retriable error
* Fixes after merge
* using
* using
* test adjusted for grouped
* []
* Removed task cancelled exception logic
* Adding ability to raise SQL exceptions in E2E tests
* error handling
* removed console
* job hosting tests
* limit to in proc
* no retriable in export
* correct wait
* retriable back in export
* rest
* minus using
* remove pragma
* Remove retriable from export
* tests
* retriable obsolete
* polly retries and simpler tests
* Addressed comments
* job conflict exception back
* do not show error message for InternalServerError
* job conflict exception test
* removed generic exception from tests
* removed not used vars
* better tests
* test for exution timeout
* Bundle - Concurrent access
* Introducing new ThreadSafeHeaderDictionary
* Adding tests
* Fix conccurent access to http headers.
* Fix concurrent access to http headers.
* New test to validate IHeaderDictionary clones.
* Using statements. Small refactorings
* remove clone
* Expose FHIR operation outcome in case of errors
* Adding more details to the exception
* Create all accounts as service principals.
* Handling empty collections of user accounts.
* Set up new app environment variables.
* Expand the use of service principals.
* Fixed flaky history test
* fixed code scanning issues
* Fixed XML issue in test text
* small guard in div logic
* Fix straggler counts
* Fix R4 solution filter so it works w/ C# dev kit
Since the DeletionService is used by the `$bulk-delete` operation, the scope of `IFhirDataStore` and `ISearchService` need to be managed manually - not by the root container. Using `IScopeProvider` enables us to manage and dispose correctly - fixing the bug of leaking memory due to growth of services tracked by the root container.