Skip to content

docs(dnn): #132 production deployment runbook (9.11.1 → 10.1.2 go-live) - #527

Merged
jsboige merged 1 commit into
masterfrom
docs/132-deployment-runbook
Jun 18, 2026
Merged

docs(dnn): #132 production deployment runbook (9.11.1 → 10.1.2 go-live)#527
jsboige merged 1 commit into
masterfrom
docs/132-deployment-runbook

Conversation

@jsboige

@jsboige jsboige commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

What

Closes #132 (Production deployment) — which until now had only a validation dossier (#492) and no runbook. This is the go-live procedure for DNN 9.11.1.19 → 10.1.2, the production counterpart to the sandbox-upgrade procedure (#522).

Follows jsboige's 6-step migration strategy (issue #132 body): backup → staging restore → schema analysis → migration plan → sandbox test → go-live, with per-phase go/no-go gates and a rollback contract.

Doc-only, non-gated

Grounded (anti-fab)

Claim Source
SQL Server backend web.config System.Data.SqlClient
.NET Framework 4.8 web.config targetFramework="4.8"
2sxc 15.02, 26 apps (only Argumentum custom) Portals/1/2sxc/ (#525)
NBrightBuy/OpenStore + OS_Stripe + Stripe.net bin/, DesktopModules/NBright/OS_Stripe
Target 10.1.2 (both CVEs, before 2sxc cliff @10.2.0) #520

Key insight (§4)

For target 10.1.2, no 2sxc entity migration is required — 15.02 survives because 10.1.2 sits before the 10.2.0 cliff (DnnJsInclude crash). Full 2sxc content-type/entity/metadata migration + _FallacyExplorer_Root.cshtml → Razor14 template audit enters scope only if jsboige targets 10.3.2 (documented §9).

Honesty boundary

Sections needing the real prod DB export (connection string, schema, 2sxc row counts, dev↔prod delta) are flagged "à confirmer contre l'export DB réel" — not invented (the in-repo export is sanitized; repo = templates, not portal content, per #525). The procedure, rollback strategy, topology, and the 2sxc no-op insight hold on their own.

Diff

1 file net-new: docs/dnn-localization/132-deployment-runbook.md (+218). Base master 132ffea3.

Refs #132 #131 #520 #522 #525.

Procedure for the production go-live, closing #132 (which had only a
validation dossier, no runbook). Follows jsboige's 6-step migration
strategy (backup → staging restore → schema analysis → migration plan →
sandbox test → go-live) with per-phase go/no-go gates and a rollback
contract.

Grounded in repo facts: SQL Server backend (web.config System.Data.
SqlClient), .NET 4.8, 2sxc 15.02 (26 apps, only Argumentum custom),
NBrightBuy/OpenStore + OS_Stripe + Stripe.net in bin.

Key insight (§4): for target 10.1.2 no 2sxc entity migration is required
— 15.02 survives because 10.1.2 sits before the 10.2.0 cliff. Full 2sxc
migration enters scope only if jsboige targets 10.3.2 (documented §9).

Honesty boundary: sections needing the real prod DB export (schema, 2sxc
row counts, dev↔prod delta) are flagged "à confirmer contre l'export DB
réel" — not invented. The procedure, rollback strategy, topology, and
the 2sxc no-op insight hold on their own.

Doc-only, non-gated. Execution (backup/restore/upgrade/go-live) stays
GATED jsboige. No prod mutation, no DB/RDP.

Refs #132 #131 #520 #522 #525.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@clusterManager-Myia

Copy link
Copy Markdown
Collaborator

[NanoClaw] — LGTM

No concerns.

@jsboige
jsboige merged commit 7a07abc into master Jun 18, 2026
3 checks passed
@jsboige
jsboige deleted the docs/132-deployment-runbook branch June 18, 2026 02:07
jsboige added a commit that referenced this pull request Jun 18, 2026
#520 (#528)

The merged #511 sandbox plan-v2 states (§2 table, §1 title, §7 Step 1)
that 9.13.x closes CVE-2025-64095 and is a "security palier" closing
1 of 2 critical CVEs. The follow-up corrigendum #520 (merged) corrected
this — grounded in NVD + official DNN GitHub Security Advisories:

  - CVE-2025-64095 first patched in 10.1.1 (not 9.13.x)
  - CVE-2025-52488 first patched in 10.0.1
  - the 9.13.x line closes NEITHER (0 of 2), target = 10.1.2

#520 documents the error but #511 itself was never updated, so a reader
hitting #511 §2 still sees the dangerously wrong "9.13.x closes 64095"
claim (could lead to believing a 9.13.x hop is a security step).

Minimal history-faithful fix: add an ERRATA banner at the top of #511
pointing to #520 as source of truth + #527 for the go-live procedure,
explicitly retracting §2 + the "1 of 2" framing while retaining the
still-valid runtime finding (§3: DNN 10 = .NET Framework 4.8) and 2sxc
compatibility matrix (§5-6).

Doc-only hygiene (idle-light coherence pass on the DNN doc arc). No
content rewrite of merged history, no target change, no prod mutation.

Refs #131 #520 #522 #527.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jun 18, 2026
…5→≥21 (jsboige decision #2) (#531)

jsboige interactive decision #2 (issue #458, 2026-06-18): "Je suis pour
l'upgrade complète, même si c'est plus lourde" → target = 10.3.2-latest +
2sxc 15→≥21 + template audit. Supersedes the 10.1.2 target of #520/#522/
#527/#528. #445 Stripe Native unblocked (OpenStore blocker dissolved).

Net-new decision-spec (131-target-revision-10.3.2-full-upgrade.md, +141):
- The 6-phase go-live procedure (#527) + rollback contract + .NET 4.8
  runtime finding remain valid; only target + 2sxc scope change.
- 2sxc upgrade path: 15.02 → 21.07 LTS on DNN 9.11.1 (2sxc-first), then
  DNN → 10.3.2. Adds new Phase 1.5 + expanded Phase 3/4 (content migration
  is now real, unlike the 10.1.2 no-op).
- KEY GROUNDED FINDING (§3): the template audit is largely ALREADY DONE.
  All 4 Argumentum custom templates already use @inherits
  Custom.Hybrid.Razor14 (verified, not asserted) — the legacy RazorComponent
  migration #131 flagged is complete. APIs in use (App.Query, AsList,
  CmsContext, Link.To, Edit.TagToolbar) all maintained in 2sxc 21. Residual
  risk is the 25 stock apps' v20 infra changes (staging-test item, not
  repo-audit).

Superseded banners added to the 4 target-bearing runbooks pointing to the
new decision-spec as source of truth (#520, #522, #527 §4 "no 2sxc
migration" explicitly invalidated, #511 errata redirected). No merged
history rewritten.

Doc-only, non-gated. Execution (deploy/upgrade/2sxc) stays GATED jsboige.
No prod mutation, no DB/RDP, no template edit.

Refs #131 #458 #445 #514 #520 #522 #527 #528.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jun 18, 2026
…et) (#533)

Pulls the post-upgrade smoke items scattered across the runbook arc
(#522 §5, #527 Phase 4/5, #531 revision §4) into one tickable go/no-go
gate, and adds the two cliff-specific checks that the 10.1.2-era
scenarios did not need now that the target is decided = 10.3.2:

- §3 DnnJsInclude IIS worker-process crash check (issue #6902 cliff,
  mandatory because 10.3.2 crosses 10.2.0; 2sxc >=21.07 workaround gate)
- §4 25 stock 2sxc apps load (v20 Moment-of-Truth infra risk; staging-
  test item not repo-audit per #525)

Encodes the grounded §5 finding (all 4 Argumentum templates already
@inherits Custom.Hybrid.Razor14, PR #531 §3) so the checker knows the
expected result: Argumentum app is verify-still-binds, not migrate.

Doc only, non-gated. Visual PASS verdict = ai-01 + jsboige.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jun 19, 2026
#543)

Expands the one-sentence Phase 1.5 from target-revision #531 §4 into a
step-by-step 2sxc upgrade procedure for the DNN 10.3.2 path.

- §1: 2sxc-first ordering rationale (vs rejected DNN-first, which crosses
  the 10.2.0 cliff with workaround-less 2sxc 15.02 → IIS crash)
- §2: 5-step sequence (1.5.0 pre-flight/backup → 1.5.1 stage package →
  1.5.2 install via DNN Extensions → 1.5.3 migration wizard → 1.5.4 verify
  on DNN 9.11.1) with go/no-go gates A+B
- §3: 2sxc-specific rollback table (complements #527 §6 DNN-phase table)
- §4: 25-stock-app verification checklist grounded from actual repo
  (26 apps total = 1 custom Argumentum + 25 stock; supersedes #511 §5
  partial list)
- §5: consolidated 10.3.2 phase map showing where Phase 1.5 slots in

Doc-only, non-gated. Execution stays GATED jsboige; visual PASS verdict
= ai-01 + jsboige. No production system touched.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jun 19, 2026
…548)

The DNN-side counterpart to the 2sxc migration plan (#543 Phase 1.5).
Expands the one-line "Phase 2 — staging restore + schema analysis"
named in #531 §4 into the DNN platform upgrade execution sequence +
a 10.3.2-specific rollback runbook.

- §1: preconditions — Phase 1.5 (2sxc) must be green first
- §2: DNN execution sequence — single-jump 9.11→10.3.2 (per #531 §2.1,
  wizard handles schema directly), 4 steps (2.0 snapshot → 2.1 stage
  upgrade package → 2.2 apply files → 2.3 run wizard → 2.4 restart +
  smoke)
- §3: intermediate validation gates — C (wizard completion, post-2.3)
  + D (smoke green, post-2.4, the #533 gate)
- §4: 10.3.2-specific rollback runbook — two-anchor model (Step 1.5.0
  = pre-everything, Step 2.0 = post-2sxc-21 pre-DNN), DB+webroot
  restore procedure, go/no-go criteria, stepping-stone fallback
- §5: updated 10.3.2 phase map showing where Phase 2 slots in

Complements #543 (2sxc), #522 §4 (generic wizard mechanics, 10.1.2-
superseded), #527 §6 (generic DNN rollback) — references, not
duplicates.

Doc-only, non-gated. Execution GATED jsboige; visual PASS verdict =
ai-01 + jsboige. No production system touched.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ops(deploy): Production deployment — database migration and go-live

2 participants