* Identity: IMDS fail-fast and Cred order change in DAC (and Core support)
* Mac fix and cspell update
* Update unit test and clang-format
* Temporarily update samples to use AzCliCred until recordings are re-recorded
* Revert samples back to use DAC
* Remove SAS auth from Tables template
* Clang-format
* Add support for 'AZURE_POD_IDENTITY_AUTHORITY_HOST', override it for running samples in CI
* Add unit test for AZURE_POD_IDENTITY_AUTHORITY_HOST
* "in milliseconds"
Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com>
* PR Feedback
* Named constant + comment
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com>
* Update vcpkg baseline
* Make code to compile with either newer or older version of opentelemetry-cpp
* Clang-format
* Suppress otel warnings in stress test code
* Update CI to update vcpkg cache if the run is PR-initiated
* Turn SSL caching off by default
* Make code to compile with either newer or older version of opentelemetry-cpp
* Clang-format
* Integrate the exact copy of #6581 - to make sure we're testing the same change with libcurl >= 8.12, and also make future merging easier
* Update cspell
* Move feature to bugfix
* Update vcpkg.yml
* Copy #6582 to verify against the latest libcurl
* Undo unnecessary changes
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Fix Windows error for failing curl SSL cache
* Fix unused parameter warning in win_http_transport.cpp, as in #6579
* Update changelog, cspell, and conditional init m_sslShareHandle
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Add SSL caching share for curl
* Use correct destructor for CURLSH RAII
* Unit tests passing locally
* Add curloptions test for coverage and fix clangformat errors
* whitespace reverts
* Fix clang format errors
* Address PR comments
* Update changelog and CI line coverage target
* Update Changelog and set curl options test to disable ssl caching for validating non-default codepath
* Update sdk/core/azure-core/CHANGELOG.md
* Update CHANGELOG.md
* Update cspell.json
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Temporarily disable CheckFailedCrlValidation test to unblock CI
* Update branch coverage
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Use TokenCredential *const* everywhere
* Use left const where the surrounding code also uses it
* Use left const everywhere
* Clang-format
* More clang-format
* typos
* Clang-format
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Initial attempt at a Rust AMQP stack, merged against feature/rust_amqp for now. (#5942)
* Enabled building AMQP *without* uAMQP
* Start integrating Rust AMQP Value to C++ AMQP Value
* AMQP Value tests now pass
* Moved AmqpValueType ostream inserter to its original location
* Added Rust AMQP Message implementation
* Added start of message source tests
* Enabled building AMQP *without* uAMQP
* Start integrating Rust AMQP Value to C++ AMQP Value
* Moved AmqpValueType ostream inserter to its original location
* Message target support
* Message source and target support
* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features (#5986)
* Checkpoint of connection logic
* Started implementing Rust based Connection by pulling out uAMQP artifacts
* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.
* Don't leak runtime context on calls
* Refactor AMQP logic to better isolate rust AMQP code from uAMQP code. (#6008)
* refactor uAMQP and Rust AMQP into separate implementations for ease of use
* Add connection support; restructured tests to fail on RUST AMQP rather than attempting to run; removed some uAMQP-only features (#5986)
* Checkpoint of connection logic
* Started implementing Rust based Connection by pulling out uAMQP artifacts
* Implemented AMQP Connection in Rust; started API surface refactoring for Rust APIs; Refactored tests to remove some uAMQP only elements.
* Don't leak runtime context on calls
* export UUID from AMQP
* Cleaned up some more elements; reduced scope of doxygen significantly
* runtime context needs to be process global not thread global; all tests pass or fail at this point
* Merged main into branch
* Implement AMQP Session APIs in Rust. (#6033)
* Checkpoint of rust session support
* Session begin/end now works
* Session tests pass
* Removed accidental regression
* Added rust per-call context (#6043)
* Reworked runtime context to be call context
* Added context parameter to blocking AMQP calls
* Added comments around the lifetime of the RustRuntimeContext captured in the CallContext object
* uAMQP changes corresponding to Rust changes
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* sync rust SDK fixes to C++
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Enable Rust ClaimsBasedSecurity interoperability; Converted EventHubs producer client to work with Rust AMQP changes. (#6059)
* canonicalized return values; initial CBS support
* Implementation of CBS for C++
* Amqp Authentication works; Integrate Rust AMQP into Eventhubs Producer client
* Implemented Rust AMQP message sender. (#6083)
* Initial sender implementation
* PR feedback
* Management APIs work (#6096)
* Management APIs work
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Converted builders to be compliant with Rust guidelines. (#6102)
* Converted builders to be compliant with Rust guidelines.
* Bring rust changes back to C++ repo
* Improved builder developer experience
* Removed builders from AMQP layer to conform to Rust guidelines; Fixed AMQP bug in message sender tests (#6208)
* Removed builders from AMQP layer to conform to Rust guidelines; Fixed AMQP related bug in message sender tests
* Pr feedback
* Implement receiving messages; Changes to eventhubs so that all eventhubs tests pass (#6254)
* Eventhubs tests pass
* Noise reduction; explain the task which spawns a task
* Update sdk/eventhubs/azure-messaging-eventhubs/src/producer_client.cpp
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* PR feedback
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Integrate Rust 2 step message receive code to C++ (#6349)
* Integrate Rust 2 step message receive code to C++
* If receiving a delivery failed, transmit the error to the message channel if at all possible
* Enable Rust based AMQP by default (#6362)
* AMQP tests now pass; Integrate TestAmqpBroker with CI pipeline
* Updated changelogs to reflect API changes made during AMQP updates
* Replace uAMQP with Rust AMQP as the default AMQP transport; Updated build configurationj to reflect that
* Test fixes
* PR feedback; test fixes
* Fixed uninitialized variable tanking some tests (#6381)
* Fixed uninitialized variable tanking some tests
* Fixed Rust AMQP tests
* Removed connection string support from Eventhubs and EH tests. (#6391)
* Removed the ability to use connection strings from EventHubs
* Enable Rust AMQP by default!!!
* Update CMakePresets.json
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
---------
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* Docs links coversion: docs.microsoft.com -> learn.microsoft.com
Some markdown formatting
* Adding "msrc" to cspell words
* Undoing things auto formatter did
* Appling Ahson's suggestions
* Very preliminary mTLS implementation
* Tests for TLS client certificate
* Tested mTLS functionality
* Added changelog entry; updated PCCERT_CONTEXT using declaration to be more succinct.
* Minor code cleanups
* Update claims_based_security_impl.hpp
Undo UniqueAmqpCbsHandle removal - it is right, but will create problems for Larry working in a feature branch when merging it back.
* Update claims_based_security_impl.hpp
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Move UserAgentGenerator to _internal
* Clang-format
* Update release date to November release (Core)
* Update release date to November release (EventHubs)
* _MSVC_LANG
* Move comment up
* Add /Zc:__cplusplus when building the SDK, and add unittest
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Set token to be expired if response comes back as unauthorized.
* Add CL entry.
* Update CL.
* Use trc MinimumExpiration to invalidate the credential's token cache.
* Add test.
* Address PR feedback.
* Remove comment as it is no longer relevant.
* Use initializer list syntax to see if posix compilers are okay with that.
* Keep the bool field as non-atomic.
* Revert "Keep the bool field as non-atomic."
This reverts commit 1b8c7622d5234b010bb0a4eb5db8a436de5a2adf.
The SONAME currently written to shared libraries is unversioned, e.g.
libazure-core.so. The SDK's ABI is unstable, so replacing these .so
files with newer versions will immediately break any consumers.
Setting the VERSION property results in libazure-core.so being a symlink
that is used at build time to point to the versioned library, e.g.
libazure-core.so.1.14.0. Consumers point directly to the versioned
library and continue to work against the older version when the library
is upgraded. Once rebuilt, they then point to the newer version instead.
It is more common to use an ABI version that is separate to the library
version, but it makes sense to use the latter when the ABI is unstable.
The Boost libraries do exactly this.
This change has no effect on static libraries, which is the more common
use case. See the CMake documentation for its wider effects.
https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html
* Azure Core October GA Release
* Change to re-trigger CI
* Undo change, still re-trigger CI
* Update sdk/core/azure-core/CHANGELOG.md
Co-authored-by: Larry Osterman <LarryOsterman@users.noreply.github.com>
* Also update wording in the previous release
* Spelling
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Larry Osterman <LarryOsterman@users.noreply.github.com>
* Initial verification and tests.
* Simplify validation checks to what's needed.
* Update changelog entry.
* Fix typo and disable cspell for a test line.
* Address PR feedback.
* Use code snippets from managed identity credential samples in identity readme doc.
* Generate readme from snippets.
* Update snippet generation script to remove unnecessary indentation and extra new line at eof.
* Update Snippet Generation doc to show a concrete example on how to run it.
* Update other repo READMEs with the generation fixes.
* Fix KeyVault Secrets sample and use the snippets in its README
* Use the added sample snippet.
* Make the HTTP transport behavior consistent between WinHTTP and libCurl by disabling automatically following redirects on Windows.
* Re-enable APC test.
* Fix casing in changelog.
* Add http bin based unit test and fix typo in doc comment for curl.
* Update test name to avoid 'dont'
* Fix typo.
Unfortunately, "*" breaks Doxygen 1.12.0 with the following error:
error: end of comment block while expecting command </em>
I have no idea why. Anything else like '*' or "x" works, but "*" was
clearly intended here. The best I can suggest is: * in quotes.
* Increment package version after release of azure-core-amqp
* Increment package version after release of azure-core
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>