FlexQuery.NET.AspNetCore
4.0.0-preview.3
dotnet add package FlexQuery.NET.AspNetCore --version 4.0.0-preview.3
NuGet\Install-Package FlexQuery.NET.AspNetCore -Version 4.0.0-preview.3
<PackageReference Include="FlexQuery.NET.AspNetCore" Version="4.0.0-preview.3" />
<PackageVersion Include="FlexQuery.NET.AspNetCore" Version="4.0.0-preview.3" />
<PackageReference Include="FlexQuery.NET.AspNetCore" />
paket add FlexQuery.NET.AspNetCore --version 4.0.0-preview.3
#r "nuget: FlexQuery.NET.AspNetCore, 4.0.0-preview.3"
#:package FlexQuery.NET.AspNetCore@4.0.0-preview.3
#addin nuget:?package=FlexQuery.NET.AspNetCore&version=4.0.0-preview.3&prerelease
#tool nuget:?package=FlexQuery.NET.AspNetCore&version=4.0.0-preview.3&prerelease
FlexQuery.NET.AspNetCore
ASP.NET Core integration with declarative field-access security.
When to Use This Package
Install this package when you want to use [FieldAccess] attributes on your API controllers to declare per-endpoint security rules, or when you need automatic model binding for FlexQueryParameters.
Installation
dotnet add package FlexQuery.NET.AspNetCore
Registration
builder.Services.AddFlexQuery();
builder.Services.AddFlexQuerySecurity();
// Or combine with MVC:
builder.Services.AddControllers()
.AddFlexQuerySecurity();
Quick Start
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
[HttpGet]
[FieldAccess(AllowedFields = new[] { "Id", "Name", "Email", "Status" },
MaxFieldDepth = 2)]
public async Task<IActionResult> GetUsers([FromQuery] FlexQueryParameters parameters)
{
// FieldAccess settings are automatically resolved from HttpContext.
var result = await _context.Users.FlexQueryAsync(parameters, HttpContext);
return Ok(result);
}
}
Features
[FieldAccess]Attribute — Declare Allowed, Blocked, Filterable, Sortable, Selectable, Groupable, Aggregatable fields per-endpointFieldAccessFilter— Action filter that applies attribute settings toQueryExecutionOptions- **
Automatic Security Resolution** — Extension method acceptingHttpContext` for automatic options resolution - Swagger Integration — Works with Swagger/Swashbuckle for API documentation
Related Packages
- FlexQuery.NET — Core query engine
- FlexQuery.NET.EntityFrameworkCore — EF Core execution
- FlexQuery.NET.Dapper — Dapper execution
Documentation
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 is compatible. 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. |
-
net10.0
- FlexQuery.NET (>= 4.0.0-preview.3)
-
net6.0
- FlexQuery.NET (>= 4.0.0-preview.3)
-
net8.0
- FlexQuery.NET (>= 4.0.0-preview.3)
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 |
|---|---|---|
| 4.0.0-preview.3 | 33 | 7/18/2026 |
| 4.0.0-preview.2 | 36 | 7/14/2026 |
| 4.0.0-preview.1 | 49 | 7/12/2026 |
| 3.1.1 | 99 | 7/4/2026 |
| 3.1.0 | 107 | 6/26/2026 |
| 3.0.6 | 102 | 6/24/2026 |
| 3.0.5 | 102 | 6/24/2026 |
| 3.0.4 | 101 | 6/23/2026 |
| 3.0.3 | 106 | 6/23/2026 |
| 3.0.2 | 110 | 6/22/2026 |
| 3.0.1 | 111 | 6/22/2026 |
| 2.5.0 | 111 | 5/13/2026 |
| 2.4.0 | 109 | 5/10/2026 |
| 2.3.1 | 112 | 5/8/2026 |
| 2.3.0 | 103 | 5/7/2026 |
| 2.2.0 | 122 | 5/6/2026 |
| 2.1.0 | 101 | 5/6/2026 |
| 2.0.1 | 96 | 5/6/2026 |
| 1.7.2 | 103 | 5/4/2026 |
- docs: update OpenAPI documentation registry and schema docs
- test: update tests for HAVING expression tree, parsers, validators, and SQL generation
- docs: update OpenAPI documentation, adapters, and sample diagnostics
- fix: update validation rules and request model for aggregate refactor
- refactor: update fluent builders and extensions for new Aggregate model
- feat: update HAVING expression builder and SQL generation for nested conditions
- refactor: replace AggregateModel with Aggregate and update aggregate parsers
- feat: add HAVING validation rules and update validator pipeline
- feat: add recursive-descent HAVING parsers for DSL and FQL with AND/OR/parentheses
- refactor: introduce HAVING expression tree models and AST nodes
- refactor(groupby): extract GroupByParser from FQL-specific parser
- test(parser-dsl): add identifier grammar tests for select and aggregate
- test(parser-fql): add identifier grammar tests for select and aggregate
- refactor(parser-dsl): enforce single identifier grammar in select and aggregate
- refactor(parser-fql): enforce single identifier grammar in select and aggregate
- refactor(parser): unify identifier grammar in ParserUtilities
- test: update SelectTests for SelectNode canonical AST
- refactor: minor cleanup in FqlAggregateParser
- refactor: cleanup shared validation helpers
- refactor: update validation and builder layers for SelectNode AST
- refactor: make SelectNode the canonical parser AST for nested projections
- feat: introduce SelectValidationRule for SELECT projection semantics
- refactor: rename projection SelectModel to SelectNode
- test(remaining): update validation, caching, security, dapper, and builder tests
- test(projection): update projection and integration tests for SelectModel
- test(parsers): update parser tests to assert SelectModel objects
- feat(source): wire remaining builders and extensions to SelectModel
- refactor(projection): update downstream consumers to use SelectModel
- feat(parsers): update all select parsers to emit List<SelectModel>
- feat(projection): introduce SelectModel AST and update QueryOptions.Select type
- tests: add end-to-end having validation tests to parser test suites
- tests: update Dapper having integration test to DSL syntax
- tests: update HAVING validation tests for aggregate declaration checks
- tests: update DSL having parser tests for new grammar
- validation: enforce declared aggregate references in HAVING
- parsers: centralize DSL aggregate grammar in AggregateGrammar
- Tests: add parser-level validation tests for DSL and FQL
- ExpressionBuilder: use FilterOperators for operator support check
- DSL: document AST contract and use FilterOperators for grammar validation
- FQL: complete HAVING operator set and remove redundant converter validation
- feat(parser): reject unsupported operators in DSL Having parser
- Revert "test(integration): update sort syntax in mixed aggregate sort test"
- test: add comprehensive aggregate parser tests and reorganize sort parser tests
- refactor(models): rename SortOption to SortNode
- test(integration): update sort syntax in mixed aggregate sort test
- test(validation): add COUNT target validation tests for aggregate sort
- test(parser): update DSL sort parser tests for new aggregate syntax
- feat(validation): enforce COUNT targets collection-only in sort
- feat(parser): add descriptive comments to aggregate sort parser
- refactor(parser): replace legacy aggregate sort syntax with colon-separated format
- refactor(validation): remove AggregateAliasValidationRule
- test(aggregate-sort): update tests for wildcard rejection and normalized AST
- refactor(builders): update aggregate and sort builders for enum-based AST
- feat(validation): add aggregate validation rules and error codes
- feat(parsers): reject wildcard aggregates and normalize aggregate sort AST
- refactor: rename SortParser to DslSortParser
- test(projection): add alias integration tests
- test(fql): add nested alias parser tests
- test(dsl): add nested alias parser tests
- feat(builder): propagate aliases and detect conflicts in MergeTree
- feat(fql): add nested alias parsing to FqlSelectParser
- feat(dsl): add nested alias parsing to DslSelectParser
- test(di): fix namespace to match folder structure
- test(projection): add nested projection integration tests
- test(fql): add nested projection parser tests
- test(dsl): add nested projection parser tests
- fix(governance): skip ValidateOrThrow in non-strict mode
- feat(fql): add ParseToSelectionTree for nested projection support
- feat(dsl): add ParseToSelectionTree for nested projection support
- test: add aggregate alias validation and builder tests
- test: add DSL and FQL parser aggregate alias tests
- feat: update AggregateBuilder fluent API for optional aliases
- feat: enforce non-empty alias syntax in FQL aggregate parser
- feat: enforce non-empty alias syntax in DSL aggregate parser
- feat: add aggregate alias semantic validation
- fix(tests): align Dapper integration and FQL parser tests with colon alias syntax
- feat(select): add DSL colon alias parsing to DslSelectParser
- refactor(parser): rename HavingParser to DslHavingParser
- refactor: restrict include to navigation property paths only
- merge: shared model migration and test modernization (#11)
- test: finalize DialectTests migration to shared model registry
- test: update remaining test files for shared model compatibility
- test: update integration, projection, security, and validation tests
- test: update Dapper integration and security tests for shared model
- test: update Dapper SQL translation tests for shared model
- test: update builders, caching, filters, and resolver expectations
- test: add new test infrastructure for shared model
- refactor: remove old per-test fixtures and legacy FlexQueryCore tests
- feat: add cycle detection and shared model metadata
- merge feature/regression test to main branch (#10)
- feat(dsl): adopt function-first aggregate grammar
- refactor(parsers): split shared SelectParser by language
- refactor: unify parser exceptions under FlexQueryException
- test(dapper): add SqlJoinBuilder unit tests
- test(dapper): add SqlCountBuilder, SqlHavingBuilder, SqlSelectBuilder unit tests
- refactor(tests): split ValidationRuleTests into one file per rule
- refactor(tests): reorganize test files into structured feature folders
- test: add comprehensive unit test suites for Core, AspNetCore, OpenApi, and Diagnostics
- refactor(core): make global config immutable after first call; add thread-safe registries and tests