Coject.Core.Logging.Contracts
2.0.0
dotnet add package Coject.Core.Logging.Contracts --version 2.0.0
NuGet\Install-Package Coject.Core.Logging.Contracts -Version 2.0.0
<PackageReference Include="Coject.Core.Logging.Contracts" Version="2.0.0" />
<PackageVersion Include="Coject.Core.Logging.Contracts" Version="2.0.0" />
<PackageReference Include="Coject.Core.Logging.Contracts" />
paket add Coject.Core.Logging.Contracts --version 2.0.0
#r "nuget: Coject.Core.Logging.Contracts, 2.0.0"
#:package Coject.Core.Logging.Contracts@2.0.0
#addin nuget:?package=Coject.Core.Logging.Contracts&version=2.0.0
#tool nuget:?package=Coject.Core.Logging.Contracts&version=2.0.0
Coject.Core.Logging.Contracts
Provider-neutral contract primitives for Coject Core Logging wire contract 2.0.
This package intentionally contains no ASP.NET, provider, transport, database, backend,
credential, Newtonsoft.Json, or FluentValidation dependencies. The package is built for
net8.0 and is consumable by later .NET runtimes, including .NET 10 applications.
The 2.0 event/action registries are closed and case-sensitive. Consumers must use the published values; aliases, misspellings, casing variants, and whitespace variants are not accepted.
CojectSensitiveFieldNames is the shared immutable built-in redaction registry. It
contains the exact v1 password, secret, token, API/cloud, authorization/session, and
connection names. Matching is case-insensitive after the contract's Unicode and
separator normalization. Generic names such as id, key, code, username, and
publicKey are intentionally not built in; applications and CSCC may add local names
without removing these defaults.
The checked-in verification/Verify-ContractsPackage.ps1 gate packs the package twice,
compares semantic package contents, rejects build-output leakage, and compiles package
consumers targeting both .NET 8 and .NET 10. NuGet ZIP timestamps are intentionally not
treated as package-content differences.
The envelope/value-object foundation captures occurredAt once as offset-free server-local
DateTime and exposes only immutable read-only properties. Event-specific factories and
payload mappings remain closed and are added with their sealed payload contracts. Snapshot
writers expose nullable typed scalar methods only; canonical JSON encoding, redaction,
changed-path derivation, and provider delivery remain later-phase responsibilities.
The typed record implementation is expressed as CojectLogRecord<TPayload> and
CojectAuditRecord<TPayload> so the payload cannot degrade to an object/dynamic bag; the
plan's arity-free record names refer to these generic closed compositions.
The event/record constructors are intentionally internal. Their package-owned factory boundary accepts only sealed payload implementations from this contracts assembly, so a consumer cannot inject a mutable object into a generic record. Future event payloads must remain sealed immutable value objects created by package factories; no public marker interface or JSON clone is used as a mutability escape hatch.
| 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
- No dependencies.
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 |
|---|---|---|
| 2.0.0 | 36 | 8/5/2026 |
Phase 01 contract primitives and closed registries.