yavsc/src
Paul Schneider 3744017127 Seed ApiScopes for ApiResourcesScopes, align PostIt client
EnsureDefaultApplicationScopes was inserting every entry of
Constants.ApiResourcesScopes (admin, moderation, performer, client,
blogs) into the IdentityResources table, as Profile-derived rows.
That made them visible to /connect/discovery's scopes_supported
under the identity section, but no API resource would ever issue a
token bearing them — IdentityServer then rejected clients that
requested any of these scopes with 'invalid_scope' at the token
endpoint.

The most visible casualty was PostIt, a public PKCE client whose
postit-settings.json asks for scope=openid profile offline_access
blogs. 'blogs' is the scope that gates the Yavsc.Blogs deployment
(blogs.pschneider.fr), so the login flow died at the token step.

Fix:

- Constants.ApiResourcesScopes entries are now seeded as ApiScope
  rows (with Name + DisplayName). IdentityResources stays limited
  to the actual OpenID Connect profile (openid, profile).
- EnsureDefaultConfiguration gains an idempotent
  AlignPostItClientScopes pass that adds any missing scope from
  PostItScopes to the existing 'postit' client's AllowedScopes.
  Nothing is removed — manual revocation stays manual.

Existing live databases pick up both changes on next startup:
missing ApiScope rows are inserted, and the postit client's
ClientScope rows catch up.
2026-06-25 20:46:58 +01:00
..
cli Split Directory.Packages.props: shared versions in root, per-product in src/ 2026-06-19 18:51:18 +01:00
PostIt Api Resources seed 2026-06-25 20:22:41 +01:00
PostIt.Tests WIP PostIt login 2026-06-25 00:08:25 +01:00
templateWeb fices the UI 2026-06-15 02:55:22 +01:00
Yavsc.Abstract fices the UI 2026-06-15 02:55:22 +01:00
Yavsc.Api Introduce Yavsc.Interfaces.ISmtpClient and a recording test fake 2026-06-22 02:09:02 +01:00
Yavsc.Blogs WIP PostIt login 2026-06-25 00:08:25 +01:00
Yavsc.Org Seed ApiScopes for ApiResourcesScopes, align PostIt client 2026-06-25 20:46:58 +01:00
Yavsc.Org.Tests Introduce Yavsc.Interfaces.ISmtpClient and a recording test fake 2026-06-22 02:09:02 +01:00
Yavsc.Server Introduce Yavsc.Interfaces.ISmtpClient and a recording test fake 2026-06-22 02:09:02 +01:00
Yavsc.Web Split Directory.Packages.props: shared versions in root, per-product in src/ 2026-06-19 18:51:18 +01:00