Debugging software in a containerised environment can be challenging. The software itself is generally stripped-down, in a minimal runtime environment with none of the usual auxiliary tools available. It runs...
Or: Why, and how, Prometheus selects Kubernetes targets to scrape. While it's not good practice, sometimes it's necessary to have Prometheus connect to a metrics port that is not declared...
One of the headlining features of PostgreSQL 18 is virtual generated columns, which I worked on. This is the story of that feature. Just to catch everyone up, this is...
In Parts 1 and 2, we built a unified generation pipeline where one proto file produced gRPC services, REST endpoints, OpenAPI specs, and an MCP server. Everything worked technically, the...
SQL injection (SQLi) is a type of cyberattack in which an attacker manipulates a web application’s input to execute unauthorized SQL commands on a database. These attacks exploit vulnerabilities in...
The PostgreSQL community YUM repository is ready for PostgreSQL 18, with new packaging updates spanning 346+ packages across major Linux distributions. Highlights include a separate OAuth2 library for security, io_uring...
After a very long development period, we finally completed the project to rework NOT NULL constraints in PostgreSQL. This has long been a desire of the Postgres development community, and...
Recently, while working on edb_otel, which is a PostgreSQL extension for opentelemetry, I came across an interesting problem. The server crashes when the apis are called from a pl/pgsql block...
In Part 1, we demonstrated how gRPC transcoding can unify gRPC and REST API definitions. This article takes the next step, showing how to generate an MCP server and its...