Zum Inhalt springen
Konzepte

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.

StufeEmpfängerBeispiele
publicAlle, die den QR-Code scannenHersteller, Kategorie, Chemie, Kapazität, Spannungen, gefährliche Stoffe, Konformitätserklärung
legitimate_interestPersonen mit berechtigtem Interesse sowie notifizierte Stellen, Marktüberwachungsbehörden und die KommissionDetaillierte Zusammensetzung, Demontageinformationen, Batteriestatus, Zustandsdaten wie Kapazitätsverlust und Zyklenzahl
authorityNotifizierte Stellen, Marktüberwachungsbehörden und die KommissionErgebnisse von Prüfberichten
internalNur Ihre OrganisationNie 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
curl -s "$BATTERYPASS_URL/api/v1/public/passports/$PASSPORT_UUID" \
  | jq '{tier: .document.tier, restricted: .document.restricted_fields_present}'
Antwort
{
  "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:

OperationLiefert
getPublicPassportDas öffentliche Dokument der aktuellen Version
getPublicPassportByProductIdDasselbe, gesucht über GTIN und Seriennummer
getPublicPassportVersionDas öffentliche Dokument, das zu einem Zeitpunkt galt
downloadPublicPassportDocumentEin Dokument der Stufe public, das ein öffentliches Feld nennt; alles andere ist 404
verifyPassportDas 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 kein links.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_interest oder authority frei, 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.

Auf dieser Seite