Cross-cutting libraries used across bounded contexts (establishments, orders, products, notifications).
| Feature | Description |
|---|---|
| Caching | Cache abstraction and Redis implementation |
| Core | Domain base classes, events, identification |
| Correlation | Correlation ID for distributed tracing |
| Handlers | CQRS handler interfaces and base classes |
| Identity | JWT, claims, and authorization helpers |
| Inbox | Idempotent event consumption |
| Messaging | Message bus abstraction (RabbitMQ) |
| Outbox | Reliable event publishing |
| Publishing | Domain event publishing |
| Queries | Pagination and query models |
| Results | Result pattern for error handling |
| Validations | FluentValidation extensions and validators |
dotnet build shared-platform.slnxdotnet test shared-platform.slnxchmod +x coverage.sh
./coverage.sh
# Opens coverage-report/index.html with the full reportVersioning follows Semantic Versioning (major.minor.patch) via git tags:
git tag v1.2.3
git push origin v1.2.3This triggers the release workflow, which builds, tests, and publishes all packages to GitHub Packages automatically.
To publish NuGet packages to GitHub Packages with the existing release workflow, make sure the repository is hosted under the devfactorylabs owner and GitHub Actions is allowed to publish packages for this repository.
The workflow expects:
- a tag in the format
vX.Y.Z GITHUB_TOKENwithpackages: writepermissionnuget.configcommitted with thegithubsource
After the first successful release, packages will be available at:
https://github.com/orgs/devfactorylabs/packages?repo_name=shared-platform
To consume the packages locally, authenticate a NuGet source with a GitHub Personal Access Token that has at least read:packages:
dotnet nuget update source github \
--source "https://nuget.pkg.github.com/devfactorylabs/index.json" \
--username YOUR_GITHUB_USERNAME \
--password YOUR_GITHUB_PAT \
--store-password-in-clear-text