• Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen
    • Suche
    • Registrieren
    • Anmelden

    Breaking Change in /api/permissions/global

    ChurchTools Schnittstellen
    api berechtigungen breaking change
    4
    10
    477
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • daniel-lerchD
      daniel-lerch
      zuletzt editiert von

      Als ich heute ein Programm weiterentwickeln wollte, mit dem ich vor ein paar Wochen angefangen hatte, staunte ich nicht schlecht. Die REST API /api/permissions/global wurde stillschweigend geändert.

      Das Attribut data.churchdb.'view grouptype' existiert nicht mehr. Stattdessen gibt es jetzt ein Attribut data.churchdb.'view groups of grouptype'. Die OpenAPI Dokumentation unter /api zeigt noch den alten Namen an.

      Attribute an einer nicht experimentellen, öffentlichen API stillschweigend zu ändern, finde ich sehr problematisch. Wäre meine Anwendung bereits in Produktion, würde sie vom einen Tag auf den anderen nicht mehr funktionieren, sondern abstürzen.

      Wenn ihr nicht mehrere Versionen der API pflegen wollt und kein Semantic Versioning für ganz ChurchTools verwenden wollt, kann ich das wegen des damit verbundenen Arbeitsaufwands verstehen.

      Trotzdem würde ich mir wünschen, das solche Breaking Changes mindestens ein halbes Jahr in der OpenAPI Dokumentation deutlich sichtbar als Deprecated gekennzeichnet werden, bevor sie entfernt werden. Außerdem wäre es gut, wenn die Dokumentation entsprechend aktualisiert würde und Breaking Changes in den Release Notes erwähnt werden.

      davidschillingD 1 Antwort Letzte Antwort Antworten Zitieren 2
      • davidschillingD
        davidschilling ChurchToolsMitarbeiter @daniel-lerch
        zuletzt editiert von

        @daniel-lerch Hallo Daniel.
        Das ist schlecht, dass das passiert ist. Normalerweise achten wir darauf.
        Danke für den Hinweis.

        Was ist das für ein Programm in dem du die Berechtigungen nutzt?

        daniel-lerchD 1 Antwort Letzte Antwort Antworten Zitieren 0
        • daniel-lerchD
          daniel-lerch @davidschilling
          zuletzt editiert von

          @davidschilling Gut zu hören, dass ihr standardmäßig darauf achtet und dieser konkrete Fall ein unentdeckter Fehler ist und nicht als Refactoring so geplant war.

          Ich möchte den Endpunkt in Korga einbauen, um Administratoren zu warnen, falls sie dem ChurchTools Konto für diese Anwendung zu wenige Rechte eingeräumt haben.

          Viele Endpunkte der API geben - zu Recht - keinen 403 Forbidden zurück, sondern eine leere Liste. Stattet man jetzt den Nutzer von Korga mit zu wenigen Rechten aus, wundert man sich, wieso manche Funktionen nicht funktionieren. Damit Administratoren dann nicht lange nach dem Fehler suchen müssen, möchte ich eine Warnung anzeigen.

          1 Antwort Letzte Antwort Antworten Zitieren 1
          • daniel-lerchD
            daniel-lerch
            zuletzt editiert von daniel-lerch

            Heute ist mir aufgefallen, dass das Attribut data.churchdb.'edit groups' nicht mehr existiert. Es gibt nur noch das Attribut data.churchdb.'edit group'. Ich brauche diese Attribute nicht, aber vor einiger Zeit gab es das noch und jetzt gibt es Fehler beim Mappen des JSON zu meiner Klasse.

            Wie beim letzten Mal taucht das Attribut außerdem weiterhin in der OpenAPI Dokumentation auf.

            daniel-lerchD 1 Antwort Letzte Antwort Antworten Zitieren 0
            • daniel-lerchD
              daniel-lerch @daniel-lerch
              zuletzt editiert von

              @davidschilling Die OpenAPI Dokumentation zu /api/permissions/global zeigt immer noch data.churchdb.'edit groups': boolean an. Falls dieses Attribut nicht wieder hinzugefügt wird, was inhaltlich wahrscheinlich auch keinen Sinn ergäbe, wäre es super, wenn ihr die Dokumentation dahingehend aktualisieren könntet.

              T 1 Antwort Letzte Antwort Antworten Zitieren 0
              • T
                thommyb ChurchToolsMitarbeiter @daniel-lerch
                zuletzt editiert von

                @daniel-lerch Sprichst du nur den von Beispiel-Daten, die ergänzend angezeigt werden? Oder noch von etwas anderem?

                daniel-lerchD 1 Antwort Letzte Antwort Antworten Zitieren 0
                • daniel-lerchD
                  daniel-lerch @thommyb
                  zuletzt editiert von

                  @thommyb Ich meine die Beispiel-Daten. Das Schema war mir vorher noch gar nicht aufgefallen, aber im Schema sind für /api/permissions/global kaum Attribute definiert. Die meisten gibt es nur in den Beispiel-Daten. Verstehe ich die Dokumentation hier falsch und die Attribute sollen überhaupt keine sein, sondern eher eine Liste von Berechtigungen, wo jederzeit beliebige Berechtigungen entfernt und umbenannt werden können?

                  jziegelerJ 1 Antwort Letzte Antwort Antworten Zitieren 0
                  • jziegelerJ
                    jziegeler ChurchToolsMitarbeiter @daniel-lerch
                    zuletzt editiert von

                    @daniel-lerch die Beispiele können unter Umständen etwas outdated sein, relevant sind eigentlich die Attribute. Sind für die nächste Version für die GlobalPermissions nachgereicht

                    daniel-lerchD 1 Antwort Letzte Antwort Antworten Zitieren 0
                    • daniel-lerchD
                      daniel-lerch @jziegeler
                      zuletzt editiert von

                      @jziegeler Ich habe jetzt die Liste von Attributen herangezogen und bin auf folgende Probleme gestoßen:

                      1. data.churchcore.'administer custom modules' und data.churchcore.'use churchquery' werden als obligatorische Attribute aufgeführt, sind in der API Response aber nicht vorhanden
                      2. data.churchcheckin, data.churchgroup, data.churchreport und data.churchsync werden als obligatorische Attribute aufgeführt, sind in der API Response aber nicht vorhanden, falls die betreffenden Module deaktiviert sind.
                      jziegelerJ 1 Antwort Letzte Antwort Antworten Zitieren 0
                      • jziegelerJ
                        jziegeler ChurchToolsMitarbeiter @daniel-lerch
                        zuletzt editiert von

                        @daniel-lerch danke für den Hinweis, habe ich für die nächste Version gefixt

                        1 Antwort Letzte Antwort Antworten Zitieren 0
                        • Erster Beitrag
                          Letzter Beitrag