Skip to content
This repository has been archived by the owner on Jul 5, 2020. It is now read-only.

Remove x-ms-request-root-id and x-ms-request-id headers #887

Closed
lmolkova opened this issue Apr 20, 2018 · 4 comments
Closed

Remove x-ms-request-root-id and x-ms-request-id headers #887

lmolkova opened this issue Apr 20, 2018 · 4 comments

Comments

@lmolkova
Copy link
Member

lmolkova commented Apr 20, 2018

The headers were used for correlation and were deprecated with

(all of them released ~ a year ago)

The headers conflict with Azure Storage request signing process (#640). As a result Storage responds with 403 to all requests and issue is extremely hard to debug.

We have a special configuration to disable injection of the headers into requests to storage endpoints, however, we cannot guarantee that proper config is always applied.

Removing support for these headers would eliminate the issue without any configuration and save users a lot of pain with debugging it.

Before starting the implementation we need to:
[x] - clarify if headers are used by JS SDK: No
[x] - if JS SDK still emits x-ms headers, perhaps we can still remove them on injection side.

@TimothyMothra TimothyMothra added this to the 2.7 milestone Apr 20, 2018
@TimothyMothra TimothyMothra added p1 and removed p2 labels Apr 30, 2018
@TimothyMothra
Copy link
Member

bumped this to p1 because this is actively affecting customers.
would be great to fix it permanently.

@TimothyMothra TimothyMothra modified the milestones: 2.7, 2.7-Beta2 Apr 30, 2018
@lmolkova
Copy link
Member Author

lmolkova commented May 3, 2018

Discussed with @iusafaro:
JavaScript SDK uses Request-Id header and does not use x-ms-request-id (and root) headers any longer. Customers pick up Javascript SDK dynamically whenever a new version is released.

@andymac4182
Copy link

@lmolkova Is there a migration from x-ms-request-id and x-ms-request-root-id as we have implemented this manually currently to support fetch?

@lmolkova
Copy link
Member Author

@andymac4182

Sorry for making this change that breaks your correlation.

There are 2 options for migration:

  1. Keep x-ms headers on the client side:
    set OperationCorrelationTelemetryInitializer.ParentOperationIdHeaderName to x-ms-request-id
    set OperationCorrelationTelemetryInitializer.RootOperationIdHeaderName to x-ms-request-root-id

  2. Change headers names on the client side, instead of sending x-ms- headers, send Request-Id header with value like |<something globally unique like a guid or 16 bytes random>

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants