From 9ff625e523f3cf1d82474ba1710dc30e0f0e138d Mon Sep 17 00:00:00 2001
From: "Christopher D. Cavell" <28095137+cdcavell@users.noreply.github.com>
Date: Mon, 6 Jul 2026 13:59:40 -0500
Subject: [PATCH 1/8] chore: bump release version to 2.3.1
---
Directory.Build.props | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index e4b8df0..cea7206 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -5,12 +5,12 @@
enable
latest
- 2.3.0
+ 2.3.1
$(VersionPrefix)
$(VersionPrefix)-$(VersionSuffix)
- 2.3.0.0
- 2.3.0.0
+ 2.3.1.0
+ 2.3.1.0
$(Version)+$(RepositoryUrl)
true
@@ -31,4 +31,4 @@
https://github.com/cdcavell/NetCoreApplicationTemplate
git
-
+
\ No newline at end of file
From d93440a51d445df456b3a17baecf314f0e3141b1 Mon Sep 17 00:00:00 2001
From: "Christopher D. Cavell" <28095137+cdcavell@users.noreply.github.com>
Date: Mon, 6 Jul 2026 14:00:03 -0500
Subject: [PATCH 2/8] chore: update template package metadata for 2.3.1
---
NetCoreApplicationTemplate.Template.csproj | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/NetCoreApplicationTemplate.Template.csproj b/NetCoreApplicationTemplate.Template.csproj
index 02909ad..a4cfca1 100644
--- a/NetCoreApplicationTemplate.Template.csproj
+++ b/NetCoreApplicationTemplate.Template.csproj
@@ -13,8 +13,8 @@
LICENSE.txt
PACKAGE-README.md
PACKAGE-ICON.png
- Minor 2.3.0 release of the NetCoreApplicationTemplate dotnet new template. This release hardens rate-limit client partition fallback behavior when RemoteIpAddress is unavailable, adds explicit configuration for shared unknown-client partitioning, logs fallback usage, and expands forwarded-header documentation around trusted proxy configuration and middleware ordering while preserving the stable 2.x package identity and default scaffold purpose.
- 2.3.0
+ Patch 2.3.1 release of the NetCoreApplicationTemplate dotnet new template. This release hardens centralized Problem Details exception classification by treating plain ArgumentException as an internal server fault while preserving BadHttpRequestException as the explicit request-level HTTP 400 path, with tests covering status, title, and production detail-hiding behavior.
+ 2.3.1
$(VersionPrefix)
Template
@@ -49,4 +49,4 @@
-
+
\ No newline at end of file
From b6d1d4d79a55e72c9d469f696c8d33b8aff28a05 Mon Sep 17 00:00:00 2001
From: "Christopher D. Cavell" <28095137+cdcavell@users.noreply.github.com>
Date: Mon, 6 Jul 2026 14:00:54 -0500
Subject: [PATCH 3/8] docs: update package README for 2.3.1
---
PACKAGE-README.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/PACKAGE-README.md b/PACKAGE-README.md
index 2954031..7580fa8 100644
--- a/PACKAGE-README.md
+++ b/PACKAGE-README.md
@@ -20,13 +20,13 @@ This README is intended for NuGet package consumers. The full repository README
Install the template package from NuGet:
```text
-dotnet new install NetCoreApplicationTemplate::2.3.0
+dotnet new install NetCoreApplicationTemplate::2.3.1
```
For local package validation, install a packed package directly:
```text
-dotnet new install ./artifacts/template-package/NetCoreApplicationTemplate.2.3.0.nupkg
+dotnet new install ./artifacts/template-package/NetCoreApplicationTemplate.2.3.1.nupkg
```
## Generate a project
@@ -79,7 +79,7 @@ dotnet test --configuration Release
Install the newer package version with the same package identity:
```text
-dotnet new install NetCoreApplicationTemplate::2.3.0
+dotnet new install NetCoreApplicationTemplate::2.3.1
```
## Uninstall
@@ -93,9 +93,9 @@ dotnet new uninstall NetCoreApplicationTemplate
- GitHub repository: https://github.com/cdcavell/NetCoreApplicationTemplate
- Published documentation: https://cdcavell.github.io/NetCoreApplicationTemplate/
- Template packaging documentation: https://cdcavell.github.io/NetCoreApplicationTemplate/articles/template-packaging.html
-- Changelog: https://github.com/cdcavell/NetCoreApplicationTemplate/blob/main/CHANGELOG.md
-- License: https://github.com/cdcavell/NetCoreApplicationTemplate/blob/main/LICENSE.txt
+- Changelog: CHANGELOG.md
+- License: LICENSE.txt
- Releases: https://github.com/cdcavell/NetCoreApplicationTemplate/releases
- Coverage Report: https://cdcavell.github.io/NetCoreApplicationTemplate/coverage/index.html
-Generated projects receive their own consumer-oriented README from the scaffold. This package README is intentionally limited to NuGet installation, scaffold options, validation commands, and consumer-facing reference links.
+Generated projects receive their own consumer-oriented README from the scaffold. This package README is intentionally limited to NuGet installation, scaffold options, validation commands, and consumer-facing reference links.
\ No newline at end of file
From 131a07570c2019b8e2d84f0d3a7a6f3cc7b65ff8 Mon Sep 17 00:00:00 2001
From: "Christopher D. Cavell" <28095137+cdcavell@users.noreply.github.com>
Date: Mon, 6 Jul 2026 14:01:08 -0500
Subject: [PATCH 4/8] docs: update Zenodo metadata for 2.3.1
---
.zenodo.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.zenodo.json b/.zenodo.json
index 5bd41b7..4909f83 100644
--- a/.zenodo.json
+++ b/.zenodo.json
@@ -1,6 +1,6 @@
{
"title": "NetCoreApplicationTemplate",
- "version": "2.3.0",
+ "version": "2.3.1",
"upload_type": "software",
"description": "A reusable ASP.NET Core application template for secure, maintainable, production-oriented .NET applications. It organizes startup composition, middleware ordering, structured logging, forwarded headers, security headers, rate limiting, centralized error handling, authentication and authorization foundations, EF Core data access patterns, CI validation, template packaging, and DocFX documentation.",
"creators": [
@@ -45,4 +45,4 @@
"resource_type": "publication-workingpaper"
}
]
-}
+}
\ No newline at end of file
From 531e8a174a7094d9c20f97d2b83260e77b3af4e6 Mon Sep 17 00:00:00 2001
From: "Christopher D. Cavell" <28095137+cdcavell@users.noreply.github.com>
Date: Mon, 6 Jul 2026 14:01:34 -0500
Subject: [PATCH 5/8] docs: update citation metadata for 2.3.1
---
CITATION.cff | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/CITATION.cff b/CITATION.cff
index 2fe84f2..8e58f32 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -1,8 +1,8 @@
cff-version: 1.2.0
message: "If you use this software, please cite it using the metadata below."
title: "NetCoreApplicationTemplate"
-version: "2.3.0"
-date-released: "2026-07-03"
+version: "2.3.1"
+date-released: "2026-07-06"
repository-code: "https://github.com/cdcavell/NetCoreApplicationTemplate"
url: "https://cdcavell.github.io/NetCoreApplicationTemplate/"
type: software
@@ -21,4 +21,4 @@ keywords:
- dotnet
- application-template
- security
- - software-architecture
+ - software-architecture
\ No newline at end of file
From a6daa6d644edae3017ed18a2c8351bcc95b25334 Mon Sep 17 00:00:00 2001
From: "Christopher D. Cavell" <28095137+cdcavell@users.noreply.github.com>
Date: Mon, 6 Jul 2026 14:02:17 -0500
Subject: [PATCH 6/8] docs: update template packaging guide for 2.3.1
---
docs/articles/template-packaging.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/articles/template-packaging.md b/docs/articles/template-packaging.md
index 23cc063..d7b7dda 100644
--- a/docs/articles/template-packaging.md
+++ b/docs/articles/template-packaging.md
@@ -16,7 +16,7 @@ Package-based validation is preferred because it verifies the actual distributio
| Template identity | `CDCavell.NetCoreApplicationTemplate.CSharp` |
| Template group identity | `CDCavell.NetCoreApplicationTemplate` |
| Source replacement token | `ProjectTemplate` |
-| Current package version | `2.3.0` |
+| Current package version | `2.3.1` |
The `2.0.0` release moved the public NuGet package ID to `NetCoreApplicationTemplate`. The internal template identity and group identity remain unchanged for template metadata continuity.
@@ -92,13 +92,13 @@ dotnet pack ./NetCoreApplicationTemplate.Template.csproj --configuration Release
Install the published package from NuGet:
```powershell
-dotnet new install NetCoreApplicationTemplate::2.3.0
+dotnet new install NetCoreApplicationTemplate::2.3.1
```
Install a locally packed package:
```powershell
-dotnet new install ./artifacts/template-package/NetCoreApplicationTemplate.2.3.0.nupkg
+dotnet new install ./artifacts/template-package/NetCoreApplicationTemplate.2.3.1.nupkg
```
## Create a New Project from the Template
@@ -216,4 +216,4 @@ Stable usage follows this pattern:
```powershell
dotnet new install NetCoreApplicationTemplate
dotnet new netcoreapp-template -n ContosoSecurityPortal
-```
+```
\ No newline at end of file
From fa713645b4cf792c699156b3aecc3a491576de2b Mon Sep 17 00:00:00 2001
From: "Christopher D. Cavell" <28095137+cdcavell@users.noreply.github.com>
Date: Mon, 6 Jul 2026 14:03:06 -0500
Subject: [PATCH 7/8] docs: add changelog entry for 2.3.1
---
CHANGELOG.md | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 31d405c..8495d69 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,20 @@ All notable changes to this project are documented in this file.
This project follows Semantic Versioning using the format `MAJOR.MINOR.PATCH`.
+## 2.3.1 - 2026-07-06
+
+### Changed
+
+* Changed centralized Problem Details exception mapping so plain `ArgumentException` is treated as an internal server fault instead of a bad request.
+* Preserved `BadHttpRequestException` mapping to HTTP 400 for request-level malformed input failures.
+* Updated Problem Details tests to verify status, title, and production detail-hiding behavior for both request-level and internal exception paths.
+* Updated release metadata, package README examples, template packaging docs, citation metadata, and Zenodo metadata for `2.3.1`.
+
+### Notes
+
+* This is a patch release because it hardens exception classification and diagnostics without changing package identity, template identity, template options, or the default scaffold purpose.
+* Internal/developer argument failures now contribute to server-error diagnostics instead of being misclassified as client bad-request traffic.
+
## 2.3.0 - 2026-07-03
### Added
@@ -174,4 +188,4 @@ This release does not change the project’s core purpose: providing a productio
### Maintenance
* Prepared the repository for the `1.0.2` package release.
-* No generated scaffold behavior changes are included in this release.
+* No generated scaffold behavior changes are included in this release.
\ No newline at end of file
From 21ad78a16977b71f8b5448c36bfaae90a7ad8b12 Mon Sep 17 00:00:00 2001
From: "Christopher D. Cavell" <28095137+cdcavell@users.noreply.github.com>
Date: Mon, 6 Jul 2026 14:03:46 -0500
Subject: [PATCH 8/8] docs: update README for 2.3.1
---
README.md | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/README.md b/README.md
index 6050765..aa27ccb 100644
--- a/README.md
+++ b/README.md
@@ -19,9 +19,9 @@ This repository provides a working application baseline with common infrastructu
## Current Release
-Current release: __[Release 2.3.0](https://github.com/cdcavell/NetCoreApplicationTemplate/releases/tag/v2.3.0)__
+Current release: __[Release 2.3.1](https://github.com/cdcavell/NetCoreApplicationTemplate/releases/tag/v2.3.1)__
-Tag: `v2.3.0`
+Tag: `v2.3.1`
## Project Goals
@@ -163,7 +163,7 @@ The scaffolded consumer output intentionally excludes repository-maintainer cont
Install the published template package:
```powershell
-dotnet new install NetCoreApplicationTemplate::2.3.0
+dotnet new install NetCoreApplicationTemplate::2.3.1
```
### Pack and Install Locally
@@ -177,7 +177,7 @@ dotnet pack ./NetCoreApplicationTemplate.Template.csproj --configuration Release
Install the generated package:
```powershell
-dotnet new install ./artifacts/template-package/NetCoreApplicationTemplate.2.3.0.nupkg
+dotnet new install ./artifacts/template-package/NetCoreApplicationTemplate.2.3.1.nupkg
```
Generate a consumer project:
@@ -234,7 +234,7 @@ The non-default scaffold preserves the template's core guardrails, including str
Update the installed template by installing a newer package version:
```powershell
-dotnet new install NetCoreApplicationTemplate::2.3.0
+dotnet new install NetCoreApplicationTemplate::2.3.1
```
Uninstall the template package:
@@ -426,12 +426,12 @@ If you use this repository, please cite it using the metadata in [`CITATION.cff`
- Suggested plain-text citation:
```text
-Cavell, Christopher D. NetCoreApplicationTemplate. Version 2.3.0. Zenodo. MIT License. https://doi.org/10.5281/zenodo.20373042
+Cavell, Christopher D. NetCoreApplicationTemplate. Version 2.3.1. Zenodo. MIT License. https://doi.org/10.5281/zenodo.20373042
```
## Roadmap
-The project is a reusable .NET application template with a stable `2.3.0` package baseline. Future work may include additional provider modules, expanded examples, optional template parameters, and continued hardening of the documented release surface.
+The project is a reusable .NET application template with a stable `2.3.1` package baseline. Future work may include additional provider modules, expanded examples, optional template parameters, and continued hardening of the documented release surface.
See [Template Packaging](https://cdcavell.github.io/NetCoreApplicationTemplate/articles/template-packaging.html) for the current packaging direction.
@@ -441,4 +441,4 @@ This project is licensed under the MIT License.
See [LICENSE.txt](LICENSE.txt) for full license details.
-Third-party assets, libraries, templates, icons, fonts, images, or other externally sourced materials used by this project are documented in [ASSETS-LICENSES.md](ASSETS-LICENSES.md).
+Third-party assets, libraries, templates, icons, fonts, images, or other externally sourced materials used by this project are documented in [ASSETS-LICENSES.md](ASSETS-LICENSES.md).
\ No newline at end of file