Skip to content

MVP Java-SDK - Part 1 [L]

Warum?

Ziel des MVP ist es, mit minimalem Aufwand eine erste veröffentlichungsfähige Version des SDKs zu entwickeln.

Out-of-Scope:

  • Erstellung des Grundgerüst für Methodensignaturen -> #414 (closed)
  • Aufgaben zur Implementierung der API-Calls aus #427 (closed)

Relevante Links und Bemerkungen

  • SDK-Konzept im Wiki
  • inoffizielles Python-SDK
  • Die kommunale Dienstleister Komm.One in BaWü hätte Interesse am JAVA SDK und würde auch aktiv mit programmieren wollen. Kontakt kann über die FITKO hergestellt werden.
  • Gedanken zu Dependency-Verwaltung -> Maven
  • Wollen wir Requests via Proxy supporten? -> Für das MVP keine explizite Anforderung, kann aber ggf. sinnvoll sein oder später Anforderung werden. Via Docker simulierbar. neues AC
  • Codebeispiele: https://git.fitko.de/fit-connect/examples/

Akzeptanzkriterien

  1. Die folgenden auf Basis des SDK-Grundgerüst vorgegebenen Funktionalitäten (außer API-Calls!) sind vollständig implementiert.
    • Sender + Subscriber: Abruf von OAuth-Tokens
    • Sender: Verschlüsselung von Fachdaten (JSON, XML) mittels JWE
    • Sender: Verschlüsselung von Anhängen (Binärdaten) mittels JWE
    • Sender: Korrekte Erzeugung eines Metadatensatzes inkl. Hashwerte
    • Subscriber: Entschlüsselung von Fachdaten (JSON oder XML) mittels JWE
    • Subscriber: Entschlüsselung von Anhängen (Binärdaten) mittels JWE
    • Subscriber: Prüfung der Hashwerte aus dem Metadaensatz.
  2. Alle Vorgaben aus den Vorgaben für kryptographische Verfahren werden eingehalten.
  3. Für die implementierten Funktionalitäten des SDK liegen Unit Tests vor.
  4. Es gibt einen Integrationstest, der das SDK verwendet. -> https://git.fitko.de/fit-connect/zustelldienst-api-tests/
  5. Die Library ist thread-safe.
  6. Die Library kann auch hinter einem HTTP-Proxy genutzt werden.
  7. Es werden nach Möglichkeit keine neuen Libraries im Vergleich zu den Implementierungen im Zustelldienst eingebunden.
  8. Die Codebeispiele in der Dokumentation nutzen des SDK -> #557

Durchführungsplan (vom Entwickler bei Storyplanung auszufüllen)

  • Lesen der Wiki-Seite, Klärung von offenen Fragen
  • Im Wiki Zusammentragen, was es aktuell für diese Programmiersprache schon an Code gibt (Tests, Tools, Beispiele, Zustelldienst-Code, etc.)
  • ...
  • ...
  • Definition of Done wurde geprüft
Edited by Martin Vogel