Zum Inhalt springen

Datenbankintegrationen

Guida kann direkt aus Skripten externe Datenbanken, Suchcluster und Objektspeicher ansprechen. Verbindungsdaten werden als verschlüsselte Zugangsdaten gespeichert. Sie übergeben nur den Namen der Verbindung als conn, und Guida löst die eigentlichen Daten zur Laufzeit auf.

Alle Datenbankintegrationen sind für Skripte mit MCP-Herkunft blockiert, nach demselben Modell wie g.secrets.getSecret().

Jede Datenbankmethode erhält einen conn-Parameter:

// Secret "my-pg" enthält: Host=localhost;Database=mydb;Username=user;Password=pass
const rows = await g.postgres.query("my-pg",
"SELECT * FROM products WHERE price < $1", [20.00]
);

Einrichtung:

  1. Secrets-Panel öffnen
  2. Den passenden Dialog verwenden: Add S3 Connection, Add MongoDB, Add PostgreSQL oder Add Elasticsearch
  3. Den vergebenen Namen im Skript verwenden

Add PostgreSQL Connection dialog in the Secrets pane, showing Name, Connection String with example placeholder, and Description fields

Verbindungsdialoge speichern Zugangsdaten verschlüsselt; Skripte referenzieren sie nur per Name.

g.s3.* verbindet sich mit S3-kompatiblen Diensten wie AWS S3, MinIO, DigitalOcean Spaces oder Backblaze B2.

endpoint=s3.amazonaws.com;accessKey=AKIA...;secretKey=...;region=us-east-1;secure=true
async function main() {
const data = { products: [{ name: "Widget", price: 9.99 }] };
await g.s3.putObjectText(
"my-s3", "scraping-results", "exports/products.json",
JSON.stringify(data, null, 2),
"application/json"
);
const url = await g.s3.getPresignedUrl("my-s3", "scraping-results", "exports/products.json", {
expiry: 86400
});
g.log("Download: " + url);
}

Typische Einsätze sind Datensicherungen, Screenshots, vollständige Seitenerfassungen, vorsignierte Download-Links und Dateiübergaben zwischen Pipeline-Schritten.

g.mongodb.* nutzt MongoDB für Dokumentenspeicher, Abfragen und Aggregationen.

mongodb://user:password@localhost:27017
const docs = await g.mongodb.find("my-mongo", "scraping", "products",
{ price: { $lt: 20 } },
{ sort: { price: 1 } }
);
g.log("Günstige Produkte: " + docs.length);

MongoDB eignet sich für flexible Scraping-Dokumente, Aggregationen, Bulk-Operationen und schnelle Suche über indizierte Felder.

g.postgres.* nutzt PostgreSQL für relationale Abfragen, Transaktionen und Bulk-Importe.

Host=localhost;Database=mydb;Username=user;Password=pass

Alle Abfragen verwenden Positionsparameter ($1, $2, …). Guida interpoliert keine Werte in SQL-Strings.

const rows = await g.postgres.query("my-pg",
"SELECT id, name, price FROM products WHERE category = $1 ORDER BY price",
["electronics"]
);
g.log("Zeilen: " + rows.length);

Elasticsearch-Zugangsdaten werden ebenfalls im Secrets-Panel gespeichert. Nutzen Sie diese Integration, wenn extrahierte Dokumente in einem externen Suchcluster landen oder dort abgefragt werden sollen. Für arbeitsbereichslokale Volltextsuche reicht meist g.search.*.

  • MCP-originierte Skripte dürfen g.s3.*, g.mongodb.*, g.postgres.* und g.elasticsearch.* nicht ausführen.
  • Worker übernehmen die Herkunft ihres Starters; von MCP gestartete Worker bleiben also blockiert.
  • Vom Benutzer gestartete Skripte, Ereignisauslöser und normale Queue-Worker können Datenbankmethoden verwenden.
  • Verbindungsdaten werden nicht über MCP-Werkzeuge offengelegt.