Accessing Azure Key Vault Secrets in JMeter Tests Running from Azure Pipelines

Accessing Azure Key Vault Secrets in JMeter Tests Running from Azure Pipelines

Running JMeter load tests in Azure Pipelines while securely accessing sensitive data from Azure Key Vault using service principal authentication.

Jerzy Czopek
When running JMeter load tests, you often need to access sensitive information like API keys, passwords, or connection strings. Azure Key Vault is the perfect solution for storing these secrets, but connecting JMeter to Key Vault requires proper authentication, especially when you are intending to run it from self-hosted agents. I recently had build and run load tests, and my initial intent was to leverage Azure Load Testing service. Azure Load Testing service provides a convenient way to retrieve secrets from Key Vault using a managed identity through the __GetSecret JMeter function.
Feedback First: Accelerating AI Development with Early Insights

Feedback First: Accelerating AI Development with Early Insights

Explore the pivotal role of early user feedback in refining and directing the development of generative AI applications.

Jerzy Czopek
In the rapidly evolving landscape of generative AI, developing applications based on Large Language Models (LLMs) presents a unique set of challenges and opportunities. As I have recently learned, one of the most critical steps in this journey is actively seeking out and using early user feedback. In this blog post, I will explain why it’s so crucial to listen to users right from the start. Gaining Insights into User Interaction When building LLM-based applications, understanding how users interact with your tool is crucial.
Deploy Azure PostgreSQL flexible server with pgvector extension

Deploy Azure PostgreSQL flexible server with pgvector extension

Easy steps to deploy Azure PostgreSQL flexible server with pgvector extension for vector similarity search.

Jerzy Czopek
Using vector storage and search is becoming increasingly popular due to the momentum that Generative AI has gained. It is a critical part of many use cases that require relevant context for prompts, while staying within the token limit of LLMs. There are many options available for storing vector data and performing searches. Some are provided as third-party hosted APIs, while others can be deployed as containers to Kubernetes clusters. There is also an interesting alternative: using a good old PostgreSQL database with the pgvector extension!
MongoDB and a mystery of long running queries

MongoDB and a mystery of long running queries

Indexes are critical in MongoDB for optimal query performance, but they have some secrets!

Jerzy Czopek
In one of the projects I’m involved in, MongoDB is used to store data for services. We were seeing some unexpected behavior in one part of the system, and we were able to narrow down the issue to be a long-running query against one of the collections. Due to the size of that collection, the query was taking up to 2.5 hours! At first, it was obvious that we need an index of some sort to speed things up.
Rich text fields in CMS systems - the good, the bad and the ugly

Rich text fields in CMS systems - the good, the bad and the ugly

Are rich text fields a silver bullet of CMS systems?

Jerzy Czopek
There are many CMS systems on the market at the moment. All of them allow users to create and manage content, each of them in it’s own specific way. I have been working with several CMS systems in my career. Each of the system is different from another but there are some pieces that are common for most of them. In this post I would like to share with you my observations and thoughts about a capablitity that many CMS systems have, which often is a source of problems.
Move blocks from page assets without Delete permission

Move blocks from page assets without Delete permission

Use Dojo trickery to allow users moving blocks without Delete permissions on local assets folder.

Jerzy Czopek
Probably almost any EPiserver user knows that to move blocks between folders in EPiserver you need to able to delete items from the source folder. And it’s fine for most of the time and we don’t think too much about it. Until we run into an issue, of course. Things can get tricky when we are faced with some specific requirements, which do not fit into the out-of-the-box capabilities of EPiserver.
EPiserver & Powerpaste postprocessing

EPiserver & Powerpaste postprocessing

How to run additional content cleanup after pasting rich content from MS Word.

Jerzy Czopek
One of the most important pieces of EPiserver for content editing is the support for rich text. EPiserver integrates with one of the most popular and well known rich text editors for web browsers - TinyMCE. Out of the box TinyMCE is packed with features and configuration options and its ecosystem is packed with plugins (both free and paid), that can greatly expand its capabilities. I have recently been asked to add support for PowerPaste plugin for the TinyMCE editor in EPiserver.
Unable to initialize/update EPiserver database with user secrets enabled

Unable to initialize/update EPiserver database with user secrets enabled

How to solve issues with database upgrade/initialization while using User Secrets.

Jerzy Czopek
I suppose all of you know the importance of not storing secrets for connections to databases, APIs, identity providers etc. in the repositories alongside with the code. There are many ways to keep them away from the source code in .NET Core and in .NET Framework. To avoid storing secrets in code for EPiserver, the user secrets feature can be leveraged (provided by Microsoft.Configuration.ConfigurationBuilders.UserSecrets NuGet package). However, there is an issue when upgrading/initializing Episerver database using Initialize-EPiDatabase and Update-EPiDatabase in the Visual Studio Package Manager when the UserSecrets package is referenced.