decidim-swiss / decidim.swiss

2 stars 0 forks source link

DialogLuzern Fehlermeldung auf deinKlima #7

Closed innosmith closed 1 year ago

innosmith commented 2 years ago

Solange noch keine Assemblies oder Processes vorhanden sind, führen die Links https://deinklima.ch/processes oder https://deinklima.ch/assemblies zur Fehlermeldung gemäss Attachment. Dasselbe gilt für die INT-Umgebung. Diese Fehlermeldung muss dynamisch zum passenden Tenant passen und sollte nicht zu einer Fehlermeldung bei info@dialogluzern.ch führen.

Screenshot 2022-07-27 at 11 12 11
carlobeltrame commented 2 years ago

Dass hier ein "Diese Seite konnte nicht gefunden werden" zurückkommt ist in beiden Fällen bei Decidim explizit so ausprogrammiert: https://github.com/decidim/decidim/blob/develop/decidim-assemblies/app/controllers/decidim/assemblies/assemblies_controller.rb#L20 und https://github.com/decidim/decidim/blob/develop/decidim-participatory_processes/app/controllers/decidim/participatory_processes/participatory_processes_controller.rb#L23 Decidim rendert ja die Links zu diesen Seiten normalerweise gar nicht, solange keine Assemblies oder Prozesse vorhanden sind, oder? Ich gehe davon aus dass mit diesem Mechanismus "schlimmere" Folgefehler verhindert werden sollen. Soll ich Zeit investieren um diese Safeguards zu entfernen und zu schauen was passiert? Grundsätzlich können dann aber bei jedem Decidim-Update wieder neue Probleme dazukommen die den Decidim-Entwicklern nicht auffallen bzw. nicht wichtig scheinen.

Oder möchtest du nur die Kontakt-Mailadresse pro Tenant angepasst haben? Wenn wir keine generische Meldung finden die für alle Tenants gleichermassen passt bedeutet das, dass man zukünftig bei neuen Tenants zusätzlich zum System Dashboard auch noch diese Meldungen im Code (im internen Configmanagement, nicht auf GitHub) anpassen muss.

innosmith commented 2 years ago

Bitte nur die Kontakt-Mailadresse pro Tenant anpassen. Wenn ich es richtig verstanden habe, können wir dies bald per TermCustomizer steuern, siehe https://github.com/puzzle/decidim-zuerich/issues/287. Idealerweise mit einem Key, welcher z.B. "decidim.swiss.XYZ" enthält, um Config-Parameter von decidim.swiss einfach zu erkennen.

Sobald Projekte oder Organisationen vorhanden sind, erscheint die Fehlermeldung nicht mehr. Das können wir gut handeln.

carlobeltrame commented 2 years ago

Ich glaube das hast du falsch verstanden, ausser Thomas hätte das behauptet. Diese Meldungen kommen nicht von Decidim, sondern von der WAF, und können daher auch nicht via Term Customizer angepasst werden. Was ich aber vorhabe wäre dass wir eine generische Nachricht mit einer Puzzle-Support-Mail einrichten, und dann für einzelne Tenants eine spezifischere Nachricht, z.B. für Dialog Luzern. Das Ganze dann für alle Arten von Nachrichten die von der WAF kommen. Aber da muss ich erst noch mit Thomas schauen ob das überhaupt möglich ist. So wie ich es vorhabe kann man das dann aber (wie bisher auch) nur mit einer Code-Änderung und Deployment anpassen, nicht irgendwo direkt im Decidim-Admin-Backend (eben weil diese Nachrichten nicht von Decidim selber kommen).

innosmith commented 2 years ago

Alles klar, danke @carlobeltrame.

carlobeltrame commented 2 years ago

Statement von Thomas:

Müesst me entwickle uffem Apache. Momentan isches numme innere ConfigMap uffem OpenShift. Die chamme leider nid so apasst verwende.

Soll heissen, das generiert Aufwand. Bist du sicher dass wir nicht auch mit einer gemeinsamen generischen Support-Mailadresse für alle Tenants leben könnten @innosmith ?

innosmith commented 2 years ago

Welche Support-Adresse würden wir denn hierfür wählen und wie würdet ihr die Aufwände verrechnen, wenn ihr nicht klar wisst, welcher Tenant zum Problem geführt hat? Es geht nur um die WAF, richtig?

carlobeltrame commented 2 years ago

Irgendeine @puzzle.ch oder @decidim.swiss-Mailadresse wäre wohl am ehesten passend. Zur Verrechnung kann ich nichts sagen, da darf mich @bsantschi gerne zurechtweisen wenn das nicht geht. Zumindest bei Serverfehlern ("Auf dem Server ist ein Fehler aufgetreten.") und bei Zugriffsverweigerung ("Der Zugriff auf diese Seite ist dir nicht gestattet.") könnten wir die Herkunft anhand von Zeitpunkt und Einträgen in Sentry und/oder WAF Logs bestimmen, aber nicht sehr komfortabel.

Ich verstehe nicht ganz was du mit "Es geht nur um die WAF" meinst. Die Fehler werden in der WAF (Zugriffsverweigerungen) oder in Decidim (weitere Zugriffsverweigerungen und alle anderen Fehler) ausgelöst, die angezeigte Meldung kommt aber von der WAF bzw. vom Apache-Server in dem die WAF läuft, ja.

bsantschi commented 2 years ago

Alternative und spontane Idee: die WAF könnte anstelle einer E-Mailadresse auch eine generelle Fehlermeldung mit einem Link auf eine Hilfeseite rendern. Der Link wäre z.B. immer /pages/help. Beim Klick auf den Link kriegt man dann die tenantspezifische Seite, z.B. https://deinklima.ch/pages/help

innosmith commented 2 years ago

Alternative und spontane Idee: die WAF könnte anstelle einer E-Mailadresse auch eine generelle Fehlermeldung mit einem Link auf eine Hilfeseite rendern. Der Link wäre z.B. immer /pages/help. Beim Klick auf den Link kriegt man dann die tenantspezifische Seite, z.B. https://deinklima.ch/pages/help

Damit könnten wir pro Tenant zusätzliche Anweisungen (was hast du wann geklickt, dass du diese Fehlermeldung erhalten hast) festlegen inkl. Kontaktdaten.

Kagemaru commented 2 years ago

Ich habe das mal auf INT für die 404 Fehlerseite zum Testen umgesetzt: https://test.deinklima.ch/asdfhttps://test.deinklima.ch/pages/help https://test.dialogluzern.ch/asdfhttps://test.dialogluzern.ch/pages/help

innosmith commented 2 years ago

Hallo @Kagemaru : besten Dank für die Umsetzung. Ich habe eine entsprechende Supportseite umgesetzt https://test.deinklima.ch/pages/help. Welche Fehlerursachen führen dann zum Aufruf dieser Seite? Dann kann ich den Supporttext allenfalls noch präzisieren.

Kagemaru commented 2 years ago
Also, ich habe es für test.deinklima.ch mal so eingerichtet: Code Fehlermeldung Hilfeseite
400 Sofortiger Redirect https://test.deinklima.ch/pages/help400
401 Sofortiger Redirect https://test.deinklima.ch/pages/help401
403 Sofortiger Redirect https://test.deinklima.ch/pages/help403
404 Sofortiger Redirect https://test.deinklima.ch/pages/help404
500 Uups! Es ist ein Serverfehler aufgetreten.

Falls sie noch erreichbar ist, findest du mehr Informationen
auf unserer <a href="/pages/help500">Hilfeseite</a>.
https://test.deinklima.ch/pages/help500
502 Uups! Es ist ein Serverfehler aufgetreten.

Falls sie noch erreichbar ist, findest du mehr Informationen
auf unserer <a href="/pages/help500">Hilfeseite</a>.
https://test.deinklima.ch/pages/help500
503 Bitte habe ein wenig Geduld. Wir sind bald wieder da.

Falls sie noch erreichbar ist, findest du mehr Informationen
auf unserer <a href="/pages/help503">Hilfeseite</a>.
https://test.deinklima.ch/pages/help503

502 ist sehr spezifisch, deshalb habe ich die Nachricht und Hilfeseite für den 500er wiederverwendet.

innosmith commented 2 years ago

@Kagemaru besten Dank! Die Ziel-URL ist ja dann generisch, wird also für DialogLuzern genau gleich funktionieren, ohne dass ihr Anpassungen am Code umsetzen müsst.

Bitte die Texte ohne Redirect noch unpersönlich machen:

Danach ready for PROD. Ich setze die Hilfeseiten auch gleich für Dialog Luzern um.

larsUE commented 2 years ago

Ist das für alle decidim.swiss tenants gültig? Dann müsste ich die Seiten auch für gemeinsamer.space einrichten, oder?

innosmith commented 2 years ago

@Kagemaru : wie erkennen wir WAF-Fehler? Leiten wir diese genauso um auf eine helpXY-Seite?

innosmith commented 2 years ago

Ist das für alle decidim.swiss tenants gültig? Dann müsste ich die Seiten auch für gemeinsamer.space einrichten, oder?

Ja @larsUE . Ich tune gerade noch etwas die Texte und kopiere es analog auf Dialog Luzern INT und PROD.

larsUE commented 2 years ago

Der 413 «Request Entity too large» fehlt hier noch. Darauf kommt man schnell, wenn man z.B. in einer Umfrage ein File grösser als 10 MB hochlädt. Und ein Laie weiss natürlich gar nicht was mit dieser Meldung anzufangen ist.

carlobeltrame commented 2 years ago

@Kagemaru : wie erkennen wir WAF-Fehler? Leiten wir diese genauso um auf eine helpXY-Seite?

@innosmith Ja, WAF-Fehler führen zu einem 403. 403 kann somit entweder von der WAF oder von Rails kommen. Aber in beiden Fällen wird dieser Status ausgegeben wenn der User etwas versucht das mit seinen Berechtigungen nicht erlaubt ist, und auch bei erneuten Versuchen nicht erlaubt sein wird.