Missing Properties tool for Optimizely CMS
If you have been working with Optimizely CMS for a while you have probably accumulated some technical debt in your property definitions. When you refactor your models removing properties, renaming content types, or cleaning up after a migration the old property definitions often stick around in the database. They are harmless for the most part, but they add noise and can be confusing when inspecting content types.
I actually built a tool for this like 10 years ago and I recently had a need to revisit it during a large migration project where we ended up with quite a few orphaned properties that
needed cleaning up.
What it does
The tool scans all your code-defined content types (PageTypes and BlockTypes) and looks for property definitions in the database that no longer have a corresponding attribute in code. Manually created content types are intentionally skipped it only checks types backed by a C# model.
The results are grouped by content type so you can see exactly what is affected. From there you have a few options:
- Select individual properties and delete them
- Select all properties for a specific content type
- Delete everything at once
Both deletion paths require a confirmation dialog because this operation is permanent and cannot be undone.
There is also a Rescan button if you want to re-check after deploying model changes.
Installation
Configure blazor and decide on how you want to render the component. I just created a content type specific for the tool. Example layout included on github.
Add the tool to your project and register it in Startup.cs:
services.AddMissingProperties();

The source code is on https://github.com/pernergard/NergardToolsAndUtilities
Comments