Files
VianoBugAnalysis/docs/project-configuration.md
T

7.7 KiB

Projekt und Recherchezugriffe konfigurieren

Die Projektkonfiguration wird über Dateien verwaltet, nicht über die Webseite. Sie legt fest, welche Werkzeuge ein Auftrag verwenden darf. Ein aufrufendes Programm kann weder Repository noch DB-Zugänge oder Budgets mit einem Auftrag überschreiben. Aktuell ist das Profil wow/vcore mit dem Importadapter vcore implementiert; andere Projekttypen erfordern entsprechende Adapter und Profile.

Zuordnung in api.toml

Ein Projektelement ordnet eine feste Projekt-ID einem Profil und dessen Konfigurationsdateien zu. Relative Pfade beziehen sich auf die API-Konfigurationsdatei. Der Erfassungsworker muss genau dieselbe Projekt-/Profilzuordnung senden und sein Integrationsschlüssel muss für das Projekt freigegeben sein.

[[projects]]
id = "viano-core"
type = "wow"
profile = "vcore"
adapter = "vcore"
planning_mode = "joint"
[projects.settings]
project_config = "project.toml"
llm_config = "llm.toml"
investigation_config = "investigation.bounded.toml"
budget_config = "budget.human-tests.toml"

Die Linux-Vorlagen stehen unter deploy/linux/; der Installer legt die Konfiguration unter /etc/viano-bug-analysis an. Er überschreibt bestehende Dateien nicht. Die ausführliche Vcore-Projektvorlage steht unter config/project.example.toml, die Relationsregeln unter config/project-relations.vcore.toml.

Source und Datenbank in project.toml

relations_file = "project-relations.vcore.toml"
[project]
type = "wow"
profile = "vcore"

[source]
path = "/srv/viano-bug-analysis/viano-core"
url = "https://gitea.viano-software.de/Nico/Viano-Core"
commit = "VOLLSTAENDIGEN_40_STELLIGEN_COMMIT_EINTRAGEN"

[database]
host = "127.0.0.1"
port = 3306
database = "cata_world"
user = "viano_reader"
password_env = "VIANO_DB_PASSWORD"
snapshot_id = "KENNUNG_DER_TATSAECHLICHEN_DATENGRUNDLAGE"
tables = ["creature_template", "creature"]

Das Beispiel zeigt nur den Aufbau und enthält absichtlich ungültige Platzhalter. Die beiden Tabellen sind keine vollständige Vcore-Freigabeliste. Für das echte Profil die vollständige Vorlage einschließlich Limits, Enrichment und Analysewerkzeugregeln verwenden und passend prüfen.

Der Source-Checkout muss lokal vorhanden sein und den konfigurierten Commit enthalten. Die URL allein klont oder aktualisiert kein Repository. Der Worker liest Git-Objekte dieses festen Stands und benötigt keine Schreibrechte auf den Checkout. Die Linux-Vorlage enthält eine gezielte Git-Vertrauenskonfiguration für den root-eigenen Checkout. Neue Source-Stände bewusst bereitstellen und deren vollständigen Commit konfigurieren.

Der DB-Administrator legt einen Benutzer mit ausschließlich passenden SELECT- Rechten an. Zusätzlich begrenzt tables die zugänglichen Tabellen. Diese Freigabeliste ersetzt keine serverseitigen Rechte. Account- oder Charakterdaten gehören nicht zur standardmäßigen World-Recherche. Für entfernte DBs einen geschützten Netzwerkweg nutzen; der aktuelle Provider konfiguriert selbst kein TLS.

Das Passwort steht entweder in der durch password_env benannten Umgebungsvariable oder einer separaten geschützten Datei über password_file. Nur eine dieser Varianten setzen. Unter Linux lädt der Worker beispielsweise VIANO_DB_PASSWORD aus seiner root-geschützten worker.env. Passwörter nicht in Fallakten, LLM-Prompts oder Versionsverwaltung ablegen. Die LLM bekommt Werkzeugergebnisse statt Zugangsdaten.

Mehrere Datenbanken pro Projekt

Eine Projektverbindung kann mehrere Datenbanken derselben MariaDB-Instanz ansprechen. Host, Port, DB-Benutzer und Passwortbezug werden gemeinsam verwendet. database benennt die Standarddatenbank; unqualifizierte Tabellennamen beziehen sich ausschließlich auf diese. Zusätzliche Datenbanken werden ausdrücklich freigegeben, etwa für Vcore:

# Im vorhandenen [database]-Abschnitt: database = "cata_world", user = "buganalysis"
[database.additional_databases]
cata_hotfixes = ["*"]
cata_locale = ["*"]

Den neuen Abschnitt beispielsweise am Ende der vorhandenen Datei ergänzen. [database] nicht ein zweites Mal anlegen und die übrigen Projektregeln behalten. Die vollständige alternative Vorlage steht unter config/project.vcore-multidb.example.toml.

["*"] gibt ausdrücklich alle metadaten-sichtbaren Tabellen der genannten DB frei. Alternativ eine nichtleere Liste konkreter Tabellen verwenden. Auch die Standarddatenbank unterstützt tables = ["*"]; die bisherige konkrete Liste bleibt genauso gültig. Ein leeres Array ist keine pauschale Freigabe. Die tatsächlich gewährten DB-Rechte bleiben zusätzlich maßgeblich. Nicht aufgeführte Datenbanken sind selbst bei weitergehenden DB-Grants gesperrt. In diesem Beispiel sind cata_auth, cata_characters und cata_locale_reference nicht für Recherche freigegeben.

Werkzeuge verwenden in zusätzlichen DBs qualifizierte Tabellennamen wie cata_locale.NAME_DER_TABELLE. database.tables entdeckt die zugänglichen Namen über alle freigegebenen DBs; Suchtext und Seitengrenzen gelten weiterhin. Gleichnamige Tabellen werden nicht verwechselt. Die Datenbank steht in der Belegherkunft und bei Mehrdatenbank-Ergebnissen auch in den Ergebniseinträgen. Die LLM erhält keine Serveradresse, Anmeldenamen oder Passwörter.

Namenskataloge, Enrichment-Regeln und Beziehungsprofile können ebenfalls qualifizierte Tabellen referenzieren. Die Beziehungsanalyse führt die konfigurierten Schritte innerhalb einer gemeinsamen lesenden Transaktion aus; sie prüft die Transaktionsfähigkeit der beteiligten Tabellen. Dieses Format konfiguriert keine unterschiedlichen DB-Server oder getrennten Zugangsdaten innerhalb derselben Projektverbindung.

Die Bereitschaftsprüfung prüft alle freigegebenen Tabellen einschließlich Wildcard-Inventaren. Eine nicht erreichbare oder nicht lesbare zusätzliche DB wird nicht stillschweigend ausgelassen. Bestehende Einzel-DB-Konfigurationen benötigen keine Änderung. Bei aktiven Fallakten trotzdem die bestehende Konfigurationsbindung beachten; ein Update setzt keine Budgets zurück.

Weitere Konfigurationen

Datei Zuständigkeit
api.toml HTTP-Bindung, Workspace, Projekte, Nutzerdatei und optionale env-basierte Maschinenclients
worker.toml Verweis auf api.toml, Polling, Wiederholungsabstände, Speicherreserve und Telemetrie
llm.toml Anbieter, Modell, Schlüssel-Environment, Timeouts, Ausgabe-/Denkeinstellungen und Cache
investigation.bounded.toml Untersuchungsmodus und begrenztes Kontextfenster
budget.human-tests.toml Fachliche Budgetregeln und menschliche Testanfragen
telemetry.toml Heartbeats und lokale Betriebsbeobachtung
project-relations.vcore.toml Projektspezifische Beziehungen für Recherchewerkzeuge

Die versionierte Modellvorlage config/llm.gemini-cache.example.toml verwendet GEMINI_API_KEY. Das ist unabhängig vom Integrationsschlüssel für externe Auftragsübergaben. Die API erhält api.env; der Analyseworker erhält worker.env mit Cloud- und DB-Zugangsdaten.

Prüfen und ändern

Der Befehl python -m viano_bug_analysis.deployment check prüft mit Rolle und Konfigurationspfad die Betriebsbereitschaft ohne Modellanfrage. Die Linux-Anleitung zeigt die vollständigen Befehle unter der tatsächlichen Dienstidentität. Die Prüfung umfasst Git-Objekte und freigegebene DB-Schemata; die Gültigkeit des Cloud-Schlüssels wird nicht durch einen bezahlten Modellaufruf getestet. --offline prüft keine Git-/DB-Verbindung.

Vor Code- oder Profiländerungen den Worker kontrolliert anhalten und die Auswirkungen auf laufende Akten prüfen. Der Worker bindet Fälle an ihren Konfigurationsstand. Eine Änderung ist kein Weg zum Zurücksetzen von Budgets; abweichende Bindungen können eine Betreiberprüfung erfordern. Bestehende Dateien und Zugangsdaten vor Änderungen sichern.