Skip to content

Repository

Hardened is one repository. The framework, the cloud packages and this site release together on one version, so a change and the page describing it land in the same commit.

github.com/ipjohnson/Hardened.Framework

PathContents
src/SharedModule entry points, configuration, environment, metrics, the test framework
src/RequestsThe execution pipeline and its abstractions
src/WebRouting, the Kestrel and ASP.NET Core hosts, static content, the web test client
src/FunctionsThe trigger attributes and the test façades, naming no cloud
src/CloudsThe AWS Lambda host and one adapter per source
src/TemplatesThe dotnet new templates, and RazorBlade view rendering
src/ClientsKiota and Refit test clients
src/SourceGeneratorsEvery generator and build task, and the shared library they build on
src/IntegrationTestsWorking applications driven through the real pipeline. The worked examples in the codebase
src/PublicApiThe approved public surface of every shipped assembly
src/BenchmarksThe pipeline measured against ASP.NET Core, on the same machine
docsThis site, and the maintainer notes under design/

The framework is documented in the Guide, the AWS packages under AWS.

What used to be separate

Hardened.Docs held this site and is now docs/, so a page and the change that made it wrong land in the same commit.

Hardened.Amz held the AWS packages. Its history is here and almost none of its source is: the line was replaced by the Hardened.Aws.Lambda packages in src/Clouds/Aws rather than renamed, so there was nothing to carry forward. It stays on nuget.org at 0.22.0-rc1000, restorable and no longer moving. The AWS pages describe the packages that replaced it.

The DynamoDB client and its testing package came across, as Hardened.Aws.DynamoDbClient and Hardened.Aws.DynamoDbClient.Testing. They were the only part of that line that was not a host, so the rebuild left them correct as they stood.

What is deliberately outside

LambdaWidgets consumes Hardened as packages from nuget.org, never as a project reference to a checkout beside it. That is the point of it: a local project reference hides the packaging defects an external consumer is the only thing positioned to find. Any repository whose value is being an external consumer stays external.

Building it

bash
dotnet build Hardened.slnx
dotnet test  Hardened.slnx

filters/framework.slnf cuts it down for daily work. The repository stays whole; what an editor loads does not have to be.

The site is VitePress, built from docs/:

bash
cd docs
npm ci
npm run dev      # local server with hot reload
npm run build    # what CI runs; fails on a dead internal link

Every page has an "Edit this page on GitHub" link at the bottom.

DependencyModules, github.com/ipjohnson/DependencyModules

Compile-time dependency injection for .NET, and the foundation Hardened's module system is built on. [SingletonService], [ScopedService], [TransientService], conventions, decorators and interception all come from there and all work in a Hardened application unchanged.

Released under the MIT License.