Reviewing my 2023 Sitecore MVP contributions

It's that time of year again! No, not Thanksgiving, Black Friday, holiday preparations, etc. I'm talking about Sitecore MVP application time!

The MVP program recognizes those who contribute to the community under the category of Ambassador, Strategy or Technology. You can read more about it on the dedicated MVP website.

One component of the application is online contributions, so I have listed mine on this page for the last year as a simple summary. Next year I'll be working more towards the upgrade paths we see in front of us and the process around being a technical lead on a Sitecore project.

These posts are in no particular order:

Introducing the Exclude Robots by Agent Module

In my past post “xDB SQL Injections Attempts Can't Do Any Harm, but They'll Still Fill Up Your Databases With Useless Records”, we went over how an unknown agent or script crawling your Sitecore installation can cause a massive demand on the shard databases for xDB, easily bringing it to 100% usage and causing performance issues with your site. We'll revisit this situation and how my new Exclude Robot by Agent module will prevent this from happening.

Reset Your Sitecore Accounts After a Configurable Amount of Time Has Passed

A common question raised in the community is, “How do I unlock a Sitecore account due to bad password attempts?”. The fix is easy enough with a simple SQL command, but why now use a task that will do this for you?

Sitecore Bucketed URLsAre a Thing of the Past, With the Custom Link Provider - Part 1

If you've ever seen a bucketed URL, you'd know it. Dates are made to be part of the URL, which allows for a larger number of children under a single parent, when there's usually a limit of 100. This is common in areas like blog postings, press releases, etc. But did you know the date folders can be optional? In this first part of a two-part series, I'll show you how.

Sitecore Bucketed URLs Are a Thing of the Past, With the Custom URL Resolver - Part 2

In my last post, I shared a way to hide bucketed folders from Sitecore URLs to make them more SEO friendly. So how do we find an item if part of the standard URL is missing? In this post I'll show you how with the custom URL resolver.

Cutting a Useragent's Value When It Exceeds the Maximum Possible Length for xDB Databases

It's taken years of managing Sitecore sites for this one to come across my desk, but apparently there's no protection for the UserAgent value being longer than the maximum allowed length when saving the User's session to the xDB. Though it's fixed since version 10, there's no patch for earlier instances, so we're going to have to add our own pipeline processor to cut the offending UserAgent values short.

Dynamic Placeholder Management When You Can't, or Don't Want to Use Experience Editor

Ok, so dynamic placeholders are very cool and definitely needed, but unlike standard placeholders we depend on using the experience editor to manage them. But what if it's not working, hasn't been coded properly to use EE, or is just too plain slow? Today I'll show you how to manage them with the much faster and more reliable content editor.

Releasing an Item on a Specific Schedule

I was recently asked about setting up a campaign in Sitecore and having it go live at a specific time. It's not overly obvious in the documentation since you need to combine versioning and publish restrictions, so we'll go over it here.

Understanding 100% Database Usage Caused by Your Sitecore Genericprocessingpool Table

While managing an instance of Sitecore I saw a bot got past the excludedUserAgents configuration, which means its traffic is recorded and we don't want that. Flushing the data out is simple with the Analytics Database Manager, but there are cases where there's transient data queued for processing in the GenericProcessingPool table, and it can be a problem.

Broken PowerShell Methods After Sitecore Security Bulletin SC2023-003-587441 Due to Versioning Differences

The most recent security patch from Sitecore addressed some critical issues. There is an assumption in it, however, that you're using PowerShell 6, which will break some functionality if you have a lower version installed.

Moving From Sitecore's MyGet to Nuget Public Feed Might Be a Good Idea After Today's Outage

Many organizations experienced build issues after MyGet's outage on July 26th. The transition to NuGet is coming for later this year, so there's no reason to wait.

What's Burning My Shard Databases at 100%?

This morning I was alerted to both shard databases burning at 100%, which should never happen in a right-sized configuration. After some checking around, the problem appeared to be bots indexing this site. That's great, we like bots! But Sitecore wasn't identifying these visits for what they were, and began processing them as Users, to be collected into the xDB. Here's a quick guide to keep these bots that slipped past detection at bay.

Where Did My Azure Disk Space Go?

I've written in the past about Azure backups failing due to size limits being exceeded. The _backup.filter file is a straightforward thing to use, but what do you do when you can't see what the cause of your file usage? The Azure Web Aps Disk Usage tool is an easy way to find the offending directory.

Path Analyzer Missing Data and Instead of That I've Got a Handful of Entitydoesnotexistexception Exceptions

A new client came to me asking about their Path Analyzer missing random days of data. EntityDoesNotExistException gives some easy answers, but a less known trick finally fixed this issue.

xDB SQL Injections Attempts Can't Do Any Harm, but They'll Still Fill Up Your Databases With Useless Records

During routine maintenance I saw our xDB was busy, having received a couple hundred thousand new contacts in a short amount of time. Having gone through an exercise of updating the excludedUserAgents configuration, I was curious to see what I might have missed. Looking at the User Agents of the new traffic revealed something alarming, but also presented the opportunity for my next module.