Zugriffsstufen
Welche Passdaten öffentlich sind, welche eingeschränkt, und wie BatteryPass eingeschränkte Daten aus öffentlichen Antworten heraushält.
Die Batterieverordnung teilt die Daten eines Passes nach Empfängern auf (Art. 77 Abs. 2, Anhang XIII). BatteryPass ordnet jedem Feld des Registers genau eine Zugriffsstufe zu und filtert serverseitig: Eine Antwort enthält nie Daten oberhalb der Stufe, für die sie bestimmt ist.
Die Stufen
Tier bezeichnet die Stufe eines Felds oder Dokuments, PassportTier die Stufe, auf die ein Passdokument
projiziert wird. Eine Projektion enthält ihre Stufe und die vorherigen: legitimate_interest schließt
public ein, authority beide.
| Stufe | Empfänger | Beispiele |
|---|---|---|
public | Alle, die den QR-Code scannen | Hersteller, Kategorie, Chemie, Kapazität, Spannungen, gefährliche Stoffe, Konformitätserklärung |
legitimate_interest | Personen mit berechtigtem Interesse sowie notifizierte Stellen, Marktüberwachungsbehörden und die Kommission | Detaillierte Zusammensetzung, Demontageinformationen, Batteriestatus, Zustandsdaten wie Kapazitätsverlust und Zyklenzahl |
authority | Notifizierte Stellen, Marktüberwachungsbehörden und die Kommission | Ergebnisse von Prüfberichten |
internal | Nur Ihre Organisation | Nie Teil einer Passprojektion |
Die Stufe jedes Felds legt das Register fest: getRegistrySchema
liefert tier für jedes Feld. Im aktuellen Register sind alle Felder der Zustandsdaten legitimate_interest.
Die öffentliche Projektion
Bei der Veröffentlichung projiziert BatteryPass den Snapshot der Version auf die Stufe public, speichert das
Ergebnis als öffentliches Dokument der Version und signiert es. Öffentliche
Operationen liefern dieses gespeicherte Dokument; sie projizieren alte Versionen nie neu mit neuerem Code oder
einem neueren Register. Eine spätere Registeränderung kann in einer bereits veröffentlichten Version also weder
Daten offenlegen noch verbergen.
Das öffentliche Dokument enthält nur Felder der Stufe public. Für Felder darüber, die einen Wert haben,
nennt es in restricted_fields_present die Schlüssel, nie die Werte. Dokumente einer eingeschränkten Stufe
fehlen ganz, nicht einmal ihr Titel erscheint.
curl -s "$BATTERYPASS_URL/api/v1/public/passports/$PASSPORT_UUID" \
| jq '{tier: .document.tier, restricted: .document.restricted_fields_present}'{
"tier": "public",
"restricted": ["identification.battery_status", "condition.capacity_fade"]
}Öffentliche Operationen liefern nur die öffentliche Stufe
Diese Operationen brauchen keinen Schlüssel und liefern ausschließlich Daten der Stufe public:
| Operation | Liefert |
|---|---|
getPublicPassport | Das öffentliche Dokument der aktuellen Version |
getPublicPassportByProductId | Dasselbe, gesucht über GTIN und Seriennummer |
getPublicPassportVersion | Das öffentliche Dokument, das zu einem Zeitpunkt galt |
downloadPublicPassportDocument | Ein Dokument der Stufe public, das ein öffentliches Feld nennt; alles andere ist 404 |
verifyPassport | Das Ergebnis der Signaturprüfung, ohne Daten |
Der Resolver hinter dem QR-Code verweist auf dieselbe öffentliche Seite und dasselbe JSON.
Was ein API-Schlüssel liest
Ein API-Schlüssel liest die Pässe Ihrer eigenen Organisation mit den Rechten eines Betrachters, und dazu gehören
die eingeschränkten Stufen Ihrer eigenen Daten: Der snapshot von
getPassportVersion,
exportPassportJson und
exportPassportPdf enthalten alle Stufen. Eine Ausnahme:
Dateien der Stufen authority und internal dürfen nur Bearbeiter und höhere Rollen herunterladen, deshalb
antwortet downloadEvidence einem Schlüssel bei ihnen mit
403 forbidden.
Was Ihre Integration mit einem Schlüssel liest, ist nicht automatisch öffentlich. Halten Sie eingeschränkte Werte aus allem heraus, was Endkunden sehen, und veröffentlichen Sie nur, was das öffentliche JSON enthält.
Eingeschränkte Stufen für Dritte
Dritte, etwa eine Werkstatt oder eine Behörde, lesen eingeschränkte Stufen nicht über die API. Dafür hat BatteryPass einen eigenen Zugang im Portal:
- Er ist ausgeschaltet, solange der Betreiber der Installation ihn nicht einschaltet (
TIER_PORTAL_ENABLED, standardmäßig aus). Solange er aus ist, enthält das öffentliche JSON keinlinks.restricted, und nichts verweist auf ihn. - Ist er an, gibt ein Inhaber oder Admin des Wirtschaftsakteurs der E-Mail-Adresse eines Lesers die Stufe
legitimate_interestoderauthorityfrei, mit einem Zweck und einer Laufzeit von höchstens einem Jahr, und kann die Freigabe jederzeit widerrufen. - Der Leser meldet sich mit dieser bestätigten Adresse im Portal an und sieht die aktuelle Version in der freigegebenen Stufe. Eingeschränkte Dokumente erscheinen nur mit ihrem Titel.
- Jeder eingeschränkte Lesezugriff wird im Audit-Log der Organisation des Passes festgehalten.
Dieser Zugang ist keine Funktion von API-Schlüsseln und nicht Teil des veröffentlichten Vertrags.
Der Durchführungsrechtsakt nach Art. 77 Abs. 9, der festlegt, wer ein berechtigtes Interesse hat und wie er es nachweist, steht noch aus. Bis dahin entscheidet der Wirtschaftsakteur, wem er Zugang gewährt; BatteryPass stellt diese Freigaben nicht als den Zugangsweg der Verordnung dar.
Pässe und Versionen
Der Pass einer Einheit, seine Status, seine signierten und unveränderlichen Versionen, die Unterschiede zwischen ihnen und die Exporte.
Herkunft und Freigabe
Jeder Wert behält Quelle, Urheber, Zeitpunkt und Nachweise und wird abgelöst statt überschrieben; deklarierte Daten werden geprüft, bevor sie in einen Pass gelangen, von einer zweiten Person, wenn die Organisation das Vier-Augen-Prinzip nutzt.