Fixture for verifying that auth-time context flows through to changesets/queries the router builds.
Two SCIM clients (e.g. Okta + Azure AD) hit the same endpoint with
different JWTs. Each JWT carries a scim_source claim. The custom
auth implementation verifies the JWT, reads the claim, and sets it as
context via Ash.PlugHelpers.set_context/2. The router merges that
context into every changeset/query.
Here, a change reads changeset.context.private.scim_source and
stamps it on creates; a prepare filters reads down to records owned
by the requesting source. The result: each SCIM client only sees and
manages the users it created, even though they share one resource.
Summary
Types
Functions
Validates that the keys in the provided input are valid for at least one action on the resource.
Raises a KeyError error at compile time if not. This exists because generally a struct should only ever
be created by Ash as a result of a successful action. You should not be creating records manually in code,
e.g %MyResource{value: 1, value: 2}. Generally that is fine, but often with embedded resources it is nice
to be able to validate the keys that are being provided, e.g
Resource
|> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
|> Ash.create()
Same as input/1, except restricts the keys to values accepted by the action provided.