Commit Graph

338 Commits

Author SHA1 Message Date
Larry Osterman
5d6b6f72c1
Added deprecated constructors for attestation service (#4313)
* Added deprecated constructors for attestation service

* Disable deprecation warnings for clang; improved documentation to reflect deprecated functions

* Use doxygen @deprecated on deprecated functions

*
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>

---------

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
2023-02-01 13:05:20 -08:00
Anton Kolesnyk
05040409d9
Policies do not overwrite HTTP headers if they are already set (#4303)
* Policies do not overwrite HTTP headers if they are already set

* Use static constant UserAgent

---------

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-01-31 17:58:48 -08:00
Larry Osterman
f757bb06e7
Clean up tracing logic - prepare for new tracing functionality. (#4263)
- Made Context immutable (including marking the static ApplicationContext as const
- Put back TelemetryPolicy in all pipeline cases and removed User-Agent generation from RequestActivityPolicy (note: This part of the change may end up being reverted). Also updated parameters for TelemetryPolicy to make it clearer that the parameter is a package name, not a service name.
- Changed Az.Namespace value from being the package name to being the service name.
- Change test SpanExporter to fully capture exported values rather than keeping references to the values.


Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
2023-01-25 19:07:25 +00:00
Anton Kolesnyk
ff53067dd3
Nullable::Reset() hardening (#4232)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-01-12 16:27:51 -08:00
Larry Osterman
a34b8d19a5
Add ApiView settings for existing packages. (#4226)
* 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>
2023-01-11 08:16:13 -08:00
Anton Kolesnyk
152a847dcc
noexcept adjustments (#4200)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-01-03 11:17:16 -08:00
Anton Kolesnyk
fd3b9a6180
More accurate argument type for the ExtendableEnumeration == and != (#4199)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-01-03 11:17:09 -08:00
Anton Kolesnyk
3e4a41bd4a
Remove noexcept specification from Azure::DateTime::clock::now() (#4198)
* Remove noexcept specification from Azure::DateTime::clock::now()

* Undo unnecessary change (my local clang-format is broken)

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-01-03 11:17:02 -08:00
Anton Kolesnyk
a70be339e7
Audit string comparisons (#4197)
* Audit string comparisons

* Mac fix

* !isxdigit()

* Rewrite condition + comment

* <3

* Clang-format

* 255

* Allow uppercase

* stoi() radix

* ShouldEncode()

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-01-03 11:16:54 -08:00
Anton Kolesnyk
09db139a71
AzureCliCredential (#4146)
* AzureCliCredential

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2022-12-05 13:15:19 -08:00
Anton Kolesnyk
4de2423934
In-memory Identity token cache (#4024) 2022-10-25 20:23:22 +00:00
Larry Osterman
6c225cd6c9
Converted WinHTTP to Async. (#4015)
* Async WinHTTP

* Added cancellation test; added support for request cancellation.

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
2022-10-24 11:43:42 -07:00
Ahson Khan
0a888c6674
Fixup comment in unique_handle.hpp to reference curl_easy_cleanup rather than curl_free. (#3997) 2022-10-05 13:19:41 -07:00
Larry Osterman
895a1f9f2c
Fixed memory leak in curl (#3995)
* Fixed memory leak in curl

* fixed documentation in unique_handle.hpp
2022-10-05 02:50:42 +00:00
Larry Osterman
53c9da1552
Pull all Websockets changes to main except for WebSockets itself. (#3954)
* Pulled WebSocket fixes into main except for WebSockets functionality


Co-authored-by: Rick Winter <rick.winter@microsoft.com>
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: George Arama <50641385+gearama@users.noreply.github.com>
Co-authored-by: Ahson Khan <ahson_ahmedk@yahoo.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2022-10-04 14:58:56 -07:00
JinmingHu
eb9c35d266
Revert "Add Win32FileTimeConverter (#3941)" (#3966)
This reverts commit 14e4f52b91.
2022-09-29 09:42:23 +08:00
JinmingHu
14e4f52b91
Add Win32FileTimeConverter (#3941) 2022-09-21 09:31:34 +08:00
Larry Osterman
38b07749dc
Removed internal types from OpenTelemetry API surface; removed default parameters from OpenTelemetry API surface. (#3762)
* Removed internal references from public headers


* Updated changelog files

* Updated DistributedTracing.md to reflect Factory construction of Azure::Core::Tracing::OpenTelemetry::OpenTelemetryProvider type

Co-authored-by: Ahson Khan <ahkha@microsoft.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
2022-06-29 21:39:56 -07:00
Anton Kolesnyk
dfe9a2be1f
InputSanitizer: rename to HttpSanitizer, remove static member (#3736)
* InputSanitizer => HttpSanitizer, remove static

* Update cpp

* Clang format

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2022-06-15 11:18:23 -07:00
Anton Kolesnyk
b36403a018
Include pi-version to default list of unredacted query params for logging (#3730)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2022-06-10 17:17:37 -07:00
Larry Osterman
99f45a5f18
Enable Distributed Tracing for Attestation SDK client. (#3706)
* Implement tracing for Attestation and Template services

* Pipeline no longer requires service name if opting into distributed tracing; enable tracing in attestation service

* Generate user-agent header from request activity policy

* Added test to catch the redacted header regression

* Updated documentation to reflect API surface changes
2022-06-08 11:40:56 -07:00
Larry Osterman
78095ce0c7
Additional OpenTelemetry Feedback... (#3691)
* OpenTelemetry API Review Feedback

* Returns std::unique_ptr<DiagnosticTracingFactory instead of raw pointer

* Late breaking pull request feedback

* Renamed clientContext parameter to CreateSpan

* Renamed ContextAndSpanFactory to TracingContextFactory and CreateSpan to CreateTracingContext.
2022-06-03 00:25:08 +00:00
Larry Osterman
ebe084bfc6
OpenTelemetry API Review Feedback (#3687)
* OpenTelemetry API Review Feedback
2022-06-02 00:20:26 +00:00
Larry Osterman
7c93854125
Complete the initial implementation of OpenTelemetry (#3677)
* Added telemetry support for HTTP pipeline elements

* Finish OpenTelemetry implementation

* clang-format and added doxygen comments
2022-05-31 10:57:32 -07:00
Larry Osterman
8ca08a1429
Initial implementation of OpenTelemetry APIs. (#3561)
* Start of tracing prototype

* Created initial implementation of azure-core-opentelemetry package

* New version of enabling MSVCRT Lib for static configs

* Attempt to add OpenTelemetry tests to build

* Take a dependency on OpenTelemetry version 1.3

* Added service API level tracing support

* API Review feedback
2022-05-23 16:44:22 -07:00
Anton Kolesnyk
593464ceda
Remove (#3657)
oexcept specifier from Context::IsCancelled()

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2022-05-20 11:48:14 -07:00
Anton Kolesnyk
80cf3d09fd
Update all-inclusive headers, and CMakeFiles for including all headers (#3640) 2022-05-17 20:45:46 -07:00
JinmingHu
b9fb5efb6a
Get rid of warnings in nullable.hpp (#3617) 2022-05-05 07:10:34 +08:00
Ahson Khan
218784d82a
Create a session handle once in the transport ctor and reuse it for all requests rather than creating a new one each time. (#3585)
* Reuse the same session handle for all requests rather than creating a new one each time.

* Move the session handle creation to the transport adapter ctor.

* Update changelog entry.

* Address PR feedback.

* Change CreateSessionHandle to return a local session handle
2022-04-28 14:19:55 -07:00
JinmingHu
87b230a51d
Add batch protocol layer (#3580)
* Add batch protocol layer
2022-04-26 08:58:20 +08:00
Victor Vazquez
bdb71249ce
update curl transport options to support ignore proxy from system (#3564)
* update curl transport options to support ignore proxy from system

* update changelog

* bug fix for cl
2022-04-25 16:50:17 +00:00
JinmingHu
557e033941
Fix a typo extendable enumeration (#3535)
* Fix a typo extendable enumeration

* more
2022-04-09 04:25:25 +00:00
Victor Vazquez
4ab3901bbb
Rename winhttp transport option (#3488)
* rename option
2022-03-31 12:19:25 -07:00
Victor Vazquez
af590d80f3
[PERF FW] Insecure cert libcurl (#3434)
* Support insecure for libcurl

* format

* warnings and notes about insecure

* winhttp notice and warning

* revert

* add comment

* Update arg

* enable winHTTP insecure

* rename method

* rename method

* update raw pointer to ref

* cl

* docs

* docs
2022-03-21 16:18:13 -07:00
Larry Osterman
abb6ac0c9a
Add Policy Management Certificates APIs (#3417)
* Added GetPolicyManagementCertificates

* Added Add and Remove policy certificate

* Added support for Tpm attestation

* Moved TPM to attestation service specific section

* Added support for validation callback

* Updated RequestFailedException documentation
2022-03-16 15:12:33 -07:00
Larry Osterman
f4e99416c9
RequestFailedException includes error information #3398 (#3397)
* RequestFailedException includes error information

* Fixed test collateral

* Added changelog entry for new core version; Added tests to verify response message contains all expected fields
2022-03-11 21:15:10 +00:00
Larry Osterman
8672f985aa
Create Extendable Enumeration base class (#3421)
* Created extendableenumeration class

* Convert attestation to use extendable enumeration; added test for extendable enumerations

Co-authored-by: Casey Carter <cartec69@gmail.com>
2022-03-11 02:37:31 +00:00
Larry Osterman
ddc9eb355f
Fixed Live Tests for Attestation SDK. (#3366)
* Set WinHTTP_OPTION_CLIENT_CERT_CONTEXT to enable connections to attestation service

* Set serviceDirectory from environment variables

Co-authored-by: Victor Vazquez <victor.vazquez@microsoft.com>
2022-02-24 22:48:15 +00:00
Anton Kolesnyk
53e90d81fb
Undo assert internal macro and headers (#3318) 2022-02-07 12:25:22 -08:00
Ahson Khan
031696179b
Delegate to RFE string ctor and move impl from header to src. (#3315)
* Removing the two param RFE ctor, there should be no callers

* Remove the two param RFE ctor from the source file.

* Fix-up unit test and add a changelog entry.

* Remove test that uses the removed ctor.

* Delegate to RFE string ctor and move impl from header to src.
2022-02-04 15:09:39 -08:00
Ahson Khan
9c79a0725d
Removing the two param RFE ctor, there should be no callers (#3215)
* Removing the two param RFE ctor, there should be no callers

* Remove the two param RFE ctor from the source file.

* Fix-up unit test and add a changelog entry.

* Remove test that uses the removed ctor.
2022-02-03 19:00:25 -08:00
Anton Kolesnyk
2aae6be7a3
Encapsulate getenv(), and make it work on UWP (#3275)
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.
2022-01-29 08:22:33 +00:00
Anton Kolesnyk
4f8f96eb88
Macro rename compatibility layer (#3186)
* Macro rename compatibility layer

* pragma once + doxy comment

* Update sdk/core/azure-core/inc/azure/core/azure_assert.hpp

Co-authored-by: Ahson Khan <ahkha@microsoft.com>

* clang format

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
2022-01-06 13:08:09 -08:00
Anton Kolesnyk
b4fe751310
RequestFailedException: decouple Message and what(). (#3201)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-12-18 09:00:04 -08:00
Anton Kolesnyk
764b839dec
Make AZURE_ASSERT and related macros internal (#3059) 2021-11-17 18:31:37 -08:00
Anton Kolesnyk
5e0f1c9ac8
Do not initialize statics in inline functions (#3111)
* Do not initialize statics in inline functions

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-11-17 13:17:41 -08:00
Anton Kolesnyk
ae612c5db5
Fixed linking error when Azure SDK is being built as DLL. (#3069)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Victor Vazquez <victor.vazquez@microsoft.com>
2021-11-05 14:25:11 -07:00
Victor Vazquez
50b89caaa5
hide Request general ctor (#3033) 2021-11-03 16:09:07 -07:00
Victor Vazquez
fb03127d05
Use ms for connection timeout (#3001)
* move the static transport adapter to private impl

* use MS for connection timeout

* update

* fix the value
2021-11-03 23:08:35 +00:00
Victor Vazquez
31398df179
move the static transport adapter to private impl (#2993) 2021-10-28 11:49:37 -07:00