Paket Entwickler Demo - 3rdParty App für Synology NAS (DSM 7)

Tommes

Well-known member

Paket Entwickler Demo - 3rdParty App für Synology NAS (DSM 7)​


Mit der „DSM 7 Paket Entwickler Demo“ möchte ich allen ambitionierten als auch zukünftigen 3rd-Party Entwicklern eine mögliche Plattform für die Paketentwicklung des DiskStation Manager 7 von Synology anbieten. Dieses Framework basiert dabei auf der jeweils aktuellen, im DSM implementierten BASH Version sowie der textbasierten Auszeichnungssprache HTML. Weitere Script- und/oder Programmiersprachen wie CSS, JavaScript, AJAX, jQuery, Python, Perl etc. sind möglich, kommen hier jedoch nicht zum Einsatz. Grundlegende Abfragen und Routinen, um einen sicheren und reibungslosen Betrieb innerhalb des DSM zu gewährleisten, sind bereits implementiert und in den Scripten entsprechend kommentiert. Dazu gehört u.a. ...
  • Systemberechtigungen (Privilegien)
    Mit Einführung von DSM 7 erhält eine Anwendung (im folgenden App genannt) nur noch dann root Berechtigungen, wenn Synology dies explizit genehmigt. In allen anderen Fällen ist eine App dazu gezwungen, ihre Privilegien so weit zu senken, das diese nur noch mit stark eingeschränkten Benutzer- und Gruppenrechten auskommen muss. Um diese restriktiven Privilegien ein wenig zu lockern, besteht die Möglichkeit, die App in weitere Gruppen, wie z.B. der Gruppe der Administratoren aufzunehmen. Eine entsprechende Funktion zum hinzufügen bzw. entfernen wurde in die App integriert und kann optional über ein kleines Script angepasst und ausgeführt werden.

  • Anwendungsberechtigungen (SynoToken)
    Ist in der DSM Systemsteuerung der „Schutz gegen Cross-Site Request Forgery Attacken verbessern“ aktiviert, müssen sich DSM Apps am System mit einen entsprechenden Token (Synology nennt ihn SynoToken) authentifizieren. Ist das der Fall, wird der SynoToken innerhalb der App ausgewertet und mit dem QUERY_STRING SynoToken=[token] an die URL angehangen.

  • Benutzerberechtigung (Authentifizierung)
    Des Weiteren wird geprüft, ob ein, am DSM angemeldeter Benutzer existiert, ob dieser der Gruppe der Administratoren angehört und privilegiert ist, die App zu nutzen.

  • GET-/POST-Request Engine
    Implementierung einer GET-/POST-Request Engine um anfallende Formulardaten, Parameterübergaben und Seitenaufrufe zu verarbeiten, wobei sämtliche Formulardaten über die POST-Methode, an Links angegangene Variablen über die GET-Methode übertragen werden. Aus Gründen der Sicherheit werden alle übertragenen Variablen intern durch ein assoziatives Array maskiert bevor diese weiterverarbeitet werden.

  • Spracheinstellungen
    Die GUI ist für Mehrsprachigkeit ausgelegt und wird der Systemsprache des DSM angepasst.

Weitere Informationen zur Systemvoraussetzung, Installation und Konfiguration findet ihr auf meinem GitHub Repository:
https://github.com/toafez/DSM7DemoSPK

Lizenz​


Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version.

Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der Datei GNU General Public License.
 
Ganz großen Respekt @Tommes
Ich werde zwar jetzt keine Pakete für die Synos entwickeln, aber auch -wie @blurrrr - denke ich, daß dies vielen Entwicklern sehr entgegenkommt.
 
Für alle, die es interessiert...

Ich habe ein paar Änderungen im Repository DSM7DemoSPK vorgenommen. Unter anderem hat man nun die Möglichkeit, den Paketordner, den Paketnamen, den Maintrainer sowie den Copyright Hinweis senen Wünschen nach anzupassen. In einem weiteren Schritt hat man außerdem die Wahl, ob man das SPK über ein von mir selbstgeschriebenes Script, oder man mittels dem toolkit/toolchain, so wie im Synology DSM 7.0 Developer Guide beschrieben, packen lassen möchte. Für letzteres wurden alle nötigen Dateien und Änderungen den Repo hinzugefügt.

Vielleicht mag das irgendwann ja mal jemand testen und ggf.Feedback geben, ob alles funktioniert.

Tommes
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Letzte Anleitungen

Statistik des Forums

Themen
5.799
Beiträge
56.644
Mitglieder
5.716
Neuestes Mitglied
blinker
Zurück
Oben