CrudQL.Service
0.5.0
dotnet add package CrudQL.Service --version 0.5.0
NuGet\Install-Package CrudQL.Service -Version 0.5.0
<PackageReference Include="CrudQL.Service" Version="0.5.0" />
<PackageVersion Include="CrudQL.Service" Version="0.5.0" />
<PackageReference Include="CrudQL.Service" />
paket add CrudQL.Service --version 0.5.0
#r "nuget: CrudQL.Service, 0.5.0"
#:package CrudQL.Service@0.5.0
#addin nuget:?package=CrudQL.Service&version=0.5.0
#tool nuget:?package=CrudQL.Service&version=0.5.0
CRUD‑QL for .NET
Build secure, declarative CRUD over EF Core via a single endpoint.
🚀 Overview
CRUD‑QL lets you ship CRUD APIs faster by turning EF Core entities into a secure, declarative, single‑route endpoint. Ditch boilerplate controllers and focus on domain rules, not plumbing.
✨ Why CRUD‑QL
- Ship faster: no per‑entity controllers/DTO mapping.
- Secure by default: RBAC/ABAC and allowed includes guard data shape.
- Validation first: FluentValidation on create/update and read filters.
- Shape responses: field projection + masked values by role.
- Works with your DbContext: auto‑registration from EF Core.
📦 Install
dotnet add package CrudQL.Service
📚 Documentation
- Wiki (guides, setup, payloads): https://github.com/Forgate-Labs/CRUD-QL/wiki
- Start with the end‑to‑end tutorial: https://github.com/Forgate-Labs/CRUD-QL/wiki/Real-World-Case
💡 Concept
Expose full CRUD for any entity with a couple of lines:
builder.Services.AddCrudQl()
.AddEntity<Product>()
.AddEntity<Customer>();
app.MapCrudQl(); // exposes /crud
This enables:
GET /crudPOST /crudPUT /crudDELETE /crud
🧩 Architecture
- Transport — single HTTP endpoint (
/crud) - Validation — request parsing and entity/field validation
- AuthN & AuthZ — policy‑based authorization (RBAC/ABAC)
- Execution — Expression Trees → EF Core → materialization
JSON‑QL is a compact JSON shape to express selection, filters, ordering, and safe includes.
🧱 Automatic Entity Registration
Automatically discovers your DbSets, wires resolvers, and applies validators/policies from your DbContext — without manual plumbing.
🧰 Key Features
- Query: nested filters (and/or), sorting, pagination
- Mutations: create/update/delete with validation
- Auth: RBAC/ABAC (row‑ and field‑level)
- Validation: FluentValidation (create/update and read filters)
- Pagination: offset or keyset
- Projections: field‑level access with masking
- Joins: safe includes via allowed paths
🧠 Future Extensions
- Aggregations (count/sum/avg) with filters
- Batch operations & uploads
- Source generator for DTOs/configs
- SDKs (TypeScript/.NET) with typings
- Compiled LINQ cache and observability (logging/metrics)
🙋 Who Is It For
- Teams building EF Core APIs who want to cut boilerplate.
- Multi‑tenant or role‑sensitive apps that need strict data shaping.
- Squads standardizing CRUD patterns across many entities.
🚫 Not a Fit
- Apps needing a full GraphQL server with complex schema federation.
- Scenarios without EF Core or where ORM is not desired.
🤝 Contributing
Issues and PRs are welcome. Share feedback and ideas on the repo’s issue tracker.
🔐 Security
If you discover a vulnerability, please open a private report or contact the maintainers.
📜 License
MIT © 2025 – Forgate Labs Built with ❤️ by [Eduardo Cunha]
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- FluentValidation (>= 11.8.1)
- Microsoft.AspNetCore.OpenApi (>= 8.0.8)
- Microsoft.EntityFrameworkCore (>= 8.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.5.0 | 150 | 2/11/2026 |
| 0.4.1 | 125 | 2/10/2026 |
| 0.4.0 | 128 | 2/10/2026 |
| 0.3.1 | 205 | 11/26/2025 |
| 0.3.0 | 210 | 11/25/2025 |
| 0.2.0 | 211 | 11/25/2025 |
| 0.1.0 | 208 | 11/24/2025 |
| 0.0.11 | 185 | 11/23/2025 |
| 0.0.10 | 168 | 11/23/2025 |
| 0.0.9 | 225 | 11/2/2025 |
| 0.0.8 | 164 | 10/25/2025 |
| 0.0.7 | 133 | 10/25/2025 |
| 0.0.6 | 204 | 10/23/2025 |
| 0.0.5 | 187 | 10/17/2025 |
| 0.0.4 | 204 | 10/16/2025 |
| 0.0.3 | 202 | 10/15/2025 |
| 0.0.2 | 197 | 10/15/2025 |
| 0.0.1 | 200 | 10/15/2025 |