* Identity February Release
* Accumulate changelog entries from previous Beta releases
* Update core minimum version requirement
* Best way to fix which may not work in CI
* Drop version from cmakelists
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Compilation fixes for UWP
* More accurate condition
* Fix warnings
* Format files as vcpkg formats them; pull one change back from vcpkg
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Create ApiViewSettings for most existing packages
* Corrected name for blobs storage review name
* Added cspell settings for DCURL
* Create ApiViewSettings for most existing packages
* Corrected name for blobs storage review name
* Added cspell settings for DCURL
* ApiView settings changes for DataLake
* Renamed includeInternal to allowInternal; Added storage common; Fixed package names
* Fixed spelling error
* If there's an error accessing the site with no CRL checks, don't try it any more
* Stop checking example.com because it doesn't work
* Update sdk/attestation/azure-security-attestation/inc/ApiViewSettings.json
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
* Update sdk/core/azure-core/inc/ApiViewSettings.json
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
* Update sdk/keyvault/azure-security-keyvault-secrets/inc/ApiViewSettings.json
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
* ClientCertificateCredential: Add AuthorityHost override and Azure Stack support
* Use RAII types for handles
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Use nlohmann::json to parse Identity token
* Update sdk/identity/azure-identity/src/token_credential_impl.cpp
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
* Line coverage / Strict ISO 8601 datetime parse test
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
* ManagedIdentityCredential: Add support for AppServiceV2019
* Attempt to create 2019 before 2017
* Changelog update
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* binary cache and manifest
* update packages
* udpate
* add cache to private pipeline
* next try
* aver
* other
* again
* aver quick
* more
* this way
* again
* one more
* print
* test
* use depend
* more deps
* dep
* Apply suggestions from code review
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* updated to use group variable
* update identity
* end line
* Update vcpkg.json
* Apply suggestions from code review
* cspell
* remove comment
* updates
* make cache mode depend on SAS env var
* map env var only for internal pipelines
* other approach
* what about this
* and this
* try
* amd
* another
* extra step
* typo
* override for internal
* use default succeded
* azure core update manifest
* a
* run cmake-generate nightly as well
* check for SAS
* check cache
* no secret
* fix is secret
* pass explicit
* use secret all the time
* char
* One more
* export
* echos
* last
* array
* remove question
* ok
* weird
* use account key
* substring
* VCPKG_BINARY_SOURCES
* Add module installation
* task:
* Correct pathing for module
* update source gen
* format
* update spelling
* IsWindoows
* Use pwsh
* Cannot clobber with PSModule-Helpers. Attempt plain install
* Attempt plain install
* Revert unnecessary change to Update-DocsMsToc.ps1
* template ready
* curl is required on Windows as well for some CI gates
* attestation
* fix format
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* changes
* vs generator
* use macro
* release and samples
* add target to build smoke test
* revert
* reuse macro for samples
* extra legs for samples only
* storage connection string
* format
* order and macro
* update
* samples
* missing
* cp
* cp
* cp
* Enable test proxy for perf tests
* unwanted
* format
* fix docs
* cspell
* parallel support and multi proxy
* update arg name
* more logs
* fix request redirection
* Apply suggestions from code review
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
* run once before record, then after recording on
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
* Readme and dependency version updates for stable Identity release
* Lowest possible version I can get through our CI at the moment
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
It all started with UWP. The [docs](https://docs.microsoft.com/en-us/cpp/cppcx/crt-functions-not-supported-in-universal-windows-platform-apps?view=msvc-170) say: "`Environment variables are not available to UWP apps.`". And it truly won't work, I tried: linker error, the function is simply not present.
So, for a year or so, we were `ifdef`ing everything enivoronment-related: console logger, environment credential, managed identity credential.
And then just recently we wanted to enable our CI for UWP, including tests and samples. And it required to do more ifdefs (in vcpkg, we don't build samples or tests, so that problem did not exist).
It just became more messy. Especially in samples - you can see how we would disable warning with `#pragma warning(disable : 4996)` or defining `_CRT_SECURE_NO_WARNINGS` already, but now came UWP, so we would have to add comment that `getenv()` is not available and make the sample compilation to either fail with clear message, or throw an exception. Plus we would have to detect that we are being compiled on UWP, which also adds visual clutter for reader. You can see how such an irrelevant (for a sample) thing as `getenv` was consuming more and more lines of sample code and reader's attention.
But then! I read docs on more APIs for UWP. And I noticed that on .NET you can read environment variables. So I went and checked Win32 API docs for [GetEnvironmentVariable()](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getenvironmentvariable) - it says: "`Minimum supported client: ... UWP apps`".
**GetEnvironmentVariable() works on UWP!**
And so does `SetEnvironmentVariable()` (our tests use it, which means we can make all of them work and execute for UWP).
That's good news, but now it would probably be more code: it usually takes more lines to invoke WinAPI, it is no more an one-liner to call `getenv()/setenv()`. So, I encapsulated that into `Azure::Core::_internal::Environment::GetVariable()` and `SetVariable()`. You can see how much less ifdefs is in our code now. Not to mention it works on UWP!
Per team request, that API is SDK-internal. Samples use their own mini-helper project, `get-env-helper` that makes is so that `getenv()` works naturally on Linux and macOS, compiles without warnings and works on Win32, and compiles and works on UWP (using `GetEnvironmentStringsA()`)
If it was for me, I would just make `Azure::Core::Environment::GetVariable()` public and simplify even further, I think it would be beneficial for sample readers (you can see that extra `get-env-helper` stuff adds just a little more visual clutter, compared to nothing). But I can see reasons against that, why team did not want to do it.