Skip to main content

Outline

At a glance
  • Infrastructure: Target .NET 10 and ensure database compatibility levels are correctly set.
  • App Model: Transition from legacy SiteDefinitions to the new Application model in the Admin UI.
  • Service Gating: Validate Opti ID handshakes and ensure Graph synchronization sequences are prioritized.
  • Operational: Execute full CDN purges and audit production log levels immediately post-deployment.

Moving CMS 13 implementation into a production-ready state requires more than a successful compilation. Because CMS 13 PaaS is service-bound and introduces a new application model, technical teams must perform a comprehensive validation of the infrastructure, service connectivity, and operational configuration. This checklist serves as the final technical gateway for ensuring environment stability and functional parity.

1. Infrastructure and Build Validation

Before deploying to the Production environment, the underlying runtime and build artifacts must be verified against the modern .NET 10 requirements.

  • Runtime Consistency: Verify that the .csproj targets net10.0 across all projects in the solution. Shared libraries must not target legacy .NET Core versions that are incompatible with the CMS 13 core packages.
  • Static Asset Resolution: If utilizing Razer Class Libraries (RCL) or Blazor components, ensure the RequiresAspNetWebAssets property is set in the project file.
<RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>
  • Database Compatibility Mode: Confirm that UpdateDatabaseCompatibilityLevel is set to true within the DataAccessOptions in Startup.cs.

2. Post-Migration Application Configuration

A material breakpoint in the CMS 13 upgrade is the disappearance of the SiteDefinition model. If not manually resolved, the application will return a 404 Not Found error post-deployment.

  • Application Model Transition: Navigate to Settings → Applications in the Admin UI.
  • Headless Cleanup: Delete the default "Headless" placeholder application created during the initial upgrade if the site is intended for In-Process rendering.
  • In-Process Mapping: Create a new In Process application and explicitly map the legacy Site root to the new Application start page.
  • Hostname Validation: Verify that all production hostnames are correctly registered under the new application context.

3. Service Connectivity and Gating (Opti ID and Graph)

Production readiness is gated by the successful authentication and synchronization handshake with the Optimizely platform services.

  • Opti ID Handshake: Verify that the identity service is active and test the SSO redirect flow from the DXP Production gateway.
services.AddOptimizelyIdentity(useAsDefault: true)
  • Graph Key Isolation: Perform a final audit of appsettings.json. Ensure that the AppKey, Secret, and SingleKey are Production-specific keys.
  • Synchronization Sequence: Ensure that services.AddContentGraph() is registered before services.AddContentManager().
services.AddContentGraph(); services.AddContentManager();

4. UI and Feature Parity Verification

The editorial experience must be validated to ensure that legacy components do not degrade the production workflow.

  • Shell Navigation: Confirm that custom admin layouts utilize the <platform-navigation /> tag helper and align with the Opti ID identity bar.
  • Visitor Group Registration: Verify AddVisitorGroups() is explicitly registered in the startup logic to ensure menu rendering fixes.
  • Search Integrity: Execute GraphQL queries against the production endpoint to verify synchronization status and parsing logic.

5. Security and Role Authorization

  • Role-to-Group Mapping: Audit mappings between local CMS roles and centralized groups in the Opti ID Admin Center.
  • Virtual Role Retirement: Ensure migration from local appsettings.json roles to the platform-level authorization model.

6. Operational Performance and CDN Purge

  • CDN Invalidation: Trigger a full CDN purge via the PaaS portal immediately following deployment to clear legacy CMS 12 cached assets.
  • Log Level Audit: Ensure production log levels are set to Warning or Error.

Conclusion

A successful upgrade to Optimizely CMS 13 is confirmed only when infrastructure alignment, service gating, and application configuration are synchronized. This checklist ensures that the "material" changes—specifically the transition to the Application model and the mandatory adoption of Graph and Opti ID—are not just implemented but validated for operational stability. By systematically verifying these checkpoints, technical teams can move into production with the confidence that the implementation is performant, secure, and fully integrated into the Optimizely One platform.