Failing client connections with SQL OPENJSON Incorrect Syntax error after upgrading Identity Server 6 to 7

The Issue Whilst updating a client’s Duende Identity Server from versions 6 to 7, we experienced a problem. We followed the upgrade steps and all was working fine against our development instance i.e. the Identity Server Db was upgraded to the current schema and we could login from our test MVC web client without issues. The problem occured when we started to test using our UAT (a production replica) DB. On loading the Identity Server, it did the expected EF migrations and appeared to start, but when a client tried to connect we got an exception in the Identity Server logs in the form...

May 29, 2024 · 1 min · Richard Fennell

Fix for SonarQube recoverable indexing failures error

The Issue Within one of our Azure DevOps builds we today started to see the following error when running the SonarQube analysis step: ##[error][SQ] Task failed with status FAILED, Error message: Unrecoverable indexing failures: 1 errors among 1 requests. Check Elasticsearch logs for further details. Nothing obvious pointed to why this should have started to occur, the SonarQube logs showed nothing more than a longer version of the same message....

May 16, 2024 · 1 min · Richard Fennell

Announcing a Global DevOps Experience venue at Black Marble

Background In past years, pre Covid, Black Marble hosted a venue for the Global DevOps Bootcamp, a community run in person hackathon event. After a short hiatus, I am pleased to be able to say this event has a successor, the Global DevOps Experience which is being run on the 15th of June at many venues around the world, including Black Marble’s offices. What will be involved? The Global DevOps Experience is a day full of learning and fun, as we immerse you in the world of DevOps and AI....

May 13, 2024 · 2 min · Richard Fennell

Building Reporting Service .RPTProj files in Visual Studio 2022 from the command line

The Issue We have a number of projects that use the old style SQL Server Reporting Services (SSRS) .RPTProj project format. These projects are not supported in Visual Studio 2022 out of the box, but there is an extension in the Marketplace that adds the functionality back so you can build them in the IDE. However, we want to build our RDL files as part of our CI process, and this is where we hit a problem....

May 3, 2024 · 2 min · Richard Fennell

Creating an undo PowerShell Script for batch updates of Azure DevOps Work Items

Problem One of my client’s recently had a problem that a large number of Azure DevOps work items had been updated via Excel in error. They asked if there was a means to undo these edits. Unfortunately, a feature Azure DevOps does not provide. Solution So, I wrote a PowerShell script to do it. The script… Gets a list of work items edited today by a specific user, the one who did the problematic bulk update, using a Work Item Query Get the last update of each work item and check it was made by the user who did the bulk edit, incase someone manually fixed the problematic update already....

April 16, 2024 · 2 min · Richard Fennell

Personal Access Tokens (PATs) are not your friends

Background Programmatic connection to Azure DevOps cannot be done with your Active Directory credentials. This is because this involves a dialog being shown, and these days usually an MFA check too. Historically, the solution to this problem was to enable Alternate Credentials, which could be passed as username and password, without the dialog being shown. However, the use of these has been deprecated since 2020, and they have been completely removed since Jan 2024....

March 22, 2024 · 3 min · Richard Fennell

It is really time to get off Azure DevOps TFVC source control

A History Lesson Team Foundation Version Control (TFVC) has been around since 2005, since the first release of Team Foundation Server (TFS) in 2005. In 2013, over 10 years ago, Microsoft added Git support to TFS (later renamed as Azure DevOps), Git had already been around for 8 years at that point. 10 years is a long time in the software industry, I always think of ‘IT years’ like ‘dog years’ i....

March 21, 2024 · 4 min · Richard Fennell

Don't forget to commit your configuration file

It is a major effort, often unfortunately ignored, keeping the dependencies in an open source project up to date. This was highlighted in Jesse Houwing’s post on the state of the Azure DevOps Marketplace. Since reading this I have made much more of an effort to keep my Azure DevOps Extensions up to date. Dependabot generated PRs have been a great help in this regard. Creating PRs for vulnerabilities and out of date dependencies....

March 20, 2024 · 1 min · Richard Fennell

Parsing error with Azure Bicep files in SonarQube

The Issue We saw an issue with our SonarQube 10.3 Developer Edition (that is running as a Docker image hosted in Azure) when it was doing the analysis of a project that included Azure Bicep files. The Azure DevOps pipeline that triggered the SonarQube analysis was not failing, but within the SonarQube analysis step an error was reported in the task log INFO: Sensor IaC AzureResourceManager Sensor is restricted to changed files only INFO: 1 source file to be analyzed ##[error]ERROR: Cannot parse 'AzureServices/QueryPack....

March 19, 2024 · 2 min · Richard Fennell

GitHub Events not being triggered for auto-merged Dependabot PRs

Background I have an Azure Static Website that is built from a GitHub hosted repo using the default Action Workflow automation created by Azure when setting up the static site. A really nice feature of this configuration is that when a PR is created in GitHub a test static website environment site is built in Azure to review the changes. When the PR is closed the test environment site is deleted....

March 18, 2024 · 4 min · Richard Fennell