yavsc/src
Paul Schneider b12c272df7 ClientController: split LoadClientAsync into per-collection subqueries
LoadClientAsync chains 9 .Include() calls on dbContext.Clients.
On Postgres (and InMemory for some IdentityServer8 nav types), the
resulting cartesian product trips the query shaper with
IndexOutOfRangeException at IncludeCollection materialisation time.
Bug reproduces in production on the Blog admin pages that load a
Client by id.

AsSplitQuery() rewrites the load as 9 separate SELECTs joined by
client id, which sidesteps the cartesian explosion and any shaper
ambiguity between Claims/Properties/ClientSecrets (which share
Type/Value column names across some IdentityServer8 versions).

Tests:
- EditRedirectUris_GET_after_add_lists_both_uris: end-to-end
  reproducer that adds a second RedirectUri via POST then re-GETs
  the editor. Guards the fix on the integration path.
- Bisect_*_alone: nine unit tests that exercise the same
  .SingleOrDefaultAsync(c => c.Id == id).Include(nav) on the
  InMemory provider, one nav at a time. Pinpointed three
  problematic navs (RedirectUris, AllowedScopes, AllowedGrantTypes)
  on InMemory; kept as a regression net for any future shaper
  regressions on the InMemory provider (not the Postgres path).
2026-07-12 01:15:02 +01:00
..
cli Exploiting GitVersion 2026-06-28 14:11:26 +01:00
PostIt fixes the compile and timestamps to db 2026-07-11 03:26:13 +01:00
PostIt.Tests PostIt/Yavsc.Blogs: surface 4xx body + pin controller + red UI test for Save 2026-07-11 02:52:50 +01:00
Yavsc.Abstract Blog: render user avatar through a null-safe helper 2026-07-11 19:41:09 +01:00
Yavsc.Api fixes the compile and timestamps to db 2026-07-11 03:26:13 +01:00
Yavsc.Blogs Log the identity main params 2026-07-10 00:27:18 +01:00
Yavsc.Blogs.Tests Revert "repoduces the bug" 2026-07-11 22:17:58 +01:00
Yavsc.Org ClientController: split LoadClientAsync into per-collection subqueries 2026-07-12 01:15:02 +01:00
Yavsc.Org.Tests ClientController: split LoadClientAsync into per-collection subqueries 2026-07-12 01:15:02 +01:00
Yavsc.Server Blog: enforce Restrict FK on BlogPost.Author and Comment.Author 2026-07-11 18:45:27 +01:00
Yavsc.Tests.Shared Blog: add test guarding the display-template fix + document test architecture 2026-07-11 19:59:03 +01:00