Repository navigation
Releases: devops-infinity/ownpg-releases
Releases · devops-infinity/ownpg-releases
Release list
OwnPG 0.1.2
Added
- The README names the server's MCP Registry entry,
io.github.devops-infinity/ownpg, which the registry checks before it lists the crates.io package. - Install steps for the npm package,
npm install -g @devops-infinity/ownpg.
Fixed
- The description in
server.jsonfits the MCP Registry's 100-character limit.
OwnPG 0.1.1
Added
minisign.pubat the repository root, the public key that checks the minisign signature on each release'ssha256.sum.
Fixed
ownpg --versionon a crates.io install shows the build date, notbuilt unknown.- A build from a git worktree shows its commit and build date, not
unknown. - OwnPG builds for Windows. There, a Unix socket directory as
--hostand--ssh-transport systemeach report that they need macOS or Linux.
OwnPG 0.1.0
Added
- An MCP (Model Context Protocol) server that serves one PostgreSQL database and one schema, over stdio by default or over Streamable HTTP with
--http. - Three access modes,
read-only(the default),write-only, andread-write, set with--mode. - Statement checking with PostgreSQL's own parser: a statement the access mode does not allow, a statement that names an object outside the served schema, and a call carrying more than one statement are refused.
SELECT ... FOR UPDATEand transaction-scoped advisory locks count as writes, and write-only mode refuses aSELECTthat returns rows.- A confirmation gate for destructive statements, answered with
confirm: trueor an MCP elicitation prompt, and bound to the statement, the caller, and the host, port, database, and schema for 300 seconds. dry_runon the write tools, which shows the exact statement and every object aDROP ... CASCADEwould also drop.- A
DROP ... CASCADEthat would reach outside the served schema is refused. - The default read tools:
pg_list_objects,pg_describe,pg_run_query,pg_count,pg_explain,pg_health, andpg_doctor. - Write and transaction tools that load in
write-onlyandread-writemodes. - Five optional tool groups, loaded with
--tools:ddl,roles,maintenance,monitoring, andhost. - Paged reads: 100 rows by default, up to 1,000 with
row_cap, and a cursor for the next page. jsonandjsonbcells returned as JSON values, unless a number in them would lose precision or a key repeats.- Transaction handles through
pg_transaction. A handle rolls back after 60 seconds without a call (handle_expiry_seconds) or 300 seconds after it begins (transaction_timeout_seconds). - A
COMMITcut off by a dropped connection reports whether the transaction committed or rolled back.commit.outcome_unknowncomes back, with the transaction ID, only when the server gives no answer. - Host-program tools that run the PostgreSQL programs on the host and write into
--output-dir:pg_dump,pg_dumpall_globals,pg_restore,pg_basebackup, andpg_upgrade_check. pg_restoreruns as one transaction by default.pg_restoreadds--if-existswhencleanis set, unlessif_existsisfalse.pg_dumpall_globalsleaves role password hashes out unlessno_role_passwordsisfalse.pg_rolehashes a password with the server'spassword_encryptionmethod before sending it.pg_activity,pg_locks, andpg_top_queriesshow?for every literal in statement text and withhold a statement that mentions a password, secret, or credential.pg_list_objectslists publications and event triggers,pg_replicationreports what each publication covers, andpg_privilegeslists default privileges withlist_defaults.- Resource templates
postgres://{database}/{schema}andpostgres://{database}/{schema}/{table}, listed 1,000 per page with a cursor. - Three prompts:
diagnose_slow_query,review_indexes, andplan_column_change. - Three HTTP authentication modes:
none(loopback only), bearer token, and OAuth, set with--auth. - In OAuth mode, an outage of the key endpoint answers
503withRetry-After. - A per-caller HTTP rate limit of 300 requests a minute by default, set with
OWNPG_RATE_LIMIT_PER_MINUTE, where0turns it off. /healthz/liveand/healthz/ready, andownpg health, which asks a running HTTP server whether it is ready and exits 0 or 1.- A container image whose health check runs
ownpg health. docker-compose.yml, an example deployment with PostgreSQL on an internal network and Docker secrets.- OpenTelemetry metrics over OTLP/HTTP in HTTP mode when
OTEL_EXPORTER_OTLP_ENDPOINTis set:ownpg.calls,ownpg.refusals,ownpg.call.duration,ownpg.open_handles,ownpg.audit.dropped,ownpg.audit.degraded,ownpg.http.rejections,db.client.connection.count,db.client.connection.max, anddb.client.connection.pending_requests. result_text(fullby default, orsummary), which replaces the text copy of a long tool result with one line.- A strict-role check that refuses to start on a superuser, an
rds_superusermember, or a role withBYPASSRLS, on by default in HTTP mode and controlled with--strict-role. - Connections over TCP, a Unix socket, or an SSH bastion host, with the in-process SSH client or the system
sshcommand selected by--ssh-transport. - TLS with the libpq
sslmodevalues and--sslrootcert, which also takessystemfor the platform trust store. - An append-only, hash-chained audit log, on by default, checked with
ownpg audit verify, and controlled with--no-auditand--audit-path. audit_on_failure(refuse-writesby default, orrefuse-allorcontinue), which decides what runs while the audit log can't be written; a gap marker in the chain counts the lines that were lost.audit_keep_days(366 by default), which removes closed audit files of the same profile after that many days and records each removal in the chain.- An audit line for every transaction handle the server closes on its own: after its idle expiry, at
transaction_timeout_seconds, when its connection drops, and at shutdown. ownpg doctor, a connection and settings check with text or JSON output.ownpg config, connection-profile management with OS-keychain storage for passwords and SSH passphrases.keychain_scope:file(the default) binds a stored secret to the profile file and the server, andtargetbinds it to the server alone.ownpg man, a manual page for the whole tool or one subcommand.ownpg completions, shell completion scripts for bash, elvish, fish, powershell, and zsh.--log-file, which also writes logs to a file rotated daily with the newest eight kept, and--log-format text|json.
Install with cargo install ownpg --locked.