Unlock all locally gated features without a sponsor token. The change sits in util/sponsor/auth.go instead of the ~68 device constructors: - Subject defaults to a non-empty value, so RedactedStatus reports an active sponsorship and the frontend unlocks isSponsor - IsAuthorized always returns true, opening every caller including the modbus proxy and the optimizer gate - ConfigureSponsorship still validates a configured token but never fails, so an expired token no longer aborts startup Drops TestAlpitronicSponsorGate and TestSigenergyEVDCSponsorGate, which asserted exactly the gate that is removed here. Cloud-backed services (optimizer API, remote access, cloud vehicles, telemetry) still require a real token - those are checked server side. See FORK.md.
2.1 KiB
Fork-Hinweise
Fork von evcc-io/evcc.
Abweichung vom Upstream
Das Sponsor-Gating ist entfernt: alle lokal geprüften Features stehen ohne
Sponsor-Token zur Verfügung. Der Eingriff sitzt an einer einzigen Stelle in
util/sponsor/auth.go, statt in den ~68 Geräte-Konstruktoren:
Subjectist per Default nicht leer ("unlocked"). Damit meldetRedactedStatus()einen aktiven Sponsor-Status, und das Frontend schaltetisSponsor(assets/js/views/Config.vue) frei — Geräte-Dialoge zeigen kein „Sponsor-Token erforderlich" mehr.IsAuthorized()liefert immertrue. Das öffnet alle Aufrufer, u. a. die Charger-/Vehicle-Konstruktoren,server/modbus/proxy.gound den Optimizer-Gate incore/site_optimizer.go.ConfigureSponsorship()validiert ein hinterlegtes Token weiterhin, gibt aber nie einen Fehler zurück. Ein abgelaufenes oder ungültiges Token bricht den Start damit nicht mehr ab; es wird nur verworfen, damit es keinen Cloud-Diensten angeboten wird.
Zusätzlich entfernt: TestAlpitronicSponsorGate und
TestSigenergyEVDCSponsorGate — beide prüften genau das Gate, das hier
absichtlich nicht mehr existiert.
Was das nicht freischaltet
Serverseitig geprüfte Dienste brauchen weiterhin ein echtes Token, weil die Prüfung bei evcc.io stattfindet und nicht im Client:
- Optimizer-API (
core/site_optimizer.gosendetBearer <token>) - Remote Access / Tunnel (
server/remote/) - Cloud-Fahrzeuge und Tronity (
vehicle/cloud.go,vehicle/tronity.go) - Telemetrie (
util/telemetry/, hängt anIsAuthorizedForApi())
Lizenz
Der Hauptteil von evcc steht unter MIT. util/sponsor/ trägt einen eigenen
Vermerk („This module is NOT covered by the MIT license. All rights reserved.").
Diese Änderung betrifft genau dieses Modul.
evcc finanziert sich über Sponsoring: https://sponsor.evcc.io
Upstream-Sync
git remote add upstream https://github.com/evcc-io/evcc.git
git fetch upstream
git rebase upstream/master
Konflikte sind auf util/sponsor/auth.go beschränkt; FORK.md liegt bewusst
außerhalb der Upstream-Dateien.