SyntaxCircus.Cmsify.Infrastructure
0.8.11
dotnet add package SyntaxCircus.Cmsify.Infrastructure --version 0.8.11
NuGet\Install-Package SyntaxCircus.Cmsify.Infrastructure -Version 0.8.11
<PackageReference Include="SyntaxCircus.Cmsify.Infrastructure" Version="0.8.11" />
<PackageVersion Include="SyntaxCircus.Cmsify.Infrastructure" Version="0.8.11" />
<PackageReference Include="SyntaxCircus.Cmsify.Infrastructure" />
paket add SyntaxCircus.Cmsify.Infrastructure --version 0.8.11
#r "nuget: SyntaxCircus.Cmsify.Infrastructure, 0.8.11"
#:package SyntaxCircus.Cmsify.Infrastructure@0.8.11
#addin nuget:?package=SyntaxCircus.Cmsify.Infrastructure&version=0.8.11
#tool nuget:?package=SyntaxCircus.Cmsify.Infrastructure&version=0.8.11
SyntaxCircus.Cmsify.Infrastructure
Cmsify's existing Cmsify.Infrastructure assembly packaged for .NET 10 hosts. Namespaces remain Cmsify.Infrastructure.*. The matching SyntaxCircus.Cmsify.Core package is a transitive dependency.
Includes PostgreSQL persistence and migrations, repositories, storage registration, audit interception and the existing background services. AddCmsifyInfrastructure(configuration) retains PostgreSQL and all Cmsify workers as its defaults. Hosts can use the existing CmsifyInfrastructureOptions to select workers and opt into their own scoped ICurrentActor for audit.
The engine is licensed AGPL-3.0-or-later, as specified by the included LICENSE. The MIT license of Cmsify's separate SDK and component packages does not apply to the engine.
Packaging does not establish complete application embedding or SQLite support. See engine package qualification for the measured scope, required host configuration and remaining limitations.
Optional SQLite registration and schema-only migrations are supplied separately by
SyntaxCircus.Cmsify.Infrastructure.Sqlite; see the embedded SQLite guide.
Infrastructure-only consumers retain their PostgreSQL package graph.
Registration also supplies the scoped IUpdateContentVersionRequestHandler from
Cmsify.Core.ContentWrites. A host can edit an existing Draft, Review or Approved
version directly, without loading the API assembly:
// Inject IUpdateContentVersionRequestHandler into the host's named use-case handler.
var result = await updateVersion.HandleAsync(new UpdateContentVersionRequest(
workspaceId, itemId, versionNumber, new ContentVersionRevisionCondition(revision),
effectiveStartAt, effectiveEndAt,
[new ContentVersionFieldInput(fieldId, 0, ValueKind.Text, "Updated title",
null, null, null, null, null)], ExpandChildren: false), cancellationToken);
if (result.IsSuccess)
revision = result.Value.Revision;
Supply a scoped host ICurrentActor before registration; the handler checks
authentication, Editor-or-higher permission and workspace write authorization.
Actor identity is never accepted in the save request. Obtain the numeric revision
from a prior detail timestamp (UpdatedAt.UtcTicks / 10) or successful save output.
The save fully replaces fields and atomically persists version, parent search and
the existing single outbox event. It does not dispatch that event.
Each operation constructs and disposes its own context from the existing scoped
DbContextOptions<CmsifyDbContext>, retaining host options and audit interceptors.
It neither reuses nor clears a caller's tracked changes. Keep the handler and its
actor/options inside the request scope; do not capture them in a singleton.
The returned detail is detached and materialized before disposal. Projection or
cancellation after commit can still fail after the write persisted; there is no
automatic retry or exactly-once acknowledgement. This bounded save extraction
does not extract the remaining content lifecycle workflows or establish complete
provider qualification.
Registration supplies IListContentRequestHandler and PostgreSQL content-list
queries for ordinary item metadata and resolved serving snapshots. Register a
scoped host actor and optionally TimeProvider before composition. Local candidate
0.8.9-query.1 consumer checks cover both modes, tags, Q, paging and denial without
an API host; candidate evidence does not claim publication or generic JSON parity.
Webhook outbox/delivery claim selection and outbox materialization use an Infrastructure-only provider strategy. PostgreSQL retains its row-locking queries; SQLite uses mapped queries inside a non-deferred writer-reserving transaction, so competing SQLite writers wait through lease mutation or materialization commit. Lease owner/token/expiry fencing and atomic delivery intent creation remain repository responsibilities. The file-backed SQLite tests create the schema with EnsureCreated; this bounded repository coverage does not qualify SQLite migrations, registration, other webhook workflows, or a complete SQLite deployment.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- AWSSDK.S3 (>= 4.0.102.2)
- BCrypt.Net-Next (>= 4.2.0)
- EFCore.NamingConventions (>= 10.0.1)
- FluentValidation (>= 12.1.1)
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.13)
- Microsoft.EntityFrameworkCore (>= 10.0.11)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.11)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Caching.Memory (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 10.0.3)
- SyntaxCircus.Cmsify.Core (>= 0.8.11)
- SyntaxCircus.Common (>= 0.1.3)
- SyntaxCircus.EntityFrameworkCore.Postgres (>= 0.1.3)
- SyntaxCircus.Storage (>= 0.2.1)
- UUIDNext (>= 4.2.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SyntaxCircus.Cmsify.Infrastructure:
| Package | Downloads |
|---|---|
|
SyntaxCircus.Cmsify.Infrastructure.Sqlite
Optional SQLite persistence registration and schema-only migrations for Cmsify. |
GitHub repositories
This package is not used by any popular GitHub repositories.