Automatischer Push: 14 Datei(en) geändert
- .vault-tools/trading-plattform-pruefung/LIESMICH.md - .vault-tools/trading-plattform-pruefung/bremse_echtlauf.py - .vault-tools/trading-plattform-pruefung/browser_w.py - .vault-tools/trading-plattform-pruefung/generalprobe_echtlauf.py - .vault-tools/trading-plattform-pruefung/ha_aktiv_setzen.py - .vault-tools/trading-plattform-pruefung/handelstag_auswertung.py - .vault-tools/trading-plattform-pruefung/hausmelder_echtlauf.py - .vault-tools/trading-plattform-pruefung/killswitch_simulation.py - .vault-tools/trading-plattform-pruefung/killswitch_simulation_mutanten.py - .vault-tools/trading-plattform-pruefung/latenz_auswertung.py - .vault-tools/trading-plattform-pruefung/s1_alpaca_lesen.py - .vault-tools/trading-plattform-pruefung/s5_echtlauf.py - … und 2 weitere Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
1 parent
246af19683
commit
593acdd122
14 files changed
+2090
-5
No files matched your search
@@ -0,0 +1,74 @@
|
||||
"""Probe-Backend fuer den Browserlauf zu Paket W: die echte App mit Broker-Attrappe, Wegwerf-Register und Wegwerf-Zugang.
|
||||
|
||||
Koordinator-Pruefcode, nicht fuers Repo. Wie .vault-tools/trading-plattform-pruefung/start_probe_zugang.py,
|
||||
dazu die Konfiguration fuer Sicherheitsschluessel: RP-ID localhost, Origin http://localhost:<port>.
|
||||
Gestartet wird aus einer KOPIE des Baums (dort gibt es keine Geheimnisdatei) -- kein Broker-Aufruf, kein
|
||||
Ereignis im echten Register, keine echte Zugangsdatei, kein Melder.
|
||||
|
||||
Aufruf (WSL, aus der Kopie): python start_probe_w.py <port> <ausgabeordner>
|
||||
"""
|
||||
|
||||
import dataclasses
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path.cwd()))
|
||||
|
||||
import uvicorn # noqa: E402
|
||||
|
||||
from trading.broker.attrappe import BrokerAttrappe # noqa: E402
|
||||
from trading.dashboard.app import erzeuge_app # noqa: E402
|
||||
from trading.dashboard.config import lade_dashboard_config # noqa: E402
|
||||
from trading.dashboard.zugang import Benutzer # noqa: E402
|
||||
from trading.dashboard.zugang import schreibe_benutzer # noqa: E402
|
||||
from trading.dashboard.zugang import setze_passwort # noqa: E402
|
||||
from trading.killswitch.killswitch import lade_killswitch_config # noqa: E402
|
||||
from trading.registry.registry import Registry # noqa: E402
|
||||
|
||||
BENUTZER = "probe"
|
||||
PASSWORT = "nur-fuer-die-probe-2026"
|
||||
GEHEIMNIS = "JBSWY3DPEHPK3PXP"
|
||||
|
||||
port = int(sys.argv[1])
|
||||
ordner = Path(sys.argv[2])
|
||||
# Optional: ein Marktkatalog, der nur gelesen wird (fuer die Lastmessung der Kerzenabrufe).
|
||||
katalog = sys.argv[3] if len(sys.argv) > 3 else None
|
||||
ordner.mkdir(parents=True, exist_ok=True)
|
||||
assert not Path("config/secrets.toml").exists(), "Die Probe startet nur aus einem Baum ohne Geheimnisdatei"
|
||||
|
||||
zugang_datei = ordner / "zugang.toml"
|
||||
schreibe_benutzer(
|
||||
zugang_datei,
|
||||
{BENUTZER: Benutzer(name=BENUTZER, passwort=setze_passwort(PASSWORT), totp_geheimnis=GEHEIMNIS)},
|
||||
)
|
||||
(ordner / "zugang.json").write_text(
|
||||
json.dumps({"benutzer": BENUTZER, "passwort": PASSWORT, "geheimnis": GEHEIMNIS}), encoding="utf-8"
|
||||
)
|
||||
(ordner / "paper").mkdir(exist_ok=True)
|
||||
|
||||
config = dataclasses.replace(
|
||||
lade_dashboard_config("config/dashboard.toml"),
|
||||
port=port,
|
||||
broker_wahl="attrappe",
|
||||
sendeintervall_s=2.0,
|
||||
erlaubte_hosts=(f"127.0.0.1:{port}", f"localhost:{port}"),
|
||||
anmeldung_pflicht=True,
|
||||
mfa_pflicht=True,
|
||||
zugang_datei=str(zugang_datei),
|
||||
zugang_protokoll=str(ordner / "anmeldungen.jsonl"),
|
||||
paper_status_datei=str(ordner / "status.json"),
|
||||
paper_protokoll_ordner=str(ordner / "paper"),
|
||||
schluessel_rp_id="localhost",
|
||||
**({} if katalog is None else {"markt_katalog": katalog}),
|
||||
schluessel_origins=(f"http://localhost:{port}",),
|
||||
)
|
||||
app = erzeuge_app(
|
||||
broker=BrokerAttrappe(),
|
||||
registry=Registry(db_pfad=ordner / "registry.db", artefakt_wurzel=ordner / "artifacts"),
|
||||
config=config,
|
||||
killswitch_config=lade_killswitch_config("config/killswitch.toml"),
|
||||
dist=Path("dashboard/dist"),
|
||||
)
|
||||
print(f"Probe-Backend W auf 127.0.0.1:{port}, Ablage {ordner}", flush=True)
|
||||
uvicorn.run(app, host="127.0.0.1", port=port, log_level="warning", server_header=False, proxy_headers=False)
|
||||
Reference in new issue
Block a user