Commit Graph

107 Commits

Author SHA1 Message Date
dfbef9d161
Fix placeholder proto namespace to use project's actual namespace
The WriteProtoFileTask now receives RootNamespace and AssemblyName from
MSBuild and uses them for the placeholder proto's csharp_namespace instead
of hardcoded "Generated.Grpc". This ensures GrpcGenerator can find the
service base types on first build, enabling gRPC service registration
to work without requiring a second build.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 02:19:50 -05:00
377977b080
Make GeneratedProtoFile class public for cross-assembly discovery
All checks were successful
Publish NuGets / build (release) Successful in 34s
The generated proto file holder class was internal, preventing
reflection-based service registration from discovering it across
assembly boundaries.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 00:31:34 -05:00
20147bfec7
Add diagnostic logging when gRPC generated code not found
All checks were successful
Publish NuGets / build (release) Successful in 37s
When AddGrpcFromConfiguration method is not found via reflection,
logs detailed diagnostics to help identify the root cause:
- Entry assembly name and total type count
- All Grpc-related types with their IsClass/IsSealed/IsPublic flags
- Whether the target method exists on each type
- ReflectionTypeLoadException details if type loading fails

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 16:10:18 -05:00
18f81a28e8
Add authorization checks to gRPC service implementations
All checks were successful
Publish NuGets / build (release) Successful in 44s
- Add ICommandAuthorizationService check to CommandServiceImpl
- Add IQueryAuthorizationService check to QueryServiceImpl
- Add IQueryAuthorizationService check to DynamicQueryServiceImpl
- Return Unauthenticated/PermissionDenied gRPC status codes
- Use global:: prefix for Grpc.Core namespace to avoid conflicts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:18:07 -05:00
201768e716
Revert AllowAnonymous endpoint propagation
All checks were successful
Publish NuGets / build (release) Successful in 35s
Remove the WithAllowAnonymousIfAttributePresent helper method.
Authorization should be handled by IQueryAuthorizationService and
ICommandAuthorizationService implementations, not by ASP.NET Core
middleware.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 13:07:03 -05:00
932ee6e632
add AllowAnonymous support for MinimalApi endpoints
All checks were successful
Publish NuGets / build (release) Successful in 37s
Endpoints with [AllowAnonymous] attribute on query/command class
now bypass ASP.NET Core authorization middleware.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 12:29:26 -05:00
4bf03446c0 docs: update .NET 8 references to .NET 10
All checks were successful
Publish NuGets / build (release) Successful in 50s
Consolidated roadmap to show .NET 10 with C# 14 as current target.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 09:22:27 -05:00
227be70f95
Fix MinimalApi to resolve authorization services per-request
- Resolve ICommandAuthorizationService and IQueryAuthorizationService from request-scoped serviceProvider
- Allows Scoped authorization services that depend on DbContext
- Updated both MinimalApi and DynamicQuery.MinimalApi

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 15:56:31 -05:00
bd43bc9bde
Fix gRPC source generator for complex nested types
- Add DateTime/Timestamp conversion in nested property mapping
- Add IsReadOnly property detection to skip computed properties
- Extract ElementNestedProperties for complex list element types
- Skip read-only properties in GenerateComplexObjectMapping and GenerateComplexListMapping

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 23:25:01 -05:00
661f5b4b1c
Fix GrpcGenerator type mapping for commands and nullable primitives
- Add proper complex type mapping for command results (same as queries already had)
- Handle nullable primitives (long?, int?, etc.) with default value fallback
- Fixes CS0029 and CS0266 compilation errors in generated gRPC service implementations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 11:29:32 -05:00
99aebcf314
Fix proto generation for collection types (NpgsqlPolygon, etc.)
- Add IsCollectionTypeByInterface() to detect types implementing IList<T>, ICollection<T>, IEnumerable<T>
- Add GetCollectionElementTypeByInterface() to extract element type from collection interfaces
- Add IsCollectionInternalProperty() to filter out Count, Capacity, IsReadOnly, etc.
- Update GenerateComplexTypeMessage to generate `repeated T items` for collection types
- Filter out indexers (!p.IsIndexer) and collection-internal properties from all property extraction

This fixes the invalid proto syntax where C# indexers (this[]) were being generated
as proto fields, causing proto compilation errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 10:33:55 -05:00
Mathias Beaulieu-Duncan
f76dbb1a97 fix: add Guid to string conversion in gRPC source generator
The MapToProtoModel function was silently failing when mapping Guid
properties to proto string fields, causing IDs to be empty in gRPC
responses. Added explicit Guid → string conversion handling.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 19:06:18 -05:00
Mathias Beaulieu-Duncan
9b9e2cbdbe added domain events, fix IQueryalbeProvider abstraction, added support for sagas and RabbitMQ 2025-12-20 15:13:05 -05:00
4051800934 merge
All checks were successful
Publish NuGets / build (release) Successful in 35s
2025-12-02 15:44:21 -05:00
a312428093 update to .net 10 lts 2025-12-02 15:40:31 -05:00
dea62c2434
added roadmap and plans 2025-11-08 13:29:03 -05:00
e72cbe4319 update readme 2025-11-07 13:34:51 -05:00
467e700885 added nugets references in readme :) 2025-11-07 13:01:24 -05:00
898aca0905 fix nuget package for Generator assembly?
All checks were successful
Publish NuGets / build (release) Successful in 46s
2025-11-07 12:48:00 -05:00
9aed854b1b removed github workflow
Some checks failed
Publish NuGets / build (release) Failing after 50s
2025-11-07 12:05:32 -05:00
b06acc7675 remove TestClient and update gitea workflow 2025-11-07 12:04:47 -05:00
24a08c314a prepare for publishing 2025-11-07 12:02:33 -05:00
26ed34cd66 yes 2025-11-07 11:39:08 -05:00
2ee65b8dad yes 2025-11-04 16:45:54 -05:00
e19fad2baa checkpoint 2025-11-04 15:05:07 -05:00
facc8d7851 mega cleanup :D 2025-11-03 16:00:13 -05:00
ed01f58a0c checkpoint 2025-11-03 11:19:50 -05:00
5ba351de9c added dynamic queries for minimal api 2025-11-03 09:50:03 -05:00
a0426aa0d1 yessir 2025-11-03 07:44:17 -05:00
d2a4639c0e yes 2025-11-02 20:44:47 -05:00
ccfaa35c1d
wip proto file generation 2025-11-02 11:22:28 -05:00
6735261f21
update readme 2025-11-02 03:38:10 -05:00
4824c0d31d
first grpc and minimal api preview :) 2025-11-02 03:14:38 -05:00
f6dccf46d7
cat on a spaceship 2025-11-01 22:38:46 -04:00
747fa227a1
woawzies 2025-11-01 21:58:34 -04:00
de6e1267dd
update readme 2024-12-22 23:16:48 -05:00
7804f9ba09
fix symbols and pipeline 2024-12-22 13:47:30 -05:00
b7b88bc258
added icon and readmy for nugets, added gitea pipeline, added AoT compatible for all projects that are not AspNetCore specific 2024-12-22 11:59:19 -05:00
c6a28f352f
update package icon for Dynamic Query AspNet 2024-11-13 11:14:53 -05:00
edb84a792a
fix random chars in project file 2024-09-03 04:31:32 -04:00
e58b86c0fb
fix DynamicQueryController removed Generic that shouldn't have been removed in the first place, causing run time issues with MakeGeneric 2024-09-02 21:28:27 -04:00
c230d039f2 Update README.md 2024-08-25 12:42:54 -04:00
43bf6ebd6b Update README.md 2024-08-25 12:40:59 -04:00
Mathias Beaulieu-Duncan
2da25631bf update roadmap 2023-11-08 22:57:59 -05:00
Mathias Beaulieu-Duncan
5188785339 update roadmap 2023-11-08 22:57:29 -05:00
Mathias Beaulieu-Duncan
d328782681 update roadmap 2023-11-08 22:56:22 -05:00
Mathias Beaulieu-Duncan
1a54c12114 Merge remote-tracking branch 'origin/main' 2023-11-08 22:54:36 -05:00
Mathias Beaulieu-Duncan
4598cfedb7 better documentation 2023-11-08 22:54:32 -05:00
singatias
fba604ad65
Update and rename nuget-publish.yml to publish-nugets.yml 2023-11-04 16:58:06 -04:00
singatias
415bcca48b
Update nuget-publish.yml 2023-11-04 16:54:42 -04:00