Initial extraction from fn_registry
sqlite_api: API REST HTTP read-only sobre registry.db y operations.db. Bind por defecto 127.0.0.1:8484. Go + net/http + SQLite FTS5. Extraido de fn_registry/projects/fn_monitoring/apps/sqlite_api/ como repo independiente. La metadata del registry queda en project.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
---
|
||||
name: sqlite_api
|
||||
lang: go
|
||||
domain: infra
|
||||
description: "API REST HTTP read-only sobre registry.db y operations.db de cada app. Permite consultas SQL (solo SELECT/PRAGMA), busqueda FTS5, exploracion de tablas y schema. Bind por defecto a localhost:8484."
|
||||
tags: [service, api, sqlite, http, registry, fts5]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
framework: "net/http"
|
||||
entry_point: "main.go"
|
||||
dir_path: "projects/fn_monitoring/apps/sqlite_api"
|
||||
---
|
||||
|
||||
## Uso
|
||||
|
||||
```bash
|
||||
# Arrancar (default: 127.0.0.1:8484)
|
||||
cd apps/sqlite_api && go run -tags fts5 .
|
||||
|
||||
# Bind personalizado
|
||||
go run -tags fts5 . --bind 0.0.0.0:8484
|
||||
```
|
||||
|
||||
## Endpoints
|
||||
|
||||
| Metodo | Path | Descripcion |
|
||||
|--------|------|-------------|
|
||||
| GET | `/health` | Health check |
|
||||
| GET | `/api/databases` | Lista DBs disponibles (registry + ops:*) |
|
||||
| GET | `/api/databases/:db/tables` | Tablas y vistas de una DB |
|
||||
| GET | `/api/databases/:db/schema` | Schema SQL completo |
|
||||
| POST | `/api/databases/:db/query` | Ejecuta query SQL read-only |
|
||||
| GET | `/api/databases/:db/fts?q=...&table=...` | Busqueda FTS5 directa |
|
||||
|
||||
## Seguridad
|
||||
|
||||
- Solo queries SELECT, PRAGMA, WITH y EXPLAIN
|
||||
- SQLite abierto con `?mode=ro` (read-only a nivel driver)
|
||||
- Timeout de 5 segundos por query
|
||||
- Bind a localhost por defecto
|
||||
- CORS habilitado para acceso desde frontends
|
||||
|
||||
## Bases de datos
|
||||
|
||||
- `registry` — registry.db de la raiz
|
||||
- `ops:{app}` — operations.db de apps/{app}/ y projects/*/apps/{app}/
|
||||
|
||||
Auto-descubre operations.db al arrancar escaneando apps/ y projects/*/apps/.
|
||||
|
||||
## Health check
|
||||
|
||||
```bash
|
||||
curl http://localhost:8484/health
|
||||
# {"status":"ok"}
|
||||
```
|
||||
|
||||
## Puerto
|
||||
|
||||
8484 (no colisiona con Metabase 3000, Jupyter 8888, deploy_server 9090).
|
||||
Reference in New Issue
Block a user