* Revert "Add support for providing a Resource ID to ManagedIdentityCredential. (#5832)"
This reverts commit 193bbe6963.
* Revert "Add support for customizing the IMDS endpoint within ManagedIdentityCredential using an env var. (#5834)"
This reverts commit 00304a0556.
* Use ClientAssertionCredential within AzurePipelinesCredential.
* Use ClientAssertionCredential in WorkloadIdentityCredential.
* Fix DefaultAzureCredentia.LogMessages test since an extra log got added.
* Disable tests that dont correctly simulate the token request and return
the test response.
* Address PR feedback and make sure base options are passed in to underlying
client assertion credential.
* Address PR feedback - move credential ctor into validation checks.
* Address PR feedback, add const.
* Add a ClientAssertionCredentialImpl to make sure logs use the calling
credential name.
* first build pass
* move models
Refactor KeyVault backup/restore client
This commit represents a significant refactoring of the Azure Security KeyVault Administration client library, transitioning from a generic `KeyVaultClient` to a more specialized `BackupRestoreClient`. The refactoring includes:
- Renaming `KeyVaultClient` to `BackupRestoreClient` in both `backup_restore_client.hpp` and `backup_restore_client.cpp` to better reflect the focused functionality on backup and restore operations.
- Moving model definitions from `backup_restore_client.hpp` to `rest_client_models.hpp`, including structures for errors, full backup, restore, and selective key restore operations, along with their options. This change centralizes model definitions for improved maintainability and reuse across the client library.
- Updating method implementations in `backup_restore_client.cpp` to align with the `BackupRestoreClient` class name and its specialized backup and restore operations.
These changes aim to provide clearer separation of concerns within the library, making it more manageable and focused on backup and restore functionalities for Azure KeyVault.
* Add BackupRestoreClient with tests and options
This commit introduces the BackupRestoreClient for Azure Key Vault backup and restore operations, along with BackupRestoreClientOptions for configuration. Significant refactoring within the Azure::Security::KeyVault::Administration namespace simplifies namespace usage by directly using `using namespace Models;`. The BackupRestoreClient has been enhanced with a new constructor accepting `vaultUrl`, a `TokenCredential` shared pointer, and optionally `BackupRestoreClientOptions`. Additionally, a copy constructor and a default destructor have been added, alongside a private member `m_apiVersion` for API version management.
The BackupRestoreClientOptions struct extends Azure::Core::_internal::ClientOptions with an `ApiVersion` member initialized to "7.5". Changes in the implementation file include additional headers for internal use and authentication, and updates to the constructor for initializing member variables and setting up the HTTP pipeline.
Test infrastructure has been enhanced with modifications in `CMakeLists.txt` to include test source files, the introduction of a base test class `BackupRestoreClientTest` for setup, and a test case `CreateClient1` demonstrating client creation.
These changes collectively enhance the Azure Key Vault Administration library by adding a new client for backup and restore operations, improving code organization, and setting up a testing framework.
* Enhance BackupRestoreClient and tests
This commit significantly updates the BackupRestoreClient and its associated models, introducing new features for backup and restore operations, and improving error handling with a new Error model. The `BackupRestoreClient` class has been marked as `final` to prevent inheritance, and several new methods such as `FullBackup`, `FullBackupStatus`, `FullRestore`, `RestoreStatus`, and `SelectiveKeyRestore` have been added, along with corresponding data models in `rest_client_models.hpp`. These changes enhance the client's functionality and API clarity. Additionally, the test infrastructure has seen substantial improvements, including refactoring in `backup_restore_client_base_test.hpp` for better encapsulation and updated utility methods for more effective testing. The practical application of these enhancements is demonstrated in `backup_restore_client_test.cpp` through the `CreateClient1` test case, showcasing the use of the `FullBackup` method. Overall, these updates bolster the Azure Key Vault Backup and Restore client library's capabilities and test support.
* Enhance BackupRestoreClient for Azure backups
- Updated `BackupRestoreClient` to support full backups and restores using Azure blob storage SAS tokens, including changes to method signatures for SAS token and job identifier parameters.
- Introduced nullable types for `StatusDetails` and `Error` in operation models to handle optional response fields.
- Removed `FullBackupOptions`, `FullRestoreOperationOptions`, and `RestoreStatusOptions` structures in favor of direct parameter usage in methods.
- Refined HTTP request construction to include necessary headers and dynamically set API version.
- Updated JSON parsing logic to handle nullable fields and adapt to changed response JSON structure.
- Enhanced test infrastructure with methods for creating test-configured `BackupRestoreClient` and generating SAS tokens for backups. Added new tests for full backup, backup status, full restore, and restore status functionalities.
- Adjusted URL path construction and query parameter setting in HTTP requests for updated API endpoints and parameters compatibility.
* Refine SelectiveKeyRestore API and tests
This commit overhauls the SelectiveKeyRestore function in the Azure Key Vault Backup and Restore client library. The function signature in `backup_restore_client.hpp` has been updated to replace the `SelectiveKeyRestoreOperationOptions` parameter with two distinct parameters: `keyName` (std::string) and `restoreBlobDetails` (SelectiveKeyRestoreOperationParameters). This change enhances the API's clarity and usability by explicitly requiring the key name and restore blob details for the operation.
Additionally, the `SelectiveKeyRestoreOperationOptions` structure has been removed from `rest_client_models.hpp`, aligning with the shift towards using direct parameters for the selective key restore operation. Corresponding implementation adjustments in `backup_restore_client.cpp` include changes to request URL and JSON body construction, as well as improved error handling in response parsing.
The test suite in `backup_restore_client_test.cpp` has also been updated. The `CreateClient1` test case was removed, and a new test case, `RestoreSelectiveStatus`, was added to demonstrate the updated API's functionality through a full backup and selective key restore operation scenario.
These changes collectively improve the API's intuitiveness and demonstrate its practical application through updated test cases.
* oops
* fds
* negative tests
Enhance backup/restore tests and cleanups
- Added a new test case `BackupFullErrorStatus` to the `BackupRestoreClientTest` suite to simulate a full backup operation with an invalid URI and verify the transition of backup status from "InProgress" to "Failed" with detailed error status.
- Refined the `RestoreFull` test case by removing unnecessary line breaks, improving code formatting without affecting functionality.
- Adjusted formatting in the `RestoreFullStatus` test by removing unnecessary braces and line breaks, streamlining the code.
- Improved readability in the `RestoreSelectiveStatus` test by adding a space after a comma.
- Introduced a new test case `RestoreSelectiveInvalidKeyStatus` to test the system's handling of invalid key restore requests, ensuring error reporting is accurate when keys or their versions are not found.
* recordings and pipeline
* linux build issues
* comment
* parse the error type
* fix paths
* ewrwe
* fdss
* reencode ansi
* fdsfsd
* Enhance samples and refine project structure
- Adjusted `CMakeLists.txt` for better project clarity, moving `BUILD_SAMPLES_HSM` from `test/samples` to `samples` and adding new sample directories for backup and restore functionalities.
- Updated `sample1_administration.cpp` to use `Azure::Core::_internal::Environment::GetVariable` for environment variable access and removed settings management code to focus on specific functionalities.
- Added new sample applications `sample2_full_backup_restore.cpp` and `sample3_backup_selective_restore.cpp` demonstrating full and selective backup and restore operations using the Azure Key Vault administration client library, including detailed steps and error handling.
- Included `CMakeLists.txt` for each new sample, specifying C++ standards and linking necessary libraries, with a focus on ease of use and configuration through the inclusion of `get-env-helper`.
* restore sample 1
* attempt reformat doc
* gfddgdf
* attempt 2
* are you serious ?
* treter
* docs
* typo
* changelog
* doc
* KHlAAAAAAAAAAANg said Kirk
* error check
* Updates to API
* clangs
* test new macro use in cmake file
* clang again
* missing include
* update1
* LROs
* clang 11
* attempt2
* fhkwerjhfkj
* documentation
* attempt++
* separating the op in its own files
* clang
* docs ++
* docc +++
* clang
* typo
* slkjlkdsjflks
* rename to backupclient
* hoping it's building
* PR comments
* address magic param check
* assets update
* Fix exception when an int32 value comes from the json
* Update serializers.cpp
Fix Pipeline errors
* Format using clang
* add more tests
---------
Co-authored-by: George Arama <gearama@microsoft.com>
* Add support for providing a Resource ID to ManagedIdentityCredential.
* Fix typo in param name.
* Fix clang format and undo removing of private methods (that are unused).
* Address PR feedback.
* Add back Azure:: to fix doxygen docs issue.
* Add support for customizing the IMDS endpoint within
ManagedIdentityCredential using an env var.
* Clean up the impl.
* Add imds as an opt-out for spell checl.
* Address PR feedback.
* missed a condition passthrough
---------
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
In order to get both deployment and clean-up working we need to have a connection that points at the right subscription. Today azure-sdk-tests points to the name Test Sub but I created azure-sdk-tests-preview connection which points to the Preview Test Sub.
This will fix the clean-up step which is currently failing for things deployed in Preview.
* Re-enable running KeyVault samples on Ubuntu using AzureCliCredential.
* Re-enable running Attestation samples using AzureCliCredential.
* Re-enable running EventHubs samples using AzureCliCredential.
* Re-enable running Identity samples.
* Disable client_secret_credential_sample since it depends on env vars
that don't exist.
* add additional argument to Save-Package-Properties to allow for usage in pull request context
---------
Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>
Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* Increment package version after release of azure-storage-common
* Increment package version after release of azure-storage-blobs
* Increment package version after release of azure-storage-files-datalake
* Increment package version after release of azure-storage-files-shares
* Increment package version after release of azure-storage-queues
* Deprecated Azure::Core::ApplicationContext because its use is confusing and inconsistent with the original design.
---------
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
* Potentially improve code coverage numbers by excluding some options
* Removed dead lines; replicated switches to both gcovr executions
* added link to gcovr branch coverage faq
* Use GetTestCredentials in eventhubs admin client; updated samples to allow sample execution to be disabled
* Made sample execution optional
* re-enabled building keyvault samples
* Disabled RetrieveMultipleEvents test
* Disabled RetrieveMultipleEvents test
* Pull request feedback
* Added `ClientAssertionCredential` to enable applications to authenticate with custom client assertions.
* Rename test file.
* Update client assertion credential tests.
* Fix typo.
* Address PR feedback - pass in function by value and some comment fixup.
* Update log messages to use credential name as a prefix.
* Mention community contribution in the changelog
* cspell
* Remove double spaces
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>