cCoder.Packaging
2026.9.12.1247
dotnet add package cCoder.Packaging --version 2026.9.12.1247
NuGet\Install-Package cCoder.Packaging -Version 2026.9.12.1247
<PackageReference Include="cCoder.Packaging" Version="2026.9.12.1247" />
<PackageVersion Include="cCoder.Packaging" Version="2026.9.12.1247" />
<PackageReference Include="cCoder.Packaging" />
paket add cCoder.Packaging --version 2026.9.12.1247
#r "nuget: cCoder.Packaging, 2026.9.12.1247"
#:package cCoder.Packaging@2026.9.12.1247
#addin nuget:?package=cCoder.Packaging&version=2026.9.12.1247
#tool nuget:?package=cCoder.Packaging&version=2026.9.12.1247
cCoder.Packaging
View the latest code coverage report
Local configuration
The Web app binds the complete configuration root to
Packaging.Web.Models.AppConfiguration. Its composition root registers
CoreData, Packaging, SecurityData, Security, and Eventing side by
side.
Persistence belongs to the Data domains. PackagingConfiguration contains
only Packaging behavior and package-source settings; CoreData owns the
database connection, Data registration, and migrations. Likewise,
SecurityData owns the Security database and Security contains
authentication behavior. Leave secret values empty and define these user- or
machine-level environment variables:
CoreData__ConnectionStringSecurityData__ConnectionStringSecurity__DecryptionKeyEventing__ServiceBus__ConnectionStringwhen Service Bus eventing is selected
CoreData__AdminConnectionString and
SecurityData__AdminConnectionString are optional migration-only overrides. If
an admin connection is configured, startup migrations use it and normal runtime
operations continue to use the regular connection. If it is omitted, migrations
use the regular connection.
Library consumers register persistence and behavior explicitly at their own
composition root: call AddData before AddPackaging or AddPackagingWeb; Web
hosts also call AddSecurityData before AddSecurityWeb. An application that
consumes cCoder.Core should use Core's composite API instead; Core deliberately
composes its configured child domains recursively.
Restart Visual Studio after changing environment variables and press F5. No
conversion, .env file, or startup script is required.
cCoder.Packaging contains the Packaging domain for the cCoder platform.
Functionality
Packaging provides a small domain for grouping portable data into packages and package items. It is intended to support migration-style movement of data between cCoder systems, while keeping the package metadata and package item payloads queryable through the normal API stack.
Consumers get:
- Package CRUD through OData.
- Package item CRUD within the context of a package.
- Export orchestration for known cCoder domains such as content, documents, workflow, scheduling, and app security.
- Import orchestration hooks that raise package import events.
- A simple authenticated Web app for manually testing package and package item CRUD.
Full migration scenarios need a deliberate source and target environment, so this repository does not introduce a synthetic two-database integration harness. The Web UI and acceptance tests provide the baseline proof that the package API surface starts and responds correctly.
Contents
src/cCoder.PackagingThe main library package published to NuGet.src/cCoder.Packaging.TestsUnit tests for the domain.src/Apps/Packaging.WebA simple Web app hosting the Packaging API and manual testing UI.src/Apps/Packaging.Web.AcceptanceTestsHTTP acceptance tests for the Packaging Web app.
Configuration
Packaging.Web uses the normal application configuration pipeline:
appsettings.jsonappsettings.{Environment}.json- environment variables
The committed settings map directly to the CoreData, Eventing, Packaging,
SecurityData, and Security configuration objects. Secrets use the matching
environment variables listed above.
The local test UI is available at /tools/index.html, and /Health returns a
fixed OK response for basic health checks.
Build
dotnet build src/cCoder.Packaging.slnx -v minimal
Test
dotnet test src/cCoder.Packaging.slnx -v minimal --no-build
Run The Web App
dotnet run --project src/Apps/Packaging.Web/Packaging.Web.csproj --launch-profile https
Then open:
https://localhost:7173/tools/index.htmlhttps://localhost:7173/swaggerhttps://localhost:7173/Health
Package
The NuGet package produced by this repository is:
cCoder.Packaging
Publishing
GitHub Actions is configured to publish the main package using NuGet trusted publishing.
Before the first publish, configure a trusted publishing policy on nuget.org for:
- Repository owner:
ccoder-co-uk - Repository:
cCoder.Packaging - Workflow file:
publish.yml
The workflow also expects a NUGET_USER repository secret containing the nuget.org profile name used during trusted publishing login.
| 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
- cCoder.Data (>= 2026.8.28.1700)
- cCoder.Eventing (>= 2026.8.27.1708)
- Microsoft.AspNetCore.OData (>= 9.5.0)
- Microsoft.EntityFrameworkCore (>= 10.0.11)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.11)
- Swashbuckle.AspNetCore.SwaggerGen (>= 10.2.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on cCoder.Packaging:
| Package | Downloads |
|---|---|
|
cCoder.Core
cCoder.Core |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.9.12.1247 | 63 | 9/12/2026 |
| 2026.9.9.848 | 119 | 9/9/2026 |
| 2026.8.28.2200 | 210 | 8/28/2026 |
| 2026.8.27.1749 | 113 | 8/27/2026 |
| 2026.8.26.2241 | 141 | 8/26/2026 |
| 2026.8.11.1852 | 245 | 8/11/2026 |
| 2026.8.10.2016 | 100 | 8/10/2026 |
| 2026.8.10.1829 | 97 | 8/10/2026 |
| 2026.8.10.1713 | 128 | 8/10/2026 |
| 2026.8.8.1703 | 101 | 8/8/2026 |
| 2026.8.5.104 | 243 | 8/5/2026 |
| 2026.8.4.2232 | 148 | 8/4/2026 |
| 2026.8.4 | 259 | 8/3/2026 |
| 2026.8.3.2104 | 105 | 8/3/2026 |
| 2026.8.3.1756 | 116 | 8/3/2026 |
| 2026.8.3.1731 | 105 | 8/3/2026 |
| 2026.8.3.1724 | 107 | 8/3/2026 |
| 2026.8.2.1316 | 176 | 8/2/2026 |
| 2026.8.1.1529 | 227 | 8/1/2026 |
| 2026.7.30.2204 | 268 | 7/30/2026 |