Skip to content

Introduce structured configuration model for YARP container app#3017

Merged
davidfowl merged 21 commits intomainfrom
static-hosting-improvements
Apr 15, 2026
Merged

Introduce structured configuration model for YARP container app#3017
davidfowl merged 21 commits intomainfrom
static-hosting-improvements

Conversation

@davidfowl
Copy link
Copy Markdown
Member

Summary

Replaces ad-hoc config keys (YARP_ENABLE_STATIC_FILES, YARP_DISABLE_SPA_FALLBACK, etc.) with a structured configuration model for the YARP container application.

What's included

Configuration model (#3015)

  • YarpAppConfig root object bound from IConfiguration at startup — single conversion point
  • Per-feature options classes in separate files (StaticFilesOptions, NavigationFallbackOptions, etc.)
  • YarpAppConfigBinder handles the IConfiguration → object model conversion + legacy key mapping
  • JSON schema (yarp-config.schema.json) for IDE autocomplete and validation
  • TestConfiguration using AsyncLocal for WebApplicationFactory test support (aspnetcore#37680)

Modular feature pattern

  • Each feature is an extension method in Features/ — keeps Program.cs clean
  • Program.cs only defines pipeline ordering — no feature logic inline
  • Adding a feature: new options file + new feature file + one property + one bind line + one call in Program.cs

Startup banner and logging

  • Clean startup banner showing config, webroot, SPA fallback, and listening URLs
  • Framework console noise suppressed by default (DataProtection, Hosting.Lifetime, etc.)
  • OTEL and other log providers unaffected — console filters only
  • Logging:Console:LogLevel escape hatch works (re-add configuration pattern from Aspire)

Static site sample

  • samples/StaticSite/ with index.html, 404.html, hashed CSS, nested pages
  • Config file sets content root + webroot via WebApplicationOptions

Backward compatible

Legacy env vars continue to work:

  • YARP_ENABLE_STATIC_FILESStaticFiles:Enabled
  • YARP_DISABLE_SPA_FALLBACK → disables NavigationFallback:Path
  • YARP_UNSAFE_OLTP_CERT_ACCEPT_ANY_SERVER_CERTIFICATETelemetry:UnsafeAcceptAnyCertificate

Testing

  • 13 tests pass (10 legacy config + 3 new config format)
  • Manually tested with standalone sample (YARP binary + Node.js backend + static files)
  • Compared startup/error output with Caddy

Related issues

davidfowl and others added 5 commits April 11, 2026 13:14
Replace ad-hoc config keys (YARP_ENABLE_STATIC_FILES, etc.) with a
structured object model (YarpAppConfig) bound from IConfiguration.

- Configuration/YarpAppConfig.cs: Root config POCO with all sections
- Configuration/YarpAppConfigBinder.cs: Single IConfiguration -> object
  model conversion, with legacy key mapping
- Features/: Modular extension methods per feature (StaticFiles,
  NavigationFallback, ReverseProxy)
- Program.cs: Clean pipeline - ordering is explicit, feature logic
  is in extension methods
- Extensions.cs: Takes YarpAppConfig instead of reading IConfiguration

Legacy env vars (YARP_ENABLE_STATIC_FILES, YARP_DISABLE_SPA_FALLBACK,
YARP_UNSAFE_OLTP_CERT_ACCEPT_ANY_SERVER_CERTIFICATE) continue to work.

New config format:
  StaticFiles:Enabled=true
  NavigationFallback:Path=/index.html

Refs #3015

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Set ContentRootPath and WebRootPath via WebApplicationOptions when a
config file is passed, so the default wwwroot directory resolves relative
to the config file's location.

Add samples/StaticSite/ with index.html, 404.html, hashed CSS, and
nested directory pages to exercise static file hosting.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Print a clean startup summary showing config file, webroot, SPA
fallback, and listening URLs. Suppress noisy framework logs
(DataProtection, Hosting.Lifetime, etc.) on the console provider
so docker logs shows only useful information.

Banner writes to Console directly so it always shows regardless
of log level. Framework logs still flow to other providers (OTEL).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use the AddConfiguration pattern from Aspire to allow users to
override our default console log suppression via the standard
Logging:Console:LogLevel config section.

Our defaults suppress framework noise, but users can re-enable
specific categories when debugging.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
davidfowl and others added 13 commits April 11, 2026 14:41
Remove unimplemented config sections (Compression, Https, Headers,
Redirects, CleanUrls, TrailingSlash, PreCompressed, ErrorPages,
NavigationFallback.Exclude) from the schema, options classes, binder,
and README. These get added when their features are implemented.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…y path

- Clear TestConfiguration AsyncLocal value after consuming to prevent
  test pollution between sequential tests
- Handle Path.GetDirectoryName returning null for root paths by
  falling back to current directory
- Improve README with startup banner example, logging docs, accurate
  project structure

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Was accidentally created by dotnet build. The repo uses YARP.slnx.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add language specifiers to fenced code blocks and fix table
column spacing to pass markdownlint.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add YarpAppConfig object model support to YarpTestApp: tests can
  construct config as strongly-typed objects that serialize to JSON
- Add YarpAppConfigBinderTests: 13 unit tests covering new config
  format, legacy key mapping, precedence rules, and edge cases
- Disable parallel test execution to prevent AsyncLocal race conditions
- Update integration tests to demonstrate both object model and
  dictionary-based config patterns

27 tests total (14 integration + 13 binder unit tests)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
AsyncLocal is per-execution-context, not per-thread. Each test's
WebApplicationFactory runs in its own async context so parallel
tests don't interfere with each other's config values.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
No need to pass IConfiguration separately — it's available on
the builder.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@MihaZupan MihaZupan added this to the YARP 3.0 milestone Apr 14, 2026
Comment thread src/Application/Configuration/YarpAppConfigBinder.cs Outdated
Comment thread src/Application/README.md Outdated
Comment thread src/Application/README.md Outdated
Comment thread src/Application/README.md Outdated
Comment thread src/Application/README.md Outdated
Comment thread src/Application/README.md Outdated
MihaZupan and others added 2 commits April 15, 2026 02:59
Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 15, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 1k9vsblobprodcus379.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/A2556B819D5FCE3EA290FBC1A87DB0BC/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force dotn�� (dns block)
  • 1p7vsblobprodcus324.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/A2556B819D5FCE3EA290FBC1A87DB0BC/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force dotn�� (dns block)
  • 1s1vsblobprodcus386.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/900FE39955C61CB8A94B2B7506EBF06C/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force ng/emptyFakeDotnetRoot ing/emptyFakeDotnetRoot (dns block)
  • 2kmvsblobprodcus39.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/46EB19D8E6D150879BD3367A72FC2FBC/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/C2CFF6DC975901AAF967496A9EB8D55F/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • 2zrvsblobprodcus388.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/0CEC240D0D2A3CD95F2A586EC797F11F/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force ng/emptyFakeDotnetRoot ing/emptyFakeDotnetRoot (dns block)
  • 37cvsblobprodcus359.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/A2556B819D5FCE3EA290FBC1A87DB0BC/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force dotn�� (dns block)
  • 4myvsblobprodcus32.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/666A1390E4933D7BFAE6C079AF7B59BB/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force ng/emptyFakeDotnetRoot ing/emptyFakeDotnetRoot (dns block)
  • 4zjvsblobprodcus390.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/7A0D2C00032E2259DE8A58CEB693EED6/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • 7k6vsblobprodcus337.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/E2EB9976A40F4DC5FBB271712D4D6FD6/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force ng/emptyFakeDotnetRoot ing/emptyFakeDotnetRoot (dns block)
  • bcnvsblobprodcus378.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/B120A5D8D4D275A9EDC36A9CE4A71081/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/7A0D2C00032E2259DE8A58CEB693EED6/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • c78vsblobprodcus322.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/C4511BDE0C8C37A349A090CC197F1A46/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • cflvsblobprodcus383.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/B29DC0ACE39C71EF71BA2516B6EF839E/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • dlbvsblobprodcus316.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /home/REDACTED/work/yarp/yarp/YARP.slnx --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true (dns block)
  • fdpvsblobprodcus345.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/524F3A442B7FFF0FE894AA34B85F00AB/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • jd4vsblobprodcus366.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/A2556B819D5FCE3EA290FBC1A87DB0BC/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force dotn�� (dns block)
  • josvsblobprodcus372.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/0B4FA94B136BC64912B9EBF5212D856C/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/E9CA525A876104495C55C8AA18E7BC26/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • k0ivsblobprodcus356.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /home/REDACTED/work/yarp/yarp/YARP.slnx --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/3D0E6260EF79CEE9B888AF1FE3916021/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • k4kvsblobprodcus344.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /home/REDACTED/work/yarp/yarp/YARP.slnx --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /home/REDACTED/work/yarp/yarp/test/Application.Tests/Yarp.Application.Tests.csproj --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /home/REDACTED/work/yarp/yarp/test/ReverseProxy.FunctionalTests/Yarp.ReverseProxy.FunctionalTests.csproj --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true (dns block)
  • kgfvsblobprodcus314.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/7A0D2C00032E2259DE8A58CEB693EED6/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • kijvsblobprodcus387.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /home/REDACTED/work/yarp/yarp/YARP.slnx --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true (dns block)
  • l49vsblobprodcus358.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/58C0A37E038D963A03AE0AB11683F3CC/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force ng/emptyFakeDotnetRoot ing/emptyFakeDotnetRoot (dns block)
  • l7avsblobprodcus319.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/43E921EE8070F20FEDCB4BA42004B149/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • ljcvsblobprodcus317.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/E2EB9976A40F4DC5FBB271712D4D6FD6/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force ng/emptyFakeDotnetRoot ing/emptyFakeDotnetRoot (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/C2CFF6DC975901AAF967496A9EB8D55F/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • n3kvsblobprodcus335.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/7A0D2C00032E2259DE8A58CEB693EED6/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • nn8vsblobprodcus340.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/0CEC240D0D2A3CD95F2A586EC797F11F/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force ng/emptyFakeDotnetRoot ing/emptyFakeDotnetRoot (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/7A0D2C00032E2259DE8A58CEB693EED6/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/A2556B819D5FCE3EA290FBC1A87DB0BC/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force dotn�� (dns block)
  • ofvvsblobprodcus315.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/C4511BDE0C8C37A349A090CC197F1A46/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • pc2vsblobprodcus360.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/A2556B819D5FCE3EA290FBC1A87DB0BC/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force dotn�� (dns block)
  • rcxvsblobprodcus328.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/B29DC0ACE39C71EF71BA2516B6EF839E/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • s8mvsblobprodcus38.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/7A0D2C00032E2259DE8A58CEB693EED6/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • sqdvsblobprodcus333.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/E2EB9976A40F4DC5FBB271712D4D6FD6/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force ng/emptyFakeDotnetRoot ing/emptyFakeDotnetRoot (dns block)
  • tphvsblobprodcus375.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/0B4FA94B136BC64912B9EBF5212D856C/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • u6ovsblobprodcus377.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/C4511BDE0C8C37A349A090CC197F1A46/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • ukkvsblobprodcus352.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/06DEDDBC14D624FEF679D26F014F5AC9/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • uy6vsblobprodcus34.vsblob.vsassets.io
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /home/REDACTED/work/yarp/yarp/YARP.slnx --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/packages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:TargetFrameworkRootPath=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:NetCoreTargetingPackRoot=/tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/emptyFakeDotnetRoot /p:AllowMissingPrunePackageData=true (dns block)
    • Triggering command: /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/.dotnet/dotnet restore --no-dependencies /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/A2556B819D5FCE3EA290FBC1A87DB0BC/missingpackages_workingdir --packages /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /tmp/codeql-scratch-c2ba6da0b42bd428/dbs/csharp/working/nugetconfig/nuget.config --force dotn�� (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI requested a review from MihaZupan April 15, 2026 01:05
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@davidfowl davidfowl merged commit 3a6fd9f into main Apr 15, 2026
7 checks passed
@davidfowl davidfowl deleted the static-hosting-improvements branch April 15, 2026 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants