database
GitHub提供数据库资产配置与 SQL 执行能力,支持 MySQL、PostgreSQL 等多种引擎。通过自动凭据解析和策略检查实现安全读写,涵盖连接配置及 SQLite 远程访问等场景。
Trigger Scenarios
Install
npx skills add opskat/opskat --skill database -g -y
SKILL.md
Frontmatter
{
"name": "database",
"description": "Run SQL against a database asset (MySQL, PostgreSQL, SQL Server, SQLite) via exec. Covers SQL syntax and the database scope parameter."
}
Database assets
Command syntax
Pass the SQL verbatim as command:
SELECT id, name FROM users LIMIT 10SHOW TABLESDESCRIBE ordersUPDATE users SET active = 0 WHERE id = 3
Scope
Use scope to override the default database for this call, e.g. scope: "analytics".
Notes
- Reads (
SELECT/SHOW/DESCRIBE/EXPLAIN) return rows as JSON; writes return an affected-row count. - Multi-statement input is split and each statement is policy-checked separately, so a read cannot smuggle a write past approval.
- Credentials are resolved automatically; never ask the user for a password.
Asset config (for put_asset)
| field | type | required | notes |
|---|---|---|---|
driver |
string | yes | "mysql", "postgresql", "mssql", or "sqlite" |
host |
string | non-SQLite | Hostname or IP |
port |
number | no | Defaults by driver: 3306 / 5432 / 1433 |
username |
string | non-SQLite | Database account name |
password |
string | no | Write-only. For non-SQLite, encrypted in the asset; does not create a credential |
credential_id |
number | no | Existing managed password credential ID; rejected for SQLite |
database |
string | no | Default database |
read_only |
boolean | no | Connection-level read-only mode |
query_timeout_seconds |
number | no | Per-query timeout override, seconds |
ssh_asset_id |
number | no | SSH asset for remote connections; required by remote SQLite VFS |
sqlite_source |
string | SQLite only | "local" (default) or "remote_ssh_vfs" |
path |
string | SQLite only | Absolute database-file path |
For non-SQLite drivers, password and credential_id are mutually exclusive. Plaintext is
write-only, encrypted in the asset, and never creates a managed credential. SQLite accepts
neither password source: local SQLite must not have an SSH
asset; remote_ssh_vfs requires one and uses a POSIX absolute remote path.
Examples:
put_asset(name="prod-db", type="database", config={"driver":"postgresql","host":"db.internal","username":"app","password":"..."})
put_asset(name="local-db", type="database", config={"driver":"sqlite","path":"/var/lib/app/data.db"})
put_asset(name="remote-db", type="database", config={"driver":"sqlite","sqlite_source":"remote_ssh_vfs","path":"/srv/data.db","ssh_asset_id":12})
Version History
-
b159e91
Current 2026-08-19 20:20
新增对 SQLite 的支持,完善资产配置字段(如 driver、ssh_asset_id),增强托管凭据自动化与安全脱敏机制。
-
d6c7a6e
2026-08-16 07:28
修正文档遗漏了database技能的query_timeout_seconds配置项说明。
- aeb4bc3 2026-07-24 16:28


