God Mode for Umbraco 17 Blog post

With the release of Umbraco 17 and .NET 10, I thought it was about time I gave my Diplo God Mode package a proper refresh. Not just a quick recompile, but a more serious update for the new Umbraco backoffice.

If you have no idea what I’m talking about, then God Mode is my developer-focused Umbraco package that adds a tree to the Settings section of the backoffice and lets you inspect, search and generally poke around inside your Umbraco site. It’s designed for those times when you think, “where is that data type used?”, “which document types inherit from this composition?”, “what services are registered?”, or “what on earth is going on with this site?”

The new version targets Umbraco 17 and .NET 10, and is available now in Umbraco Marketplace and NuGet.

No more AngularJS

The biggest change in this release is probably what it doesn’t use.

There is no legacy AngularJS in this version. The backoffice UI has been rebuilt using the modern Umbraco package approach with Lit, TypeScript, Vite and Umbraco extension manifests.

This was quite a big change, but also a good excuse to tidy things up and make the package feel more at home in the new backoffice. The old version had served me well, but it was definitely time to stop dragging AngularJS around like a slightly mouldy comfort blanket.

What’s New?

I’ll summarise the main features in the Umbraco 17 version of God Mode.

  • Full support for Umbraco 17 and .NET 10.

  • A rebuilt backoffice UI using Lit, TypeScript and Vite.

  • Searchable browsers for document types, templates, editors, media, content, members and tags.

  • Better ways to inspect document type inheritance, composition usage, data type usage and property editor usage.

  • Browsers for templates, partial views, controllers, generated models, registered services, Content Finders and URL Providers.

  • Searchable and filterable tables for content, members and media.

  • Tag inspection, including the ability to find orphaned tags.

  • Diagnostics for server details, configuration values and useful Umbraco internals.

  • Optional redaction for sensitive diagnostic settings.

  • The ability to inspect and clear Umbraco caches and restart the app where supported.

So, basically, all the nosy developer stuff that God Mode has always tried to provide, but brought up to date for the brave new Umbraco 17 world.

Why bother?

I originally built God Mode because I often found myself wanting to answer simple questions about an Umbraco site without diving into the database, codebase, Models Builder output, or half a dozen different places in the backoffice.

For instance:

  • Which document types use this composition?

  • Is this data type actually being used anywhere?

  • Which property editor is used by which data type?

  • What templates and partials exist on the site?

  • What generated models are available?

  • Which services have been registered in the IOC container?

  • What Content Finders or URL Providers are running?

  • What configuration values can the site actually see?

These are the kinds of questions that come up a lot when maintaining existing Umbraco sites, especially larger ones, or sites that have been around for a while and have evolved over time. God Mode is intended to make those answers easier to find.

Diagnostics and redaction

The diagnostics section has also had some attention.

God Mode can show useful information about the Umbraco installation, server environment and configuration values. This is very handy when developing or supporting a site, but obviously some configuration values can be sensitive.

So the Umbraco 17 version supports optional redaction of diagnostic settings. You can hide whole diagnostic groups, individual sections, exact keys, or keys that match common sensitive terms such as password, secret or key.

You can also configure an environment-variable based reveal mechanism for local or controlled environments, so redacted values stay hidden by default but can be revealed when you explicitly allow it.

Very cloak and dagger. Or, more accurately, just a sensible precaution.

Installation

Install it from NuGet in the usual way:

dotnet add package Diplo.GodMode

Then restart your site and open the Umbraco backoffice. You should see the God Mode tree appear in the Settings section, under the third-party/package extensions area.

If it doesn’t show up immediately, try the traditional developer fix: clear your browser cache and check that the package manifest is being served correctly from:

/App_Plugins/DiploGodMode/umbraco-package.json

Version Guide

As ever, the version numbers broadly follow the Umbraco version they support:

  • 17.x is for Umbraco 17 / .NET 10

  • 13.x is for Umbraco 13 / .NET 8

  • 10.x is for Umbraco 10, 11 and 12 / .NET 6

  • 9.x is for Umbraco 9

  • 2.x is for Umbraco 8

  • 1.x is for Umbraco 7

See the pattern?

Source and Download

The 17.0.0 release is available from NuGet now, and as ever it’s free and open source.

Download:
https://www.nuget.org/packages/Diplo.GodMode/

Source:
https://github.com/DanDiplo/Umbraco.GodMode/

Umbraco Marketplace:
https://marketplace.umbraco.com/package/diplo.godmode

Incidentally, if you use it and find anything broken, odd, or just have ideas for what else would be useful, then let me know. God Mode has always mostly grown out of real-world things I’ve needed when working on Umbraco sites, so suggestions are welcome.


Just fill in the form and click Submit. But note all comments are moderated, so spare the viagra spam!

Tip: You can use Markdown syntax within comments.