APIs

Das Kibitz Backend-System besteht aus mehreren Diensten, die jeweils eigenständige JSON-RPC APIs zur Verfügung stellen:

  • Eine Appointments-API, die verschlüsselte Kontaktdaten speichert, Hashes publiziert und Besuchsdaten entgegennimmt.
  • Eine Storage-API, die (optional) verschlüsselte Einstellungen von Nutzern und Anbietern speichert.

Die folgenden Abschnitte beschreiben die von den APIs angebotenen Methoden.

Appointments-API

Die Appointments-API liefert die wesentliche Funktionalität für die Terminvermittlung.

getStats()

Liefert verschiedene öffentliche Statistiken über das System.

Parameter

getStats

  • id
    enum < queues, tokens >

    ID der Statistik, die zurückgegeben werden soll.

  • type
    enum < minute, hour, day, quarterHour, week, month >

    Zeitfenstertyp der zurückzugebenden Statistik.

  • name
    optional regex (^[\w\d\-]{0,50}$)

    Optionaler Name der Statistik, die zurückgegeben werden soll.

  • metric
    optional regex (^[\w\d\-]{0,50}$)

    Optionale Submetrik, die zurückgegeben wird.

  • filter
    optional map<string>any

    Optionale zusätzliche Filterkriterien, die Sie anwenden können.

  • from
    optional time (rfc3339)

    Frühestes Datum, für das Statistiken zurückgegeben werden sollen. Nur anwendbar, wenn 'n' nicht gesetzt ist.

  • to
    optional time (rfc3339)

    Spätestes Datum, für das Statistiken zurückgegeben werden sollen. Nur anwendbar, wenn 'n' nicht gesetzt ist.

  • n
    optional integer (1 ⇹ 500)

    Maximale Anzahl von Statistikwerten, die zurückgegeben werden sollen.

Rückgabetyp

list map<string>any ᐉ statsValue

Zugehörige Formulare

statsValue

  • name
    string

    Name des Statistikwertes.

  • from
    time (rfc3339)

    Beginn des Zeitfensters für den Statistikwert.

  • to
    time (rfc3339)

    Ende des Zeitfensters für den Statistikwert.

  • data
    optional map<string>any

    Daten, die mit dem Statistikwert verknüpft sind.

  • value
    integer

    Der Statistikwert selbst.

getKeys()

Gibt verschiedene erforderliche öffentliche Schlüssel zurück. Bitte beachten Sie, dass Sie einen unabhängigen Verifizierungsmechanismus für diese Schlüssel haben sollten und nicht blind auf die von dieser API bereitgestellten Schlüssel vertrauen sollten.

Parameter

getKeys

Dieses Formular hat keine Felder.

Rückgabetyp

map<string>any ᐉ keys

Zugehörige Formulare

keys

  • providerData
    bytes (base64 • 64 ⇹ 128)

    Schlüssel für öffentliche Anbieterdaten.

  • rootKey
    bytes (base64 • 64 ⇹ 128)

    Öffentlicher Stammschlüssel.

  • tokenKey
    bytes (base64 • 64 ⇹ 128)

    Öffentlicher Token-Schlüssel.

getAppointmentsByZipCode()

Liefert verfügbare Termine für ein bestimmtes Postleitzahlengebiet.

Parameter

getAppointmentsByZipCode

  • radius
    optional (50) integer (5 ⇹ 80)

    Der Radius um die angegebene Postleitzahl, für den Termine angezeigt werden sollen.

  • zipCode
    string (5 ⇹ 5)

    Die Postleitzahl, die als Standort des Benutzers verwendet werden soll.

  • from
    time (rfc3339)

    Das früheste Datum, an dem Sie zurückkehren können.

  • to
    time (rfc3339)

    Das späteste Datum für die Rückkehr von Terminen.

  • aggregate
    optional bool

    Ob aggregierte Daten anstelle von tatsächlichen Terminen zurückgegeben werden sollen.

Rückgabetyp

list map<string>any ᐉ providerAppointments

Zugehörige Formulare

appointmentData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • duration
    integer (5 ⇹ 300)

    Dauer der Ernennung.

  • properties
    map<string>any ᐉ appointmentProperties

    Eigenschaften des Termins.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

  • id
    bytes (base64 • 32 ⇹ 32)

    Eine ID.

  • slotData
    list map<string>any ᐉ slot

    Zeitfenster für Termine.

appointmentProperties

  • vaccine
    enum < biontech, moderna, astrazeneca, johnson-johnson >

    Der verwendete Impfstofftyp.

booking

  • id
    bytes (base64 • 32 ⇹ 32)

    Eine ID.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

  • token
    bytes (base64 • 32 ⇹ 32)

    Das für diese Buchung verwendete Token.

  • encryptedData
    map<string>any ᐉ ecdhEncryptedData

    Verschlüsselte Daten für den Anbieter.

ecdhEncryptedData

  • iv
    bytes (base64 • 10 ⇹ 20)

    IV-Wert, der mit den verschlüsselten Daten verknüpft ist.

  • data
    bytes (base64 • 1 ⇹ 200000)

    Die verschlüsselten Daten.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

providerAppointments

providerData

  • name
    string

    Name des Anbieters.

  • street
    string

    Adresse des Anbieters.

  • city
    string

    Stadt des Anbieters.

  • zipCode
    string

    Postleitzahl des Anbieters.

signedAppointment

  • data
    string JSON map<string>any ᐉ appointmentData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

  • updatedAt
    optional time (rfc3339)

    Zeitpunkt der letzten Aktualisierung des Termins.

  • bookedSlots
    optional list map<string>any ᐉ slot

    Gebuchte Slots, die mit dem Termin verbunden sind (sichtbar für Benutzer).

  • bookings
    optional list map<string>any ᐉ booking

    Mit dem Termin verbundene Buchungen (nur für Anbieter sichtbar).

signedProviderData

  • data
    string JSON map<string>any ᐉ providerData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

  • id
    optional bytes (base64 • 32 ⇹ 32)

    Eine ID.

slot

  • id
    bytes (base64 • 32 ⇹ 32)

    Eine ID.

getAppointment()

Liefert Details zu einem bestimmten Termin.

Parameter

getAppointment

  • id
    bytes (base64 • 32 ⇹ 32)

    Eine ID.

  • providerID
    bytes (base64 • 32 ⇹ 32)

    Eine Anbieter-ID.

Rückgabetyp

map<string>any ᐉ signedAppointment

getToken()

Gibt ein signiertes Token zurück, mit dem Benutzer Termine buchen können.

Parameter

getToken

  • hash
    bytes (base64 • 32 ⇹ 32)

    Der vom Benutzer generierte Hash, der zusammen mit dem Token gespeichert werden soll.

  • code
    optional bytes (hex • 16 ⇹ 32)

    Der optionale Anmeldecode, den Sie verwenden können.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

map<string>any ᐉ signedTokenData

Zugehörige Formulare

priorityToken

  • n
    integer (0 ⇹ - )

    [no translation for language de and key api.appointments.forms.priorityToken.fields.n]

signedTokenData

  • data
    string JSON map<string>any ᐉ tokenData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

tokenData

  • hash
    bytes (base64 • 32 ⇹ 32)

    Der vom Benutzer generierte Hash, der zu dem Token gehört.

  • token
    bytes (base64 • 32 ⇹ 32)

    Das vom Server generierte Token.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

  • data
    optional string JSON map<string>any ᐉ priorityToken

    Optionale Daten, die mit dem Token verbunden sind.

addMediatorPublicKeys()

Fügt dem System die öffentlichen Schlüsseldaten und die zugehörigen Informationen eines Vermittlers hinzu.

Parameter

addMediatorPublicKeys

  • data
    string JSON map<string>any ᐉ addMediatorPublicKeysData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

enum < ok >

Zugehörige Formulare

addMediatorPublicKeysData

  • signedKeyData
    map<string>any ᐉ mediatorSignedKeyData

    Signierte Mediator-Schlüsseldaten.

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

mediatorKeyData

  • signing
    bytes (base64 • 64 ⇹ 128)

    Öffentlicher Signierschlüssel des Vermittlers.

  • encryption
    bytes (base64 • 64 ⇹ 128)

    Öffentlicher Chiffrierschlüssel des Vermittlers.

mediatorSignedKeyData

  • data
    string JSON map<string>any ᐉ mediatorKeyData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

addCodes()

Fügt dem System Anmeldungscodes hinzu.

Parameter

addCodes

  • data
    string JSON map<string>any ᐉ codesData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

enum < ok >

Zugehörige Formulare

codesData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • actor
    string enum < provider, user >

    Der Akteur, für den Anmeldungscodes gespeichert werden sollen.

  • codes
    list bytes (hex • 16 ⇹ 32)

    Die Anmeldungscodes zum Speichern.

uploadDistances()

Lädt Entfernungsinformationen in das System hoch.

Parameter

uploadDistances

  • data
    string JSON map<string>any ᐉ distancesData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

enum < ok >

Zugehörige Formulare

distance

  • from
    string

    Der Ursprung.

  • to
    string

    Das Ziel.

  • distance
    IsFloat

    Die Entfernung zwischen Start und Ziel.

distancesData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • type
    enum < zipCode, zipArea >

    Die Art der zu speichernden Entfernungsinformationen.

  • distances
    list map<string>any ᐉ distance

    Die zu speichernden Entfernungen.

resetDB()

Setzt die Datenbank zurück. Dieser Endpunkt ist nur für Testverteilungen aktiv.

Parameter

resetDB

  • data
    string JSON map<string>any ᐉ resetDBData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

enum < ok >

Zugehörige Formulare

resetDBData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

confirmProvider()

Bestätigt einen Anbieter, indem er dessen öffentliche Schlüsseldaten und zugehörige Informationen zum System hinzufügt.

Parameter

confirmProvider

  • data
    string JSON map<string>any ᐉ confirmProviderData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

enum < ok >

Zugehörige Formulare

confirmProviderData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • confirmedProviderData
    map<string>any ᐉ confirmedProviderData

    Bestätigte Anbieterdaten zur Überprüfung durch den Anbieter.

  • publicProviderData
    optional map<string>any ᐉ signedProviderData

    Öffentlich sichtbare Anbieterdaten.

  • signedKeyData
    map<string>any ᐉ providerSignedKeyData

    Öffentlich sichtbare signierte Schlüsseldaten.

confirmedProviderData

  • data
    string JSON map<string>any ᐉ ecdhEncryptedData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

providerKeyData

  • signing
    bytes (base64 • 64 ⇹ 128)

    Öffentlicher Signierschlüssel des Anbieters.

  • encryption
    bytes (base64 • 64 ⇹ 128)

    Öffentlicher Chiffrierschlüssel des Anbieters.

  • queueData
    map<string>any ᐉ providerQueueData

    Öffentliche Informationen des Anbieters.

providerQueueData

  • zipCode
    string (5 ⇹ 5)

    Postleitzahl des Anbieters.

  • accessible
    optional bool

    Ob der Standort des Anbieters erreichbar ist.

providerSignedKeyData

  • data
    string JSON map<string>any ᐉ providerKeyData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

getPendingProviderData()

Gibt eine Liste von Anbieterdaten zurück, die auf eine Bestätigung warten.

Parameter

getPendingProviderData

  • data
    string JSON map<string>any ᐉ getPendingProviderDataData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

list map<string>any ᐉ rawProviderData

Zugehörige Formulare

getPendingProviderDataData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • limit
    optional (1000) integer (1 ⇹ 10000)

    Anzahl der Einträge, die maximal zurückgegeben werden.

rawProviderData

  • encryptedData
    map<string>any ᐉ ecdhEncryptedData

    Verschlüsselte Daten, die vom Anbieter übermittelt werden.

getVerifiedProviderData()

Gibt eine Liste der bestätigten Anbieterdaten zurück.

Parameter

getVerifiedProviderData

  • data
    string JSON map<string>any ᐉ getVerifiedProviderDataData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

list map<string>any ᐉ rawProviderData

Zugehörige Formulare

getVerifiedProviderDataData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • limit
    optional (1000) integer (1 ⇹ 10000)

    Anzahl der Einträge, die maximal zurückgegeben werden.

getProviderAppointments()

Gibt eine Liste von Terminen für den angegebenen Anbieter zurück.

Parameter

getProviderAppointments

  • data
    string JSON map<string>any ᐉ getProviderAppointmentsData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

list map<string>any ᐉ signedAppointment

Zugehörige Formulare

getProviderAppointmentsData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • from
    time (rfc3339)

    Das früheste Datum, an dem Sie zurückkehren können.

  • to
    time (rfc3339)

    Das späteste Datum für die Rückkehr von Terminen.

  • updatedSince
    optional time (rfc3339)

    Der minimale 'updatedAt'-Wert von Terminen, der zurückgegeben werden soll.

publishAppointments()

Veröffentlichen Sie neue oder geänderte Termine im System.

Parameter

publishAppointments

  • data
    string JSON map<string>any ᐉ publishAppointmentsData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

enum < ok >

Zugehörige Formulare

publishAppointmentsData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • appointments
    list map<string>any ᐉ signedAppointment

    Die Termine zur Veröffentlichung.

storeProviderData()

Speichert Anbieterdaten zur Überprüfung.

Parameter

storeProviderData

  • data
    string JSON map<string>any ᐉ storeProviderDataData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

enum < ok >

Zugehörige Formulare

storeProviderDataData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • code
    optional bytes (hex • 16 ⇹ 32)

    Optionaler Anmeldecode.

  • encryptedData
    map<string>any ᐉ ecdhEncryptedData

    Verschlüsselte Daten zur Überprüfung durch die Vermittler.

checkProviderData()

Überprüft den Verifizierungsstatus von Anbieterdaten.

Parameter

checkProviderData

  • data
    string JSON map<string>any ᐉ checkProviderDataData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

map<string>any ᐉ confirmedProviderData

Zugehörige Formulare

checkProviderDataData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

bookAppointment()

Buchen Sie einen Termin.

Parameter

bookAppointment

  • data
    string JSON map<string>any ᐉ bookAppointmentData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

map<string>any ᐉ booking

Zugehörige Formulare

bookAppointmentData

  • providerID
    bytes (base64 • 32 ⇹ 32)

    Eine Anbieter-ID.

  • id
    bytes (base64 • 32 ⇹ 32)

    Eine ID.

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • signedTokenData
    map<string>any ᐉ signedTokenData

    Signierte Token-Daten des Benutzers.

  • encryptedData
    map<string>any ᐉ ecdhEncryptedData

    Verschlüsselte Daten für den Anbieter.

cancelAppointment()

Storniert eine Buchung.

Parameter

cancelAppointment

  • data
    string JSON map<string>any ᐉ cancelAppointmentData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

enum < ok >

Zugehörige Formulare

cancelAppointmentData

  • id
    bytes (base64 • 32 ⇹ 32)

    Eine ID.

  • providerID
    bytes (base64 • 32 ⇹ 32)

    Eine Anbieter-ID.

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.

  • signedTokenData
    map<string>any ᐉ signedTokenData

    Signierte Token-Daten des Benutzers.

Storage-API

Die Storage-API speichert verschlüsselte Einstellungen für Nutzer und Anbieter von Impfterminen. Sie ist aus organisatorischen Gründen von der Appointments-API getrennt, so dass sie unabhängig betrieben werden kann (wobei es auch möglich ist, beide APIs zusammen zu betreiben).

storeSettings()

Speichert verschlüsselte Einstellungen.

Parameter

storeSettings

  • id
    bytes (base64 • 32 ⇹ 32)

    ID, unter der die Einstellungen gespeichert werden sollen.

  • data
    IsAnything

    Einstellungen, die unter der angegebenen ID gespeichert werden sollen.

Rückgabetyp

enum < ok >

getSettings()

Ruft verschlüsselte Einstellungen ab.

Parameter

getSettings

  • id
    bytes (base64 • 32 ⇹ 32)

    ID, für die Einstellungen abgerufen werden sollen.

Rückgabetyp

deleteSettings()

Löscht die verschlüsselten Einstellungen.

Parameter

deleteSettings

  • id
    bytes (base64 • 32 ⇹ 32)

    ID, für die die Einstellungen gelöscht werden sollen.

Rückgabetyp

enum < ok >

resetDB()

Setzt die Datenbank zurück. Nur für Testverteilungen aktiviert.

Parameter

resetDB

  • data
    string JSON map<string>any ᐉ resetDBData

    Ein JSON-Datenfeld.

  • signature
    bytes (base64 • 64 ⇹ 128)

    Eine ECDSA-Signatur.

  • publicKey
    bytes (base64 • 64 ⇹ 128)

    Ein öffentlicher ECDSA- oder ECDH-Schlüssel.

Rückgabetyp

enum < ok >

Zugehörige Formulare

resetDBData

  • timestamp
    time (rfc3339)

    Ein Zeitstempel.