Redeemer-ReadOnly-Api für Map-Projekte


#1

Die aktuell vorhandenen Funkfeuer-Maps (siehe http://map.funkfeuer.at/ ) nutzen alle die gleiche Datenquelle: data.php - dieses liefert für map-aktivierte Knoten:

Aus der Redeemer-DB

  • NODES: nodeid, name, lat|lon, tech-c (name, mail)
  • MEMBERS: realname, email, address
  • DEVICES+IPs: name, ip, lastseen

Vom Lokalen OLSR-daemon

  • Devices.note=MID,HNA,online
  • Links: device-2-device, ncq

Durch LOGIK und MapSpecialConfig ermittelt

  • Nodes.type=active,inactive,setup,potential
  • Nodes.nodetype=5ghz,normal,tunnel
  • Links mit Spezial-Typ/Farbe

Soviel mal zum Ist-Zustand.
Die Ideen für weitere Map-Projekte umfassen:

Fehlende/Wünschenswerte Ergänzungen

  • Basic data for non-map-nodes: name, owner/member/tech-c
  • Basic data for devices of non-map-nodes: name, ip, lastseen, mid/hna
  • Node: lastseen – new field in table nodes
  • Link: lastseen - new table?
  • ipv6-addresses for a device: single field for a device OR new db-table?

API für die Redeemer-DB

  • Auth klären: POST? Pw hashed? (un)salted? basicauth? ssl?
  • Auth aufgrund von Funkfeuer-IP? IPv6?
  • Daten auch ohne Auth und anonymisiert? Was tun mit Geo-Koordinaten?
  • Datenstruktur: 1 "all-in-one" Array ähnlich data.php? Einzelne Tabellen/Views auch?
  • get referrer ip’s node id (EdgeRouter-Wizard may want to get its own NodeId), see http://ff.cybercomm.at/mynodeid.php

#2

Erstmal Danke das ihr das Thema so offen aufgegriffen habt.
Meine Wunschliste dazu:

  • JSON output (vielleicht mit switch ?format=json)
  • HTTPS only
  • Basicauth
  • Vielleicht ein API key system? Um nicht seine Benutzerdaten in einem Script hinterlegen zu müssen das auf irgend einem Fremdsystem/im Web läuft

Bin gerne bereit mein Fachwissen beizusteuern und mich an der Entwicklung dieses Projektes zu beteiligen.


#3

Ich identifiziere hier 3 mögliche Ziele:

Ziel 1: Redeemer-Read-API

  • Abfrage-Möglichkeit von Redeemer-Daten
  • Authentifizierung mittels API-Key oder Login oder IP (oder eine Mischung davon). Verwaltung der API-Keys/Settings?
  • Anonymisierung des Outputs abhängig der Authentifizierung
  • Filtermöglichkeiten (z.B. nur ein Node, ein Device, eine IP, ein User, ein Tech-C…)
  • Formatmöglichkeiten (z.b. json, xml, plaintext,…?)

Ziel 2: Rewrite data.php

  • Export der olsrd(v1)-Topologie, verschnitten mit Daten aus dem Redeemer
  • Anreichern der Daten mit "MapSpecialConfig" oder sonstigen nötigen Ergänzungen
  • Erkennung von VPN-Tunnel-Links
  • Caching für bessere Performance?
  • Anzeige kürzlich verlorengegangener Links?

Ziel 3: Ergänzung fehlender Elemente

  • Basis für IPv6-Namensauflösung
  • Lastseen Zeitstempel von Nodes oder Links

Ich persönlich interessiere mich für Ziele 1 und 3.
Ziel 2 stufe ich als "Teil einer Mapanwendung" ein, da der benötige Aufbau der Exportdaten auf die jeweilige Map und deren Verwendungszweck ausgerichtet/optimiert sein sollte.


#4

Kleine Ergänzung zu Wünschenswertes.
Ist schon mal irgendwo gefallen und man war eher abgeneigt davon im Redeemer was dazu zu geben.
Ich würde ein Beschreibungs Feld interessant finden.
Sodass man zu einem Node ein paar Worte oder Links hinterlassen kann, wo man beispielsweise die Config des Standortes sehen kann.

Ich würde dazu eine Doku meines Standortes verfassen und in der Map hat man den Link zur Doku direkt beim Node vermerkt.

Zusatz:
“Authentifizierung mittels API-Key oder Login oder IP (oder eine Mischung davon). Verwaltung der API-Keys/Settings?” --> Auth via IP wie in Matrix geschrieben halte ich ebenfalls für nicht gut. API und/oder simpler Login würde ich meinen sollte ausreichend sein


#5

Hallo Manuel - gute Idee, einen Node beschreibend zu kommentieren. Die Redeemer-DB halte ich dafür aber wesentlich weniger gut geeignet, als das wiki.funkfeuer.at. Leider haben es bislang hier keine Nodebeschreibungen hineingeschafft, selbst auf oldwiki.funkfeuer.at gibt es da fast nichts.
Eventuell kännte ein Node-Beschreibungs-Template da aber die Hürde entfernen, dass so etwas entsteht…?
Für Fotos und Abbildungen gibt es dann ja auch noch gallery.funkfeuer.at - doch leider lässt sich hierfür kein neuer User mehr registrieren oder der Password-Recovery-Prozess einleiten…


#6

Kann mir irgendjemand Zugang zum Code von map.funkfeuer.at/wien geben? Mein GitHub user: whlk


#7

Bin nicht sicher, ob der Code auf github liegt.
Source siehe PM.