Remove sponsor token gating
Some checks failed
CodeQL / Analyze (go) (push) Failing after 1m16s
CodeQL / Analyze (actions) (push) Failing after 4s
CodeQL / Analyze (javascript-typescript) (push) Failing after 7s
Default / Clean (push) Has been cancelled
Default / Build (push) Has been cancelled
Default / Test (push) Has been cancelled
Default / Lint (push) Has been cancelled
Default / UI (push) Has been cancelled
Default / Integration (push) Has been cancelled
Default / Warm fork cache (Go) (push) Has been cancelled
Default / Warm fork cache (UI) (push) Has been cancelled
Some checks failed
CodeQL / Analyze (go) (push) Failing after 1m16s
CodeQL / Analyze (actions) (push) Failing after 4s
CodeQL / Analyze (javascript-typescript) (push) Failing after 7s
Default / Clean (push) Has been cancelled
Default / Build (push) Has been cancelled
Default / Test (push) Has been cancelled
Default / Lint (push) Has been cancelled
Default / UI (push) Has been cancelled
Default / Integration (push) Has been cancelled
Default / Warm fork cache (Go) (push) Has been cancelled
Default / Warm fork cache (UI) (push) Has been cancelled
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.
This commit is contained in:
parent
d379b7802e
commit
13215c74c2
4 changed files with 86 additions and 31 deletions
54
FORK.md
Normal file
54
FORK.md
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# Fork-Hinweise
|
||||
|
||||
Fork von [evcc-io/evcc](https://github.com/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:
|
||||
|
||||
- `Subject` ist per Default nicht leer (`"unlocked"`). Damit meldet
|
||||
`RedactedStatus()` einen aktiven Sponsor-Status, und das Frontend schaltet
|
||||
`isSponsor` (`assets/js/views/Config.vue`) frei — Geräte-Dialoge zeigen kein
|
||||
„Sponsor-Token erforderlich" mehr.
|
||||
- `IsAuthorized()` liefert immer `true`. Das öffnet alle Aufrufer, u. a. die
|
||||
Charger-/Vehicle-Konstruktoren, `server/modbus/proxy.go` und den
|
||||
Optimizer-Gate in `core/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.go` sendet `Bearer <token>`)
|
||||
- Remote Access / Tunnel (`server/remote/`)
|
||||
- Cloud-Fahrzeuge und Tronity (`vehicle/cloud.go`, `vehicle/tronity.go`)
|
||||
- Telemetrie (`util/telemetry/`, hängt an `IsAuthorizedForApi()`)
|
||||
|
||||
## 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue