Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/codeql/codeql-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@ name: "JsonApiToolkit CodeQL"
paths-ignore:
- "**/bin/**"
- "**/obj/**"
# Localhost-only contract-test fixture with in-memory seeded data.
# Not deployed and not a usage showcase, so auth alerts on it are noise.
# Authentication and authorization belong to the consuming application.
- "samples/ContractApi/**"
3 changes: 3 additions & 0 deletions docs/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ Guidance for using JsonApiToolkit safely: restricting includes, configuring quer
> [!NOTE]
> To **report a vulnerability** in JsonApiToolkit itself, see the [Security Policy](https://github.com/intility/json-api-toolkit/blob/main/SECURITY.md). This page is about using the toolkit securely.

> [!NOTE]
> JsonApiToolkit does not perform authentication or authorization. It builds queries and serializes responses inside your controllers. Protecting endpoints with `[Authorize]`, policies, and per-resource ownership checks is the responsibility of the consuming application.

## `[AllowedIncludes]`

Without `[AllowedIncludes]`, every navigation property on your entities is includable via `?include=`. That can leak sensitive relationships and run expensive queries. The attribute restricts which relationships clients can request.
Expand Down