📦 deps(thirdparty): update snapshots
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# postgres
|
||||
|
||||
Read-only PostgreSQL query skill. Query multiple databases safely with write protection.
|
||||
|
||||
## Setup
|
||||
|
||||
1. Copy the example config:
|
||||
```bash
|
||||
cp connections.example.json connections.json
|
||||
```
|
||||
|
||||
2. Add your database credentials:
|
||||
```json
|
||||
{
|
||||
"databases": [
|
||||
{
|
||||
"name": "prod",
|
||||
"description": "Production - users, orders, transactions",
|
||||
"host": "db.example.com",
|
||||
"port": 5432,
|
||||
"database": "app_prod",
|
||||
"user": "readonly",
|
||||
"password": "secret",
|
||||
"sslmode": "require"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
3. Secure the config:
|
||||
```bash
|
||||
chmod 600 connections.json
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# List configured databases
|
||||
python3 scripts/query.py --list
|
||||
|
||||
# List tables
|
||||
python3 scripts/query.py --db prod --tables
|
||||
|
||||
# Show schema
|
||||
python3 scripts/query.py --db prod --schema
|
||||
|
||||
# Run query
|
||||
python3 scripts/query.py --db prod --query "SELECT * FROM users" --limit 100
|
||||
```
|
||||
|
||||
## Config Fields
|
||||
|
||||
| Field | Required | Default | Description |
|
||||
|-------|----------|---------|-------------|
|
||||
| name | Yes | - | Database identifier |
|
||||
| description | Yes | - | What data it contains (for auto-selection) |
|
||||
| host | Yes | - | Hostname |
|
||||
| port | No | 5432 | Port |
|
||||
| database | Yes | - | Database name |
|
||||
| user | Yes | - | Username |
|
||||
| password | Yes | - | Password |
|
||||
| sslmode | No | prefer | disable, allow, prefer, require, verify-ca, verify-full |
|
||||
|
||||
## Safety Features
|
||||
|
||||
- **Read-only sessions**: PostgreSQL `readonly=True` mode blocks writes at database level
|
||||
- **Query validation**: Only SELECT, SHOW, EXPLAIN, WITH allowed
|
||||
- **Single statement**: No multi-statement queries (prevents `SELECT 1; DROP TABLE`)
|
||||
- **Timeouts**: 30s query timeout, 10s connection timeout
|
||||
- **Memory cap**: Max 10,000 rows per query
|
||||
- **Credential protection**: Passwords sanitized from error messages
|
||||
|
||||
## Requirements
|
||||
|
||||
```bash
|
||||
pip install psycopg2-binary
|
||||
```
|
||||
Reference in New Issue
Block a user