sh_fvs_bridge
Banking-Bridge zwischen ED-BANKING und der FVS-System-API. Synchronisiert Konten & Transaktionen und verarbeitet Überweisungs-Jobs — ohne direkte Datenbank-Verbindung vom Game-Server aus.
Überblick
Die Bridge spricht seit V7 nicht mehr direkt mit der FVS-Banking-DB,
sondern ausschließlich über die FVS-System-API (Endpoints /bridge/v1/*).
Die API hat ihrerseits Zugriff auf die FVS-Banking-DB.
- Keine DB-Credentials mehr auf dem Game-Server.
- DB-Port muss nicht mehr zum Game-Server geöffnet sein (sicherer).
- Konten-Sync: ED-BANKING →
bank_accounts. - Transaktions-Sync: ED-BANKING →
bank_transactions. - Überweisungs-Jobs über die Queue
fvs_transfers.
sh_fvs_bridge, der Ressourcen-Name
in der fxmanifest.lua ist jedoch fvs_ob_bridge. In der
server.cfg wird der Ordnername ge-ensure-t.
Voraussetzungen
BRIDGE_API_KEY.users-Tabelle.1 · SQL (FVS-Banking-DB)
fvs_bank_accounts etc.) sind obsolet.
In der Regel ist nichts manuell zu tun: Das Script legt fehlende Tabellen
und Spalten beim Start automatisch an (Auto-Migration in server/bridge.lua).
Für eine manuelle Installation dient sql/sql.sql als Referenz:
mysql -u FVS_USER -p FVS_BANKING_DB < sh_fvs_bridge/sql/sql.sql
Betroffene Tabellen: bank_accounts (bestehend, wird um Bridge-Spalten erweitert),
bank_transactions (neu) und fvs_transfers (Job-Queue, neu).
2 · server.cfg
ensure ED-BANKING ensure sh_fvs_bridge
ED-BANKING muss vor der Bridge laufen (harte Dependency).
Die Bridge braucht keinen DB-Treiber – sie kommuniziert per HTTP mit der API.
3 · API & Token konfigurieren
Kernstück in config.lua ist der API-Block:
Config.Api = {
-- Basis-URL der FVS-System-API OHNE abschliessenden Slash
BaseUrl = 'https://tablet-api.devhive.app',
-- MUSS mit BRIDGE_API_KEY in der API-.env uebereinstimmen.
-- Erzeugen z.B.: openssl rand -hex 32
Token = '<DEIN_BRIDGE_API_KEY>',
ConnectTimeoutMs = 10000,
QueryTimeoutMs = 15000
}
Token ist ein Geheimnis – niemals öffentlich teilen
oder in ein öffentliches Repo committen. Er muss exakt dem BRIDGE_API_KEY in der
.env der API entsprechen, sonst sind die Banking-Endpoints gesperrt.
Konten-Existenz-Prüfung
| Key | Standard | Bedeutung |
|---|---|---|
AccountCheck.Transfers | true | Vor Überweisung prüfen, ob beide Konten existieren |
AccountCheck.AccountCreation | true | Doppel-Erstellung von Konten verhindern |
PollIntervalMs | 5000 | Abfrage-Intervall der Job-Queue |
BatchSize | 50 | Jobs pro Durchlauf |
4 · Sync & Discord-Logging
Konten- & Transaktions-Sync
| Key | Standard | Bedeutung |
|---|---|---|
AccountSync.Enabled | true | Konten-Sync aktiv |
AccountSync.IntervalMs | 60000 | Sync alle 60 s (nur Änderungen) |
AccountSync.Validation.MinLength | 10 | Konto-Nummern-Format prüfen (Phantom-Schutz) |
TxSync.Enabled | true | Transaktions-Sync aktiv |
TxSync.IntervalMs | 30000 | Sync alle 30 s |
NameSource.Enabled | true | Char-Namen aus Game-DB users laden |
Validation-Grenzen an euer echtes Kontonummern-Format
anpassen! Default ist 10-stellig (numerisch). Habt ihr Konten anderer Länge, Grenzen anpassen oder
Validation.Enabled = false setzen.
Discord-Logging
Webhooks in Config.Discord eintragen (eigene URLs verwenden):
Config.Discord = {
Enabled = true,
Webhook = '<DISCORD_WEBHOOK_URL>',
TransferWebhook = '<DISCORD_TRANSFER_WEBHOOK_URL>',
Username = 'FVS-BRIDGE',
Prefix = '[sh_fvs_bridge]',
SendDebugToo = false, -- false = kein Debug-Spam (Performance)
RateLimitMs = 1100,
}
5 · Prüfen
- Start-Log kontrollieren: die Bridge meldet den initialen Konten-Sync (
SyncOnStart). - Für detaillierte Ausgaben
Config.Debug = truesetzen (nur temporär – erzeugt viele Logs). - Eine Test-Überweisung in ED-BANKING auslösen und prüfen, ob sie in
bank_transactionserscheint. - Discord-Channel auf eingehende Log-Nachrichten prüfen.
last_error der Job-Zeile (z. B. from_account_not_found) statt
sie blind an ED-BANKING weiterzureichen.