Connector konfigurieren#

Die Konfiguration besteht aus dem Manifest config.toml und zwei privaten Dateien im VFS-Ordner. Nach Änderungen an JSON oder Secret lt-db-reload ausführen. Änderungen am Manifest brauchen restart lt_database.

Welche Einstellung gehört wohin?#

Einstellung Datei beziehungsweise Dienst
Erlaubte Netzwerkziele config.toml, Abschnitt Networking.allowed
API-Adresse, Key-ID und Namespaces vfs/database.json
Signier-Secret vfs/database.secret
Datenbankpasswort Nur in der API-Konfiguration
API-Rechte, Ratenlimits, Schreibpufferung lt-database-api

Manifest#

[General]
description = "lt_database connector"
author = "LandminenTester"
version = "0.2.1"

[Scripting]
server_blob = "sv.wasm"
enable_vfs = true

[Networking]
allowed = ["https://db.example.com"]

[Meta]
config_version = "alpha_playtest"

enable_vfs = true ist erforderlich, damit das Bundle seine privaten Dateien lesen kann. server_blob muss auf die tatsächlich installierte WASM-Datei zeigen. Den Beispielhost ersetzen; Hostfreigaben werden exakt und ohne Wildcards geprüft, auch nach Weiterleitungen.

database.json#

{
  "url": "https://db.example.com",
  "keyId": "gameserver",
  "secretFile": "database.secret",
  "allowedNamespaces": ["documentation_demo"],
  "timeoutMs": 15000,
  "maxConcurrent": 8,
  "allowInsecureHttp": false
}
Feld Standard Bedeutung
url erforderlich Basisadresse ohne API-Pfad. HTTPS, außer für Loopback-Tests.
keyId erforderlich API-Key-ID, höchstens 64 Zeichen; muss zur API passen.
secretFile database.secret Datei innerhalb des VFS; absolute Pfade und .. sind verboten.
allowedNamespaces erforderlich Mindestens ein Namespace; "*" erlaubt lokal alle. Die API-Rechte gelten zusätzlich.
timeoutMs 15000 Zeitlimit pro Anfrage in Millisekunden; 1000 bis 120000.
maxConcurrent 8 Gleichzeitige Anfragen; 1 bis 64. Weitere warten im Connector.
allowInsecureHttp false Erlaubt HTTP zu entfernten Hosts; nur für vollständig vertrauenswürdige Testnetze.

Eine fehlende oder ungültige Datei lässt das Bundle geladen, aber Aufrufe scheitern mit not_configured. lt-db-status nennt den Grund.

Namespaces und Namen#

Ein Namespace gruppiert Tabellen einer Funktion oder eines Bundles. Namespaces, Tabellen, Spalten und Indizes folgen ^[a-z][a-z0-9]*(_[a-z0-9]+)*$. Maximale Längen: Namespace 24, Tabelle 36, Spalte 48 Zeichen. player_prefs ist gültig; Player, a__b, 1st und a-b sind ungültig.

Sowohl die Connector-Liste allowedNamespaces als auch AllowedNamespaces des API-Keys müssen den Namen erlauben. Nur die API entscheidet verbindlich über die Berechtigungen.

Secret und Umgebungen#

database.secret enthält eine Zeile mit mindestens 32 zufälligen Zeichen, beispielsweise erzeugt mit openssl rand -base64 48. Leerraum am Rand wird entfernt. Es muss exakt zum API-Secret passen.

Für Test und Produktion getrennte URLs, Keys und Secrets verwenden. Die Bereitstellung kopiert jeweils die passenden privaten Dateien. Beim Wechsel der API mit lt-db-reload müssen Consumer ihre Schemas an der neuen API erneut deklarieren, etwa durch einen Consumer-Neustart. Vor einem Wechsel ausstehende Schreibvorgänge berücksichtigen.

Suchbegriff eingeben, um die Dokumentation zu durchsuchen.