Skip to content

Support Azure Front Door#706

Merged
zhiyuanliang-ms merged 21 commits intopreviewfrom
zhiyuanliang/afd
Nov 11, 2025
Merged

Support Azure Front Door#706
zhiyuanliang-ms merged 21 commits intopreviewfrom
zhiyuanliang/afd

Conversation

@zhiyuanliang-ms
Copy link
Member

@zhiyuanliang-ms zhiyuanliang-ms commented Oct 15, 2025

Why this PR?

Introduce a new API: ConnectAzureFrontDoor which takes the Azure Front Door endpoint as parameter. The configuration provider will load configuration settings from the Azure Front Door.

Behavior change

When ConnectAzureFrontDoor is used:

  1. replica discovery and load balancing features will be disabled.
  2. watch request (for refresh) will not be conditional request.
  3. authorization header will be removed from the request
  4. sync-token will not be attached to the request.
  5. Registering watched settings(sentinel key) for refresh is forbidden when connecting to Azure Front Door. With the consistency model of CDN, Sentinel key based refresh may not meet expectation of customers. Only allow collection monitoring based refresh for CDN scenario.

Refresh logic

  • Use "x-ms-date response header from AppConfig - this is the time when server generated the response

  • The provider will now track the page etags and the x-ms-date of each page response.

  • A refresh is triggered only when the refresh engine detects that the page’s ETag has changed and the accompanying x-ms-date is later than the previous server response time. Once a refresh occurs, the system simply reloads whatever content is currently available from the CDN. This means it may temporarily load outdated pages, but because the provider serving the outdated content will still show a detectable change during subsequent refresh checks, the system will eventually update all pages. The underlying philosophy is that a refresh should, at minimum, achieve what an application restart would. Therefore, our refresh mechanism effectively reloads all configuration settings.

@zhiyuanliang-ms zhiyuanliang-ms marked this pull request as ready for review October 17, 2025 18:45
linglingye001 pushed a commit that referenced this pull request Feb 5, 2026
* wip

* wip

* wip

* wip

* fix test

* wip

* wip

* wip

* add test

* update correlation context

* update

* only check response time for refresh trigger engine

* disallow sentinel key refresh for AFD

* add feature flag refresh test

* update

* resolve comments

* update

* update error message

* upgrade sdk version

* update test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants