Skip to content

1.3.0

Latest

Choose a tag to compare

@cevheri cevheri released this 10 Nov 19:50
· 15 commits to main since this release
Immutable release. Only release title and notes can be modified.

LibreDB Studio 1.3.0 opens MCP and the read-only agent to most of the engines Studio connects to, gives each MCP token a tool list of its own, and records per engine what Studio can write, so read-only means the same thing in the form, the seed file and the agent.

Action required: an OPC UA seed connection must declare agentReadRoots; until it does, agents and MCP no longer read it. See docs/providers/opcua.md.
Action required (library users): ProviderCapabilities in @libredb/studio no longer has enforcesReadOnly; read capabilities.writeReach instead. No engine's read-only behaviour changes.
Behaviour change: on an engine where Studio has no write path, the connection form shows a fixed Read-only label instead of a toggle, and a stored readOnly: true there is dropped on the connection's next save.

MCP and the agent

  • MCP runs read-only statements through run_read_query on Oracle, Db2 LUW, ClickHouse, libSQL, InfluxDB 3, Elasticsearch, OpenSearch, Cassandra and Couchbase.
  • Engine tools read metadata or data windows on Redis, etcd, Milvus, Qdrant, Weaviate, Kafka, RabbitMQ streams, S3, MQTT, Sparkplug B, MTConnect, SNMP and LibreDB files, and run_cypher_read runs read-only Cypher on Neo4j.
  • The read-only agent now executes reads on RabbitMQ, Kafka, S3, Firestore, SNMP, NETCONF, Modbus (paced), OPC UA, MTConnect, MQTT, Sparkplug B, Prometheus and Trino, with sensitive fields withheld per engine.
  • tools/list returns only the tools a token can use, and each tool's hints state its real effects.
  • inspect_schema takes timeout_ms, can return foreign keys, and names the other schemas a connection holds.
  • An unavailable connection answers with the same sentence on every statement tool, and a seed's Vault references are read when a tool opens the connection.
  • The repository ships a libredb-studio skill and a Claude Code plugin for connecting a coding agent to Studio over MCP (docs/MCP.md).

Seeds and read-only

  • A seed connection can carry a separate agentUser and agentPassword, so agent mode and MCP run under a narrower login than the seed's own.
  • Each engine now declares its write reach (none, guarded or open); a seed's readOnly and the connection form read that one record.
  • Kafka and Prometheus are recorded as having no write path, each with its proof.

Editor and API

  • POST /api/db/statement/analyze returns the web editor's run decision (nothing, refuse, run or confirm) to clients outside the browser, without opening a database connection.
  • The object tree has a control to read the objects again.
  • TOTP enrolment shows a QR code for server-store accounts.

Fixes and hardening

  • Hardening of the standalone AI prompt routes and of inline and seed connection input.
  • The OIDC callback keeps the configured base path.
  • Redis sends READONLY so Cluster-mode replicas serve reads, and lists the session database when CONFIG GET is refused.
  • SQL Server bounds set-operation and CTE queries as one result; data profiling quotes every column, so a reserved-word name no longer fails.
  • Long text results no longer overflow the stack, and the editor's confirmation check reads its text in linear time.
  • Kafka bounds the whole connect by the query timeout; MQTT and RabbitMQ stream reads end on time; Druid, Trino and Db2 keep agent statements away from system data.

Helm chart: 0.1.120

The chart moves to appVersion 1.3.0. No chart values change.

Full changelog: 1.2.0...1.3.0