freifunk / api.freifunk.net

Freifunk Community API
http://freifunk.net/api-generator/
47 stars 24 forks source link

Migration von JSON Schema draft-3 zu draft-7 #151

Open christian-weiss opened 5 years ago

christian-weiss commented 5 years ago

Laut https://json-schema.org/specification.html sind

derzeit die aktuellen Spezifikationen. Ältere Spezifikationen werden hier gelistet: https://json-schema.org/specification-links.html und dort als "expired, but may be of historical interest" aufgeführt.

Freifunk setzt bisher draft-3 ein. Diese Spezifikation ist von 2010. Neuere Validatoren haben keinen Support mehr für diese alten Spezifikationen und ältere Validatoren werden oft nicht mehr gepflegt, womit Vulnerabilities / Security Issues wahrscheinlich sind / wahrscheinlicher werden.

Ich rate dazu zusätzliche zu den draft-3 Freifunk JSON Schema Dateien nun auch draft-7 Dateien bereitzustellen, um eine Soft Migration zu ermöglichen. Zudem würde ich an bekannte Script- / Client-Entwickler, sowie in forum.freifunk.net und an technische Ansprechpartner in den lokalen Gruppen (E-Mail) eine DEPRECATION NOTICE bzgl. draft-3 veröffentlichen, mit der Bitte um Migration auf draft-7 bis zum 31.12.2019.

Zu diesem Zeitpunkt würde ich gerne die draft-3 Dateien aus unserem Repo entfernen, nachdem wir natürlich "geprüft" haben wie gut draft-7 adaptiert wurde. Dieser Vorgang ist nicht disruptiv - eine Soft-Migration.

Mir fallen folgende Scripte / Clients ein:

Bitte helft mit alle bekannten Freifunk-Scripts / -Clients hier zu listen, damit wir bei der Migration keines vergessen.

Bevor sich jemand den Aufwand macht draft-7 Freifunk JSON Schema Dateien zu erstellen, wäre es schon, hierzu vorab Eure Meinung zu bekommen.

Wie denkt Ihr darüber?

christian-weiss commented 5 years ago

Ich konnte auf die schnelle nicht herausfinden, ob jsonform (für den API Generator) nun draft-7 unterstützt. Das Projekt scheint noch aktiv entwickelt zu werden, jedoch findes man keine Aussagen, zu welchen Spezifikation es kompatibel ist.

Aber auch die Alternativen, die auf https://json-schema.org/implementations.html gelistet sind, schweigen sich zur unterstützten Spezifikation aus: https://github.com/brutusin/json-forms https://jsonforms.io/

Könnte sich da mal ein JavaScript-Fan schlau machen?

andibraeu commented 4 years ago

jsonform unterstützt leider nur draft-3, weil der verwendete Validator nur draft-3 unterstützt

jsonforms.io nutzt AJV: https://github.com/epoberezkin/ajv und das unterstüzt draft-4 bis draft-7