Secrets test (#2764)

* playback tests

* two running tests

* more tests and some redaction

* formatting

* formatting

* fix bb and remove unused includes

* macos

* annoying issues

* offline client

* format

* pr comment

* reset the env to original after the client is gone.

* oops

* testing

* formats

* remove default resource for secrets, not needed

* code coverage

* build issue
This commit is contained in:
George Arama 2021-08-26 11:19:37 -07:00 committed by GitHub
parent 04f4d3a5cf
commit 9bcfc247b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 2193 additions and 23 deletions

View File

@ -67,7 +67,7 @@ target_include_directories(
target_link_libraries(azure-security-keyvault-secrets PUBLIC Azure::azure-core)
# coverage. Has no effect if BUILD_CODE_COVERAGE is OFF
create_code_coverage(keyvault-secrets azure-security-keyvault-secrets azure-security-keyvault-secrets-test)
create_code_coverage(keyvault azure-security-keyvault-secrets azure-security-keyvault-secrets-test)
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
generate_documentation(azure-security-keyvault-secrets ${AZ_LIBRARY_VERSION})

View File

@ -14,5 +14,6 @@
#include "azure/keyvault/secrets/keyvault_operations.hpp"
#include "azure/keyvault/secrets/keyvault_options.hpp"
#include "azure/keyvault/secrets/keyvault_secret.hpp"
#include "azure/keyvault/secrets/keyvault_secret_paged_response.hpp"
#include "azure/keyvault/secrets/keyvault_secret_properties.hpp"
#include "azure/keyvault/secrets/secret_client.hpp"

View File

@ -12,7 +12,6 @@
* - AZURE_CLIENT_SECRET: The client secret.
*
*/
#if defined(_MSC_VER)
#define _CRT_SECURE_NO_WARNINGS
#endif

View File

@ -9,6 +9,9 @@ set(CMAKE_CXX_STANDARD_REQUIRED True)
include(GoogleTest)
# Export the test folder for recordings access.
add_compile_definitions(AZURE_TEST_RECORDING_DIR="${CMAKE_CURRENT_LIST_DIR}")
add_executable (
azure-security-keyvault-secrets-test
macro_guard.cpp
@ -19,13 +22,15 @@ add_executable (
secret_update_properties_test.cpp
secret_backup_deserialize_test.cpp
secret_backup_deserialize_test.hpp
"secret_paged_deserialize_test.cpp" "secret_paged_deserialize_test.hpp")
secret_paged_deserialize_test.cpp
secret_paged_deserialize_test.hpp
secret_client_base_test.hpp)
if (MSVC)
target_compile_options(azure-security-keyvault-secrets-test PUBLIC /wd6326 /wd26495 /wd26812)
endif()
target_link_libraries(azure-security-keyvault-secrets-test PRIVATE azure-security-keyvault-secrets azure-identity gtest gtest_main gmock)
target_link_libraries(azure-security-keyvault-secrets-test PRIVATE azure-security-keyvault-secrets azure-identity azure-core-test-fw gtest gtest_main gmock)
# Adding private headers so we can test the private APIs with no relative paths include.
target_include_directories (azure-security-keyvault-secrets-test PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../src>)

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,191 @@
{
"networkCallRecords": [
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "b3129259-ee3a-4a2b-4942-1d8454c1726d"
},
"Method": "PUT",
"Response": {
"BODY": "{\"value\":\"secretValue\",\"id\":\"https://REDACTED.vault.azure.net/secrets/FirstCreateTest/56aac59e2d59404abf1c2a6bd5e790e1\",\"attributes\":{\"enabled\":true,\"created\":1629853039,\"updated\":1629853039,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "258",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:18 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "b3129259-ee3a-4a2b-4942-1d8454c1726d",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "c1ee6aa3-ae1f-4172-859e-e3a0bffcc4f1",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/FirstCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "9d0b8a93-ea22-4e6e-659f-d1e4a5c343b3"
},
"Method": "GET",
"Response": {
"BODY": "{\"value\":\"secretValue\",\"id\":\"https://REDACTED.vault.azure.net/secrets/FirstCreateTest/56aac59e2d59404abf1c2a6bd5e790e1\",\"attributes\":{\"enabled\":true,\"created\":1629853039,\"updated\":1629853039,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "258",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:18 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "9d0b8a93-ea22-4e6e-659f-d1e4a5c343b3",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "b91b6851-23c7-4023-ace6-aa864b159824",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/FirstCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "a01b1272-e9a6-4b6d-7061-49d3b04d1277"
},
"Method": "DELETE",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/FirstCreateTest\",\"deletedDate\":1629853039,\"scheduledPurgeDate\":1637629039,\"id\":\"https://REDACTED.vault.azure.net/secrets/FirstCreateTest/56aac59e2d59404abf1c2a6bd5e790e1\",\"attributes\":{\"enabled\":true,\"created\":1629853039,\"updated\":1629853039,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "377",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:18 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "a01b1272-e9a6-4b6d-7061-49d3b04d1277",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "33b73bd3-05c6-440b-aa53-cfbcd14721d7",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/FirstCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "c3f6ad31-a8ea-4a96-6e18-7e8c441ae18d"
},
"Method": "GET",
"Response": {
"BODY": "{\"error\":{\"code\":\"SecretNotFound\",\"message\":\"Deleted Secret not found: FirstCreateTest\"}}",
"STATUS_CODE": "404",
"cache-control": "no-cache",
"content-length": "89",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:18 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "c3f6ad31-a8ea-4a96-6e18-7e8c441ae18d",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "96fcfff0-4731-4abd-bb9c-14d1ea61cfff",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/FirstCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "4b8519f8-39eb-4917-6d4f-b60f4b21284e"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/FirstCreateTest\",\"deletedDate\":1629853039,\"scheduledPurgeDate\":1637629039,\"id\":\"https://REDACTED.vault.azure.net/secrets/FirstCreateTest/56aac59e2d59404abf1c2a6bd5e790e1\",\"attributes\":{\"enabled\":true,\"created\":1629853039,\"updated\":1629853039,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "377",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:49 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "4b8519f8-39eb-4917-6d4f-b60f4b21284e",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "4c68a5b3-c195-4e1b-8d97-d6b16f340e02",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/FirstCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "4f39f466-a211-40fd-5a48-0f53cce86fb3"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/FirstCreateTest\",\"deletedDate\":1629853039,\"scheduledPurgeDate\":1637629039,\"id\":\"https://REDACTED.vault.azure.net/secrets/FirstCreateTest/56aac59e2d59404abf1c2a6bd5e790e1\",\"attributes\":{\"enabled\":true,\"created\":1629853039,\"updated\":1629853039,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "377",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:49 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "4f39f466-a211-40fd-5a48-0f53cce86fb3",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "6ecaab0b-01e1-4472-b3df-581f6e4cbb2b",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/FirstCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "80ddbf36-0707-4ed3-4c3e-bf24b3caf67d"
},
"Method": "DELETE",
"Response": {
"BODY": "",
"STATUS_CODE": "204",
"cache-control": "no-cache",
"date": "Wed, 25 Aug 2021 00:57:49 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "80ddbf36-0707-4ed3-4c3e-bf24b3caf67d",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "cec4bc4a-e1cd-4077-baaa-bf82313f1f8e",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/FirstCreateTest?api-version=7.2"
}
]
}

View File

@ -0,0 +1,324 @@
{
"networkCallRecords": [
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "ee77a2e1-d03e-41d0-5659-6963af7d42bc"
},
"Method": "PUT",
"Response": {
"BODY": "{\"value\":\"secretValue\",\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties/c8fbd222f76d4e07b3cade8c946274db\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "256",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:56 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "ee77a2e1-d03e-41d0-5659-6963af7d42bc",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "2fbbe426-51bb-4fa0-937c-e4d5cf850ef0",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/GetProperties?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "2743a78a-2c75-41a9-7fc3-1313b5d2e9d9"
},
"Method": "PUT",
"Response": {
"BODY": "{\"value\":\"secretValue2\",\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties2/70c1e752e6c04146aafeef3ca06c9dc9\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "258",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:57 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "2743a78a-2c75-41a9-7fc3-1313b5d2e9d9",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "b67bba1f-d74c-4dd9-aae7-1f4fc6ffa99f",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/GetProperties2?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "c3eb37df-d68f-42cd-5527-e8b33357b85f"
},
"Method": "GET",
"Response": {
"BODY": "{\"value\":[{\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}},{\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties2\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}],\"nextLink\":null}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "432",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:57 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "c3eb37df-d68f-42cd-5527-e8b33357b85f",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "87735ddc-e758-4498-b663-3d881e7f5669",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "5357ef17-a511-4e28-7eb4-ef0165aa89df"
},
"Method": "DELETE",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/GetProperties\",\"deletedDate\":1629853317,\"scheduledPurgeDate\":1637629317,\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties/c8fbd222f76d4e07b3cade8c946274db\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "373",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:57 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "5357ef17-a511-4e28-7eb4-ef0165aa89df",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "199ac992-8ffa-4857-bb29-d35034c181b1",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/GetProperties?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "ce4025a5-abbc-4b53-74cc-d27114bc1c0f"
},
"Method": "GET",
"Response": {
"BODY": "{\"error\":{\"code\":\"SecretNotFound\",\"message\":\"Deleted Secret not found: GetProperties\"}}",
"STATUS_CODE": "404",
"cache-control": "no-cache",
"content-length": "87",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:57 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "ce4025a5-abbc-4b53-74cc-d27114bc1c0f",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "4589e9ad-2ba2-49ad-b2b3-dd367b5f43d7",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/GetProperties?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "787bda0e-18ee-448b-4a35-c15f5b23c111"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/GetProperties\",\"deletedDate\":1629853317,\"scheduledPurgeDate\":1637629317,\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties/c8fbd222f76d4e07b3cade8c946274db\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "373",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:02:27 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "787bda0e-18ee-448b-4a35-c15f5b23c111",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "258b602a-c8a8-41e2-b7b8-b9f86007b933",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/GetProperties?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "90182806-7a15-4d4c-7a5f-67f517f6a551"
},
"Method": "DELETE",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/GetProperties2\",\"deletedDate\":1629853348,\"scheduledPurgeDate\":1637629348,\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties2/70c1e752e6c04146aafeef3ca06c9dc9\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "375",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:02:27 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "90182806-7a15-4d4c-7a5f-67f517f6a551",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "79dec54f-1968-4aee-be7e-7a666c283fed",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/GetProperties2?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "15331201-68ee-4432-7701-661cc4e5f09f"
},
"Method": "GET",
"Response": {
"BODY": "{\"error\":{\"code\":\"SecretNotFound\",\"message\":\"Deleted Secret not found: GetProperties2\"}}",
"STATUS_CODE": "404",
"cache-control": "no-cache",
"content-length": "88",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:02:27 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "15331201-68ee-4432-7701-661cc4e5f09f",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "3fea359a-1177-4382-867b-a717142fbbef",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/GetProperties2?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "8bc27101-8046-4090-5dd5-1cec35270d9d"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/GetProperties2\",\"deletedDate\":1629853348,\"scheduledPurgeDate\":1637629348,\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties2/70c1e752e6c04146aafeef3ca06c9dc9\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "375",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:02:58 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "8bc27101-8046-4090-5dd5-1cec35270d9d",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "9eb64613-e3bd-462c-9a70-7016cb6a4171",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/GetProperties2?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "00573d0e-ee4a-4fb2-42bf-37a83fdb6722"
},
"Method": "GET",
"Response": {
"BODY": "{\"value\":[{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/GetProperties\",\"deletedDate\":1629853317,\"scheduledPurgeDate\":1637629317,\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}},{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/GetProperties2\",\"deletedDate\":1629853348,\"scheduledPurgeDate\":1637629348,\"id\":\"https://REDACTED.vault.azure.net/secrets/GetProperties2\",\"attributes\":{\"enabled\":true,\"created\":1629853317,\"updated\":1629853317,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}],\"nextLink\":null}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "711",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:02:58 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "00573d0e-ee4a-4fb2-42bf-37a83fdb6722",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "c054eaee-8f85-4b6f-9342-5b3fd3e76780",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "313edbc3-28a2-40ed-70ff-d3ed0700aff2"
},
"Method": "DELETE",
"Response": {
"BODY": "",
"STATUS_CODE": "204",
"cache-control": "no-cache",
"date": "Wed, 25 Aug 2021 01:02:58 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "313edbc3-28a2-40ed-70ff-d3ed0700aff2",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "6c197bf8-d6eb-4d16-862b-5261ed043bde",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/GetProperties?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "7228ceda-d49b-469a-7069-76ab501e8c63"
},
"Method": "DELETE",
"Response": {
"BODY": "",
"STATUS_CODE": "204",
"cache-control": "no-cache",
"date": "Wed, 25 Aug 2021 01:02:58 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "7228ceda-d49b-469a-7069-76ab501e8c63",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "f72db413-61ee-4dd0-a878-865f82600277",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/GetProperties2?api-version=7.2"
}
]
}

View File

@ -0,0 +1,380 @@
{
"networkCallRecords": [
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "a91de568-0525-4737-5427-b246d277a96c"
},
"Method": "PUT",
"Response": {
"BODY": "{\"value\":\"secretValue\",\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "250",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:00:24 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "a91de568-0525-4737-5427-b246d277a96c",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "89b90f4f-6727-4429-95df-800cae5deec0",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "75f41ce8-e450-4b36-50d9-09af3e8e93f0"
},
"Method": "DELETE",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/Recover\",\"deletedDate\":1629853225,\"scheduledPurgeDate\":1637629225,\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "361",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:00:25 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "75f41ce8-e450-4b36-50d9-09af3e8e93f0",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "a51e5084-4782-4a02-82aa-1adb61f3f038",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "d0c01f77-2290-411a-5059-334cf5dd5340"
},
"Method": "GET",
"Response": {
"BODY": "{\"error\":{\"code\":\"SecretNotFound\",\"message\":\"Deleted Secret not found: Recover\"}}",
"STATUS_CODE": "404",
"cache-control": "no-cache",
"content-length": "81",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:00:25 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "d0c01f77-2290-411a-5059-334cf5dd5340",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "78810ad0-d46e-4ee6-8592-7c8db38fcdd8",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "5d217bfc-330f-48d5-74e9-800089281e02"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/Recover\",\"deletedDate\":1629853225,\"scheduledPurgeDate\":1637629225,\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "361",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:00:55 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "5d217bfc-330f-48d5-74e9-800089281e02",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "753bc4ce-ba78-4cf5-8762-6e3ebd7d0d5b",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "405d246e-4736-44e2-5a0f-b08ca0031c17"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/Recover\",\"deletedDate\":1629853225,\"scheduledPurgeDate\":1637629225,\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "361",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:00:55 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "405d246e-4736-44e2-5a0f-b08ca0031c17",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "24e2f4f8-b1d6-4972-b88e-bd93bceba90a",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "0384db4e-5be9-43a8-69ee-454be90bdb27"
},
"Method": "POST",
"Response": {
"BODY": "{\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "228",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:00:55 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "0384db4e-5be9-43a8-69ee-454be90bdb27",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "a9efab38-3b22-4f52-8f68-1c72c4c19b5c",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/Recover/recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "aeeb5c6c-ad5f-448b-6ddc-27517a5bf487"
},
"Method": "GET",
"Response": {
"BODY": "{\"error\":{\"code\":\"SecretNotFound\",\"message\":\"A secret with (name/id) Recover was not found in this key vault. If you recently deleted this secret you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182\"}}",
"STATUS_CODE": "404",
"cache-control": "no-cache",
"content-length": "304",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:00:56 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "aeeb5c6c-ad5f-448b-6ddc-27517a5bf487",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "c301912a-6cb9-49c4-a68e-c64c750fdc29",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "d8f9aa20-0340-4a66-773a-c2f83384cae2"
},
"Method": "GET",
"Response": {
"BODY": "{\"value\":\"secretValue\",\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "250",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:25 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "d8f9aa20-0340-4a66-773a-c2f83384cae2",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "426b7f0e-b192-4868-9d68-bb1a43220c6d",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "fe6dec39-78aa-40cd-7112-6e3f6088c900"
},
"Method": "GET",
"Response": {
"BODY": "{\"value\":\"secretValue\",\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "250",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:25 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "fe6dec39-78aa-40cd-7112-6e3f6088c900",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "05fe4634-5f0f-4964-9721-3b78ad5ff655",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "c85d657b-78f2-42f3-7ca0-fddae564fb50"
},
"Method": "DELETE",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/Recover\",\"deletedDate\":1629853286,\"scheduledPurgeDate\":1637629286,\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "361",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:26 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "c85d657b-78f2-42f3-7ca0-fddae564fb50",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "adead180-fa7c-4aed-877e-103c40ebdb28",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "81de6b1e-45cc-4c00-4394-54e82f3e6c64"
},
"Method": "GET",
"Response": {
"BODY": "{\"error\":{\"code\":\"SecretNotFound\",\"message\":\"Deleted Secret not found: Recover\"}}",
"STATUS_CODE": "404",
"cache-control": "no-cache",
"content-length": "81",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:26 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "81de6b1e-45cc-4c00-4394-54e82f3e6c64",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "9c210dc4-e92c-4f9f-848d-e6a16080518f",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "cea2f5db-4697-4d06-5c4d-e1dabc5949e1"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/Recover\",\"deletedDate\":1629853286,\"scheduledPurgeDate\":1637629286,\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "361",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:56 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "cea2f5db-4697-4d06-5c4d-e1dabc5949e1",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "8333c6e8-5da2-4e9f-8916-13cc8975dbfa",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "1dc721fd-c78b-421b-41e8-532430abde4d"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/Recover\",\"deletedDate\":1629853286,\"scheduledPurgeDate\":1637629286,\"id\":\"https://REDACTED.vault.azure.net/secrets/Recover/d32d070c5e764f6383b45bcd39085e38\",\"attributes\":{\"enabled\":true,\"created\":1629853225,\"updated\":1629853225,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "361",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 01:01:56 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "1dc721fd-c78b-421b-41e8-532430abde4d",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "a49ac560-111c-496a-8136-dcb0a95ad726",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/Recover?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "94dbec06-4d69-41ce-4188-eedb5a74392c"
},
"Method": "DELETE",
"Response": {
"BODY": "",
"STATUS_CODE": "204",
"cache-control": "no-cache",
"date": "Wed, 25 Aug 2021 01:01:56 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "94dbec06-4d69-41ce-4188-eedb5a74392c",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "ca041a32-c35b-456c-a8c3-d15c266ad684",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/Recover?api-version=7.2"
}
]
}

View File

@ -0,0 +1,218 @@
{
"networkCallRecords": [
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "f45c48bd-a813-4cbd-7471-f6b938b6c810"
},
"Method": "PUT",
"Response": {
"BODY": "{\"value\":\"secretValue\",\"id\":\"https://REDACTED.vault.azure.net/secrets/SecondCreateTest/af19856a9ff74be6bf08fa3e5935f633\",\"attributes\":{\"enabled\":true,\"created\":1629853070,\"updated\":1629853070,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "259",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:49 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "f45c48bd-a813-4cbd-7471-f6b938b6c810",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "790839ef-be30-4a87-ac37-110c5c914028",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/SecondCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "96d58dad-32ac-43d9-7ff1-a1b8fd35b0cf"
},
"Method": "PUT",
"Response": {
"BODY": "{\"value\":\"secretValue2\",\"id\":\"https://REDACTED.vault.azure.net/secrets/SecondCreateTest/9f5f5da65dc940be89d55a9712e4dc0b\",\"attributes\":{\"enabled\":true,\"created\":1629853070,\"updated\":1629853070,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "260",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:49 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "96d58dad-32ac-43d9-7ff1-a1b8fd35b0cf",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "ea11f0b5-7e78-434e-995e-d78067763a67",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/SecondCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "282f7f6a-1359-48e7-65ee-339eb8bd8e28"
},
"Method": "GET",
"Response": {
"BODY": "{\"value\":[{\"id\":\"https://REDACTED.vault.azure.net/secrets/SecondCreateTest/9f5f5da65dc940be89d55a9712e4dc0b\",\"attributes\":{\"enabled\":true,\"created\":1629853070,\"updated\":1629853070,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}},{\"id\":\"https://REDACTED.vault.azure.net/secrets/SecondCreateTest/af19856a9ff74be6bf08fa3e5935f633\",\"attributes\":{\"enabled\":true,\"created\":1629853070,\"updated\":1629853070,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}],\"nextLink\":null}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "503",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:49 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "282f7f6a-1359-48e7-65ee-339eb8bd8e28",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "8bbc61a3-d6d9-4f96-9b55-cd4e1e06f109",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/SecondCreateTest/versions?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "f8efcda3-5a66-4679-6add-aeeb0b05d7fd"
},
"Method": "DELETE",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/SecondCreateTest\",\"deletedDate\":1629853070,\"scheduledPurgeDate\":1637629070,\"id\":\"https://REDACTED.vault.azure.net/secrets/SecondCreateTest/9f5f5da65dc940be89d55a9712e4dc0b\",\"attributes\":{\"enabled\":true,\"created\":1629853070,\"updated\":1629853070,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "379",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:49 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "f8efcda3-5a66-4679-6add-aeeb0b05d7fd",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "73f94cfd-da41-4955-8c96-45963f9deaa8",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/SecondCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "f0b66db3-fadc-4631-667f-11215c3f46d5"
},
"Method": "GET",
"Response": {
"BODY": "{\"error\":{\"code\":\"SecretNotFound\",\"message\":\"Deleted Secret not found: SecondCreateTest\"}}",
"STATUS_CODE": "404",
"cache-control": "no-cache",
"content-length": "90",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:57:49 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "f0b66db3-fadc-4631-667f-11215c3f46d5",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "d1cdcc40-7a5f-48e8-a45b-b54b8def9513",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/SecondCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "be182b8a-afc4-4f59-5b2b-7cd9c99e8e5e"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/SecondCreateTest\",\"deletedDate\":1629853070,\"scheduledPurgeDate\":1637629070,\"id\":\"https://REDACTED.vault.azure.net/secrets/SecondCreateTest/9f5f5da65dc940be89d55a9712e4dc0b\",\"attributes\":{\"enabled\":true,\"created\":1629853070,\"updated\":1629853070,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "379",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:58:20 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "be182b8a-afc4-4f59-5b2b-7cd9c99e8e5e",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "2de470e1-bc8e-46f9-92b0-05dd111122df",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/SecondCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "61d1909d-33b1-4d71-7d69-0d249d41298d"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/SecondCreateTest\",\"deletedDate\":1629853070,\"scheduledPurgeDate\":1637629070,\"id\":\"https://REDACTED.vault.azure.net/secrets/SecondCreateTest/9f5f5da65dc940be89d55a9712e4dc0b\",\"attributes\":{\"enabled\":true,\"created\":1629853070,\"updated\":1629853070,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "379",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:58:20 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "61d1909d-33b1-4d71-7d69-0d249d41298d",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "a383ccaa-7ae8-4be6-9ac9-217e26495662",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/SecondCreateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "920db049-605a-4cdc-755f-d52437116b69"
},
"Method": "DELETE",
"Response": {
"BODY": "",
"STATUS_CODE": "204",
"cache-control": "no-cache",
"date": "Wed, 25 Aug 2021 00:58:20 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "920db049-605a-4cdc-755f-d52437116b69",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "bdc91da2-4533-44f3-bf2d-8c4bc4e9d7a2",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/SecondCreateTest?api-version=7.2"
}
]
}

View File

@ -0,0 +1,218 @@
{
"networkCallRecords": [
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "860a7f72-645e-4af9-42d4-86a178f9a7e0"
},
"Method": "PUT",
"Response": {
"BODY": "{\"value\":\"secretValue\",\"id\":\"https://REDACTED.vault.azure.net/secrets/UpdateTest/62909adf7f044dc8b1838da90306af40\",\"attributes\":{\"enabled\":true,\"created\":1629853101,\"updated\":1629853101,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "253",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:58:20 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "860a7f72-645e-4af9-42d4-86a178f9a7e0",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "abc88304-587a-419f-886d-b6e218cdc885",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/UpdateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "5c97e748-2385-4aa6-71bb-3c5f6196922b"
},
"Method": "GET",
"Response": {
"BODY": "{\"value\":\"secretValue\",\"id\":\"https://REDACTED.vault.azure.net/secrets/UpdateTest/62909adf7f044dc8b1838da90306af40\",\"attributes\":{\"enabled\":true,\"created\":1629853101,\"updated\":1629853101,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "253",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:58:20 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "5c97e748-2385-4aa6-71bb-3c5f6196922b",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "53074230-cf36-419e-923e-1e994622c11f",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/UpdateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "68fd4f00-7d1c-4541-7316-1ae4210a3ede"
},
"Method": "PATCH",
"Response": {
"BODY": "{\"contentType\":\"xyz\",\"id\":\"https://REDACTED.vault.azure.net/secrets/UpdateTest/62909adf7f044dc8b1838da90306af40\",\"attributes\":{\"enabled\":true,\"created\":1629853101,\"updated\":1629853101,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90},\"tags\":{}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "261",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:58:21 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "68fd4f00-7d1c-4541-7316-1ae4210a3ede",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "20bdea20-2b0e-45c6-80f7-5bc3cb3d0aaf",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/UpdateTest/62909adf7f044dc8b1838da90306af40?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "18cb8b2e-dc81-46ee-5009-65756e5ed08a"
},
"Method": "DELETE",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/UpdateTest\",\"deletedDate\":1629853101,\"scheduledPurgeDate\":1637629101,\"contentType\":\"xyz\",\"id\":\"https://REDACTED.vault.azure.net/secrets/UpdateTest/62909adf7f044dc8b1838da90306af40\",\"attributes\":{\"enabled\":true,\"created\":1629853101,\"updated\":1629853101,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90},\"tags\":{}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "397",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:58:21 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "18cb8b2e-dc81-46ee-5009-65756e5ed08a",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "d5175712-3734-4756-88b2-6362ca8dac03",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/secrets/UpdateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "515489fd-ca27-48ef-494b-d8cac0f7ed58"
},
"Method": "GET",
"Response": {
"BODY": "{\"error\":{\"code\":\"SecretNotFound\",\"message\":\"Deleted Secret not found: UpdateTest\"}}",
"STATUS_CODE": "404",
"cache-control": "no-cache",
"content-length": "84",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:58:21 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "515489fd-ca27-48ef-494b-d8cac0f7ed58",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "862db230-939c-412c-8d6e-c2e057de5505",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/UpdateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "974e8b60-93d0-4f2a-4e20-bde5c1022c2d"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/UpdateTest\",\"deletedDate\":1629853101,\"scheduledPurgeDate\":1637629101,\"contentType\":\"xyz\",\"id\":\"https://REDACTED.vault.azure.net/secrets/UpdateTest/62909adf7f044dc8b1838da90306af40\",\"attributes\":{\"enabled\":true,\"created\":1629853101,\"updated\":1629853101,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90},\"tags\":{}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "397",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:58:51 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "974e8b60-93d0-4f2a-4e20-bde5c1022c2d",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "7b406f0e-7781-4dd0-8a13-39823f7f8d9f",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/UpdateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "e9f78660-c0d0-4069-7755-4e16ea1fe2a2"
},
"Method": "GET",
"Response": {
"BODY": "{\"recoveryId\":\"https://REDACTED.vault.azure.net/deletedsecrets/UpdateTest\",\"deletedDate\":1629853101,\"scheduledPurgeDate\":1637629101,\"contentType\":\"xyz\",\"id\":\"https://REDACTED.vault.azure.net/secrets/UpdateTest/62909adf7f044dc8b1838da90306af40\",\"attributes\":{\"enabled\":true,\"created\":1629853101,\"updated\":1629853101,\"recoveryLevel\":\"Recoverable+Purgeable\",\"recoverableDays\":90},\"tags\":{}}",
"STATUS_CODE": "200",
"cache-control": "no-cache",
"content-length": "397",
"content-type": "application/json; charset=utf-8",
"date": "Wed, 25 Aug 2021 00:58:51 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "e9f78660-c0d0-4069-7755-4e16ea1fe2a2",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "24e12a7c-a69c-42dd-a6bf-c8923a19bb68",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/UpdateTest?api-version=7.2"
},
{
"Headers": {
"content-type": "application/json",
"user-agent": "azsdk-cpp-keyvault-secrets/7.2 (Windows 10 Enterprise 6.3 19043 19041.1.amd64fre.vb_release.191206-1406)",
"x-ms-client-request-id": "009adbf7-a137-413d-4b28-10f79c48616e"
},
"Method": "DELETE",
"Response": {
"BODY": "",
"STATUS_CODE": "204",
"cache-control": "no-cache",
"date": "Wed, 25 Aug 2021 00:58:51 GMT",
"expires": "-1",
"pragma": "no-cache",
"strict-transport-security": "max-age=31536000;includeSubDomains",
"x-content-type-options": "nosniff",
"x-ms-client-request-id": "009adbf7-a137-413d-4b28-10f79c48616e",
"x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.22.157.72;act_addr_fam=InterNetwork;",
"x-ms-keyvault-region": "westus2",
"x-ms-keyvault-service-version": "1.9.79.1",
"x-ms-request-id": "32a52b11-d7af-41c4-baef-101377e968a7",
"x-powered-by": "ASP.NET"
},
"Url": "https://REDACTED.vault.azure.net/deletedsecrets/UpdateTest?api-version=7.2"
}
]
}

View File

@ -0,0 +1,221 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// SPDX-License-Identifier: MIT
/**
* @file
* @brief The base class to construct and init a Key Vault client.
*
*/
#include <gtest/gtest.h>
#include <azure/core/test/test_base.hpp>
#include <azure/identity/client_secret_credential.hpp>
#include <azure/keyvault/keyvault_secrets.hpp>
using namespace std::chrono_literals;
namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { namespace _test {
/**
* @brief Client Secret Credential authenticates with the Azure services using a Tenant ID, Client
* ID and a client secret.
*
*/
class TestClientSecretCredential final : public Core::Credentials::TokenCredential {
public:
Core::Credentials::AccessToken GetToken(
Core::Credentials::TokenRequestContext const& tokenRequestContext,
Core::Context const& context) const override
{
Core::Credentials::AccessToken accessToken;
accessToken.Token = "magicToken";
accessToken.ExpiresOn = DateTime::max();
if (context.IsCancelled() || tokenRequestContext.Scopes.size() == 0)
{
accessToken.ExpiresOn = DateTime::min();
}
return accessToken;
}
};
class KeyVaultSecretClientTest : public Azure::Core::Test::TestBase,
public ::testing::WithParamInterface<int> {
private:
std::unique_ptr<Azure::Security::KeyVault::Secrets::SecretClient> m_client;
std::string GetEnv(const std::string& name, std::string const& defaultValue = std::string())
{
#if defined(_MSC_VER)
#pragma warning(push)
#pragma warning(disable : 4996)
const char* ret = std::getenv(name.data());
#pragma warning(pop)
#else
const char* ret = std::getenv(name.data());
#endif
if (!ret)
{
if (!defaultValue.empty())
{
return defaultValue;
}
throw std::runtime_error(
name + " is required to run the tests but not set as an environment variable.");
}
return std::string(ret);
}
protected:
int m_testPollingTimeOutMinutes = 20;
std::chrono::minutes m_testPollingIntervalMinutes = std::chrono::minutes(1);
std::shared_ptr<Azure::Identity::ClientSecretCredential> m_credential;
std::shared_ptr<TestClientSecretCredential> m_testCredential;
std::string m_keyVaultUrl;
std::string m_keyVaultHsmUrl;
std::chrono::milliseconds m_defaultWait;
Azure::Security::KeyVault::Secrets::SecretClient const& GetClientForTest(
std::string const& testName)
{
//_putenv_s("AZURE_TEST_MODE", "PLAYBACK");
// keep this here to quickly switch between test modes
InitializeClient();
// set the interceptor for the current test
m_testContext.RenameTest(testName);
return *m_client;
}
// Create
void InitializeClient()
{
// Init interceptor from PlayBackRecorder
std::string recordingPath(AZURE_TEST_RECORDING_DIR);
recordingPath.append("/recordings");
Azure::Core::Test::TestBase::SetUpBase(recordingPath);
std::string tenantId = GetEnv("AZURE_TENANT_ID", "tenant");
std::string clientId = GetEnv("AZURE_CLIENT_ID", "client");
std::string secretId = GetEnv("AZURE_CLIENT_SECRET", "secret");
m_keyVaultUrl = GetEnv("AZURE_KEYVAULT_URL", "https://REDACTED.vault.azure.net/");
m_keyVaultHsmUrl = GetEnv("AZURE_KEYVAULT_HSM_URL", "https://REDACTED.vault.azure.net/");
// Create default client for the test
SecretClientOptions options;
// Replace default transport adapter for playback
if (m_testContext.IsPlaybackMode())
{
options.Transport.Transport = m_interceptor->GetPlaybackClient();
}
// Insert Recording policy when Record mode is on (non playback and non LiveMode)
else if (!m_testContext.IsLiveMode())
{
// AZURE_TEST_RECORDING_DIR is exported by CMAKE
options.PerRetryPolicies.push_back(m_interceptor->GetRecordPolicy());
}
if (m_testContext.IsPlaybackMode())
{ // inject fake token client here if it's test
m_testCredential = std::make_shared<TestClientSecretCredential>();
m_client = std::make_unique<SecretClient>(m_keyVaultUrl, m_testCredential, options);
// we really dont need to wait for results
m_defaultWait = 1ms;
}
else
{
m_credential = std::make_shared<Azure::Identity::ClientSecretCredential>(
tenantId, clientId, secretId);
m_client = std::make_unique<SecretClient>(m_keyVaultUrl, m_credential, options);
m_defaultWait = 30s;
}
// When running live tests, service can return 429 error response if the client is sending
// multiple requests per second. This can happen if the network is fast and tests are running
// without any delay between them.
auto avoidTestThrottled = GetEnv("AZURE_KEYVAULT_AVOID_THROTTLED", "0");
if (avoidTestThrottled != "0")
{
std::cout << "- Wait to avoid server throttled..." << std::endl;
// 10 sec should be enough to prevent from 429 error
std::this_thread::sleep_for(std::chrono::seconds(10));
}
}
public:
template <class T>
static inline void CheckValidResponse(
Azure::Response<T>& response,
Azure::Core::Http::HttpStatusCode expectedCode = Azure::Core::Http::HttpStatusCode::Ok)
{
auto const& rawResponse = response.RawResponse;
EXPECT_EQ(
static_cast<typename std::underlying_type<Azure::Core::Http::HttpStatusCode>::type>(
rawResponse->GetStatusCode()),
static_cast<typename std::underlying_type<Azure::Core::Http::HttpStatusCode>::type>(
expectedCode));
}
static inline std::string GetUniqueName() { return Azure::Core::Uuid::CreateUuid().ToString(); }
static inline void CleanUpKeyVault(SecretClient const& secretClient)
{
std::vector<DeletedSecret> deletedSecrets;
for (auto secretResponse = secretClient.GetDeletedSecrets(); secretResponse.HasPage();
secretResponse.MoveToNextPage())
{
for (auto& secret : secretResponse.Items)
{
deletedSecrets.emplace_back(secret);
}
}
if (deletedSecrets.size() > 0)
{
for (auto& deletedSecret : deletedSecrets)
{
secretClient.PurgeDeletedSecret(deletedSecret.Name);
}
// Wait for purge is completed
std::this_thread::sleep_for(std::chrono::minutes(1));
}
}
static inline void RemoveAllSecretsFromVault(
SecretClient const& secretClient,
bool waitForPurge = true)
{
std::vector<DeleteSecretOperation> deletedSecrets;
GetPropertiesOfSecretsOptions options;
for (auto secretResponse = secretClient.GetPropertiesOfSecrets(); secretResponse.HasPage();
secretResponse.MoveToNextPage())
{
for (auto& secret : secretResponse.Items)
{
deletedSecrets.emplace_back(secretClient.StartDeleteSecret(secret.Name));
}
}
if (deletedSecrets.size() > 0)
{
std::cout << std::endl
<< "Cleaning vault. " << deletedSecrets.size()
<< " Will be deleted and purged now...";
for (auto& deletedSecret : deletedSecrets)
{
auto readyToPurgeSecret = deletedSecret.PollUntilDone(std::chrono::minutes(1));
secretClient.PurgeDeletedSecret(readyToPurgeSecret.Value.Name);
std::cout << std::endl << "Deleted and purged secret: " + readyToPurgeSecret.Value.Name;
}
std::cout << std::endl << "Complete purge operation.";
// Wait for purge is completed
if (waitForPurge)
{
std::this_thread::sleep_for(std::chrono::minutes(1));
}
}
}
};
}}}}} // namespace Azure::Security::KeyVault::Secrets::_test

View File

@ -1,16 +1,14 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// SPDX-License-Identifier: MIT
#include "azure/core/context.hpp"
#include "azure/identity/client_secret_credential.hpp"
#include "azure/keyvault/secrets/secret_client.hpp"
#include <exception>
#include "secret_client_base_test.hpp"
#include <cstddef>
#include <gtest/gtest.h>
#include <memory>
using namespace std::chrono_literals;
using namespace Azure::Security::KeyVault::Secrets;
using namespace Azure::Security::KeyVault::Secrets::_test;
TEST(SecretClient, InitClient)
{
auto credential
@ -52,3 +50,280 @@ TEST(SecretClient, GetUrl)
SecretClient secretClient(url, credential);
EXPECT_EQ(url, secretClient.GetUrl());
}
TEST_F(KeyVaultSecretClientTest, FirstCreateTest)
{
auto secretName = "FirstCreateTest";
auto const& client
= GetClientForTest(::testing::UnitTest::GetInstance()->current_test_info()->name());
{
auto secretResponse = client.SetSecret(secretName, "secretValue");
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
// Now get the key
auto secretResponse = client.GetSecret(secretName);
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto operation = client.StartDeleteSecret(secretName);
operation.PollUntilDone(m_defaultWait);
auto deletedSecretResponse = client.GetDeletedSecret(secretName);
CheckValidResponse(deletedSecretResponse);
auto secret = deletedSecretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto purgedResponse = client.PurgeDeletedSecret(secretName);
CheckValidResponse(purgedResponse, Azure::Core::Http::HttpStatusCode::NoContent);
}
}
TEST_F(KeyVaultSecretClientTest, SecondCreateTest)
{
auto secretName = "SecondCreateTest";
auto const& client
= GetClientForTest(::testing::UnitTest::GetInstance()->current_test_info()->name());
std::string version1;
std::string version2;
{
auto secretResponse = client.SetSecret(secretName, "secretValue");
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
version1 = secret.Properties.Version;
EXPECT_EQ(secret.Name, secretName);
}
{
auto secretResponse = client.SetSecret(secretName, "secretValue2");
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
version2 = secret.Properties.Version;
EXPECT_EQ(secret.Name, secretName);
}
{
auto secretResponse = client.GetPropertiesOfSecretsVersions(secretName);
EXPECT_EQ(secretResponse.Items.size(), size_t(2));
EXPECT_TRUE(
secretResponse.Items[0].Version == version1 || secretResponse.Items[0].Version == version2);
EXPECT_TRUE(
secretResponse.Items[1].Version == version1 || secretResponse.Items[1].Version == version2);
}
{
auto operation = client.StartDeleteSecret(secretName);
operation.PollUntilDone(m_defaultWait);
auto deletedSecretResponse = client.GetDeletedSecret(secretName);
CheckValidResponse(deletedSecretResponse);
auto secret = deletedSecretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto purgedResponse = client.PurgeDeletedSecret(secretName);
CheckValidResponse(purgedResponse, Azure::Core::Http::HttpStatusCode::NoContent);
}
}
TEST_F(KeyVaultSecretClientTest, UpdateTest)
{
auto secretName = "UpdateTest";
SecretProperties properties;
auto const& client
= GetClientForTest(::testing::UnitTest::GetInstance()->current_test_info()->name());
{
auto secretResponse = client.SetSecret(secretName, "secretValue");
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
// Now get the key
auto secretResponse = client.GetSecret(secretName);
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
properties = secret.Properties;
EXPECT_EQ(secret.Name, secretName);
}
{
properties.ContentType = "xyz";
UpdateSecretPropertiesOptions options;
auto props = properties;
auto secretResponse = client.UpdateSecretProperties(properties);
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
EXPECT_EQ(secret.Properties.ContentType.Value(), properties.ContentType.Value());
}
{
auto operation = client.StartDeleteSecret(secretName);
operation.PollUntilDone(m_defaultWait);
auto deletedSecretResponse = client.GetDeletedSecret(secretName);
CheckValidResponse(deletedSecretResponse);
auto secret = deletedSecretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto purgedResponse = client.PurgeDeletedSecret(secretName);
CheckValidResponse(purgedResponse, Azure::Core::Http::HttpStatusCode::NoContent);
}
}
TEST_F(KeyVaultSecretClientTest, BackupRestore)
{
auto secretName = "BackupRestore";
BackupSecretResult backupData;
auto const& client
= GetClientForTest(::testing::UnitTest::GetInstance()->current_test_info()->name());
{
auto secretResponse = client.SetSecret(secretName, "secretValue");
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto backup = client.BackupSecret(secretName);
CheckValidResponse(backup);
backupData = backup.Value;
}
{
auto operation = client.StartDeleteSecret(secretName);
operation.PollUntilDone(m_defaultWait);
auto deletedSecretResponse = client.GetDeletedSecret(secretName);
CheckValidResponse(deletedSecretResponse);
auto secret = deletedSecretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto purgedResponse = client.PurgeDeletedSecret(secretName);
CheckValidResponse(purgedResponse, Azure::Core::Http::HttpStatusCode::NoContent);
std::this_thread::sleep_for(m_defaultWait);
}
{
auto restore = client.RestoreSecretBackup(backupData);
CheckValidResponse(restore);
auto restored = restore.Value;
EXPECT_EQ(restored.Name, secretName);
}
{
auto operation = client.StartDeleteSecret(secretName);
operation.PollUntilDone(m_defaultWait);
auto deletedSecretResponse = client.GetDeletedSecret(secretName);
CheckValidResponse(deletedSecretResponse);
auto secret = deletedSecretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto purgedResponse = client.PurgeDeletedSecret(secretName);
CheckValidResponse(purgedResponse, Azure::Core::Http::HttpStatusCode::NoContent);
}
}
TEST_F(KeyVaultSecretClientTest, Recover)
{
auto secretName = "Recover";
std::vector<uint8_t> backupData;
auto const& client
= GetClientForTest(::testing::UnitTest::GetInstance()->current_test_info()->name());
{
auto secretResponse = client.SetSecret(secretName, "secretValue");
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto operation = client.StartDeleteSecret(secretName);
operation.PollUntilDone(m_defaultWait);
EXPECT_EQ(operation.GetResumeToken(), secretName);
EXPECT_EQ(operation.HasValue(), true);
auto operationResult = operation.Value();
auto deletedSecretResponse = client.GetDeletedSecret(secretName);
CheckValidResponse(deletedSecretResponse);
auto secret = deletedSecretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
EXPECT_EQ(operationResult.Name, secretName);
EXPECT_EQ(operation.GetRawResponse().GetStatusCode(), Azure::Core::Http::HttpStatusCode::Ok);
}
{
auto operation = client.StartRecoverDeletedSecret(secretName);
operation.PollUntilDone(m_defaultWait);
EXPECT_EQ(operation.GetResumeToken(), secretName);
EXPECT_EQ(operation.HasValue(), true);
auto operationResult = operation.Value();
auto restoredSecret = client.GetSecret(secretName);
auto secret = restoredSecret.Value;
EXPECT_EQ(secret.Name, secretName);
EXPECT_EQ(operationResult.Name, secretName);
EXPECT_EQ(operation.GetRawResponse().GetStatusCode(), Azure::Core::Http::HttpStatusCode::Ok);
}
{
auto operation = client.StartDeleteSecret(secretName);
operation.PollUntilDone(m_defaultWait);
auto deletedSecretResponse = client.GetDeletedSecret(secretName);
CheckValidResponse(deletedSecretResponse);
auto secret = deletedSecretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto purgedResponse = client.PurgeDeletedSecret(secretName);
CheckValidResponse(purgedResponse, Azure::Core::Http::HttpStatusCode::NoContent);
}
}
TEST_F(KeyVaultSecretClientTest, GetProperties)
{
auto secretName = "GetProperties";
auto secretName2 = "GetProperties2";
auto const& client
= GetClientForTest(::testing::UnitTest::GetInstance()->current_test_info()->name());
{
auto secretResponse = client.SetSecret(secretName, "secretValue");
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
EXPECT_EQ(secret.Name, secretName);
}
{
auto secretResponse = client.SetSecret(secretName2, "secretValue2");
CheckValidResponse(secretResponse);
auto secret = secretResponse.Value;
EXPECT_EQ(secret.Name, secretName2);
}
{
auto secretResponse = client.GetPropertiesOfSecrets();
EXPECT_EQ(secretResponse.Items.size(), size_t(2));
EXPECT_TRUE(
secretResponse.Items[0].Name == secretName || secretResponse.Items[0].Name == secretName2);
EXPECT_TRUE(
secretResponse.Items[1].Name == secretName || secretResponse.Items[1].Name == secretName2);
}
{
auto operation = client.StartDeleteSecret(secretName);
operation.PollUntilDone(m_defaultWait);
}
{
auto operation = client.StartDeleteSecret(secretName2);
operation.PollUntilDone(m_defaultWait);
}
{
auto deletedResponse = client.GetDeletedSecrets();
EXPECT_EQ(deletedResponse.Items.size(), size_t(2));
EXPECT_TRUE(
deletedResponse.Items[0].Name == secretName
|| deletedResponse.Items[0].Name == secretName2);
EXPECT_TRUE(
deletedResponse.Items[1].Name == secretName
|| deletedResponse.Items[1].Name == secretName2);
}
{
auto purgedResponse = client.PurgeDeletedSecret(secretName);
CheckValidResponse(purgedResponse, Azure::Core::Http::HttpStatusCode::NoContent);
}
{
auto purgedResponse = client.PurgeDeletedSecret(secretName2);
CheckValidResponse(purgedResponse, Azure::Core::Http::HttpStatusCode::NoContent);
}
}

View File

@ -195,20 +195,7 @@
"keySize": "[parameters('keySize')]",
"curveName": "[parameters('curveName')]"
}
},
{
"type": "Microsoft.KeyVault/vaults/secrets",
"apiVersion": "2019-09-01",
"name": "[concat(parameters('baseName'), '/', parameters('secretName'))]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('baseName'))]"
],
"properties": {
"value": "azbxyzabcxyz"
}
}
],
"outputs": {
"AZURE_KEYVAULT_URL": {