Release Notes
Alle Releases auf GitHub Alle Versionen und Änderungen auf GitHub
v0.81.0v0.81.0
## Highlights
### VPN-robust edge (configurable client-facing MSS) — #460
Large HTTP responses through the managed edge could stall behind VPN tunnels that lower the path MTU and blackhole ICMP (HTTP 502 / timeout on big pages, login still fine). The edge now sizes its egress TCP segments to fit, controlled by a new manifest option `edge.mss`:
- **`pmtu` (default)** — adaptive kernel path-MTU probing; works out of the box for every hosted product, **no customer VPN change and no elevated container capability**.
- **`` (536–1460)** — a fixed MSS cap (via the edge network MTU).
- **`off`** — previous behaviour, unchanged.
Backward compatible: existing deployments default to `pmtu` on upgrade (no migration).
### Dedicated release-notes page — #459
Product release notes now open on a dedicated, bookmarkable page (`/release-notes/:productId`) reachable from the Stack Catalog and the deployment update badge, with an in-page language selector for localized changelogs and GFM-table rendering.
**Full changelog:** https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.80.0...v0.81.0
### VPN-robust edge (configurable client-facing MSS) — #460
Large HTTP responses through the managed edge could stall behind VPN tunnels that lower the path MTU and blackhole ICMP (HTTP 502 / timeout on big pages, login still fine). The edge now sizes its egress TCP segments to fit, controlled by a new manifest option `edge.mss`:
- **`pmtu` (default)** — adaptive kernel path-MTU probing; works out of the box for every hosted product, **no customer VPN change and no elevated container capability**.
- **`
- **`off`** — previous behaviour, unchanged.
Backward compatible: existing deployments default to `pmtu` on upgrade (no migration).
### Dedicated release-notes page — #459
Product release notes now open on a dedicated, bookmarkable page (`/release-notes/:productId`) reachable from the Stack Catalog and the deployment update badge, with an in-page language selector for localized changelogs and GFM-table rendering.
**Full changelog:** https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.80.0...v0.81.0
v0.80.0v0.80.0
## What's Changed in v0.80.0
### 🚀 Features
- **View product release notes from the Stack Catalog** — a "Release notes" button on a catalog product opens the changelog (with the DE/EN language selector) without needing a deployment or an available update. New `GET /api/products/{productId}/release-notes` endpoint; release notes are now reachable both from the catalog and from the deployment update badge. (#457)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.79.0...v0.80.0
### 🚀 Features
- **View product release notes from the Stack Catalog** — a "Release notes" button on a catalog product opens the changelog (with the DE/EN language selector) without needing a deployment or an available update. New `GET /api/products/{productId}/release-notes` endpoint; release notes are now reachable both from the catalog and from the deployment update badge. (#457)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.79.0...v0.80.0
v0.79.0v0.79.0
## What's Changed in v0.79.0
### 🚀 Features
- **Localized product release notes** with an in-viewer language selector — RSGO reads `CHANGELOG..md` (e.g. de/en) next to a product manifest and lets the user switch languages; falls back to a language-neutral `CHANGELOG.md`. (#456)
- **Product-level health notifications** — one notification per product overall-health transition instead of per-service spam, and recoveries now surface (direction-aware throttling). (#455)
- **Detailed per-container removal progress during product upgrade** — the upgrade's remove phase streams live "Removing web-1 (2/8)" progress, mirroring redeploy. (#454)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.78.0...v0.79.0
### 🚀 Features
- **Localized product release notes** with an in-viewer language selector — RSGO reads `CHANGELOG.
- **Product-level health notifications** — one notification per product overall-health transition instead of per-service spam, and recoveries now surface (direction-aware throttling). (#455)
- **Detailed per-container removal progress during product upgrade** — the upgrade's remove phase streams live "Removing web-1 (2/8)" progress, mirroring redeploy. (#454)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.78.0...v0.79.0
v0.78.0v0.78.0
## What's Changed in v0.78.0
### 🐛 Bug Fixes
- **Product upgrade no longer blocks on "Missing required variables"** when the variables were already set at the initial deployment. The upgrade form now pre-fills the stored per-stack values (backend already merged them server-side, but the frontend validated against an empty set). (#452, #453)
### ✨ Features
- **Deployment detail page now shows per-stack variables** in a collapsible "Stack Variables" card, mirroring the existing "Shared Variables" card. (#453)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.77.0...v0.78.0
### 🐛 Bug Fixes
- **Product upgrade no longer blocks on "Missing required variables"** when the variables were already set at the initial deployment. The upgrade form now pre-fills the stored per-stack values (backend already merged them server-side, but the frontend validated against an empty set). (#452, #453)
### ✨ Features
- **Deployment detail page now shows per-stack variables** in a collapsible "Stack Variables" card, mirroring the existing "Shared Variables" card. (#453)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.77.0...v0.78.0
v0.77.0v0.77.0
## What's Changed
- E2E: assert live per-stack maintenance progress @Wiesenwischer (#451)
## 🚀 Features
- Per-container progress during redeploy stack removal @Wiesenwischer (#450)
- Live maintenance progress + redeploy notification-spam fix @Wiesenwischer (#448)
## 🐛 Bug Fixes
- docs(installation): fix outdated image name and volume mapping @Wiesenwischer (#449)
## 📚 Documentation
- docs(installation): fix outdated image name and volume mapping @Wiesenwischer (#449)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.76.1...v0.77.0
- E2E: assert live per-stack maintenance progress @Wiesenwischer (#451)
## 🚀 Features
- Per-container progress during redeploy stack removal @Wiesenwischer (#450)
- Live maintenance progress + redeploy notification-spam fix @Wiesenwischer (#448)
## 🐛 Bug Fixes
- docs(installation): fix outdated image name and volume mapping @Wiesenwischer (#449)
## 📚 Documentation
- docs(installation): fix outdated image name and volume mapping @Wiesenwischer (#449)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.76.1...v0.77.0
v0.76.1v0.76.1
## 🐛 Bug Fixes
### Edge / maintenance page shown permanently behind a forward proxy (#446)
In environments with a forward proxy (`HTTP_PROXY`/`HTTPS_PROXY`, e.g. injected into containers by a Docker daemon proxy), the edge-proxy could get **stuck on its maintenance/"deploying" holding page forever** even though the product was healthy: RSGO's container-internal call to the edge's Caddy admin API was routed through the proxy, failed silently, and the edge never switched to proxy mode.
Fix: all HTTP clients whose target is reachable **directly** — edge admin API, HTTP maintenance observer, webhook maintenance setter, HTTP health checks, and the PRTG clients (customer LAN) — now bypass the forward proxy (`UseProxy = false`). Internet-egress clients (registries, GitHub, Cloudflare) keep the default proxy behaviour. No `NO_PROXY` configuration needed.
### Deployment reliability (#444, #445)
- Product removal now reliably removes all containers, with retry and verification passes (no leftover containers).
- A deployment now **fails** on an image-pull failure instead of silently starting from a stale local image.
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.76.0...v0.76.1
### Edge / maintenance page shown permanently behind a forward proxy (#446)
In environments with a forward proxy (`HTTP_PROXY`/`HTTPS_PROXY`, e.g. injected into containers by a Docker daemon proxy), the edge-proxy could get **stuck on its maintenance/"deploying" holding page forever** even though the product was healthy: RSGO's container-internal call to the edge's Caddy admin API was routed through the proxy, failed silently, and the edge never switched to proxy mode.
Fix: all HTTP clients whose target is reachable **directly** — edge admin API, HTTP maintenance observer, webhook maintenance setter, HTTP health checks, and the PRTG clients (customer LAN) — now bypass the forward proxy (`UseProxy = false`). Internet-egress clients (registries, GitHub, Cloudflare) keep the default proxy behaviour. No `NO_PROXY` configuration needed.
### Deployment reliability (#444, #445)
- Product removal now reliably removes all containers, with retry and verification passes (no leftover containers).
- A deployment now **fails** on an image-pull failure instead of silently starting from a stale local image.
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.76.0...v0.76.1
v0.76.0v0.76.0
## 🚀 Highlights
**Redesigned default maintenance page** — the page the edge-proxy serves while a product is down is now a self-contained **live status panel** in RSGO's brand colours, instead of a static notice.
- **Live, not static**: it renders the `/__status` contract directly, auto-refreshes every few seconds, and **reloads visitors back into the app automatically** the moment the product reports `running`.
- **State at a glance**: accent colour follows the state — amber for maintenance, brand-blue for a rollout (`deploying`) — with state, reason and deployed version shown in a status panel.
- **Branding & language**: product name, logo and support contact are themeable via `branding`; the on-page language toggle is driven by `branding.locales` (first locale = default, hidden for a single locale). All branding values are HTML/JSON-escaped.
- **Degrades cleanly**: rows without data (e.g. `reason` outside planned maintenance, or `until`) hide automatically, and a correct no-JS fallback is server-rendered.
No configuration change required — existing `edge.maintenancePage.mode: default` products get the new page automatically. The `/__status` contract is unchanged.
## 📚 Documentation
- `configuration/maintenance-edge-proxy.md` (DE + EN) refreshed: new screenshots for the maintenance and deploying states, plus the auto-refresh/auto-reload, accent and language-toggle behaviour.
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.75.2...v0.76.0
**Redesigned default maintenance page** — the page the edge-proxy serves while a product is down is now a self-contained **live status panel** in RSGO's brand colours, instead of a static notice.
- **Live, not static**: it renders the `/__status` contract directly, auto-refreshes every few seconds, and **reloads visitors back into the app automatically** the moment the product reports `running`.
- **State at a glance**: accent colour follows the state — amber for maintenance, brand-blue for a rollout (`deploying`) — with state, reason and deployed version shown in a status panel.
- **Branding & language**: product name, logo and support contact are themeable via `branding`; the on-page language toggle is driven by `branding.locales` (first locale = default, hidden for a single locale). All branding values are HTML/JSON-escaped.
- **Degrades cleanly**: rows without data (e.g. `reason` outside planned maintenance, or `until`) hide automatically, and a correct no-JS fallback is server-rendered.
No configuration change required — existing `edge.maintenancePage.mode: default` products get the new page automatically. The `/__status` contract is unchanged.
## 📚 Documentation
- `configuration/maintenance-edge-proxy.md` (DE + EN) refreshed: new screenshots for the maintenance and deploying states, plus the auto-refresh/auto-reload, accent and language-toggle behaviour.
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.75.2...v0.76.0
v0.75.2v0.75.2
Patch release with two fixes for the product catalog/deployment UX.
## What's Changed
## 🐛 Bug Fixes
- fix(catalog): proper SemVer precedence + same-channel update detection — a `-ci` deployment is no longer offered a `-preview` build as an "update"; pre-release versions are ordered per SemVer 2.0.0 @Wiesenwischer (#441)
- fix(deployments): stop per-stack notification spam on product removal — removing a multi-stack product now emits a single aggregated notification @Wiesenwischer (#440)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.75.1...v0.75.2
## What's Changed
## 🐛 Bug Fixes
- fix(catalog): proper SemVer precedence + same-channel update detection — a `-ci` deployment is no longer offered a `-preview` build as an "update"; pre-release versions are ordered per SemVer 2.0.0 @Wiesenwischer (#441)
- fix(deployments): stop per-stack notification spam on product removal — removing a multi-stack product now emits a single aggregated notification @Wiesenwischer (#440)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.75.1...v0.75.2
v0.75.1v0.75.1
Patch release fixing a v0.75.0 regression where a product manifest using a `${VAR}` placeholder in an edge port field (e.g. `publicPort: ${BFF_PORT}`) failed to load and disappeared from the catalog.
## What's Changed
## 🐛 Bug Fixes
- fix(edge): allow ${VAR} placeholders in edge port fields (catalog-load regression) @Wiesenwischer (#439)
## 📚 Documentation
- docs(plans): add Phase 6 (follow-ups & hardening) to edge-proxy plan @Wiesenwischer (#438)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.75.0...v0.75.1
## What's Changed
## 🐛 Bug Fixes
- fix(edge): allow ${VAR} placeholders in edge port fields (catalog-load regression) @Wiesenwischer (#439)
## 📚 Documentation
- docs(plans): add Phase 6 (follow-ups & hardening) to edge-proxy plan @Wiesenwischer (#438)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.75.0...v0.75.1
v0.75.0v0.75.0
## Highlights — Maintenance Edge-Proxy
A new opt-in capability: RSGO runs a managed per-product reverse-proxy ("edge", Caddy) that **survives product redeploys** and serves a controlled maintenance page plus a machine-readable status while the product is down — no more connection-refused. Dormant by default (no `edge:` block → behaviour unchanged).
- **Survival & state-driven routing** — proxy when `Running`; a controlled page during redeploy/maintenance; `/hc` & `/liveness` always pass through.
- **TLS termination** at the edge with RSGO-managed certificates, reloaded without an edge restart.
- **Maintenance-page branding** — built-in themeable page, custom HTML bundle, or your own container.
- **Versioned status contract** — stable `GET /__status` (schema 1): `running` | `maintenance` | `deploying`.
- **Optional host-level SNI passthrough router** (off by default).
- Documentation (DE/EN), customization templates (`examples/edge-maintenance/`) and deployable demo stacks (`stacks/examples/edge/`).
See **Configuration → Maintenance Edge-Proxy** in the docs.
---
## What's Changed
## 🚀 Features
- feat(edge): generic maintenance edge-proxy (R2) — phases 1-5 @Wiesenwischer (#431)
## 📚 Documentation
- feat(edge): generic maintenance edge-proxy (R2) — phases 1-5 @Wiesenwischer (#431)
- docs(plans): add maintenance-edge-proxy implementation plan (R2) @Wiesenwischer (#430)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.74.0...v0.75.0
A new opt-in capability: RSGO runs a managed per-product reverse-proxy ("edge", Caddy) that **survives product redeploys** and serves a controlled maintenance page plus a machine-readable status while the product is down — no more connection-refused. Dormant by default (no `edge:` block → behaviour unchanged).
- **Survival & state-driven routing** — proxy when `Running`; a controlled page during redeploy/maintenance; `/hc` & `/liveness` always pass through.
- **TLS termination** at the edge with RSGO-managed certificates, reloaded without an edge restart.
- **Maintenance-page branding** — built-in themeable page, custom HTML bundle, or your own container.
- **Versioned status contract** — stable `GET /__status` (schema 1): `running` | `maintenance` | `deploying`.
- **Optional host-level SNI passthrough router** (off by default).
- Documentation (DE/EN), customization templates (`examples/edge-maintenance/`) and deployable demo stacks (`stacks/examples/edge/`).
See **Configuration → Maintenance Edge-Proxy** in the docs.
---
## What's Changed
## 🚀 Features
- feat(edge): generic maintenance edge-proxy (R2) — phases 1-5 @Wiesenwischer (#431)
## 📚 Documentation
- feat(edge): generic maintenance edge-proxy (R2) — phases 1-5 @Wiesenwischer (#431)
- docs(plans): add maintenance-edge-proxy implementation plan (R2) @Wiesenwischer (#430)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.74.0...v0.75.0
v0.74.0v0.74.0
## What's Changed
## 🚀 Features
- Active maintenance setter (mirror of the observer) @Wiesenwischer (#429)
- Product updates \& release notes @Wiesenwischer (#428)
## 📚 Documentation
- Active maintenance setter (mirror of the observer) @Wiesenwischer (#429)
- Product updates \& release notes @Wiesenwischer (#428)
## ⬆️ Dependencies
- Active maintenance setter (mirror of the observer) @Wiesenwischer (#429)
- Product updates \& release notes @Wiesenwischer (#428)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.73.0...v0.74.0
## 🚀 Features
- Active maintenance setter (mirror of the observer) @Wiesenwischer (#429)
- Product updates \& release notes @Wiesenwischer (#428)
## 📚 Documentation
- Active maintenance setter (mirror of the observer) @Wiesenwischer (#429)
- Product updates \& release notes @Wiesenwischer (#428)
## ⬆️ Dependencies
- Active maintenance setter (mirror of the observer) @Wiesenwischer (#429)
- Product updates \& release notes @Wiesenwischer (#428)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.73.0...v0.74.0
v0.73.0v0.73.0
## What's Changed
## 🚀 Features
- Server-side logout via token revocation @Wiesenwischer (#427)
- Unlink OIDC providers from the profile @Wiesenwischer (#426)
- Optional SMTP setup step in the wizard @Wiesenwischer (#425)
- Password reset by email @Wiesenwischer (#424)
- Email-based login, verification, invitations \& OIDC SSO @Wiesenwischer (#422)
## 📚 Documentation
- Email-based login, verification, invitations \& OIDC SSO @Wiesenwischer (#422)
## ⬆️ Dependencies
- Email-based login, verification, invitations \& OIDC SSO @Wiesenwischer (#422)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.72.0...v0.73.0
## 🚀 Features
- Server-side logout via token revocation @Wiesenwischer (#427)
- Unlink OIDC providers from the profile @Wiesenwischer (#426)
- Optional SMTP setup step in the wizard @Wiesenwischer (#425)
- Password reset by email @Wiesenwischer (#424)
- Email-based login, verification, invitations \& OIDC SSO @Wiesenwischer (#422)
## 📚 Documentation
- Email-based login, verification, invitations \& OIDC SSO @Wiesenwischer (#422)
## ⬆️ Dependencies
- Email-based login, verification, invitations \& OIDC SSO @Wiesenwischer (#422)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.72.0...v0.73.0
v0.72.0 – Catalog: offer only the ams.project Preview channel (remove stable and RC sources)v0.72.0
## What's Changed in v0.72.0
- fix(stack-sources): offer only ams.project Preview channel (remove stable + RC) (#420)
- fix(stack-sources): offer only ams.project Preview channel (remove stable + RC) (#420)
v0.71.0 – Upgrade flow: per-stack remove → deploy with detailed progressv0.71.0
## What's Changed
## 🚀 Features
- feat(upgrade): run upgrade as per-stack remove then deploy with detailed progress @Wiesenwischer (#419)
- Plan upgrade flow as sequential remove then deploy @Wiesenwischer (#418)
## 📚 Documentation
- Plan upgrade flow as sequential remove then deploy @Wiesenwischer (#418)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.70.0...v0.71.0
## 🚀 Features
- feat(upgrade): run upgrade as per-stack remove then deploy with detailed progress @Wiesenwischer (#419)
- Plan upgrade flow as sequential remove then deploy @Wiesenwischer (#418)
## 📚 Documentation
- Plan upgrade flow as sequential remove then deploy @Wiesenwischer (#418)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.70.0...v0.71.0
v0.70.0 – ams.project Preview channel (replaces CI) + error-body surfacingv0.70.0
## What's Changed
## 🚀 Features
- feat(stack-sources): replace ams.project CI channel with Preview channel @Wiesenwischer (#416)
## 🐛 Bug Fixes
- fix(webui): surface server error bodies in PUT and DELETE responses @Wiesenwischer (#412)
## 🧰 Maintenance
- chore: Update third-party licenses @[github-actions[bot]](https://github.com/apps/github-actions) (#382)
## ⬆️ Dependencies
- chore: Update third-party licenses @[github-actions[bot]](https://github.com/apps/github-actions) (#382)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.69.0...v0.70.0
## 🚀 Features
- feat(stack-sources): replace ams.project CI channel with Preview channel @Wiesenwischer (#416)
## 🐛 Bug Fixes
- fix(webui): surface server error bodies in PUT and DELETE responses @Wiesenwischer (#412)
## 🧰 Maintenance
- chore: Update third-party licenses @[github-actions[bot]](https://github.com/apps/github-actions) (#382)
## ⬆️ Dependencies
- chore: Update third-party licenses @[github-actions[bot]](https://github.com/apps/github-actions) (#382)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.69.0...v0.70.0
v0.69.0 – ams.project CI catalog channel + PRTG V3 device syncv0.69.0
## What's Changed
## 🚀 Features
- feat(prtg): add PRTG V3 device sync and group probing @Wiesenwischer (#415)
- feat(stack-sources): add ams.project CI channel to preconfigured catalog @Wiesenwischer (#414)
## 🐛 Bug Fixes
- fix(api): stop serializing CancellationToken as response body on no-body endpoints @Wiesenwischer (#413)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.68.1...v0.69.0
## 🚀 Features
- feat(prtg): add PRTG V3 device sync and group probing @Wiesenwischer (#415)
- feat(stack-sources): add ams.project CI channel to preconfigured catalog @Wiesenwischer (#414)
## 🐛 Bug Fixes
- fix(api): stop serializing CancellationToken as response body on no-body endpoints @Wiesenwischer (#413)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.68.1...v0.69.0
v0.68.1v0.68.1
## What's Changed
## 📚 Documentation
- chore(plans): archive 9 completed plans to docs/Plans/completed/ @Wiesenwischer (#411)
## 🧰 Maintenance
- chore(plans): archive 9 completed plans to docs/Plans/completed/ @Wiesenwischer (#411)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.68.0...v0.68.1
## 📚 Documentation
- chore(plans): archive 9 completed plans to docs/Plans/completed/ @Wiesenwischer (#411)
## 🧰 Maintenance
- chore(plans): archive 9 completed plans to docs/Plans/completed/ @Wiesenwischer (#411)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.68.0...v0.68.1
v0.68.0v0.68.0
## What's Changed
## 🚀 Features
- feat(snmp): expand OID reference to per-column rows with concrete OIDs @Wiesenwischer (#410)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.67.0...v0.68.0
## 🚀 Features
- feat(snmp): expand OID reference to per-column rows with concrete OIDs @Wiesenwischer (#410)
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.67.0...v0.68.0
v0.67.0 – IANA Private Enterprise Number 65846v0.67.0
## 🎉 IANA assigned ReadyStackGo Private Enterprise Number 65846
IANA confirmed our PEN assignment on **2026-05-21**:
> Decimal: **65846**
> Organization: ReadyStackGo
> Contact: Marcus Dammann
> Email: dev@wiesenwischer.de
> Registry: https://www.iana.org/assignments/enterprise-numbers/
The placeholder PEN \`99999\` that has been in use since v0.64 is replaced everywhere. The SNMP root OID is now **\`1.3.6.1.4.1.65846.1\`**.
## ⚠️ Breaking change — operators must act
If you have been polling RSGO via SNMP under the placeholder PEN, you need to re-point your monitoring tools to the real PEN.
| Setup | Action |
|-------|--------|
| **SNMPv2c / SNMPv3 polling** (Nagios, Zabbix, snmpwalk) | Re-import \`READYSTACKGO-MIB.txt\` (Settings → SNMP → Download MIB, or \`GET /api/snmp/mib\`). Replace \`99999.*\` with \`65846.*\` in saved OID strings. |
| **PRTG Variant 1** (Device Template Bundle) | Re-download the bundle and unpack into the PRTG install dir. |
| **PRTG Variant 4** (HTTP Data Advanced sensor) | Nothing — JSON channel names did not change. |
| **PRTG Variant 2 + 3** (auto-register) | Re-deploy or unlink+relink affected ProductDeployments to refresh PRTG devices against the new OIDs. |
| **Custom \`snmpwalk\` scripts** | Replace \`99999\` with \`65846\`. |
## 🔄 Auto-migration in RSGO
The new EF migration **\`MigrateRootOidToAssignedPen\`** flips \`SnmpSettings.RootOid\` from the placeholder to the assigned PEN on container start. Customers who set a custom \`RootOid\` (their own corporate PEN) are **not** touched.
**SNMPv3 USM engine IDs are deliberately NOT regenerated.** The engine ID is folded into every v3 USM key — a reset would invalidate every v3 user's auth/priv credentials. Only fresh agents (no \`EngineIdHex\` stored yet) get an engine ID rooted at the new PEN; existing v3 polling keeps working unchanged.
## 📦 Pull request
- [#409](https://github.com/Wiesenwischer/ReadyStackGo/pull/409) — feat(snmp): migrate to IANA-assigned PEN 65846
## 🧪 Verification
- 2953 unit tests passing
- \`smilint\` CI passes on the updated MIB
- Live smoke test on a fresh container: wizard, SNMP settings default RootOid, \`/api/snmp/oid-reference\`, MIB anchor — all rooted at \`65846\`
- Doc-screenshot Playwright spec re-run; UI captures (OID-reference, PRTG bundle card, PRTG-HTTP card, settings tile) updated to show the assigned PEN
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.66.1...v0.67.0
IANA confirmed our PEN assignment on **2026-05-21**:
> Decimal: **65846**
> Organization: ReadyStackGo
> Contact: Marcus Dammann
> Email: dev@wiesenwischer.de
> Registry: https://www.iana.org/assignments/enterprise-numbers/
The placeholder PEN \`99999\` that has been in use since v0.64 is replaced everywhere. The SNMP root OID is now **\`1.3.6.1.4.1.65846.1\`**.
## ⚠️ Breaking change — operators must act
If you have been polling RSGO via SNMP under the placeholder PEN, you need to re-point your monitoring tools to the real PEN.
| Setup | Action |
|-------|--------|
| **SNMPv2c / SNMPv3 polling** (Nagios, Zabbix, snmpwalk) | Re-import \`READYSTACKGO-MIB.txt\` (Settings → SNMP → Download MIB, or \`GET /api/snmp/mib\`). Replace \`99999.*\` with \`65846.*\` in saved OID strings. |
| **PRTG Variant 1** (Device Template Bundle) | Re-download the bundle and unpack into the PRTG install dir. |
| **PRTG Variant 4** (HTTP Data Advanced sensor) | Nothing — JSON channel names did not change. |
| **PRTG Variant 2 + 3** (auto-register) | Re-deploy or unlink+relink affected ProductDeployments to refresh PRTG devices against the new OIDs. |
| **Custom \`snmpwalk\` scripts** | Replace \`99999\` with \`65846\`. |
## 🔄 Auto-migration in RSGO
The new EF migration **\`MigrateRootOidToAssignedPen\`** flips \`SnmpSettings.RootOid\` from the placeholder to the assigned PEN on container start. Customers who set a custom \`RootOid\` (their own corporate PEN) are **not** touched.
**SNMPv3 USM engine IDs are deliberately NOT regenerated.** The engine ID is folded into every v3 USM key — a reset would invalidate every v3 user's auth/priv credentials. Only fresh agents (no \`EngineIdHex\` stored yet) get an engine ID rooted at the new PEN; existing v3 polling keeps working unchanged.
## 📦 Pull request
- [#409](https://github.com/Wiesenwischer/ReadyStackGo/pull/409) — feat(snmp): migrate to IANA-assigned PEN 65846
## 🧪 Verification
- 2953 unit tests passing
- \`smilint\` CI passes on the updated MIB
- Live smoke test on a fresh container: wizard, SNMP settings default RootOid, \`/api/snmp/oid-reference\`, MIB anchor — all rooted at \`65846\`
- Doc-screenshot Playwright spec re-run; UI captures (OID-reference, PRTG bundle card, PRTG-HTTP card, settings tile) updated to show the assigned PEN
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.66.1...v0.67.0
v0.66.1 – PRTG deployment-detail screenshotsv0.66.1
## 📚 Documentation
Closes the V2 follow-up item from the v0.66.0 release notes:
- **Inline-tab screenshot** ([prtg-detail-inline-tab.png](https://github.com/Wiesenwischer/ReadyStackGo/blob/main/src/ReadyStackGo.PublicWeb/public/images/docs/prtg-detail-inline-tab.png)) replaces the V3-add-form placeholder in [\`docs/monitoring/snmp/prtg-inline\`](https://readystackgo.dev/de/docs/monitoring/snmp/prtg-inline).
- **Saved-connection-tab screenshot** ([prtg-detail-saved-tab.png](https://github.com/Wiesenwischer/ReadyStackGo/blob/main/src/ReadyStackGo.PublicWeb/public/images/docs/prtg-detail-saved-tab.png)) added to [\`docs/monitoring/snmp/prtg-connection\`](https://readystackgo.dev/de/docs/monitoring/snmp/prtg-connection).
## 🧪 Tests
\`e2e/prtg-integration.spec.ts\` gains a serial test block that reuses the \`ensureE2ePlatformDeployed\` helper pattern from \`maintenance-mode.spec.ts\` — POSTs the stack source, syncs, deploys, polls up to 60 s for Running, then captures both tabs of the PRTG monitoring card. Skips cleanly in CI when no docker-compose container is available.
## 📦 Pull requests
- [#408](https://github.com/Wiesenwischer/ReadyStackGo/pull/408) — docs(prtg): close V2 follow-up — deployment-detail screenshots
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.66.0...v0.66.1
Closes the V2 follow-up item from the v0.66.0 release notes:
- **Inline-tab screenshot** ([prtg-detail-inline-tab.png](https://github.com/Wiesenwischer/ReadyStackGo/blob/main/src/ReadyStackGo.PublicWeb/public/images/docs/prtg-detail-inline-tab.png)) replaces the V3-add-form placeholder in [\`docs/monitoring/snmp/prtg-inline\`](https://readystackgo.dev/de/docs/monitoring/snmp/prtg-inline).
- **Saved-connection-tab screenshot** ([prtg-detail-saved-tab.png](https://github.com/Wiesenwischer/ReadyStackGo/blob/main/src/ReadyStackGo.PublicWeb/public/images/docs/prtg-detail-saved-tab.png)) added to [\`docs/monitoring/snmp/prtg-connection\`](https://readystackgo.dev/de/docs/monitoring/snmp/prtg-connection).
## 🧪 Tests
\`e2e/prtg-integration.spec.ts\` gains a serial test block that reuses the \`ensureE2ePlatformDeployed\` helper pattern from \`maintenance-mode.spec.ts\` — POSTs the stack source, syncs, deploys, polls up to 60 s for Running, then captures both tabs of the PRTG monitoring card. Skips cleanly in CI when no docker-compose container is available.
## 📦 Pull requests
- [#408](https://github.com/Wiesenwischer/ReadyStackGo/pull/408) — docs(prtg): close V2 follow-up — deployment-detail screenshots
**Full Changelog**: https://github.com/Wiesenwischer/ReadyStackGo/compare/v0.66.0...v0.66.1