Add tracing, analyzer coverage, identity schema introspection, and EF JSON converter support#2244
Conversation
…ces) can be used with [Json] properties - Add JsonConversionOptions with all Arc default converters (EnumConverterFactory, EnumerableConceptAsJsonConverterFactory, ConceptAsJsonConverterFactory, DateOnlyJsonConverter, TimeOnlyJsonConverter, TypeJsonConverter, UriJsonConverter, EnumerableModelWithIdToConceptOrPrimitiveEnumerableConverterFactory) - Add EntityFrameworkCoreOptions.JsonConverters list for user-supplied converters - Register JsonConversionOptions as singleton in DI from WithEntityFrameworkCore - Thread JsonConversionOptions through both ApplyJsonConversion overloads (optional param) - Update BaseDbContext to resolve JsonConversionOptions from ApplicationServiceProvider - Change JsonValueConverter<T>/JsonValueComparer<T> to accept JsonSerializerOptions via ctor - Add specs: for_JsonConversionOptions and when_applying_json_conversion_with_custom_options
… IDisposable' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
… IDisposable' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
… IDisposable' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
… IDisposable' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
… IDisposable' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
…ix proxy messaging module
…to copilot/consolidate-pull-requests
…compliance' into copilot/consolidate-pull-requests
…nt' into copilot/consolidate-pull-requests # Conflicts: # Source/DotNET/Tools/ProxyGenerator.Specs/Scenarios/Infrastructure/arc-bootstrap.js
…als-add-traces' into copilot/consolidate-pull-requests
|
NuGet packages for this PR, e.g. Cratis.Arc: |
|
@copilot Lets update all dependencies (except for those locked to preview versions) |
Addressed in 5c8f78f. I updated the stable JavaScript dependencies without touching preview-tagged versions, kept the local |
|
NuGet packages for this PR, e.g. Cratis.Arc: |
|
@copilot Merge from main and then update all package dependencies |
Addressed in 8bc4138. I merged the latest |
|
NuGet packages for this PR, e.g. Cratis.Arc: |
|
@copilot Update the .NET packages to the latest - except those that are set to pre-release versions |
Addressed in d06e6d7. I updated the stable .NET package pins across the central package props, kept the existing prerelease pin intact, and left the net8/net9 EF/Npgsql/Mvc.Testing lines on their latest compatible stable versions because the 10.x packages only support net10.0. Validation: |
|
NuGet packages for this PR, e.g. Cratis.Arc: |
|
@copilot Look at the following PR for how we've done the registration of library ActivitySources with the generic solution: |
Addressed in f79461e. I changed Arc to follow the Chronicle pattern: register one shared |
|
NuGet packages for this PR, e.g. Cratis.Arc: |
Summary
Consolidates tracing, analyzer, introspection, and EF JSON serialization work into one change set. The result is better observability, stricter command-model validation, runtime schema discovery for identity details, and configurable JSON conversion for EF
[Json]properties.Added
AddCratisArcActivitySource()registration through Arc core startup (Traces for Commands, Queries ++ #2242)GET /.cratis/identity-details/schemafor runtime identity-details schema introspection (Introspection endpoint for knowing how identity type looks like #2240)JsonConversionOptionsandEntityFrameworkCoreOptions.JsonConvertersfor custom EF Core[Json]convertersChanged
rxjsand Arc messaging modulesFixed
[Json]properties so interface-typed and custom-converted values round-trip correctlyHandle()method (Roslyn Analyzer: Arc Command Model Compliance (CHR-A016..A022, CHR-A026..A028) #2237)