Besprechung Sarah #2

Open
opened 2022-10-13 16:30:19 +02:00 by savau · 73 comments
savau commented 2022-10-13 16:30:19 +02:00 (Migrated from gitlab.uniworx.de)

Topics für die nächste Besprechung

Topics für die nächste Besprechung
savau commented 2022-10-13 16:35:43 +02:00 (Migrated from gitlab.uniworx.de)

Montag 17.Oktober, 15 Uhr

  • Sollten Issues ins ifi gitlab umziehen oder nicht? JA
  • Impressum / Datenschutz: externe Seiten einrahmen? Impressum muss lokal sein, falls Server nicht erreichbar ist, hätte die Seite kein Impressum und wäre dann nichts rechts konform! Externer link im Modal? Möglich, aber externe Link ist einfacher.
  • Reroute Notifications to Supervisor: Siehe Optionen in Jobs.Handler.SendNotification
  • Modellierung printJob Acks: eigene Tabelle?
  • subSelect in DBTable column oder in dbCell? Beispiele?

Notiz: Speichere für ausgewählte Notifications in einer speziellen Tabelle was wann geschickt wurde und auf welchem Versandweg?!

By Steffen Jost on 2022-11-16T09:50:17 (imported from GitLab)

# Montag 17.Oktober, 15 Uhr - [x] Sollten Issues ins ifi gitlab umziehen oder nicht? **JA** - [x] Impressum / Datenschutz: externe Seiten einrahmen? **Impressum muss lokal sein**, falls Server nicht erreichbar ist, hätte die Seite kein Impressum und wäre dann nichts rechts konform! Externer link im Modal? Möglich, aber externe Link ist einfacher. - [x] Reroute Notifications to Supervisor: Siehe Optionen in [Jobs.Handler.SendNotification](src/Jobs/Handler/SendNotification.hs) - [x] Modellierung printJob Acks: eigene Tabelle? - [x] subSelect in DBTable column oder in dbCell? Beispiele? Notiz: Speichere für ausgewählte Notifications in einer speziellen Tabelle was wann geschickt wurde und auf welchem Versandweg?! *By Steffen Jost on 2022-11-16T09:50:17 (imported from GitLab)*
savau commented 2022-10-31 15:17:21 +01:00 (Migrated from gitlab.uniworx.de)

Mittwoch 2.November, 15 Uhr

  • Checkliste Fremdpersonal durchgehen und ausfüllen. Gesendet
  • OpenSSL Bug >3.x? Sind wir betroffen? NEIN
  • Container auf gitlab.ifi.lmu.de? kommt später
  • lpr in Testumgebung funktioniert nach wie vor nicht? cups-pdf eine Lösung?
  • Supervisor-Prefix in userMailT einbauen: Wie eMail Versand testen? addHtmlAlternatives erstzt oder additiv?
  • Handler.LMS.mkLmsTable: Warum wird hier E.Value benötigt? Vermeidbar?
  • Stand: tini? local?

By Steffen Jost on 2022-11-02T16:24:32 (imported from GitLab)

# Mittwoch 2.November, 15 Uhr - [x] Checkliste Fremdpersonal durchgehen und ausfüllen. *Gesendet* - [x] OpenSSL Bug >3.x? Sind wir betroffen? **NEIN** - [x] Container auf gitlab.ifi.lmu.de? *kommt später* - [ ] lpr in Testumgebung funktioniert nach wie vor nicht? cups-pdf eine Lösung? - [x] Supervisor-Prefix in userMailT einbauen: Wie eMail Versand testen? addHtmlAlternatives erstzt oder additiv? - [x] [Handler.LMS.mkLmsTable](src/Handler/LMS.hs#L390): Warum wird hier `E.Value` benötigt? Vermeidbar? - [ ] Stand: tini? local? *By Steffen Jost on 2022-11-02T16:24:32 (imported from GitLab)*
savau commented 2022-11-04 15:09:31 +01:00 (Migrated from gitlab.uniworx.de)

Dienstag 8. November, 15 Uhr

  • Impressum / Datenschutzerklärung: Neue Route erstellen, welche redirect auf url macht!
  • Hinweis OpenSource: Merge von Uni2work fehlt @vaupel
  • Changelog: Model.Types.Changelog.changelogItemDays Datum einstellen und Übersetzungsdateien i18n/changelog anpassen!
  • FYI: addHtmlMarkdownAlternatives ist tatsächlich ein add: der erste Aufruf definiert den Body, weitere Aufrufe erzeugen dann jeweils 2 Attachments mit Namen "ATT0000#.txt" und "ATT0000#.html". Eine Variante addHtmlMarkdownAlternatives', welche einen Namen für das Attachment als zusätzliches Argument erwartet war leicht zu definieren. Für meinen Zweck reicht das völlig, die Erklärung "Supervisor" als Attachment mit hinzuzunehmen
  • Link auf Seite mit speziellen Filter Einstellungen möglich? (Für Modal on Qualification Page, siehe pjLink) Beispiel für AllocationListR leider nicht verstanden? toTextUrl?
  • Email: Link auf URL in MSG einbetten? i18nHamlet vs iHamlet? Was ist mit Html in MSG, z.B. Ergebnis von nameHtml'? Siehe Handler.Utils.Mail
  • Gerendertes HTML (analog zu Mail?) in gedrucktem Brief einbetten? D.h. mailT versendet Druck-Brief?
  • Handler.Utils.DateTime.getDateTimeFormatter for specific User?
  • Handler.LMS: move execution of subSelect into call to modal? TODO: JEIN! Route für das Modal anlegen und dann Modal auf Route setzen, dann wird dieses bei Bedarf nachgeladen!
  • Jobs.Handler.SendTestMail: wieder mal i18nHamlet welchen Typ hat das eigentlich?
  • quick release? tmux new-session

By Steffen Jost on 2022-12-21T09:50:42 (imported from GitLab)

# Dienstag 8. November, 15 Uhr - [x] Impressum / Datenschutzerklärung: Neue Route erstellen, welche redirect auf url macht! - [x] Hinweis OpenSource: Merge von Uni2work fehlt @vaupel - [x] Changelog: `Model.Types.Changelog.changelogItemDays` Datum einstellen und Übersetzungsdateien i18n/changelog anpassen! - [x] FYI: `addHtmlMarkdownAlternatives` ist tatsächlich ein **add**: der erste Aufruf definiert den Body, weitere Aufrufe erzeugen dann jeweils 2 Attachments mit Namen "ATT0000#.txt" und "ATT0000#.html". Eine Variante `addHtmlMarkdownAlternatives'`, welche einen Namen für das Attachment als zusätzliches Argument erwartet war leicht zu definieren. Für meinen Zweck reicht das völlig, die Erklärung "Supervisor" als Attachment mit hinzuzunehmen - [ ] Link auf Seite mit speziellen Filter Einstellungen möglich? (Für Modal on Qualification Page, siehe pjLink) Beispiel für `AllocationListR` leider nicht verstanden? `toTextUrl`? - [x] Email: Link auf URL in MSG einbetten? i18nHamlet vs iHamlet? Was ist mit Html in MSG, z.B. Ergebnis von `nameHtml'`? Siehe `Handler.Utils.Mail` - [ ] Gerendertes HTML (analog zu Mail?) in gedrucktem Brief einbetten? D.h. mailT versendet Druck-Brief? - [x] `Handler.Utils.DateTime.getDateTimeFormatter` for specific User? - [X] `Handler.LMS`: move execution of subSelect into call to modal? **TODO:** JEIN! Route für das Modal anlegen und dann Modal auf Route setzen, dann wird dieses bei Bedarf nachgeladen! - [ ] `Jobs.Handler.SendTestMail`: wieder mal `i18nHamlet` welchen Typ hat das eigentlich? - [x] quick release? tmux new-session *By Steffen Jost on 2022-12-21T09:50:42 (imported from GitLab)*
savau commented 2022-11-09 08:37:38 +01:00 (Migrated from gitlab.uniworx.de)

Freitag 11.November, 16 Uhr

  • Prozess: Benutzer anlegen und Qualifikation verteilen. Wie am besten vereinfachen? Durch Anmeldung zur Veranstaltung vielleicht?
  • Problem: Unbekannte Email bei neuen Benutzer? Wie damit umgehen? Mit Ansprechpartner? Anzeige!
  • AVS Personennummer == Matrikelnummer? Eindeutige ID für alle Führerscheininhaber, aber nicht jeder hat eine (Ansprechpartner, Funktionsuser, etc.) Momentan als Zuordnungstabelle mit Uniqueness implementiert, aber lästig. NEIN! Bleibt wie es ist!
  • Aufsetzen einer Entwicklungsumgebung mit nix?
  • Test email/print auf Testumgebung möglich? NEIN!
  • Esqueleto unterstützt intersect_ und except_ gut für Abfrage der divergierenden Führerscheine!

By Steffen Jost on 2022-11-25T08:25:12 (imported from GitLab)

# Freitag 11.November, 16 Uhr - [x] Prozess: Benutzer anlegen und Qualifikation verteilen. Wie am besten vereinfachen? Durch Anmeldung zur Veranstaltung vielleicht? - [x] Problem: Unbekannte Email bei neuen Benutzer? Wie damit umgehen? Mit Ansprechpartner? Anzeige! - [x] AVS Personennummer == Matrikelnummer? Eindeutige ID für alle Führerscheininhaber, aber nicht jeder hat eine (Ansprechpartner, Funktionsuser, etc.) Momentan als Zuordnungstabelle mit Uniqueness implementiert, aber lästig. NEIN! Bleibt wie es ist! - [x] Aufsetzen einer Entwicklungsumgebung mit nix? - [x] Test email/print auf Testumgebung möglich? NEIN! - [x] Esqueleto unterstützt intersect_ und except_ gut für Abfrage der divergierenden Führerscheine! *By Steffen Jost on 2022-11-25T08:25:12 (imported from GitLab)*
savau commented 2022-11-16 17:07:24 +01:00 (Migrated from gitlab.uniworx.de)
  • Open-Source Hinweis unter Info - ist dringend, weil Produktion schon online einsehbar ist!
  • DRINGEND: Filterung Supervisor funktioniert nicht auf Route LmsR!
  • Rücksetzen der Versions-Historie: Schon wieder vergessen wie! siehe oben
  • Möglicher Bug: Database.Esqueleto.Utils: max vs greatest: max und min liefern immer das erste Argument, wenn eines der Argumente NULL ist; greatest und least liefern dagegen immer das non-null Argument, falls es das gibt. Ändern? Welche Auswirkungen?
  • Access Tag !development funktioniert nicht? Das liegt doch daran, dass wir noch gar nicht als Development ausliefern, sondern immer Produktion, richtig? Können wir das wieder unterscheiden?
  • npm run release schlägt mal wieder aus komischen Gründen fehl 😞
  • redirect für \health deaktivieren (immer noch Problem mit self-signed certificates)
  • Einrichtung Grafana (mal per Screensharing Grundlagen einrichten)
  • Weitere Lizenzen (fontawesome) benötigt? Nein. Ersetzen durch Fraport Icons bis 01/23 in Arbeit.
  • SQL's VALUES nicht verfügbar, Lizenz-Abgleich in DB damit nicht richtig möglich?! Haskell Land oder ERaw
  • !force for uniqueness constraint - warum denn nicht? Ist ok!
  • Lokaler Funktionsuser mit eingeschränkten Pfaden: Einsetzbar (ohne wildcards)

By Steffen Jost on 2022-11-25T17:15:22 (imported from GitLab)

- [x] ~~Open-Source Hinweis unter Info - ist dringend, weil Produktion schon online einsehbar ist!~~ - [x] **DRINGEND:** Filterung Supervisor funktioniert nicht auf Route `LmsR`! - [x] Rücksetzen der Versions-Historie: Schon wieder vergessen wie! siehe oben - [x] Möglicher Bug: [Database.Esqueleto.Utils](src/Database/Esqueleto/Utils.hs#L439): `max` vs `greatest`: `max` und `min` liefern immer das erste Argument, wenn eines der Argumente NULL ist; `greatest` und `least` liefern dagegen immer das non-null Argument, falls es das gibt. Ändern? Welche Auswirkungen? - [x] Access Tag `!development` funktioniert nicht? Das liegt doch daran, dass wir noch gar nicht als Development ausliefern, sondern immer Produktion, richtig? Können wir das wieder unterscheiden? - [x] ~~`npm run release` schlägt mal wieder aus komischen Gründen fehl :disappointed:~~ - [x] redirect für `\health` deaktivieren (immer noch Problem mit self-signed certificates) - [ ] Einrichtung Grafana (mal per Screensharing Grundlagen einrichten) - [x] Weitere Lizenzen (fontawesome) benötigt? Nein. Ersetzen durch Fraport Icons bis 01/23 in Arbeit. - [x] SQL's `VALUES` nicht verfügbar, Lizenz-Abgleich in DB damit nicht richtig möglich?! Haskell Land oder ERaw - [x] `!force` for uniqueness constraint - warum denn nicht? Ist ok! - [x] Lokaler Funktionsuser mit eingeschränkten Pfaden: Einsetzbar (ohne wildcards) *By Steffen Jost on 2022-11-25T17:15:22 (imported from GitLab)*
savau commented 2022-11-25 08:42:36 +01:00 (Migrated from gitlab.uniworx.de)
  • Minor: Database.Esqueleto.Utils.justValList und justVal: ist es anders herum nicht effizienter?

By Steffen Jost on 2022-11-25T16:21:41 (imported from GitLab)

- [x] Minor: `Database.Esqueleto.Utils.justValList` und `justVal`: ist es anders herum nicht effizienter? *By Steffen Jost on 2022-11-25T16:21:41 (imported from GitLab)*
savau commented 2022-12-06 15:47:07 +01:00 (Migrated from gitlab.uniworx.de)
  • Warnungen als Warnungen belassen in einem Zweig für Felix
  • Link auf Seite mit aktiviertem Filter? (siehe auch Treffen 8.November, jetzt für Link von Problemseite zu einzelnen Problemen

By Steffen Jost on 2022-12-12T16:28:00 (imported from GitLab)

- [x] Warnungen als Warnungen belassen in einem Zweig für Felix - [ ] Link auf Seite mit aktiviertem Filter? (siehe auch Treffen 8.November, jetzt für Link von Problemseite zu einzelnen Problemen *By Steffen Jost on 2022-12-12T16:28:00 (imported from GitLab)*
savau commented 2022-12-08 16:39:51 +01:00 (Migrated from gitlab.uniworx.de)
  • replacing Handler.Utils.Users.getReceivers with Handler.Utils.Avs.updateReceivers leads to an import cycle: sending a letter is a background job; updating postal addresses before sending requires updateReceivers, but this may also add users, but adding users triggers background jobs
  • Handler.Utils.Table.Columns.colUserCompany wirklich liftHandler . runDB notwendig in DBCell?
  • Handler.Users warum nicht colUserCompanyverwendbar?
  • Beispiel für Sortierung nach DB?
  • dbTable ohne db? Also Liste anzeigen und einzeln abhaken zur übernahme (z.B. bei möglichen Diskrepanzen der Fahrlizenzen?)

By Steffen Jost on 2023-02-14T09:22:44 (imported from GitLab)

- [x] replacing `Handler.Utils.Users.getReceivers` with `Handler.Utils.Avs.updateReceivers` leads to an import cycle: sending a letter is a background job; updating postal addresses before sending requires `updateReceivers`, but this may also add users, but adding users triggers background jobs - [ ] `Handler.Utils.Table.Columns.colUserCompany` wirklich `liftHandler . runDB` notwendig in DBCell? - [ ] `Handler.Users` warum nicht `colUserCompany`verwendbar? - [x] Beispiel für Sortierung nach DB? - [x] dbTable ohne db? Also Liste anzeigen und einzeln abhaken zur übernahme (z.B. bei möglichen Diskrepanzen der Fahrlizenzen?) *By Steffen Jost on 2023-02-14T09:22:44 (imported from GitLab)*
savau commented 2022-12-13 17:14:08 +01:00 (Migrated from gitlab.uniworx.de)
  • Utils.Form.runButtonFormHash warum den Hash nicht einfach in den FormIdentifier packen anstatt ein HiddenField zu verwenden?
  • In welchen Kursen dürfen den Fahrberechtigungen vergeben werden? Können wir das in den Qualifications einschränken? Z.B. nach Schule?
  • Ist die Anzeige der Qualifikation auf Gültigkeit beschränkt?

By Steffen Jost on 2022-12-21T09:50:23 (imported from GitLab)

- [x] `Utils.Form.runButtonFormHash` warum den Hash nicht einfach in den FormIdentifier packen anstatt ein HiddenField zu verwenden? - [x] In welchen Kursen dürfen den Fahrberechtigungen vergeben werden? Können wir das in den Qualifications einschränken? Z.B. nach Schule? - [x] Ist die Anzeige der Qualifikation auf Gültigkeit beschränkt? *By Steffen Jost on 2022-12-21T09:50:23 (imported from GitLab)*
savau commented 2022-12-19 09:10:44 +01:00 (Migrated from gitlab.uniworx.de)
  • Wieso keine Pagination by AVS problem synch Tabellen?
  • Zeitzonen Day und UTCTime, siehe #22
  • mkLicenceTable in Handler.Admin.Avs: dbtRowKey ist nicht eindeutig pro Zeile; wenn ich diesen aber Eindeutig mache, funktioniert die dbSelect-Colonnade aber nicht mehr. Wie ist es richtig?
  • Wie sieht ein korrekter Html-Email-Anhang aus, d.h. welchen QuasiQuoter verwenden, so dass auch die Metadaten stimmen? Siehe src/Handler/Utils/Mail.hs und dort Zeile 202 in addHtmlMarkdownAlternatives' für einen Versuch, dies korrekt zu implementieren.
  • sqlCell ist offenbar unvereinbar mit Tabellen, welche Actions haben, da der Monaden-Typ komplexer ist. Wie könnte man den Typ von sqlCell flexibler formulieren? (Problem mit colUserCompany: eine generische Spalte ist definierbar und typisiert, aber die Verwendung scheitert am Typ. Eine Formulierung ohne sqlCell lässt sich problemlos einsetzen, aber nicht als generische Funktion formulieren.)
  • vorgeschlagenes Ende-Datum in Abhängigkeit zur Qualifikation realisierbar? Siehe src/Handler/Tutorial/Users.hs und dort Zeile 91
  • HCRedirect (Status {statusCode = 303, statusMessage = "See Other"},"https://fradrive-t.apps.fra.fraport.de/admin/problems/avs")
  • Einfacherer Lösung für Knopf-Formular mit Bestätigung und Hash, siehe src/Handler/Admin/Avs.hs
  • Abgaben nach Tutorium zuweisen/anzeigen in Kurs?
  • src/Utils/Files.hs importiert src/Handler/Utils/Minio.hs das erscheint mir seltsam!
  • Was macht Setting appHealthCheckHttp: true wirklich? Momentan wird immer folgener Fehler geliefert: (InternalException (HandshakeFailed (Error_Protocol ("certificate has unknown CA",True,UnknownCa))))JOB: JobCtlGenerateHealthReport HealthCheckHTTPReachable @(uniworx-27.0.19-1XpWpKk5QJSL9seIoabKdf:Jobs src/Jobs.hs:481:33); auf false gesetzt
  • Was macht Setting 'Relevante Institute: Sie erhalten nur institutweite Benachrichtigungen für Institute, die hier ausgewählt sind.' genau? Was sind Institut-weite Benachrichtigungen und wie sendet man diese? Default ist offenbar AUS?
  • Sortierung dbTable bei Zeitstempeln: Auf-/Abwärts ist vertauscht
  • settings.yml: mail-reroute-to über leere Umgebungsvariablen setzen funktioniert leider nicht; warum? Es soll nur bei npm run start gesetzt sein.

By Steffen Jost on 2023-03-17T12:45:52 (imported from GitLab)

- [x] **Wieso keine Pagination by AVS problem synch Tabellen?** - [ ] Zeitzonen `Day` und `UTCTime`, siehe #22 - [ ] `mkLicenceTable` in `Handler.Admin.Avs`: `dbtRowKey` ist nicht eindeutig pro Zeile; wenn ich diesen aber Eindeutig mache, funktioniert die `dbSelect`-Colonnade aber nicht mehr. Wie ist es richtig? - [x] Wie sieht ein korrekter Html-Email-Anhang aus, d.h. welchen QuasiQuoter verwenden, so dass auch die Metadaten stimmen? Siehe `src/Handler/Utils/Mail.hs` und dort Zeile 202 in `addHtmlMarkdownAlternatives'` für einen Versuch, dies korrekt zu implementieren. - [ ] `sqlCell` ist offenbar unvereinbar mit Tabellen, welche Actions haben, da der Monaden-Typ komplexer ist. Wie könnte man den Typ von `sqlCell` flexibler formulieren? (Problem mit `colUserCompany`: eine generische Spalte ist definierbar und typisiert, aber die Verwendung scheitert am Typ. Eine Formulierung ohne `sqlCell` lässt sich problemlos einsetzen, aber nicht als generische Funktion formulieren.) - [ ] vorgeschlagenes Ende-Datum in Abhängigkeit zur Qualifikation realisierbar? Siehe `src/Handler/Tutorial/Users.hs` und dort Zeile 91 - [ ] HCRedirect (Status {statusCode = 303, statusMessage = "See Other"},"https://fradrive-t.apps.fra.fraport.de/admin/problems/avs") - [x] Einfacherer Lösung für Knopf-Formular mit Bestätigung und Hash, siehe `src/Handler/Admin/Avs.hs` - [ ] Abgaben nach Tutorium zuweisen/anzeigen in Kurs? - [ ] `src/Utils/Files.hs` importiert `src/Handler/Utils/Minio.hs` das erscheint mir seltsam! - [ ] Was macht Setting `appHealthCheckHttp: true` wirklich? Momentan wird immer folgener Fehler geliefert: ` (InternalException (HandshakeFailed (Error_Protocol ("certificate has unknown CA",True,UnknownCa))))JOB: JobCtlGenerateHealthReport HealthCheckHTTPReachable @(uniworx-27.0.19-1XpWpKk5QJSL9seIoabKdf:Jobs src/Jobs.hs:481:33)`; auf false gesetzt - [ ] Was macht Setting 'Relevante Institute: Sie erhalten nur institutweite Benachrichtigungen für Institute, die hier ausgewählt sind.' genau? Was sind Institut-weite Benachrichtigungen und wie sendet man diese? Default ist offenbar AUS? - [x] Sortierung dbTable bei Zeitstempeln: Auf-/Abwärts ist vertauscht - [x] `settings.yml: mail-reroute-to` über leere Umgebungsvariablen setzen funktioniert leider nicht; warum? Es soll nur bei npm run start gesetzt sein. *By Steffen Jost on 2023-03-17T12:45:52 (imported from GitLab)*
savau commented 2023-02-23 09:32:01 +01:00 (Migrated from gitlab.uniworx.de)
  • Bedeutung der instance-id in der config? Auswirkung auf bearer tokens - wenn ja, wie funktioniert das bei Skalierung? Wir wollen in der Cloud besser skalieren mit Replika-Sets. Antwort: Ja, instance id ist für bearer tokens wichtig. Muss pro SystemD eindeutig sein, d.h. gleiche instance id in verschiedenen Pods ist unkritisch.
  • Kursen Qualifikationen zuordnen: Eigene Tabelle oder Liste?! Antwort: Mit Tabelle!
  • LMS Tabelle: Spalte mit Firma, AVS No, etc. gewünscht also noch 2 Joins mehr 😞 Ebenso wird eine Spalte mit Notizen gewünscht. Besser mit Join!
  • PrintJob Table: Filter-Preset 'nichts ausgewählt' wird immer wieder neu gesetzt, z.B. nach Sortierung
  • Kritische Problem neben LogError als Email an Admin senden? Geht prinzipiell, wichtig ist, keinen neuen Job zu starten sondern sofort zu senden.
  • JSONB siehe Beispiel in https://gitlab.ifi.lmu.de/uni2work/uni2work/-/blob/master/src/Handler/Utils/Table/Columns.hs

By Steffen Jost on 2023-03-02T18:00:21 (imported from GitLab)

- [x] Bedeutung der instance-id in der config? Auswirkung auf bearer tokens - wenn ja, wie funktioniert das bei Skalierung? Wir wollen in der Cloud besser skalieren mit Replika-Sets. *Antwort:* Ja, instance id ist für bearer tokens wichtig. Muss pro SystemD eindeutig sein, d.h. gleiche instance id in verschiedenen Pods ist unkritisch. - [x] Kursen Qualifikationen zuordnen: Eigene Tabelle oder Liste?! *Antwort:* Mit Tabelle! - [x] LMS Tabelle: Spalte mit Firma, AVS No, etc. gewünscht also noch 2 Joins mehr :disappointed: Ebenso wird eine Spalte mit Notizen gewünscht. Besser mit Join! - [x] PrintJob Table: Filter-Preset 'nichts ausgewählt' wird immer wieder neu gesetzt, z.B. nach Sortierung - [x] Kritische Problem neben LogError als Email an Admin senden? Geht prinzipiell, wichtig ist, keinen neuen Job zu starten sondern sofort zu senden. - [x] JSONB siehe Beispiel in https://gitlab.ifi.lmu.de/uni2work/uni2work/-/blob/master/src/Handler/Utils/Table/Columns.hs *By Steffen Jost on 2023-03-02T18:00:21 (imported from GitLab)*
savau commented 2023-03-01 17:50:39 +01:00 (Migrated from gitlab.uniworx.de)

InstanceId muss pro Rechner/SystemD eindeutig sein; unterschiedliche Pods ok. Ist relevant für bearer token!
Achtung: DB ist immer UTC - CSV liefert aber ggf. local-time! getAppTimezone
image

By Steffen Jost on 2023-03-01T17:55:41 (imported from GitLab)

InstanceId muss pro Rechner/SystemD eindeutig sein; unterschiedliche Pods ok. Ist relevant für bearer token! Achtung: DB ist immer UTC - CSV liefert aber ggf. local-time! getAppTimezone ![image](/uploads/30241965c79a48a35e6d3794bb8708d2/image.png) *By Steffen Jost on 2023-03-01T17:55:41 (imported from GitLab)*
savau commented 2023-03-02 18:00:09 +01:00 (Migrated from gitlab.uniworx.de)
  • dateTimeCell & Co zeigen Zeiten wie in DB an! Wenn diese aber in UTC gespeichert sind, müssten diese doch konvertiert werden! Also doch alles in LocalTime umrechnen vor dem Speichern? DB speichert UTCTime, aber als timestamptz
  • Minio und memcached: wer ist zwischen instanzen geteilt, wer ist pro Instanz? Es sollte nur eine Instanz jeweils geben, memchached muss naher bei Webserver sein; minio bei DB
  • Verzeichnis .stack-work-doc fehlte
  • Button Forms in Modal realisierbar? siehe Handler Help formResultModal wenn widget-modal, bei link-modal erfolgt immer eine Umleitung
  • Geschwindigkeit Server?
  • AVS synch background job like LDAP synch - how to do
  • Pagination: Page-size lässt sich auf {{/lms/FA/F?qualification-sorting=lms-notified-desc&qualification-lms-notified=True&qualification-renewal-due=False&qualification-pagesize=1000&qualification-page=0&f1&f3&f5}} nicht mehr durch Drop-Down verändern. Filtern, Sortieren und dann geht der Dropdown nicht, aber die Url wird um {{&f1}} usw erweitert? In der Benutzerliste geht das aber.
  • Fraport PIN angekommen? (Einloggen noch nicht möglich.)

By Steffen Jost on 2023-03-09T16:29:00 (imported from GitLab)

- [x] `dateTimeCell` & Co zeigen Zeiten wie in DB an! Wenn diese aber in UTC gespeichert sind, müssten diese doch konvertiert werden! Also doch alles in LocalTime umrechnen vor dem Speichern? DB speichert UTCTime, aber als timestamptz - [x] Minio und memcached: wer ist zwischen instanzen geteilt, wer ist pro Instanz? Es sollte nur eine Instanz jeweils geben, memchached muss naher bei Webserver sein; minio bei DB - [x] Verzeichnis `.stack-work-doc` fehlte - [x] Button Forms in Modal realisierbar? siehe Handler Help `formResultModal` wenn widget-modal, bei link-modal erfolgt immer eine Umleitung - [x] Geschwindigkeit Server? - [x] AVS synch background job like LDAP synch - how to do - [ ] **Pagination:** Page-size lässt sich auf {{/lms/FA/F?qualification-sorting=lms-notified-desc&qualification-lms-notified=True&qualification-renewal-due=False&qualification-pagesize=1000&qualification-page=0&f1&f3&f5}} nicht mehr durch Drop-Down verändern. Filtern, Sortieren und dann geht der Dropdown nicht, aber die Url wird um {{&f1}} usw erweitert? In der Benutzerliste geht das aber. - [x] Fraport PIN angekommen? (Einloggen noch nicht möglich.) *By Steffen Jost on 2023-03-09T16:29:00 (imported from GitLab)*
savau commented 2023-03-10 10:13:21 +01:00 (Migrated from gitlab.uniworx.de)
  • Systemnachrichten: keine Message Popups? Problem mit Seitenleiste? (Bedeutung "Visible only on News"?) Tests funktionierten
  • Benutzereinstellung für Default Pagination Wert? Antwort: keine vorhanden
  • Diff der Config durchgehen - welche Settings sind wirklich relevant?
  • Speicherlimits: Was ist sinnvoll für eine Instanz? Memcached und Minio brauchen praktisch keinen Speicher? Antwort: Minio nur für Dateien; Memcached für Autorisierung, Sessions, etc. daher wenig Speicher. 4CPU/4Gb pro Webserver (8Core/12GB+Swap); JobServer(10Core/12GB).
  • Init0 / Tiny vielleicht Ursache? image
  • Auto-scaling: Sicheres Herunterfahren von Instanzen? Keine Vorkehrungen notwendig.
  • Extract subject for failed email in userMailT?
  • E-Learning Icon Umbruch
  • Macht es Sinn, das transaction log für eine History-Anzeige zu verwenden? (z.B. wann wurde Qualifikation gesperrt und entsperrt?) Antwort: Nur für Admins, Performance eventuell schlecht, da TransactionLog riesig.
  • Ist das Feld TransactionQualificationUserEdit.transactionQualificationUser verzichtbar wegen der Uniqueness Constraint?! Antwort: Ja, verzichtbar!
  • Firmenspalte als Einzelabfrage: Ändern? Warum geht sqlCell nicht?
  • Reihenfolge DB Tabellen: Umsortierbar ohne Migration? Antwort: Ja, nur Haskell-seitig relevant

By Steffen Jost on 2023-03-24T10:07:05 (imported from GitLab)

- [x] Systemnachrichten: keine Message Popups? Problem mit Seitenleiste? (Bedeutung "Visible only on News"?) Tests funktionierten - [x] Benutzereinstellung für Default Pagination Wert? **Antwort:** keine vorhanden - [x] Diff der Config durchgehen - welche Settings sind wirklich relevant? - [x] Speicherlimits: Was ist sinnvoll für eine Instanz? Memcached und Minio brauchen praktisch keinen Speicher? **Antwort:** Minio nur für Dateien; Memcached für Autorisierung, Sessions, etc. daher wenig Speicher. 4CPU/4Gb pro Webserver (8Core/12GB+Swap); JobServer(10Core/12GB). - [x] Init0 / Tiny vielleicht Ursache? ![image](/uploads/cd79a86df14f1efd67ff0e2e09074c2c/image.png) - [x] Auto-scaling: Sicheres Herunterfahren von Instanzen? Keine Vorkehrungen notwendig. - [ ] Extract subject for failed email in userMailT? - [x] E-Learning Icon Umbruch - [x] Macht es Sinn, das transaction log für eine History-Anzeige zu verwenden? (z.B. wann wurde Qualifikation gesperrt und entsperrt?) **Antwort:** Nur für Admins, Performance eventuell schlecht, da TransactionLog riesig. - [x] Ist das Feld `TransactionQualificationUserEdit.transactionQualificationUser` verzichtbar wegen der Uniqueness Constraint?! **Antwort:** Ja, verzichtbar! - [x] Firmenspalte als Einzelabfrage: Ändern? Warum geht sqlCell nicht? - [x] Reihenfolge DB Tabellen: Umsortierbar ohne Migration? **Antwort:** Ja, nur Haskell-seitig relevant *By Steffen Jost on 2023-03-24T10:07:05 (imported from GitLab)*
savau commented 2023-03-23 18:05:53 +01:00 (Migrated from gitlab.uniworx.de)
  • Updates Uni2work -> FRAdrive? Z.B. NixOS?
  • Kurs löschen #28
  • npm updates?
  • pretty printing: einfach über aeson-pretty

By Steffen Jost on 2023-03-24T12:33:01 (imported from GitLab)

- [x] Updates Uni2work -> FRAdrive? Z.B. NixOS? - [x] Kurs löschen #28 - [x] npm updates? - [x] pretty printing: einfach über aeson-pretty *By Steffen Jost on 2023-03-24T12:33:01 (imported from GitLab)*
savau commented 2023-03-27 19:05:56 +02:00 (Migrated from gitlab.uniworx.de)
  • Abrechnung Stunden LMU? Email geschickt.
  • GitLab Zugriff für Hanno, Dennis, Charlotte. Abwarten Umzug GitLab, noch ein paar Wochen
  • Liveness/Readiness mit /health schlägt ständig mit 500 fehl; Seite lädt aber. Warum?
  • Bei verschiedenen Seiten:
2023-03-31 08:25:54 +0000 [Error#yesod] Exception from Warp: Ratio has zero denominator @(uniworx-27.1.4-82fNbj8unOsJw6Jf6V1W28:Application src/Application.hs:567:15)
2023-03-31 08:26:18 +0000 [Error#yesod-core] Error handler errored out: InternalError "Ratio has zero denominator" @(yesod-core-1.6.20.2-7VqWGURyzmdJ8HRF4U5pfA:Yesod.Core.Internal.Run src/Yesod/Core/Internal/Run.hs:210:21)
  • Taucht immer wieder auf: 023-03-31 08:22:59 +0000 [Warn#JobPoolManager] Moved 1 long-unadressed jobs from 1 senders to 1 receivers @(uniworx-27.1.4-82fNbj8unOsJw6Jf6V1W28:Jobs src/Jobs.hs:309:16)
  • https://magnus.therning.org/2021-07-03-the-timeout-manager-exception.html
  • Build meldet patchelf: wrong ELF type? Funktioniert trotzdem?
  • Bad idea? instance HasQualification a => HasQualification (a,b) where
  • Traversal/Lens fmap? Refactor _userQualifications = _dbrOutput . _8 . to (fmap fst)
    _userQualifications = _dbrOutput . _8 . over (mapped . _1)

By Steffen Jost on 2023-04-25T16:44:36 (imported from GitLab)

- [x] Abrechnung Stunden LMU? **Email geschickt.** - [x] GitLab Zugriff für Hanno, Dennis, Charlotte. **Abwarten Umzug GitLab, noch ein paar Wochen** - [x] Liveness/Readiness mit `/health` schlägt ständig mit 500 fehl; Seite lädt aber. Warum? - [ ] Bei verschiedenen Seiten: ```2023-03-31 08:25:54 +0000 [Error#yesod] Exception from Warp: Ratio has zero denominator @(uniworx-27.1.4-82fNbj8unOsJw6Jf6V1W28:Application src/Application.hs:567:15) 2023-03-31 08:25:54 +0000 [Error#yesod] Exception from Warp: Ratio has zero denominator @(uniworx-27.1.4-82fNbj8unOsJw6Jf6V1W28:Application src/Application.hs:567:15) 2023-03-31 08:26:18 +0000 [Error#yesod-core] Error handler errored out: InternalError "Ratio has zero denominator" @(yesod-core-1.6.20.2-7VqWGURyzmdJ8HRF4U5pfA:Yesod.Core.Internal.Run src/Yesod/Core/Internal/Run.hs:210:21) ``` - [ ] Taucht immer wieder auf: `023-03-31 08:22:59 +0000 [Warn#JobPoolManager] Moved 1 long-unadressed jobs from 1 senders to 1 receivers @(uniworx-27.1.4-82fNbj8unOsJw6Jf6V1W28:Jobs src/Jobs.hs:309:16)` - [ ] https://magnus.therning.org/2021-07-03-the-timeout-manager-exception.html - [x] Build meldet `patchelf: wrong ELF type`? Funktioniert trotzdem? - [x] Bad idea? `instance HasQualification a => HasQualification (a,b) where` - [x] Traversal/Lens fmap? Refactor `_userQualifications = _dbrOutput . _8 . to (fmap fst)` `_userQualifications = _dbrOutput . _8 . over (mapped . _1)` *By Steffen Jost on 2023-04-25T16:44:36 (imported from GitLab)*
savau commented 2023-04-03 17:13:27 +02:00 (Migrated from gitlab.uniworx.de)
  • Rücksetzung von Filtern bei Absendung von dbTable Aktionen: Könnte es mit dbParamsFormAction = Just $ SomeRoute currentRoute zusammenhängen? Es macht aber kein Unterschied, ob hier Nothing gesetzt wird - wozu ist der Parameter gut? FIXED
  • Bei Kubernetes Container Update sind mehrere Instanzen der alten und neuen Version gleichzeitig aktiv. Ist das ein Problem, z.B. bei DB Migrationen? JA, ist es!
  • Handler.Utils.Download.sendResponseByteStringFile Warum funktioniert InlineContent nicht? Browser kann Datei nicht speichern, anders als auf Admin/Test.
  • Einfaches Kompilieren ohne $ifdef DEVELOPMENT?

By Steffen Jost on 2023-04-25T12:12:01 (imported from GitLab)

- [x] Rücksetzung von Filtern bei Absendung von dbTable Aktionen: Könnte es mit `dbParamsFormAction = Just $ SomeRoute currentRoute` zusammenhängen? Es macht aber kein Unterschied, ob hier `Nothing` gesetzt wird - wozu ist der Parameter gut? FIXED - [x] Bei Kubernetes Container Update sind mehrere Instanzen der alten und neuen Version gleichzeitig aktiv. Ist das ein Problem, z.B. bei DB Migrationen? **JA**, ist es! - [x] [`Handler.Utils.Download.sendResponseByteStringFile`](src/Handler/Utils/Download:194) Warum funktioniert InlineContent nicht? Browser kann Datei nicht speichern, anders als auf Admin/Test. - [x] Einfaches Kompilieren ohne `$ifdef DEVELOPMENT`? *By Steffen Jost on 2023-04-25T12:12:01 (imported from GitLab)*
savau commented 2023-04-25 12:11:30 +02:00 (Migrated from gitlab.uniworx.de)
  • SPDX-FileCopyrightText: Datum einfach auf 2023? Doppelte Angabe SJ mit unterschiedlicher Email? *Wird noch automatisiert; es ist von-bis anzugeben.

By Steffen Jost on 2023-04-25T12:11:30 (imported from GitLab)

- [x] SPDX-FileCopyrightText: Datum einfach auf 2023? Doppelte Angabe SJ mit unterschiedlicher Email? *Wird noch automatisiert; es ist von-bis anzugeben. *By Steffen Jost on 2023-04-25T12:11:30 (imported from GitLab)*
savau commented 2023-05-08 10:44:25 +02:00 (Migrated from gitlab.uniworx.de)
  • mailmap: s.jost@fraport.de?
  • Update locale? Tini?
  • Srv01
  • Beim kompilieren oft: nach [460 of 460] folgt jetzt oft [1 of 260] Warum wird jetzt immer doppelt kompiliert?
  • Shortcut apreq/mpreq für Just default?!

By Steffen Jost on 2023-05-10T14:44:35 (imported from GitLab)

- [x] mailmap: s.jost@fraport.de? - [ ] Update locale? Tini? - [x] Srv01 - [x] Beim kompilieren oft: nach `[460 of 460]` folgt jetzt oft `[1 of 260]` Warum wird jetzt immer doppelt kompiliert? - [x] Shortcut apreq/mpreq für `Just` default?! *By Steffen Jost on 2023-05-10T14:44:35 (imported from GitLab)*
jost commented 2023-05-11 12:33:01 +02:00 (Migrated from gitlab.uniworx.de)

assigned to @savau

assigned to @savau
jost commented 2023-05-16 09:18:08 +02:00 (Migrated from gitlab.uniworx.de)
  • Ausrollen von test-containern aus einem neuen geschützten Zweig, unabhängig von Prod
  • Tutorial Templating: Beste vorgehensweise?
  • NN User: Unbekannte User anlegen; Neue Tabelle mit Dummies und dann Zuordnung zu UserId oder DummyId
  • AVS Synch einrichten
  • runDBJobs / queueDBJob vs queueJob' siehe Handler/Users.hs
  • JobHandlerException? Wo landen geworfene Exceptions? A: Sollte alles im Log sein!
  • Distinction JobNoQueueSame vs JobNoQueueSameTag: Should JobLmsQualificationsEnqueue and -Dequeue not be categorized as the latter?
  • Deleting old branches
  • DB Migration LmsStatus und QualificationBlocked
  • Benachrichtigungsoption für Erinnerungsbrief: see Notification
  • Hash von UserCryptoId für Print-Bestätigung sinnvoll? A: encrypt :: CryptoFileNamePritJob
  • Wo ist der Container 27.4.4?
  • Stand Integration busybox/pdflatex im Containerbau?
- [x] Ausrollen von test-containern aus einem neuen geschützten Zweig, unabhängig von Prod - [x] Tutorial Templating: Beste vorgehensweise? - [x] NN User: Unbekannte User anlegen; Neue Tabelle mit Dummies und dann Zuordnung zu UserId oder DummyId - [x] AVS Synch einrichten - [x] `runDBJobs / queueDBJob` vs `queueJob'` siehe [Handler/Users.hs](src/Handler/Users.hs) - [x] `JobHandlerException`? Wo landen geworfene Exceptions? **A:** Sollte alles im Log sein! - [x] Distinction `JobNoQueueSame` vs `JobNoQueueSameTag`: Should `JobLmsQualificationsEnqueue` and `-Dequeue` not be categorized as the latter? - [x] Deleting old branches - [x] DB Migration `LmsStatus` und `QualificationBlocked` - [x] Benachrichtigungsoption für Erinnerungsbrief: see [`Notification`](src/Jobs/Types.hs) - [x] Hash von UserCryptoId für Print-Bestätigung sinnvoll? **A:** `encrypt :: CryptoFileNamePritJob` - [x] Wo ist der Container 27.4.4? - [x] Stand Integration busybox/pdflatex im Containerbau?
jost commented 2023-05-23 11:06:12 +02:00 (Migrated from gitlab.uniworx.de)
  • Welche Schriftarten sind verfügbar für PDF Erzeugung, also LuaLatex?
  • Container fehlt?
  • VSCode Anbindung: Erforschung für Mitarbeiter noch aktuell? (gegen Ende des Jahres)
  • Immer wieder Verbindungsprobleme, nach mehreren Versuchen geht es aber meist:
✘ jost@srv01  ~/fradrive   fradrive/avs-synch  git push
ssh: connect to host gitlab.uniworx.de port 22: Connection refused
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
 ✘ jost@srv01  ~/fradrive   fradrive/avs-synch  

Die Internetverbindung ist aber ansonsten stabil, d.h. die Verbindung zu srv01 besteht unproblematisch.

- [x] Welche Schriftarten sind verfügbar für PDF Erzeugung, also LuaLatex? - [x] Container fehlt? - [x] VSCode Anbindung: Erforschung für Mitarbeiter noch aktuell? (gegen Ende des Jahres) - [x] Immer wieder Verbindungsprobleme, nach mehreren Versuchen geht es aber meist: ``` ✘ jost@srv01  ~/fradrive   fradrive/avs-synch  git push ssh: connect to host gitlab.uniworx.de port 22: Connection refused fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ✘ jost@srv01  ~/fradrive   fradrive/avs-synch  ``` Die Internetverbindung ist aber ansonsten stabil, d.h. die Verbindung zu srv01 besteht unproblematisch.
jost commented 2023-05-26 12:09:48 +02:00 (Migrated from gitlab.uniworx.de)
  • Dringend: npm run start geht prinzipiell, aber Server nicht mehr erreichbar auf Port 3163. Es wird stattdessen 3380 gemeldet, aber auch dort ist der Server nicht erreichbar.
  • Setup Instruktionen zu den stack-work Verzeichnissen findet sich wo?
  • Build Probleme? (Retrigger by Gregor?)
  • Doppeltes Kompilieren immer noch da, trotz Löschen von .stack
  • Validate Form in dbTable Actions möglich? Ich würde gerne bei QualBlock & NewTutorial je zwei Felder als Alternativ-Required haben: also nur eines von beiden muss ausgefüllt sein? siehe multiActionAOpts
  • Modellierung QualificationUserBlocked: Neuer Vorschlag wie folgt, macht das Sinn?
QualificationUserBlock
  qualificationUser QualificationUserId OnDeleteCascade OnUpdateCascade
  unblock           Bool
  from              Day
  reason            Text
  --   company           CompanyId Maybe -- Name to be encoded in reason for simplicity
  blocker           UserId Maybe  -- Veranlasser des Blocks
  deriving Eq Ord Read Show Generic
  1. Spalte "until" anstatt Day Maybe würde ich gerne Day schreiben und statt Nothing lieber 'infinity' schreiben, dann sind die Bedingungen einfacher. Kennt persist ein äquivalent für 'infnity'? In der DB entspricht das maxBound in Haskell, aber die max-Werte könnten ja unterschiedlich sein; also lieber ein eigenes Max definieren? Gute oder schlechte Idee?

  2. Im Audit-Log habe ich es mir einfach gemacht und den gesamten QualficationUserBlock angehängt, anstatt alle Felder einzeln zu kopieren. Gute oder schlechte Idee?

  3. Ich würde noch ein Bool hinzunehmen, ob ein Block oder ein Unblock vorliegt. Ursprünglich wollte ich Unblock durch das setzen des until-Wertes realisieren, doch dann hätte man kein reason für das unblocking. Hrmpf. Oder ich lasse until weg und schaue nur auf den letzten Eintrag (sortiert nach from) und schaue dort auf den Bool. Was ist die sinnvollere Modellierung?

- [x] **Dringend:** `npm run start` geht prinzipiell, aber Server nicht mehr erreichbar auf Port 3163. Es wird stattdessen 3380 gemeldet, aber auch dort ist der Server nicht erreichbar. - [x] Setup Instruktionen zu den stack-work Verzeichnissen findet sich wo? - [x] Build Probleme? (Retrigger by Gregor?) - [x] Doppeltes Kompilieren immer noch da, trotz Löschen von `.stack` - [x] Validate Form in dbTable Actions möglich? Ich würde gerne bei QualBlock & NewTutorial je zwei Felder als Alternativ-Required haben: also nur eines von beiden muss ausgefüllt sein? siehe `multiActionAOpts` - [x] Modellierung `QualificationUserBlocked`: Neuer Vorschlag wie folgt, macht das Sinn? ``` QualificationUserBlock qualificationUser QualificationUserId OnDeleteCascade OnUpdateCascade unblock Bool from Day reason Text -- company CompanyId Maybe -- Name to be encoded in reason for simplicity blocker UserId Maybe -- Veranlasser des Blocks deriving Eq Ord Read Show Generic ``` 1. Spalte "until" anstatt Day Maybe würde ich gerne Day schreiben und statt Nothing lieber 'infinity' schreiben, dann sind die Bedingungen einfacher. Kennt persist ein äquivalent für 'infnity'? In der DB entspricht das maxBound in Haskell, aber die max-Werte könnten ja unterschiedlich sein; also lieber ein eigenes Max definieren? Gute oder schlechte Idee? 2. Im Audit-Log habe ich es mir einfach gemacht und den gesamten QualficationUserBlock angehängt, anstatt alle Felder einzeln zu kopieren. Gute oder schlechte Idee? 3. Ich würde noch ein Bool hinzunehmen, ob ein Block oder ein Unblock vorliegt. Ursprünglich wollte ich Unblock durch das setzen des until-Wertes realisieren, doch dann hätte man kein reason für das unblocking. Hrmpf. Oder ich lasse until weg und schaue nur auf den letzten Eintrag (sortiert nach from) und schaue dort auf den Bool. Was ist die sinnvollere Modellierung?
jost commented 2023-06-02 13:25:14 +02:00 (Migrated from gitlab.uniworx.de)
  • Auf Health: Anteil der Jobworker, die neue Befehle annehmen ist bei 0%. Macht es Sinn, vielleicht die Webserver mitarbeiten zu lassen? Sarah untersucht es
  • Jobs werden nicht abgearbeitet?
  • AVS Synch Jobs auf Nacht beschränken oder in Prio reduzieren? Fixed.
  • Hatten wir nicht eine Variante von anchorCell, welche automatisch prüft, ob der Nutzer den Link anschauen darf und falls nein, den Link unterdrückt? Antwort: linkEitherCell
  • Anwendung von Funktionen wie Text.isPrefixOf oder Text.stripPrefix auf CI Text mit CI.map/CI.original/CI.mk ist problematisch, da das Prefix dann nur Case-Sensitiv entfernt wird. Haben wir da eine bessere Lösung für? Workaround: mit folded case Arbeiten
  • Die Applikation ist wieder oft abgestürzt, dieses Mal in der Nacht. Dadurch gabe es zahlreiche Probleme mit den Schnittstellen, weil Erfolgsmeldungen nicht durchkamen. Ich denke wir müssen unbedingt eine Version mit DebugTrace zum laufen bringen. Die Probleme werden immer schlimmer, Details siehe #40 Sarah & Gregor schauen nochmal
  • Log-Probleme LogMeldungenJuni2023.csv
  • Fall Bakanov: Fehler war, dass Spalte ldap_primary_key einen doppelten Wert enthielt. Warum hier keine Uniqueness? Wie in Zukunft verhindern? Unterschied in Aufrufen war upsertCampusUser (UpsertCampusUserLdapSync upsertIdent) und upsertCampusUser UpsertCampusUserGuessUser ldapResponse. UniquenessConstraint einführen!
  • Handler.Utils.Users.hs Aufrufe von insertSelectWithConflict die in der Update-Klausel den Conflict nicht updaten? Beispiel Zeile 833ff Warum nicht auch QualificationuserUser E.=. E.val newUserId? Es wird in ähnlichen Code-Snippets dort auch nicht gemacht, aber ist das nicht falsch?
  • Verwendung der Fraport Schriftart #82
  • Modellierung Blocked durch eigene Tabelle: Wie effizient aktuellen Block feststellen? Redundant in QualificatioUser speichern? Mit einfach View arbeiten siehe cookbook? Lieber mit verschachtelten E.notExists arbeiten
SELECT DISTINCT ON (qualification_user) *
ORDER BY qualification_user, date DESC
;
- [x] Auf Health: Anteil der Jobworker, die neue Befehle annehmen ist bei 0%. Macht es Sinn, vielleicht die Webserver mitarbeiten zu lassen? **Sarah untersucht es** - [x] Jobs werden nicht abgearbeitet? - [x] AVS Synch Jobs auf Nacht beschränken oder in Prio reduzieren? *Fixed.* - [x] Hatten wir nicht eine Variante von `anchorCell`, welche automatisch prüft, ob der Nutzer den Link anschauen darf und falls nein, den Link unterdrückt? **Antwort:** `linkEitherCell` - [x] Anwendung von Funktionen wie `Text.isPrefixOf` oder `Text.stripPrefix` auf `CI Text` mit `CI.map`/`CI.original`/`CI.mk` ist problematisch, da das Prefix dann nur Case-Sensitiv entfernt wird. Haben wir da eine bessere Lösung für? *Workaround: mit folded case Arbeiten* - [x] Die Applikation ist wieder oft abgestürzt, dieses Mal in der Nacht. Dadurch gabe es zahlreiche Probleme mit den Schnittstellen, weil Erfolgsmeldungen nicht durchkamen. Ich denke wir müssen unbedingt eine Version mit DebugTrace zum laufen bringen. Die Probleme werden immer schlimmer, Details siehe #40 *Sarah & Gregor schauen nochmal* - [x] Log-Probleme [LogMeldungenJuni2023.csv](/uploads/ec80c48b837227fd0d0048f1484c86bb/LogMeldungenJuni2023.csv) - [x] Fall Bakanov: Fehler war, dass Spalte ldap_primary_key einen doppelten Wert enthielt. Warum hier keine Uniqueness? Wie in Zukunft verhindern? Unterschied in Aufrufen war `upsertCampusUser (UpsertCampusUserLdapSync upsertIdent)` und `upsertCampusUser UpsertCampusUserGuessUser ldapResponse`. **UniquenessConstraint** einführen! - [x] `Handler.Utils.Users.hs` Aufrufe von `insertSelectWithConflict` die in der Update-Klausel den Conflict nicht updaten? Beispiel Zeile 833ff Warum nicht auch `QualificationuserUser E.=. E.val newUserId`? Es wird in ähnlichen Code-Snippets dort auch nicht gemacht, aber ist das nicht falsch? - [x] Verwendung der Fraport Schriftart #82 - [x] Modellierung Blocked durch eigene Tabelle: Wie effizient aktuellen Block feststellen? Redundant in QualificatioUser speichern? Mit einfach View arbeiten [siehe cookbook](https://github.com/yesodweb/yesod-cookbook/blob/master/cookbook/Database-Views-and-Non-Migrated-Entities.md)? **Lieber mit verschachtelten `E.notExists` arbeiten** ``` SELECT DISTINCT ON (qualification_user) * ORDER BY qualification_user, date DESC ; ```
jost commented 2023-06-16 17:02:52 +02:00 (Migrated from gitlab.uniworx.de)
  • Neuer Zweig wird auf Server nicht mehr kompiliert?
  • #77 diskutieren
  • #7 diskutieren
  • Config Dateien prod/test noch mal prüfen: job-flush-interval fehlte beim job-worker. Offenbar zeigt metrics nur die Werte des Webservers an; wozu braucht der Webserver aber dann überhaupt 2 Job-Worker? Antwort: Nur einen job-worker starten, job-flush mal erhöhen, weil buggy, z.B. 604800 (= 1 Woche)
  • Beste Art sicherzustellen, dass immer nur ein AvsJob aktiv ist? List der Jobs in Job Element? Eigene Tabelle und ein Unique AvsJob? (Avs Anfragen sind langsam) Antwort: Eigene Tabelle, 2 Jobs im Wechsel
  • Nach test/build gibt es immmer noch .stack-work-build aber kein .stack-work-test; d.h. Rückumbenennung schlägt fehl, hatte ich jetzt schon > 3x Ich sehe aber keinen Fehler im script.
  • VSCode wrong git login jost@tcs, e.g. see 54f902a83b
  • mehrere Instanzen: doppelte Jobs? Antwort: Es sollte nur ein Jobworker-Server laufen, mit einer Crontab
  • Benachrichtigung trotz Deaktivierung versendet (2. Reminder): Antwort: JobSendNotification prüft die Settings nicht mehr, das macht nur JobQueueNotification. Anpassen!
- [x] Neuer Zweig wird auf Server nicht mehr kompiliert? - [x] #77 diskutieren - [x] #7 diskutieren - [x] Config Dateien prod/test noch mal prüfen: `job-flush-interval` fehlte beim job-worker. Offenbar zeigt metrics nur die Werte des Webservers an; wozu braucht der Webserver aber dann überhaupt 2 Job-Worker? **Antwort:** Nur einen job-worker starten, job-flush mal erhöhen, weil buggy, z.B. 604800 (= 1 Woche) - [x] Beste Art sicherzustellen, dass immer nur ein AvsJob aktiv ist? List der Jobs in Job Element? Eigene Tabelle und ein Unique AvsJob? (Avs Anfragen sind langsam) **Antwort:** Eigene Tabelle, 2 Jobs im Wechsel - [x] Nach test/build gibt es immmer noch `.stack-work-build` aber kein `.stack-work-test`; d.h. Rückumbenennung schlägt fehl, hatte ich jetzt schon > 3x Ich sehe aber keinen Fehler im script. - [ ] VSCode wrong git login jost@tcs, e.g. see 54f902a83b4283a4975b381de41d446a5caf29d2 - [x] mehrere Instanzen: doppelte Jobs? **Antwort:** Es sollte nur ein Jobworker-Server laufen, mit einer Crontab - [x] Benachrichtigung trotz Deaktivierung versendet (2. Reminder): **Antwort:** `JobSendNotification` prüft die Settings nicht mehr, das macht nur `JobQueueNotification`. Anpassen!
jost commented 2023-06-29 13:21:55 +02:00 (Migrated from gitlab.uniworx.de)
  • Refactor dispatchJobSynchroniseAvs using putMany with conduit
  • Race conditions dispatchJobSynchroniseAvsQueue: Es ist immer noch nicht ausgeschlossen, dass mehrere AvsSynch Jobs laufen. TVar? Kann es auch zum erliegen kommen?
  • Rückbenennung .stack-work-test schlägt fehl, wenn es zu einem Kompilierfehler kommt
- [x] Refactor `dispatchJobSynchroniseAvs` using `putMany` with `conduit` - [x] Race conditions `dispatchJobSynchroniseAvsQueue`: Es ist immer noch nicht ausgeschlossen, dass mehrere AvsSynch Jobs laufen. `TVar`? Kann es auch zum erliegen kommen? - [ ] Rückbenennung .stack-work-test schlägt fehl, wenn es zu einem Kompilierfehler kommt
jost commented 2023-07-10 13:14:00 +02:00 (Migrated from gitlab.uniworx.de)
  • Call to Prelude.undefined: Problem besteht weiterhin nach Update zu runDB:
    image
  • HealthR liefert ständig 500 ohne erkennbaren Grund im Log.
    Antwort: Browser ignorieren den Status Code und zeigen Html trotzdem an. Ursache war der fehlgeschlagene _appHealthCheckHTTP. Diese liveness-probe durch einen Jobworker ist unnötig, wenn Kubernetes-eigene liveness zur Verfügung steht.
  • Durchgehen aller Health-Checks und prüfen, ob diese für Liveness sinnvoll sind oder nicht! (Liveness: Container neu starten, wenn es mehrfach hintereinander fehlschlägt.)
  • Model.Types.Health.healthReportStatus: abgeschaltet HealthDoesFlush wird als Fehler gewertet?! A: war Fehler, auch in Uni2work
  • 504 Timeout auf /health auf QA. Siehe inzwischen auch #97
  • liveness job-worker?
  • Tests für Druck/Benachrichtigung schreiben?
- [x] Call to `Prelude.undefined`: Problem besteht weiterhin nach Update zu `runDB`: ![image](/uploads/b8143abe36033dfbb6f6b9aef13e71ba/image.png) - [x] HealthR liefert ständig 500 ohne erkennbaren Grund im Log. **Antwort:** Browser ignorieren den Status Code und zeigen Html trotzdem an. Ursache war der fehlgeschlagene _appHealthCheckHTTP. Diese liveness-probe durch einen Jobworker ist unnötig, wenn Kubernetes-eigene liveness zur Verfügung steht. - [x] Durchgehen aller Health-Checks und prüfen, ob diese für Liveness sinnvoll sind oder nicht! (Liveness: Container neu starten, wenn es mehrfach hintereinander fehlschlägt.) - [x] `Model.Types.Health.healthReportStatus`: abgeschaltet HealthDoesFlush wird als Fehler gewertet?! **A:** war Fehler, auch in Uni2work - [ ] 504 Timeout auf `/health` auf QA. Siehe inzwischen auch #97 - [ ] liveness job-worker? - [ ] Tests für Druck/Benachrichtigung schreiben?
jost commented 2023-07-21 09:52:25 +02:00 (Migrated from gitlab.uniworx.de)
  • Einfügen einer Bild-Datei einer Unterschrift für LaTeX im OpenSource Projekt A: secret file in kubernetes einschleusen
  • Sollte bei der Migration der Job-Worker später starten A: Kein Problem; Web-Server zuerst
  • Tabelle "user" umbenennen? A: Zu Aufwändig! Migration könnte Tage dauern. Vielleicht bei Spaltung?
  • qualification-check-hour: Jobs nicht in Crontab? A: Wird nur 1x pro 12h ausgeführt; Wochenende abwarten
  • LMS State - modelling questions
- [x] Einfügen einer Bild-Datei einer Unterschrift für LaTeX im OpenSource Projekt **A:** secret file in kubernetes einschleusen - [x] Sollte bei der Migration der Job-Worker später starten **A:** Kein Problem; Web-Server zuerst - [x] Tabelle "user" umbenennen? **A:** Zu Aufwändig! Migration könnte Tage dauern. Vielleicht bei Spaltung? - [x] qualification-check-hour: Jobs nicht in Crontab? **A:** Wird nur 1x pro 12h ausgeführt; Wochenende abwarten - [x] LMS State - modelling questions
jost commented 2023-07-24 15:13:13 +02:00 (Migrated from gitlab.uniworx.de)
  • #111 und überhaupt ständig Neustarts in aktueller Version. Vielleicht ein Problem mit DB?
  • #110 Wird offenbar doch ausgeführt, aber erscheint nirgends im Log
  • Im Hauptverzeichnis: git checkout master; npm run build schlägt fehl, weil immer noch nach einer Datei aus dem Branch gesucht wird - und das vor der eigentlich Kompilation. exit-develop/develop und stack clean --full konnten das Problem nicht beheben.
  • Nutzloses $logDebugS ersetzen? Meist interessiert ja nur ein spezielles Debug-Level. Oder ein Level zwischen Info und Warn einziehen? Was ist üblich?
  • LDAP Error Code 0x80090346
  • Einfacher weg Ribbon für Test-Branch zu setzen?
- [x] #111 und überhaupt ständig Neustarts in aktueller Version. Vielleicht ein Problem mit DB? - [x] #110 Wird offenbar doch ausgeführt, aber erscheint nirgends im Log - [x] Im Hauptverzeichnis: `git checkout master; npm run build` schlägt fehl, weil immer noch nach einer Datei aus dem Branch gesucht wird - und das vor der eigentlich Kompilation. exit-develop/develop und `stack clean --full` konnten das Problem nicht beheben. - [x] Nutzloses `$logDebugS` ersetzen? Meist interessiert ja nur ein spezielles Debug-Level. Oder ein Level zwischen Info und Warn einziehen? Was ist üblich? - [x] LDAP Error Code 0x80090346 - [ ] Einfacher weg Ribbon für Test-Branch zu setzen?
jost commented 2023-08-30 11:14:24 +02:00 (Migrated from gitlab.uniworx.de)
  • LMS Seite: Status Filter funktioniert nicht; könnte es an einem fehlenden Just liegen? Wenn ja, warum typisiert es trotzdem?
  • Enqueue-Knopf LMS: Wurde die Routine wirklich ausgeführt oder verschluckt? A: Am besten kontrollierbar über das Log!
  • Meldung Reason code: Canceled on identification as a pivot, during write.; Was tun? A: Deutet auf gecancellte DB Jobs hin
  • Commits auf anderen Zweigen lösen keine Kompilation aus, z.B. auf test
  • Warnung cabal was generated with newer version of hpack
  • Verzögerter Worker start?
- [x] LMS Seite: Status Filter funktioniert nicht; könnte es an einem fehlenden `Just` liegen? Wenn ja, warum typisiert es trotzdem? - [x] Enqueue-Knopf LMS: Wurde die Routine wirklich ausgeführt oder verschluckt? **A:** Am besten kontrollierbar über das Log! - [x] Meldung `Reason code: Canceled on identification as a pivot, during write.;` Was tun? **A:** Deutet auf gecancellte DB Jobs hin - [x] Commits auf anderen Zweigen lösen keine Kompilation aus, z.B. auf `test` - [x] Warnung cabal was generated with newer version of hpack - [x] Verzögerter Worker start?
jost commented 2023-08-31 16:38:46 +02:00 (Migrated from gitlab.uniworx.de)
  • Funktionieren alle Zugriffe/Berechtigungen? NEIN Es fehlt: Zugriff auf Log via Azure Portal LogAnalytics funktionert nicht auf Ressource "aks-prod" und nicht auf "aks-test"; Zugriff auf DB (unklar mit welchem Tool)?; Kein Zugriff auf DevOps Git Repos Images?
  • Die Bestätigung der PrintJobs lief öfters in einen TimeOut, also wird die Anfrage nun in die DB gespeichert und später bearbeitet. Bei der späteren Bearbeitung bin ich mir unschlüssig, was besser wäre: so wie es jetzt ist mit chained calls to dispatchJobPrintAckAgain oder lieber in dispatchJobPrintAck einfach die Schleife in der Handler-Monade laufen lassen und die einzelnen Schritte mit kurzen runDBs abwickeln? Ein riesiges runDB könnte ja die Applikation lahm legen. Große runDBs zerlegen.
  • Beobachtung zur doppelten Kompilation: npm run test und danach gleich npm run lint verursachte erneute Kompilation, obwohl Verzeichniswechsel mit .stack-work-test erfolgreich durchgeführt wurde. Als Kompiliergrund wurde "HPC flags changed" angegeben. Hilft das vielleicht weiter? Nach Abschluss wird .stack-work oft nicht zurück in .stack-work-test umbenannt. A: bekanntes Problem, insbesondere bei Ctrl-C
  • 413 Request Entity too large bei Upload LMS Report Test mit <8050 Zeilen / 110kB über das CSV Import Tool A: wird geworfen bei nginx, entweder config client_max_body_size anpassen
  • Multi-Filter mit cfCommaSeparatedSet scheitert leider an PathPiece (Set a). Wie korrigieren? *Implementierte Lösung per E.mkContainsFilterWithComma schön? Schließlich wäre textField ja zwingend notwendig und cfCommaSeparatedSet wäre stimmiger. A: Refactor und PathPiece (Set a) Instanz ableiten!
  • Dateien im Wiki finden? Wo ist die Release Procedure? (Fehler besagt, dass die Datei schon existiert - aber wo?)
  • Modellierung QualificationUser und QualificationUserBlock ist doch eigentlich Mist. Wie besser machen, um allgemein eine Historie und Kommentare zu haben?
  • Stand Schrift & Crontab?
- [ ] Funktionieren alle Zugriffe/Berechtigungen? **NEIN** Es fehlt: Zugriff auf Log via Azure Portal LogAnalytics funktionert nicht auf Ressource "aks-prod" und nicht auf "aks-test"; Zugriff auf DB (unklar mit welchem Tool)?; Kein Zugriff auf DevOps Git Repos Images? - [x] Die Bestätigung der PrintJobs lief öfters in einen TimeOut, also wird die Anfrage nun in die DB gespeichert und später bearbeitet. Bei der späteren Bearbeitung bin ich mir unschlüssig, was besser wäre: so wie es jetzt ist mit chained calls to `dispatchJobPrintAckAgain` oder lieber in `dispatchJobPrintAck` einfach die Schleife in der Handler-Monade laufen lassen und die einzelnen Schritte mit kurzen `runDB`s abwickeln? Ein riesiges `runDB` könnte ja die Applikation lahm legen. Große runDBs zerlegen. - [x] Beobachtung zur doppelten Kompilation: `npm run test` und danach gleich `npm run lint` verursachte erneute Kompilation, obwohl Verzeichniswechsel mit `.stack-work-test` erfolgreich durchgeführt wurde. Als Kompiliergrund wurde "HPC flags changed" angegeben. Hilft das vielleicht weiter? Nach Abschluss wird `.stack-work` oft nicht zurück in `.stack-work-test` umbenannt. **A:** bekanntes Problem, insbesondere bei Ctrl-C - [ ] **413 Request Entity too large** bei Upload LMS Report Test mit <8050 Zeilen / 110kB über das CSV Import Tool **A:** wird geworfen bei nginx, entweder config `client_max_body_size` anpassen - [x] Multi-Filter mit `cfCommaSeparatedSet` scheitert leider an `PathPiece (Set a)`. Wie korrigieren? *Implementierte Lösung per `E.mkContainsFilterWithComma` schön? Schließlich wäre `textField` ja zwingend notwendig und cfCommaSeparatedSet wäre stimmiger. **A:** Refactor und `PathPiece (Set a)` Instanz ableiten! - [x] Dateien im Wiki finden? Wo ist die Release Procedure? (Fehler besagt, dass die Datei schon existiert - aber wo?) - [x] Modellierung `QualificationUser` und `QualificationUserBlock` ist doch eigentlich Mist. Wie besser machen, um allgemein eine Historie und Kommentare zu haben? - [x] Stand Schrift & Crontab?
jost commented 2023-09-07 12:28:42 +02:00 (Migrated from gitlab.uniworx.de)
  • Server quälend langsam, offenbar weil Swap voll ist laut htop (100GB/119GB)
  • FilterUI: setTooltip wird inline angezeigt, was bei den Hinweisen zu CommaPlus-Filtern schnell hässlich wird, siehe test:PrintCenterR. Hier wäre ein Tooltip mit einem festen Icon besser, welches man mit iconTooltip oder messageTooltip erzeugen könnte, aber die FieldSettings erlauben keine Widgets?!
  • Richtiger Umgang mit temporären Commits wie dfa96c7f3e
  • Möglichkeit einen Compilation/Release über Web-Oberfläche oder Smartphone zu starten?
  • Modellierung von Qualification Abhängigkeiten: Vielleicht nur einmal am Tag in Job prüfen und sperren anstatt mit exists zu arbeiten? Modellierung mit Liste ist viellicht ineffizient? Was ist mit Transitivität bei mehreren Abhängigkeiten? Hier könnten rekursive CTEs helfen, welche durch https://hackage.haskell.org/package/esqueleto-3.5.10.3/docs/Database-Esqueleto-Experimental-From-CommonTableExpression.html ermöglicht werden
  • Merge problem mit relase test/master
  • Unterschiede npm run release für test und master im Ergebnis? Kann ein test-Container notfalls für Prod verwendet werden?
  • Build-Probleme:
    1. NIX_BUILD_CORES
    2. uniworx.cabal not updated im Rollout-Verzeichnes, Release scheitert
- [x] Server quälend langsam, offenbar weil Swap voll ist laut htop (100GB/119GB) - [x] FilterUI: `setTooltip` wird inline angezeigt, was bei den Hinweisen zu CommaPlus-Filtern schnell hässlich wird, siehe test:`PrintCenterR`. Hier wäre ein Tooltip mit einem festen Icon besser, welches man mit `iconTooltip` oder `messageTooltip` erzeugen könnte, aber die FieldSettings erlauben keine Widgets?! - [x] Richtiger Umgang mit temporären Commits wie dfa96c7f3eb061590aa9fff1bd2d4c177c00aaa1 - [x] Möglichkeit einen Compilation/Release über Web-Oberfläche oder Smartphone zu starten? - [x] Modellierung von Qualification Abhängigkeiten: Vielleicht nur einmal am Tag in Job prüfen und sperren anstatt mit exists zu arbeiten? Modellierung mit Liste ist viellicht ineffizient? Was ist mit Transitivität bei mehreren Abhängigkeiten? Hier könnten rekursive CTEs helfen, welche durch https://hackage.haskell.org/package/esqueleto-3.5.10.3/docs/Database-Esqueleto-Experimental-From-CommonTableExpression.html ermöglicht werden - [x] Merge problem mit relase test/master - [x] Unterschiede `npm run release` für `test` und `master` im Ergebnis? Kann ein test-Container notfalls für Prod verwendet werden? - [x] Build-Probleme: 1. `NIX_BUILD_CORES` 2. uniworx.cabal not updated im Rollout-Verzeichnes, Release scheitert
jost commented 2023-09-20 16:49:57 +02:00 (Migrated from gitlab.uniworx.de)

image

Momentan warte ich über 15min für eine kleine Änderung an einem Handler, der 463 von 464 ist, d.h. nur 2 Module müssen kompiliert werden. 😞

![image](/uploads/11a5611bd36672fe539e9ef24d885d52/image.png) Momentan warte ich über 15min für eine kleine Änderung an einem Handler, der 463 von 464 ist, d.h. nur 2 Module müssen kompiliert werden. :disappointed:
jost commented 2023-09-27 17:00:52 +02:00 (Migrated from gitlab.uniworx.de)
  • Refactoring Handler.Utils.Qualification.quserToNotify: einfach zu kompliziert. Gültigkeit und letzes Änderungsdatum doch lieber direkt in QualificationUserspeichern? Redundant, aber viel einfacherer Abfragen und weniger Fehlerpotential im Code; dafür möglicherweise Inkonsistenz in der DB? Dabei auch Erst-Erteilung und Ablauf Zeit als QBlock eintragen und Datentypen vereinfachen.
  • Bild-Dateien für LaTeX in DB speichern (wg. #73) LaTeX/MD Dateien und Bilder in die DB legen
  • Workflow to merge between test and master?
* [x] Refactoring `Handler.Utils.Qualification.quserToNotify`: einfach zu kompliziert. Gültigkeit und letzes Änderungsdatum doch lieber direkt in `QualificationUser`speichern? Redundant, aber viel einfacherer Abfragen und weniger Fehlerpotential im Code; dafür möglicherweise Inkonsistenz in der DB? Dabei auch Erst-Erteilung und Ablauf Zeit als QBlock eintragen und Datentypen vereinfachen. * [x] Bild-Dateien für LaTeX in DB speichern (wg. #73) LaTeX/MD Dateien und Bilder in die DB legen * [x] Workflow to merge between test and master?
jost commented 2023-10-09 11:10:04 +02:00 (Migrated from gitlab.uniworx.de)
  • Email Francesco wegen NodeJS SV:NodeJS SJ:Memcached/Minio
  • Suche während dem Tippen überall abschalten - viel zu langsam; evtl. Knopf zum Suchen bei mehreren Feldern SV/DM macht das
  • Teilnehmer zu Kurs hinzufügen: Trotz Abbruch werden Personen hinzugefügt (course-register-abort): Issue wird angelegt
  • Pagination: next/previous page chunk; siehe auch filter & pagination #23
  • @jost Kursdefault Bezeichnung yy_mm_dd
  • QuickCheck for Handler.SAP``.compileBlocks
  • @jost Problemübersicht: F automatisieren, ausser Rückgabe Firma; Änderung möglichst sofort zum AVS live, aber nur zu BüKo keine Feiertage: SB: hat notiert
  • CronJob mit Werktag/Feiertag; Einstellung und mit Prioritäten Prio werden vorhanden
  • uniworx.cabal manuell anpassen für neue Module bei Branch-Wechsel? Ging das bisher nicht automatisch?
  • lokaler Build
* [x] Email Francesco wegen NodeJS **SV:NodeJS SJ:Memcached/Minio** * [x] Suche während dem Tippen überall abschalten - viel zu langsam; evtl. Knopf zum Suchen bei mehreren Feldern **SV/DM** macht das * [x] Teilnehmer zu Kurs hinzufügen: Trotz Abbruch werden Personen hinzugefügt (course-register-abort): **Issue wird angelegt** * [x] Pagination: next/previous page chunk; siehe auch filter & pagination #23 * [x] @jost Kursdefault Bezeichnung yy_mm_dd * [x] QuickCheck for `Handler.SAP``.compileBlocks` * [x] @jost Problemübersicht: F automatisieren, ausser Rückgabe Firma; Änderung möglichst sofort zum AVS live, aber nur zu BüKo keine Feiertage: **SB: hat notiert** * [x] CronJob mit Werktag/Feiertag; Einstellung und mit Prioritäten **Prio werden vorhanden** * [x] `uniworx.cabal` manuell anpassen für neue Module bei Branch-Wechsel? Ging das bisher nicht automatisch? * [x] lokaler Build
jost commented 2023-10-17 10:03:08 +02:00 (Migrated from gitlab.uniworx.de)
  • Benutzung der Web IDE? A: (Terminal fehlt noch)
  • SSH Zugang srv01 einrichten: Local->git(push) geht nicht (token notwendig) A: checkout nicht über https! ssh key in gitlab profil ablegen.
  • SSH Zugang srv01 einrichten: ssh handy terminal? A: ssh-key generieren und ablegen
  • Mehrere DBCell zusammenwerfen, wenn es ein Formular gibt?
  • Einrichten Firmen Benachrichtigung analog Kursmitteilung
  • Routenbedingung !loggedin ? A: einfach requireAuthId verwenden
  • dbTable kompiliert mal wieder nicht
* [x] Benutzung der Web IDE? **A:** (Terminal fehlt noch) * [x] SSH Zugang srv01 einrichten: Local->git(push) geht nicht (token notwendig) **A:** checkout nicht über https! ssh key in gitlab profil ablegen. * [ ] SSH Zugang srv01 einrichten: ssh handy terminal? **A:** ssh-key generieren und ablegen * [x] Mehrere DBCell zusammenwerfen, wenn es ein Formular gibt? * [ ] Einrichten Firmen Benachrichtigung analog Kursmitteilung * [x] Routenbedingung !loggedin ? **A:** einfach requireAuthId verwenden * [x] dbTable kompiliert mal wieder nicht
jost commented 2023-10-27 13:11:28 +02:00 (Migrated from gitlab.uniworx.de)
  • Langsame DB Table in Prod: Welche Spalte verursacht die größte Last?
  • Lokales npm run start schlägt immer mal wieder wegen fehlender Port Nummer fehl. Yesod-Devel-Ladebildschirm ist aber sichtbat. PORT_OFFSET ist auf 752 gesetzt. exit und develop löst es meistens.
Success! Waiting for next file change.
Type help for available commands. Press enter to force a rebuild.
devel.hs: Could not convert to expected type: Error in $.smtp.port: parsing PortNumber failed, expected Number, but encountered Null
CallStack (from HasCallStack):
  error, called at src/Data/Yaml/Config.hs:199:19 in yaml-0.11.5.0-IvuQqwpyuhfExmdJwwQ88E:Data.Yaml.Config
Unexpected: child process exited with ExitFailure 1
Trying again
devel.hs: Could not convert to expected type: Error in $.smtp.port: parsing PortNumber failed, expected Number, but encountered Null
CallStack (from HasCallStack):
  error, called at src/Data/Yaml/Config.hs:199:19 in yaml-0.11.5.0-IvuQqwpyuhfExmdJwwQ88E:Data.Yaml.Config
Unexpected: child process exited with ExitFailure 1
Trying again
devel.hs: Could not convert to expected type: Error in $.smtp.port: parsing PortNumber failed, expected Number, but encountered Null
CallStack (from HasCallStack):
  error, called at src/Data/Yaml/Config.hs:199:19 in yaml-0.11.5.0-IvuQqwpyuhfExmdJwwQ88E:Data.Yaml.Config
Unexpected: child process exited with ExitFailure 1
Trying again
devel.hs: Could not convert to expected type: Error in $.smtp.port: parsing PortNumber failed, expected Number, but encountered Null
CallStack (from HasCallStack):
  error, called at src/Data/Yaml/Config.hs:199:19 in yaml-0.11.5.0-IvuQqwpyuhfExmdJwwQ88E:Data.Yaml.Config
Unexpected: child process exited with ExitFailure 1
Trying again
- [x] Langsame DB Table in Prod: Welche Spalte verursacht die größte Last? - [x] Lokales `npm run start` schlägt immer mal wieder wegen fehlender Port Nummer fehl. Yesod-Devel-Ladebildschirm ist aber sichtbat. PORT_OFFSET ist auf 752 gesetzt. `exit` und `develop` löst es meistens. ```Registering library for uniworx-27.4.45.. Success! Waiting for next file change. Type help for available commands. Press enter to force a rebuild. devel.hs: Could not convert to expected type: Error in $.smtp.port: parsing PortNumber failed, expected Number, but encountered Null CallStack (from HasCallStack): error, called at src/Data/Yaml/Config.hs:199:19 in yaml-0.11.5.0-IvuQqwpyuhfExmdJwwQ88E:Data.Yaml.Config Unexpected: child process exited with ExitFailure 1 Trying again devel.hs: Could not convert to expected type: Error in $.smtp.port: parsing PortNumber failed, expected Number, but encountered Null CallStack (from HasCallStack): error, called at src/Data/Yaml/Config.hs:199:19 in yaml-0.11.5.0-IvuQqwpyuhfExmdJwwQ88E:Data.Yaml.Config Unexpected: child process exited with ExitFailure 1 Trying again devel.hs: Could not convert to expected type: Error in $.smtp.port: parsing PortNumber failed, expected Number, but encountered Null CallStack (from HasCallStack): error, called at src/Data/Yaml/Config.hs:199:19 in yaml-0.11.5.0-IvuQqwpyuhfExmdJwwQ88E:Data.Yaml.Config Unexpected: child process exited with ExitFailure 1 Trying again devel.hs: Could not convert to expected type: Error in $.smtp.port: parsing PortNumber failed, expected Number, but encountered Null CallStack (from HasCallStack): error, called at src/Data/Yaml/Config.hs:199:19 in yaml-0.11.5.0-IvuQqwpyuhfExmdJwwQ88E:Data.Yaml.Config Unexpected: child process exited with ExitFailure 1 Trying again ```
jost commented 2023-11-03 12:18:09 +01:00 (Migrated from gitlab.uniworx.de)
  • Stand NodeJS Entfernung Container #128 A: Angebot ist in Bearbeitung
  • Pipeline Status? Geht der Build wieder?
  • Simultaneous release master and test: fix-commits to master and chore-commits to branch: which workflow would be right? What about test-changes only: e4883c62d0 I lost track which changes are where. 😞
  • nix-shell: ghcup not found?
  • userField vs userOptionsList? A: sollte klar sein, nur CryptoUUIDs verwenden
  • commR Route verwenden
* [x] Stand NodeJS Entfernung Container #128 **A:** Angebot ist in Bearbeitung * [x] Pipeline Status? Geht der Build wieder? * [x] Simultaneous release master and test: fix-commits to master and chore-commits to branch: which workflow would be right? What about test-changes only: e4883c62d0e3bc09fd7d0c25ebd024807f35bd46 I lost track which changes are where. :disappointed: * [x] nix-shell: `ghcup` not found? * [x] `userField` vs userOptionsList? **A:** sollte klar sein, nur CryptoUUIDs verwenden * [x] `commR` Route verwenden
jost commented 2023-11-06 17:53:29 +01:00 (Migrated from gitlab.uniworx.de)
  • Angebote 1(Wartung 2023), 2(Wartung)?, 3(Features)? F: Was ist bei Fehleinschätzungen?

  • Stand Schriftart? A: Absehbar;

  • Stand NodeJS? A: Kein Auftrag, keine Kekse

  • Filterung/Sortierung https://fradrive-t.apps.fra.fraport.de/firm ist viel zu langsam; was könnte man tun? A: SQL Index anlegen

  • setUltDest / redirectUltDest benutzbar? Warum nicht benutzt bei Messaging? Login hat doch so einen Mechanismus?

  • Course/Firm Communication: Interpolation von Firmennamen, Empfängernamen in Nutzer Nachricht? A: Eigenes Issue mit Pandoc Interpolation aufmachen.

  • FirmCommunication Error: Wie diesen Fehler identifizieren?

    Data.MonoTraversable.headEx: empty CallStack (from HasCallStack): error, called at src/Data/MonoTraversable.hs:397:28 in mono-traversable-1.0.15.1-Ay84K4Vm7262lFNjIXRjRp:Data.MonoTraversable

* [x] Angebote 1(Wartung 2023), 2(Wartung)?, 3(Features)? **F:** Was ist bei Fehleinschätzungen? * [x] Stand Schriftart? **A:** Absehbar; * [x] Stand NodeJS? **A:** Kein Auftrag, keine Kekse * [x] Filterung/Sortierung https://fradrive-t.apps.fra.fraport.de/firm ist viel zu langsam; was könnte man tun? **A:** SQL Index anlegen * [x] `setUltDest` / `redirectUltDest` benutzbar? Warum nicht benutzt bei Messaging? Login hat doch so einen Mechanismus? * [ ] Course/Firm Communication: Interpolation von Firmennamen, Empfängernamen in Nutzer Nachricht? **A:** Eigenes Issue mit Pandoc Interpolation aufmachen. * [x] FirmCommunication Error: Wie diesen Fehler identifizieren? `Data.MonoTraversable.headEx: empty CallStack (from HasCallStack): error, called at src/Data/MonoTraversable.hs:397:28 in mono-traversable-1.0.15.1-Ay84K4Vm7262lFNjIXRjRp:Data.MonoTraversable`
jost commented 2023-11-16 18:15:37 +01:00 (Migrated from gitlab.uniworx.de)
  • src/Firm.hs: Wie Filter "supervisor-is" and/or "supervisors-are" fehlerfrei implementieren? multiSelectField-Beispiel im Filter gesucht A: Kein Beispiel, konnte aber implementiert werden
  • UserNotificationSettings wieso sehe ich da oft {} in der DB? Wann wird der Default eingetragen? A: Default wird benutzt
  • Leichtester Weg eine konfigurierbare Default-CC Email in Handler.Utils.Communication.commR als zusätzliche Auswahl anzubieten?
  • Unterschied memcachedHere und cachedHereBy. Was verwenden in Handler.Utils.Table.Cells.cellEditUserModalund cellHasUserModal? A: nicht so einfach; access nicht per memcached speichern - Sicherheitsrisiko; cachedHereBy hilft eher nicht
  • Form mit SelectField für die Aktion: A: siehe multiActionA
  • Ausblenden einer Section: A: siehe firm-users.hamlet
* [x] src/Firm.hs: Wie Filter "supervisor-is" and/or "supervisors-are" fehlerfrei implementieren? `multiSelectField`-Beispiel im Filter gesucht **A:** Kein Beispiel, konnte aber implementiert werden * [x] `UserNotificationSettings` wieso sehe ich da oft `{}` in der DB? Wann wird der Default eingetragen? **A:** Default wird benutzt * [x] Leichtester Weg eine konfigurierbare Default-CC Email in `Handler.Utils.Communication.commR` als zusätzliche Auswahl anzubieten? * [x] Unterschied `memcachedHere` und `cachedHereBy`. Was verwenden in `Handler.Utils.Table.Cells.cellEditUserModal`und `cellHasUserModal`? **A:** nicht so einfach; access nicht per memcached speichern - Sicherheitsrisiko; `cachedHereBy` hilft eher nicht * [x] Form mit SelectField für die Aktion: **A:** siehe `multiActionA` * [x] Ausblenden einer Section: **A:** siehe `firm-users.hamlet`
jost commented 2023-11-24 10:56:14 +01:00 (Migrated from gitlab.uniworx.de)
  • Wieso funktioniert das multiActionA-Form ohne apreq/apopt? Wann braucht man diese nochmal?
  • Alias killall-uni2work hat nicht funktioniert. Wie richtig? Siehe dc6079ec3b
  • SomeMessages: gute oder oder schlechte Idee?
  • Zugriffskontrolle für Supervisors in FirmActions: Beste Strategie?
- [x] Wieso funktioniert das multiActionA-Form ohne apreq/apopt? Wann braucht man diese nochmal? - [x] Alias `killall-uni2work` hat nicht funktioniert. Wie richtig? Siehe dc6079ec3b4eae32fe0e4325f958955edbcef965 - [x] `SomeMessages`: gute oder oder schlechte Idee? - [x] Zugriffskontrolle für Supervisors in FirmActions: Beste Strategie?
jost commented 2023-11-28 11:50:12 +01:00 (Migrated from gitlab.uniworx.de)
  • Benutzer eine Fehlermeldung anzeigen, wenn ein Modal-Link wegen mangelnder Berechtigung nicht lädt. Momentan öffnet sich nur ein leeres Modal. Prüfung der Links vorab scheint sehr Performance-Intensiv und daher nicht möglich. Zugriffsberechtigungen besser cachen?
  • Absturz aus unbekanntem Grund siehe #133
  • Test: Könnte @savau FRADrive neustarten?! Nein- Issue
  • Benutzerdaten Gitlab Löschung automatisierbar?
  • OAuth2
  • Interfaces: Tabelle mit Datum - oder lieber Audit Log durchsuchen? A: Kann über Grafana angezeigt werden
  • ghcup fehlt immer noch zur Kommandezeileenvervollständigung
* [x] Benutzer eine Fehlermeldung anzeigen, wenn ein Modal-Link wegen mangelnder Berechtigung nicht lädt. Momentan öffnet sich nur ein leeres Modal. Prüfung der Links vorab scheint sehr Performance-Intensiv und daher nicht möglich. Zugriffsberechtigungen besser cachen? * [ ] Absturz aus unbekanntem Grund siehe #133 * [x] Test: Könnte @savau FRADrive neustarten?! Nein- Issue * [x] Benutzerdaten Gitlab Löschung automatisierbar? * [x] OAuth2 * [x] Interfaces: Tabelle mit Datum - oder lieber Audit Log durchsuchen? **A:** Kann über Grafana angezeigt werden * [x] ghcup fehlt immer noch zur Kommandezeileenvervollständigung
jost commented 2023-12-05 17:04:27 +01:00 (Migrated from gitlab.uniworx.de)
  • No match in record selector olOptions bei Verwendung von multiSelectField $ mkOptionListGrouped [..] Die Funktion mkOptionListGrouped wird sonst nirgends verwendet, wäre aber super-praktisch an einer Stelle in Firm.hs. In Utils.Form wird auch überall mit olOptionsGrouped hantiert. A: multiSelectField' war einfach zu implementieren.
  • Wieso wird Migration20200916ExamMode immer wieder erneut ausgeführt? Siehe #133
- [x] `No match in record selector olOptions` bei Verwendung von `multiSelectField $ mkOptionListGrouped [..]` Die Funktion `mkOptionListGrouped` wird sonst nirgends verwendet, wäre aber super-praktisch an einer Stelle in `Firm.hs`. In `Utils.Form` wird auch überall mit `olOptionsGrouped` hantiert. **A:** `multiSelectField'` war einfach zu implementieren. - [x] Wieso wird `Migration20200916ExamMode` immer wieder erneut ausgeführt? Siehe #133
jost commented 2023-12-13 11:04:11 +01:00 (Migrated from gitlab.uniworx.de)
  • Problem beim Start von 27.4.54, Version 27.4.53 lief problemlos, seitdem keine Änderungen an den Settings: 2023-12-13 10:02:09 +0000 [Info#InstanceID] 61848d06-2c75-4685-8cb5-e691fd605e25 @(uniworx-27.4.54-3nBIuxabuLXIoh9Qb77Ytk:Application src/Application.hs:260:7)

    uniworx: PersistMarshalError "Could not decode PathPiece from PersistText"

    A: geklärt, dies war nicht die Ursache für #133. Ursache war eine wiederholte Migration wegen einem JSON-Defaultwert mit einem Leerzeichen darin (siehe dort). Der oben zitierte Fehler stammte aus einem Fehlschlag der Konvertierung entfernter Migrationen von JSON zum Migration-Typ. Dies wurde nun behoben, Migrationszeilen dürfen beliebige Texte enthalten und die Konvertierung darf fehlschlagen (harmlose, denn es wird ja nur nach bekannten Migrationen gesucht)

  • /api ? Zur Automatisierung von vorhandenen Handlern

  • Ideen zur Optimierung des Firmen-Ansprechpartner Suchfilters? A: Map vorberechnen!

  • PR OAuth2?

* [x] Problem beim Start von 27.4.54, Version 27.4.53 lief problemlos, seitdem keine Änderungen an den Settings: `2023-12-13 10:02:09 +0000 [Info#InstanceID] 61848d06-2c75-4685-8cb5-e691fd605e25 @(uniworx-27.4.54-3nBIuxabuLXIoh9Qb77Ytk:Application src/Application.hs:260:7)` `uniworx: PersistMarshalError "Could not decode PathPiece from PersistText"` **A:** geklärt, dies war nicht die Ursache für #133. Ursache war eine wiederholte Migration wegen einem JSON-Defaultwert mit einem Leerzeichen darin (siehe dort). Der oben zitierte Fehler stammte aus einem Fehlschlag der Konvertierung entfernter Migrationen von JSON zum `Migration`-Typ. Dies wurde nun behoben, Migrationszeilen dürfen beliebige Texte enthalten und die Konvertierung darf fehlschlagen (harmlose, denn es wird ja nur nach bekannten Migrationen gesucht) * [x] `/api` ? Zur Automatisierung von vorhandenen Handlern * [x] Ideen zur Optimierung des Firmen-Ansprechpartner Suchfilters? **A:** Map vorberechnen! * [x] PR OAuth2?
jost commented 2024-01-04 11:03:05 +01:00 (Migrated from gitlab.uniworx.de)
  • Crontab geht E-learning de-/enqueue geht seit Jahreswechsel nicht mehr #110
  • Warum runMaybeT . hoist runDB statt runDB . runMaybeT? Der Typ ist der gleiche, könnte Rollback beeinfluss, sollte man test!
  • Verträge: Wartungsvertrag 2024 Vorlage seitens Fraport AG fehlt
  • Icon Set: Nochmal nachfragen ob in GitLab erlaubt
  • Fortschritt NodeJS - noch in Arbeit: Mitte/Ende Februar; Hotfix wäre bis Ende Januar möglich
  • Fortschritt OAuth -
  • SSH: PublicKey Edit Profile
- [x] Crontab geht E-learning de-/enqueue geht seit Jahreswechsel nicht mehr #110 - [x] Warum `runMaybeT . hoist runDB` statt `runDB . runMaybeT`? Der Typ ist der gleiche, könnte Rollback beeinfluss, sollte man test! - [x] Verträge: Wartungsvertrag 2024 Vorlage seitens Fraport AG fehlt - [x] Icon Set: Nochmal nachfragen ob in GitLab erlaubt - [x] Fortschritt NodeJS - noch in Arbeit: Mitte/Ende Februar; Hotfix wäre bis Ende Januar möglich - [x] Fortschritt OAuth - - [x] SSH: PublicKey Edit Profile
jost commented 2024-01-18 08:52:53 +01:00 (Migrated from gitlab.uniworx.de)
  • #82 Fraport-Schriftart nur für Briefe implementieren: Stand/Beauftragung? Prio: OAuth, NodeJS dann Schriften
  • Angebot Features?
  • #147 Ist meine Lösung d332c0c11a ok oder könnte durch den doppelten Aufruf von runButtonForm zufälligerweise verschiedene field ids generiert werden, so dass ein echter Confirm dann scheitern könnte?
  • #147 : Was sollte bei Abbruch passieren? Warum funktioniert [whamlet|<button onclick="history.back()">_{MsgGenericBack}|] nicht? Also es geht, aber die Formulardaten sind weg. Wie machen wir das an anderer Stelle?
  • DBTable: Post Filter abhängig von IO Action. Wie realisieren? Hintergrund: Filterung KartenID ohne Speicherung der Kartennummern, sondern Live-AVS-Abfrage der IDs. A: DBTable pre-Filter oder separates Formular mit Abfrage für Filterung in dbtQuery
  • Defaultwerte in DB Table Formular in Abhängigkeit zu einer Select-Box (Qualifikation->Ablaufdatum): A: Multiform mit identischen Teilen
  • Pipeline: Migration fail gab erst bei robots.txt eine Fehlermeldung A: hängt an Yesod interna
  • Azure-Portal: Container maintenance, siehe auch Wiki wird getestet
  • Grafana exemplarisch einrichten Rechte extern möglich? Ist in Klärung, geht nur über BüKo-PC oder VDI
  • Duplicate Index: Warum ist dieser zusätzliche Unique für SchoolKey notwendig? A: Vermutlich outdated
UniqueSchoolShorthand shorthand -- required for Normalisation of CI Text
Primary shorthand        -- newtype Key School = SchoolKey { unSchoolKey :: SchoolShorthand }
  • OAuth Mock server steht zur Verfügung; Single Sign On in Bearbeitung
- [x] #82 Fraport-Schriftart nur für Briefe implementieren: Stand/Beauftragung? Prio: OAuth, NodeJS dann Schriften - [x] Angebot Features? - [x] #147 Ist meine Lösung d332c0c11afd8b1dfe1343659f0b1626c968bbde ok oder könnte durch den doppelten Aufruf von `runButtonForm` zufälligerweise verschiedene field ids generiert werden, so dass ein echter Confirm dann scheitern könnte? - [x] #147 : Was sollte bei Abbruch passieren? Warum funktioniert `[whamlet|<button onclick="history.back()">_{MsgGenericBack}|]` nicht? Also es geht, aber die Formulardaten sind weg. Wie machen wir das an anderer Stelle? - [x] DBTable: Post Filter abhängig von IO Action. Wie realisieren? Hintergrund: Filterung KartenID ohne Speicherung der Kartennummern, sondern Live-AVS-Abfrage der IDs. **A:** DBTable pre-Filter oder separates Formular mit Abfrage für Filterung in dbtQuery - [x] Defaultwerte in DB Table Formular in Abhängigkeit zu einer Select-Box (Qualifikation->Ablaufdatum): **A:** Multiform mit identischen Teilen - [x] Pipeline: Migration fail gab erst bei robots.txt eine Fehlermeldung **A:** hängt an Yesod interna - [ ] Azure-Portal: Container maintenance, siehe auch [Wiki](https://gitlab.uniworx.de/fradrive/fradrive/-/wikis/FRADrive-%C3%9Cbersicht/Wartung-FRADrive-Containers) **wird getestet** - [ ] Grafana exemplarisch einrichten **Rechte extern möglich?** Ist in Klärung, geht nur über BüKo-PC oder VDI - [x] Duplicate Index: Warum ist dieser zusätzliche Unique für `SchoolKey` notwendig? **A:** Vermutlich outdated ``` UniqueSchoolShorthand shorthand -- required for Normalisation of CI Text Primary shorthand -- newtype Key School = SchoolKey { unSchoolKey :: SchoolShorthand } ``` - [x] OAuth Mock server steht zur Verfügung; Single Sign On in Bearbeitung
jost commented 2024-01-30 13:49:19 +01:00 (Migrated from gitlab.uniworx.de)
  • Build funktioniert nicht. Gelöst
  • Doppelte NotificationQualificationRenewal { nQualification = qid, nReminder = False } ausgeschlossen durch Jobs.Types.notifyNoQueueSame - richtig gemacht? NoQueueSame-> Value Jobs werden auch erst nach erfolgreicher Bearbeitung in einer Transaktion gelöscht
  • Jobworker war seit vielleicht 13.12. down, doch die Job-Queue war leer und die Tasks waren abgehakt, aber offenbar nicht ausgeführt.
  • Gute Idee oder nicht: Handler.Utils.Concurrent.timeoutHandler Wenn ja, warum hatten wir das nicht schon?
  • Warum hat TransactionLogInfo den generischen Typ Value obwohl für Transaction ja derivePersistFieldJSON ''Transaction definiert ist? Weil eigentlich nie ausgelesen wird? Damit neue/alte Jobs keine Probleme machen
  • /health zeigt auf fradrive-t viel mehr als auf fradrive. Warum? Z.B. smtp-check ist nur für Jobworker konfiguriert; doch das Ergebnis wird auf dem Webserver dann nicht gezeigt?! Job-Worker-Health muss im Routing eingestellt werden
  • Wie weitere Health Reports hinzufügen? erst einmal nicht notwendig
  • JobWorker-Health ausschalten?
  • deleteBy and insert_ vs upsertBy siehe Audit.hs: sollte die Id
  • Esqueleto: Debug Queries?
  • #155 Warum funktioniert Esqueleto-Code in Handler.Health.Interface nicht wie erwartet bei negativer Suche? Positiv geht es ja.
  • Erfahrungen mit Copilot und co?
- [X] Build funktioniert nicht. **Gelöst** - [x] Doppelte `NotificationQualificationRenewal { nQualification = qid, nReminder = False }` ausgeschlossen durch `Jobs.Types.notifyNoQueueSame` - richtig gemacht? **NoQueueSame-> Value** Jobs werden auch erst nach erfolgreicher Bearbeitung in einer Transaktion gelöscht - [x] Jobworker war seit vielleicht 13.12. down, doch die Job-Queue war leer und die Tasks waren abgehakt, aber offenbar nicht ausgeführt. - [x] Gute Idee oder nicht: `Handler.Utils.Concurrent.timeoutHandler` Wenn ja, warum hatten wir das nicht schon? - [x] Warum hat `TransactionLogInfo` den generischen Typ `Value` obwohl für `Transaction` ja `derivePersistFieldJSON ''Transaction` definiert ist? Weil eigentlich nie ausgelesen wird? **Damit neue/alte Jobs keine Probleme machen** - [x] `/health` zeigt auf `fradrive-t` viel mehr als auf `fradrive`. Warum? Z.B. smtp-check ist nur für Jobworker konfiguriert; doch das Ergebnis wird auf dem Webserver dann nicht gezeigt?! **Job-Worker-Health muss im Routing eingestellt werden** - [x] ~~Wie weitere Health Reports hinzufügen?~~ **erst einmal nicht notwendig** - [x] JobWorker-Health ausschalten? - [x] `deleteBy` and `insert_` vs `upsertBy` siehe `Audit.hs`: sollte die Id - [x] Esqueleto: Debug Queries? - [x] #155 Warum funktioniert Esqueleto-Code in `Handler.Health.Interface` nicht wie erwartet bei negativer Suche? Positiv geht es ja. - [x] Erfahrungen mit Copilot und co?
jost commented 2024-02-14 12:46:43 +01:00 (Migrated from gitlab.uniworx.de)
  • Nix home-manager installieren: NIX-OS installieren und konfigurieren
  • Handler.Utils.Memcached.memcachedBySet wirft einen harten Fehler, wenn Expiry==0s angegeben ist. Warum nicht einfach ohne Caching?
  • Verwendung von memcachedInvalidate
- [x] Nix home-manager installieren: **NIX-OS** installieren und konfigurieren - [x] [Handler.Utils.Memcached.memcachedBySet](../../tree/fradrive/cr3/src/Handler/Utils/Memcached.hs#L235) wirft einen harten Fehler, wenn Expiry==0s angegeben ist. Warum nicht einfach ohne Caching? - [x] Verwendung von `memcachedInvalidate`
jost commented 2024-02-27 16:58:41 +01:00 (Migrated from gitlab.uniworx.de)
  • Utils.DB.fieldLensVal: geht das besser? Das Problem ist hier, dass Database.Persist.Class.fieldLens nur eine Linse von EntityField record field => Lens' (Entity record) field bereitstellt und ich gerne eine Linse Lens' record field hätte. Diese Linse bastle ich, in dem ich zwischendurch Entity (error "nokey") rec verwende. Das ist sicher, da der Key ja gleich danach sofort wieder entfernt wird. Aber geht das nicht besser?
  • Ähnlich ist dieser Fall hier: _Just . from _CI . re _Just? (um aus Maybe Text eine Maybe (CI Text) zu machen. Da wird per Linse das Just erst entfernt, nur um es gleich wieder darin einzupacken - irgendwie sollte es doch besser gehen? A: Ein over _Just funktionierte leider nicht!
- [x] `Utils.DB.fieldLensVal`: geht das besser? Das Problem ist hier, dass `Database.Persist.Class.fieldLens` nur eine Linse von `EntityField record field => Lens' (Entity record) field` bereitstellt und ich gerne eine Linse `Lens' record field` hätte. Diese Linse bastle ich, in dem ich zwischendurch `Entity (error "nokey") rec` verwende. Das ist sicher, da der Key ja gleich danach sofort wieder entfernt wird. Aber geht das nicht besser? - [x] Ähnlich ist dieser Fall hier: `_Just . from _CI . re _Just`? (um aus `Maybe Text` eine `Maybe (CI Text)` zu machen. Da wird per Linse das Just erst entfernt, nur um es gleich wieder darin einzupacken - irgendwie sollte es doch besser gehen? **A:** Ein `over _Just` funktionierte leider nicht!
jost commented 2024-03-07 13:20:54 +01:00 (Migrated from gitlab.uniworx.de)
  • Zweig CR3 Jobs.Handler.QueueNotification.dispatchJobQueueNotification ersetze pickValidUserEmail' durch DB action getEmailAddress innerhalb des conduits? A: hoist lift erlaubt Verwendung von DB Actions
  • Zweig CR3 Handler.Utils.Communication.crJobsCourseCommunication nutzt veraltete Funktion Handler.Utils.Mail.userAddress welche nach DB geliftet werden müsste - auch innerhalb von conduit. A: gleiche Lösung wie vorherige Frage
  • Diskrepanz Build-Umgebung und Lokal: src/Utils/Avs.hs: Variable not in scope: threadDelay A: Ursache des Problems war lediglich ein übersehenes #ifdef DEVELOPMENT gewesen
  • npm update hinweise? A: Ändert sich mit der Build-Umgebung
- [x] Zweig CR3 `Jobs.Handler.QueueNotification.dispatchJobQueueNotification` ersetze `pickValidUserEmail'` durch DB action `getEmailAddress` innerhalb des conduits? **A:** `hoist lift` erlaubt Verwendung von DB Actions - [x] Zweig CR3 `Handler.Utils.Communication.crJobsCourseCommunication` nutzt veraltete Funktion `Handler.Utils.Mail.userAddress` welche nach DB geliftet werden müsste - auch innerhalb von conduit. **A:** gleiche Lösung wie vorherige Frage - [x] Diskrepanz Build-Umgebung und Lokal: `src/Utils/Avs.hs: Variable not in scope: threadDelay` **A:** Ursache des Problems war lediglich ein übersehenes `#ifdef DEVELOPMENT` gewesen - [x] npm update hinweise? **A:** Ändert sich mit der Build-Umgebung
jost commented 2024-03-13 10:59:47 +01:00 (Migrated from gitlab.uniworx.de)
  • Beim lokalen Kompilieren erhalte ich Warnung, vermutlich reset nix-env per nix-env -e '*' notwendig? Aber nix-env -q gibt unter anderem auch home-manage-path aus? Muss ich das übernehmen?
    • locale: Cannot set LC_CTYPE to default locale: No such file or directory
    • locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    • locale: Cannot set LC_ALL to default locale: No such file or directory
- [x] Beim lokalen Kompilieren erhalte ich Warnung, vermutlich reset nix-env per `nix-env -e '*'` notwendig? Aber `nix-env -q` gibt unter anderem auch `home-manage-path` aus? Muss ich das übernehmen? * ```locale: Cannot set LC_CTYPE to default locale: No such file or directory``` * ```locale: Cannot set LC_MESSAGES to default locale: No such file or directory``` * ```locale: Cannot set LC_ALL to default locale: No such file or directory```
jost commented 2024-04-10 17:31:37 +02:00 (Migrated from gitlab.uniworx.de)
  • Build-Pipeline kaputt fradrive/cr3 aus unklaren Grund. Alte Jobs sind aber auch nicht abrufbar. A: zu wenig runner
  • Wie fradrive/cr3 ausrollen? Auf test? Über master auf qa? A: Über master auf kube-qa
  • Konfigurierbare Settings außerhalb Handler: wie realisieren? Utils.Mail.fraportMailDomains in Zweig fradrive/cr3 A: Haskell ist pure
  • Automatisch Call-Graph visualisieren nix-shell -p haskellPackages.calligraphy oder nix-shell -p haskellPackages.SourceGraph liefert Fehlermeldung, also das Tool wird nicht installiert; gibt es noch andere Tools? Wie macht Ihr das? A: calligraphy geht, aber nicht unter develop und %"Phase B - Verwaltung / Ausbilder" , zB, #74 und #115
- [x] Build-Pipeline kaputt `fradrive/cr3` aus unklaren Grund. Alte Jobs sind aber auch nicht abrufbar. **A:** zu wenig runner - [x] Wie `fradrive/cr3` ausrollen? Auf `test`? Über `master` auf qa? *A:* Über `master` auf kube-qa - [x] Konfigurierbare Settings außerhalb Handler: wie realisieren? Utils.Mail.fraportMailDomains in Zweig `fradrive/cr3` **A:** Haskell ist pure - [x] Automatisch Call-Graph visualisieren `nix-shell -p haskellPackages.calligraphy` oder `nix-shell -p haskellPackages.SourceGraph` liefert Fehlermeldung, also das Tool wird nicht installiert; gibt es noch andere Tools? Wie macht Ihr das? **A:** calligraphy geht, aber nicht unter develop und %"Phase B - Verwaltung / Ausbilder" , zB, #74 und #115
jost commented 2024-04-25 17:11:09 +02:00 (Migrated from gitlab.uniworx.de)
  • Container Bau scheitert immer noch A: CEPH Probleme
  • Login auf Server zum release: Zugangsdaten verloren. A: Siehe Wiki Entwicklungsumgebung
  • zsh fehlt in develop, wird aber zum release benötigt A: Sarah korrigiert es
  • JPG-Bilder fehlen #89 und #91 usw. Beim Editieren wird das angezeigt, aber die Bilder werden wegen "Internal server error" nicht angezeigt A: CEPH Probleme
  • Entfernung von BackgroundJobs: Migration notwendig?
  • Einschätzung Einbindung Schriftart? (also Bearbeitungsdauer und direkte Lizenz) A: War unklar,
  • Angebote: Prio für %"Phase A - Inbetriebnahme" insbesondere Wochenplan (A,B,C sollen bis Ende 2024 erledigt sein) Klären: Aufgabenverteilung?
  • Button Formular in zu-Fuss-Tabelle? A: Siehe Sitzung übernehmen für ein Beispiel
  • Abrechnung April
- [x] Container Bau scheitert immer noch **A:** CEPH Probleme - [x] Login auf Server zum release: Zugangsdaten verloren. **A:** Siehe [Wiki Entwicklungsumgebung](../../wikis/Entwicklungsumgebung) - [x] `zsh` fehlt in develop, wird aber zum release benötigt **A:** Sarah korrigiert es - [x] JPG-Bilder fehlen #89 und #91 usw. Beim Editieren wird das angezeigt, aber die Bilder werden wegen "Internal server error" nicht angezeigt **A:** CEPH Probleme - [x] Entfernung von BackgroundJobs: Migration notwendig? - [x] Einschätzung Einbindung Schriftart? (also Bearbeitungsdauer und direkte Lizenz) **A:** War unklar, - [x] Angebote: Prio für %"Phase A - Inbetriebnahme" insbesondere Wochenplan (A,B,C sollen bis Ende 2024 erledigt sein) _Klären: Aufgabenverteilung?_ - [x] Button Formular in zu-Fuss-Tabelle? **A:** Siehe Sitzung übernehmen für ein Beispiel - [x] Abrechnung April
jost commented 2024-05-06 15:21:56 +02:00 (Migrated from gitlab.uniworx.de)
  • Roboto verwenden, einfachste Lösung
  • Material icons?
  • Formular AVN
- [x] Roboto verwenden, einfachste Lösung - [x] Material icons? - [x] Formular AVN
jost commented 2024-05-07 09:12:47 +02:00 (Migrated from gitlab.uniworx.de)
  • @savau Container Neustart über VDI - Azure Portal testen
  • Pipeline: Upload Container schlägt oft fehl; geht dann nach retries
- [x] @savau Container Neustart über VDI - Azure Portal testen - [x] Pipeline: Upload Container schlägt oft fehl; geht dann nach retries
jost commented 2024-06-07 13:05:45 +02:00 (Migrated from gitlab.uniworx.de)
  • Oft sehr ähnlicher Code für DBCells und Widget, z.B. companyCell und companyWidget. Konvertierung mit wgtCell wohl möglich, aber anchorCell funktioniert ja anders als simpleLink. Um duplizierten Code zu vermeiden und eine einheitliche Ausgabe von inhaltlich gleichen Teilen zu gewährleisten: Umgekehrte Konvertierung DBCell Handler () -> Widget möglich?
  • profileData.hamlet: Verwendung von iconTooltip erzeugt icons unterschiedlicher Größe - warum?
  • Widget Element in dbCell hervor heben
- [x] Oft sehr ähnlicher Code für DBCells und Widget, z.B. `companyCell` und `companyWidget`. Konvertierung mit `wgtCell` wohl möglich, aber `anchorCell` funktioniert ja anders als `simpleLink`. Um duplizierten Code zu vermeiden und eine einheitliche Ausgabe von inhaltlich gleichen Teilen zu gewährleisten: Umgekehrte Konvertierung `DBCell Handler () -> Widget` möglich? - [x] `profileData.hamlet`: Verwendung von `iconTooltip` erzeugt icons unterschiedlicher Größe - warum? - [x] Widget Element in dbCell hervor heben
jost commented 2024-06-10 18:44:28 +02:00 (Migrated from gitlab.uniworx.de)
  • zsh in Develop?
- [x] `zsh` in Develop?
jost commented 2024-06-21 10:27:49 +02:00 (Migrated from gitlab.uniworx.de)
  • Bestellung liegt beim Einkauf zur Beauftragung
  • Pipeline Probleme am Wochenende (upload again); miraculously resolved on Sunday morning?
  • Internal Server Error sobald ich eingelogged bin; bei Hanno ok 2024-06-24 12:03:37 +0000 [Error#yesod-core] Error handler errored out: InternalError "Database.PostgreSQL.Simple.Internal.exec: resource vanished (failed to fetch file descriptor)" @(yesod-core-1.6.20.2-7VqWGURyzmdJ8HRF4U5pfA:Yesod.Core.Internal.Run src/Yesod/Core/Internal/Run.hs:210:21)
  • Abwägung: QualificationPrecondition wann prüfen? Bei der Verlängerung abhängiger Qualifikationen oder immer live bei aktueller Prüfung der Gültigkeit (Nachteil: Zyklen drohen) Rekursives WITH könnte klappen, ein Versuch lohnt sich zumindest
  • Job-Worker klemmt: Instanz seit mehreren Minuten gesperrt (lock). Erst nach Löschung des Jobs und neuem einstellen wurde die Queue abgearbeitet. Sollte ein Background Job diese nicht automatisch entsperren? Vielleicht E.truncateTable schuld? Vielleicht lieber E.table @AvsSync verwenden
  • Ratio-Denominator Zero Bug im Testsystem
  • Embedded Gitlab Editor: Marketplace disable => kein Syntax-Highlighting für .hs image
  • NavActionPrimary vs ButtonForm: e.g. see UsersR vs individual ProfilePage page AVS/LDAP Synch Buttons image vs image inconsistent user interface; but which one is correct? The first, since we don't require extra routes. This is a form
TODO @jost
  • Update des Nachnamens schlägt immer wieder fehl
  • Löschen von gesperrten Jobs ist derzeit nicht über das Warteschlangen-Interface erlaubt 1816301 {"job": "synchronise-avs-queue"} 61848d06-2c75-4685-8cb5-e691fd605e25 2024-06-21 09:55:40 61848d06-2c75-4685-8cb5-e691fd605e25 2024-06-21 09:55:40 false Aufräumen der Job-Tabelle findet ansonsten nur bei Start der Applikation statt
- [x] Bestellung liegt beim Einkauf zur Beauftragung - [x] Pipeline Probleme am Wochenende (upload again); miraculously resolved on Sunday morning? - [x] `Internal Server Error` sobald ich eingelogged bin; bei Hanno ok ```2024-06-24 12:03:37 +0000 [Error#yesod-core] Error handler errored out: InternalError "Database.PostgreSQL.Simple.Internal.exec: resource vanished (failed to fetch file descriptor)" @(yesod-core-1.6.20.2-7VqWGURyzmdJ8HRF4U5pfA:Yesod.Core.Internal.Run src/Yesod/Core/Internal/Run.hs:210:21)``` - [x] Abwägung: `QualificationPrecondition` wann prüfen? Bei der Verlängerung abhängiger Qualifikationen oder immer live bei aktueller Prüfung der Gültigkeit (Nachteil: Zyklen drohen) **Rekursives WITH könnte klappen, ein Versuch lohnt sich zumindest** - [x] Job-Worker klemmt: Instanz seit mehreren Minuten gesperrt (lock). Erst nach Löschung des Jobs und neuem einstellen wurde die Queue abgearbeitet. Sollte ein Background Job diese nicht automatisch entsperren? _Vielleicht E.truncateTable schuld?_ **Vielleicht lieber `E.table @AvsSync` verwenden** - [x] Ratio-Denominator Zero Bug im Testsystem - [x] Embedded Gitlab Editor: Marketplace disable =\> kein Syntax-Highlighting für .hs ![image](/uploads/44714b731181275bb415c62262ddc913/image.png) - [x] NavActionPrimary vs ButtonForm: e.g. see UsersR vs individual ProfilePage page AVS/LDAP Synch Buttons ![image](/uploads/ac27df64efc2f2f8faf121c83d232991/image.png) **vs** ![image](/uploads/cb92dc3b100411b3c4a8804c60e70f3d/image.png) inconsistent user interface; but which one is correct? **The first, since we don't require extra routes. This is a form** ##### TODO @jost - [x] Update des Nachnamens schlägt immer wieder fehl - [x] Löschen von gesperrten Jobs ist derzeit nicht über das Warteschlangen-Interface erlaubt `1816301 {"job": "synchronise-avs-queue"} 61848d06-2c75-4685-8cb5-e691fd605e25 2024-06-21 09:55:40 61848d06-2c75-4685-8cb5-e691fd605e25 2024-06-21 09:55:40 false` **Aufräumen der Job-Tabelle findet ansonsten nur bei Start der Applikation statt**
jost commented 2024-06-25 09:41:16 +02:00 (Migrated from gitlab.uniworx.de)
  • Bei UniWorX GmbH beauftragte Issues bitte im GitLab markieren
  • dbTableWidget' determine table empty?
  • Unterschied zwischen AdminUserR, ProfileR und ForProfileR: noch zeitgemäß? Warum fehlen die PageActions? Ja, wegen Formular Actions
  • nixOS: stack geht nicht mehr attribute 'ghc964' missing siehe auch Foren-Diskussion
  • trim trailing whitespace für *.hs harmful? Ok
  • DB access im Widget: liftHandler . runDB? Ja, ganz genau so Bonus-Tipp runDBRead
  • Sammel-Email bei Build-Problemen? Keine
  • Beim lokalen Testen fiel folgender wiederkehrender Fehler auf:
2024-06-25 10:42:43 +0200 [Error#Job-Executor 9] JSONException: JSONConversionException Request {
  host                 = "localhost"
  port                 = 3859
  secure               = False
  requestHeaders       = [("Accept","application/json")]
  path                 = "/instance"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
}
 (Response {responseStatus = Status {statusCode = 503, statusMessage = "Service Unavailable"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Tue, 25 Jun 2024 08:42:42 GMT"),("Server","Warp/3.3.15"),("Retry-After","1")], responseBody = Object (fromList [("message",String "Recompiling")]), responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose}) "parsing (a, b) failed, expected Array, but encountered Object"JOB: JobCtlGenerateHealthReport HealthCheckHTTPReachable @(uniworx-27.4.70-Jw91VNpWgB8ITatVHnoWFQ:Jobs src/Jobs.hs:484:33)
- [x] Bei UniWorX GmbH beauftragte Issues bitte im GitLab markieren - [x] `dbTableWidget'` determine table empty? - [x] Unterschied zwischen `AdminUserR`, `ProfileR` und `ForProfileR`: noch zeitgemäß? Warum fehlen die PageActions? **Ja**, wegen Formular Actions - [x] nixOS: stack geht nicht mehr `attribute 'ghc964' missing` siehe auch [Foren-Diskussion](https://github.com/commercialhaskell/stack/issues/4539) - [x] trim trailing whitespace für *.hs harmful? **Ok** - [x] DB access im Widget: `liftHandler . runDB`? **Ja, ganz genau so** Bonus-Tipp `runDBRead` - [x] Sammel-Email bei Build-Problemen? **Keine** - [x] Beim lokalen Testen fiel folgender wiederkehrender Fehler auf: ``` 2024-06-25 10:42:43 +0200 [Error#Job-Executor 9] JSONException: JSONConversionException Request { host = "localhost" port = 3859 secure = False requestHeaders = [("Accept","application/json")] path = "/instance" queryString = "" method = "GET" proxy = Nothing rawBody = False redirectCount = 10 responseTimeout = ResponseTimeoutDefault requestVersion = HTTP/1.1 } (Response {responseStatus = Status {statusCode = 503, statusMessage = "Service Unavailable"}, responseVersion = HTTP/1.1, responseHeaders = [("Transfer-Encoding","chunked"),("Date","Tue, 25 Jun 2024 08:42:42 GMT"),("Server","Warp/3.3.15"),("Retry-After","1")], responseBody = Object (fromList [("message",String "Recompiling")]), responseCookieJar = CJ {expose = []}, responseClose' = ResponseClose}) "parsing (a, b) failed, expected Array, but encountered Object"JOB: JobCtlGenerateHealthReport HealthCheckHTTPReachable @(uniworx-27.4.70-Jw91VNpWgB8ITatVHnoWFQ:Jobs src/Jobs.hs:484:33) ```
jost commented 2024-07-02 16:23:15 +02:00 (Migrated from gitlab.uniworx.de)
  • Einbindung libphonenumber
  • Internal Server Error und die Sprachauswahl: Ursachen? v27.4.59->v27.4.70
  • queueJob wird nie abgearbeitet auf qa (kein Job-Worker auf QA, nur queueJob') -- works as intended queueJob wird immer nur vom JobWorker bearbeitet; queueJob' kann Webserver lahm legen.
  • roboto.sty not found - lokal
  • Email to @savau DANE Domain verification failed A: Emails kamen an
  • #171 Management von Emails, Inhalte entschlüsseln?
  • Gute oder schlechte Idee: boolField' = boolField (Just $ SomeMessage MsgBoolIrrelevant)
  • Was ist besser: mbOldAfi ^? _Just . _avsFirmEMailSuperior . _Just oder mbOldAfi ^. _Just . _avsFirmEMailSuperior? Wir haben ein Maybe a und eine Linse von a nach Maybe b und wollen wissen, ob es ein b gibt in zweiter Funktionsgleichung für upsertCompanySuperior
  • mkInterfaceLogTable/mkSupervisorsTable: Tabelle mit tellCell optional um Actions erweitern? Konflikt im tell? A: Kein Beispiel bekannt, vermutlich mit Paar arbeiten, für das es eine Monoid Instanz gibt
  • Löschen der Zweige fradrive/cr3 und fradrive/newletter A: Ja löschen!
  • Stand #130 A: Hängt an Build System
  • Stand #138 ?
  • Stand #55 A: Hängt an Build System
  • Wozu ist die Einstellung Sichtbar bei VolatileCluster-Einstellungen gut? Warum funktioniert das MassInputForm systemMessageVolatileClusterSettingsForm nicht richtig?
  • Handler.Course.Edit.makeCourseForm -> wozu die protoAdminSchools? Warum reicht die Eintragung UserFunctionFunction ==. SchoolAdmin hier nicht aus? (Welche Konsequenzen für Handler.Course.Edit.upsertCourseQualifications?) A: Hat der Nutzer die Admin Rechte auch aktiviert?
  • Handler.Utils.Qualification.qualificationOpton :: Entity Qualification -> Option QualificationId vs Handler.Utils.Qualification.qualOpt: optionInternalValue muss nicht encrypted sein, aber was ist mit optionExternalValue?
  • Zuordnung der Issues aus Milestone %"Phase A - Inbetriebnahme"
  • Decoding MIME encoded-word format (RFC 2047): packages wie mime oder purebred-email gibt es alle nicht auf Stackage. Network.Mime.Mail kann offenbar nur encoden, aber nicht decoden? Gibt es einen einfachen Weg anstatt Handler.MailCenter.decodeWord? Copyright? A: hweblib ausprobieren
  • Cronjob ad hoc per Interface konfigurieren? A: Nur über Settings
  • Kommentare für Konstruktoren des Typs JobHandler hinzufügen
- [ ] Einbindung [libphonenumber](https://hackage.haskell.org/package/phone-numbers) - [ ] Internal Server Error und die Sprachauswahl: Ursachen? v27.4.59->v27.4.70 - [x] `queueJob` wird nie abgearbeitet auf qa (kein Job-Worker auf QA, nur `queueJob'`) -- works as intended `queueJob` wird immer nur vom JobWorker bearbeitet; `queueJob'` kann Webserver lahm legen. - [x] `roboto.sty` not found - lokal - [x] Email to @savau DANE Domain verification failed **A:** Emails kamen an - [x] #171 Management von Emails, Inhalte entschlüsseln? - [x] Gute oder schlechte Idee: `boolField' = boolField (Just $ SomeMessage MsgBoolIrrelevant)` - [x] Was ist besser: `mbOldAfi ^? _Just . _avsFirmEMailSuperior . _Just` oder `mbOldAfi ^. _Just . _avsFirmEMailSuperior`? Wir haben ein `Maybe a` und eine Linse von `a` nach `Maybe b` und wollen wissen, ob es ein `b` gibt in zweiter Funktionsgleichung für `upsertCompanySuperior` - [x] `mkInterfaceLogTable`/`mkSupervisorsTable`: Tabelle mit `tellCell` optional um Actions erweitern? Konflikt im tell? *A:* Kein Beispiel bekannt, vermutlich mit Paar arbeiten, für das es eine Monoid Instanz gibt - [x] Löschen der Zweige `fradrive/cr3` und `fradrive/newletter` **A:** Ja löschen! - [x] Stand #130 **A:** Hängt an Build System - [x] Stand #138 ? - [x] Stand #55 **A:** Hängt an Build System - [x] Wozu ist die Einstellung `Sichtbar bei VolatileCluster-Einstellungen` gut? Warum funktioniert das MassInputForm `systemMessageVolatileClusterSettingsForm` nicht richtig? - [x] `Handler.Course.Edit.makeCourseForm` -> wozu die `protoAdminSchools`? Warum reicht die Eintragung `UserFunctionFunction ==. SchoolAdmin` hier nicht aus? (Welche Konsequenzen für `Handler.Course.Edit.upsertCourseQualifications`?) **A:** Hat der Nutzer die Admin Rechte auch aktiviert? - [x] `Handler.Utils.Qualification.qualificationOpton :: Entity Qualification -> Option QualificationId` vs `Handler.Utils.Qualification.qualOpt`: `optionInternalValue` muss nicht encrypted sein, aber was ist mit `optionExternalValue`? - [x] Zuordnung der Issues aus Milestone %"Phase A - Inbetriebnahme" - [x] Decoding MIME encoded-word format (RFC 2047): packages wie `mime` oder `purebred-email` gibt es alle nicht auf Stackage. `Network.Mime.Mail` kann offenbar nur encoden, aber nicht decoden? Gibt es einen einfachen Weg anstatt `Handler.MailCenter.decodeWord`? Copyright? **A:** hweblib ausprobieren - [x] Cronjob ad hoc per Interface konfigurieren? **A:** Nur über Settings - [x] Kommentare für Konstruktoren des Typs `JobHandler` hinzufügen
jost commented 2024-08-08 09:43:02 +02:00 (Migrated from gitlab.uniworx.de)

assigned to @jost and unassigned @savau

assigned to @jost and unassigned @savau
jost commented 2024-08-19 11:53:28 +02:00 (Migrated from gitlab.uniworx.de)
  • Status #52 #53 #54 (Container Config)
  • Status #132
  • Status Build Update
  • Umsetzungsideen #85 und #90 A: Formularactions in dbTable nachschauen
  • Umseztungsideen #48 AdminProblemPage oder neue CourseProblemPage? Letzteres wegen Institutsunterteilung und Überfrachtung. Lieber im Institut, Kursart(=Vorlesung) oder Kurs(=Tutorium)?
  • Mail-Darstellung in Html zerschießt Seite A: Pandoc Html parsen, Style, Meta und Doctype vor Anzeige entfernen; Strong vs * ? bei Text. PS: loop durch Pandoc funktionierte problemlos
- [x] Status #52 #53 #54 (Container Config) - [x] Status #132 - [x] Status Build Update - [x] Umsetzungsideen #85 und #90 **A:** Formularactions in dbTable nachschauen - [x] Umseztungsideen #48 AdminProblemPage oder neue CourseProblemPage? Letzteres wegen Institutsunterteilung und Überfrachtung. Lieber im Institut, Kursart(=Vorlesung) oder Kurs(=Tutorium)? - [x] Mail-Darstellung in Html zerschießt Seite **A:** Pandoc Html parsen, Style, Meta und Doctype vor Anzeige entfernen; Strong vs * ? bei Text. **PS:** loop durch Pandoc funktionierte problemlos
jost commented 2024-08-20 16:19:41 +02:00 (Migrated from gitlab.uniworx.de)
  • Mockup für #91 für HW? Termin? Zeitplan? A: Nach GnuMake, im Laufe der nächsten Woche
  • Die Antwort auf meine Frage zur Umsetzung #85 wäre übrigens @CorrectionsGradeR gewesen, dort ist das einzige Beispiel eine dbTable mit echten Formularfelden. Ich versuche gerade, das zu verstehen, ist aber komplex.
  • MIME encoded word decoder hatte ich dann übrigens doch noch implementiert, war gar nicht so schwer.
  • Berechnung 1x in dbtProj oder ad-hoc in FilteredPost? A: dbtProj wird immer auf alle Zeilen angewendet.
  • tellCell wird nur für angzeigte Zellen berechnet, eignet sich also nicht zum zählen? A: dbCount ist ohnehin deutlich effizienter
  • Merges?
- [x] Mockup für #91 für HW? Termin? Zeitplan? **A:** Nach GnuMake, im Laufe der nächsten Woche - [x] Die Antwort auf meine Frage zur Umsetzung #85 wäre übrigens `@CorrectionsGradeR` gewesen, dort ist das einzige Beispiel eine dbTable mit echten Formularfelden. Ich versuche gerade, das zu verstehen, ist aber komplex. - [x] MIME encoded word decoder hatte ich dann übrigens doch noch implementiert, war gar nicht so schwer. - [x] Berechnung 1x in `dbtProj` oder ad-hoc in FilteredPost? **A:** `dbtProj` wird immer auf alle Zeilen angewendet. - [x] `tellCell` wird nur für angzeigte Zellen berechnet, eignet sich also nicht zum zählen? **A:** dbCount ist ohnehin deutlich effizienter - [x] Merges?
jost commented 2024-08-21 12:13:21 +02:00 (Migrated from gitlab.uniworx.de)

mentioned in commit b0972bb154

mentioned in commit b0972bb154f453edd545fb4f658d9f5ff79966eb
jost commented 2024-08-27 09:03:55 +02:00 (Migrated from gitlab.uniworx.de)
  • Wechsel auf PostgreSQL >11. Problematisch?
  • Settings für Crontab Background Jobs (z.B. avs-licence-synch): Nur im Jobworker, oder? Dann kann die Config im Webserver aber nicht angezeigt werden.
  • Settings.hs wieso withObject "CamlCaseNameWithNoMeaning anstatt kebap-case wie im yaml file?
  • Pagination bug post filtered: empty gibt viele pages
- [x] Wechsel auf PostgreSQL >11. Problematisch? - [x] Settings für Crontab Background Jobs (z.B. avs-licence-synch): Nur im Jobworker, oder? Dann kann die Config im Webserver aber nicht angezeigt werden. - [x] [Settings.hs](src/Settings.hs) wieso `withObject "CamlCaseNameWithNoMeaning` anstatt kebap-case wie im yaml file? - [x] Pagination bug post filtered: empty gibt viele pages
jost commented 2024-09-03 11:01:59 +02:00 (Migrated from gitlab.uniworx.de)
  • Automatischer Neustart nach Detektion geänderterer Config-Dateien. Wie schwierig wäre es, dass zu realisieren? (Kubernetes ändert nur Umgebungsvariablen und .yaml Dateien, aber startet nicht neu.)
  • settings.yml Wie kann man hier Werte nur für lokale Tests einstellen? A: Ähnlich wie test-settings.yml mit einer local-settings.yml implementieren, welche nur bei #ifdef DEVELOPMENT oder so verwendet wird.
  • QueueNotification automatisch verhindern, dass es zu oft gesendet wird? #180
    Abfangen in Notification-Handler schon zu spät? A: man könnte die SentMail Tabelle dafür verwenden
  • PostgreSQL Update auf 16.3
- [x] Automatischer Neustart nach Detektion geänderterer Config-Dateien. Wie schwierig wäre es, dass zu realisieren? (Kubernetes ändert nur Umgebungsvariablen und .yaml Dateien, aber startet nicht neu.) - [x] [`settings.yml`](config/settings.yml) Wie kann man hier Werte nur für lokale Tests einstellen? *A:* Ähnlich wie `test-settings.yml` mit einer `local-settings.yml` implementieren, welche nur bei `#ifdef DEVELOPMENT` oder so verwendet wird. - [x] `QueueNotification` automatisch verhindern, dass es zu oft gesendet wird? #180 Abfangen in Notification-Handler schon zu spät? *A:* man könnte die SentMail Tabelle dafür verwenden - [x] PostgreSQL Update auf 16.3
jost commented 2024-09-12 15:25:56 +02:00 (Migrated from gitlab.uniworx.de)
  • make build vs make compile?
  • Verwendung von Database.Esqueleto.PostgreSQL.JSON.JSONB: gut oder schlecht? Warum bisher nur stiefmütterlich verwendet? Workarounds entfernen? Abwärtskompatibel?
  • Wohin die newtype-instanzen für JSONB aus Import.NoModel verschieben? A: src/Model/Types/NeuesModul!
  • Umbau Occurrences zu Zeit & Raum in DB freundlichem Format (z.B. suche nach Tutorials, welche am Tag X statt finden). Beste vorgehensweise? A: Room reference auf unterstem Occurrence-Level
  • dbTable: Filterung mit where_ nach vorangestelltem E.select statt join: Macht das Sinn, insbesondere wenn die Filterung in zwei Tabellen auf der gleichen Seite benötigt wird? Um hier mit memchached abzukürzen: wie kann man mehrere Schlüssel schnell invalidieren?
  • dbTable: pro Zeile Firmen eines Users als Auswahlbox - sqlCell oder Array in Hauptabfrage? A: Array aus subselect
- [x] `make build` vs `make compile`? - [x] Verwendung von `Database.Esqueleto.PostgreSQL.JSON.JSONB`: gut oder schlecht? Warum bisher nur stiefmütterlich verwendet? Workarounds entfernen? Abwärtskompatibel? - [x] Wohin die newtype-instanzen für `JSONB` aus `Import.NoModel` verschieben? **A:** src/Model/Types/NeuesModul! - [x] Umbau `Occurrences` zu `Zeit & Raum` in DB freundlichem Format (z.B. suche nach Tutorials, welche am Tag X statt finden). Beste vorgehensweise? **A:** Room reference auf unterstem Occurrence-Level - [x] `dbTable`: Filterung mit `where_` nach vorangestelltem `E.select` statt join: Macht das Sinn, insbesondere wenn die Filterung in zwei Tabellen auf der gleichen Seite benötigt wird? Um hier mit memchached abzukürzen: wie kann man mehrere Schlüssel schnell invalidieren? - [x] dbTable: pro Zeile Firmen eines Users als Auswahlbox - sqlCell oder Array in Hauptabfrage? **A:** Array aus subselect
jost added reference master 2024-09-16 17:36:59 +02:00
Owner
  • Zuständigkeiten der Issues fehlt
  • Wozu/was ist appMemcachedLocal? (localARC?) A: Aggressives Caching; ist jedoch problematisch: entfernen!
  • memcached ist Instanz-übergreifend? A: Ja!
  • Bester Weg zum Invalidieren einer Klasse von Memcached-Keys ohne die Keys zu kennen:
    1. flushAll simpel, aber kann es zu echten Problemen führen?
    2. Nur ein Key für die Klasse, gespeicherter Wert ist eine Map, bei der Werte hinzugefügt werden und dann Map überschreiben
    3. memcachedByClass und memcachedByClassInvalidate: Idee eine Map MemClass -> MemKey im memcache selbst A: 3. speichern, um so alle Keys zu löschen?
- [x] Zuständigkeiten der Issues fehlt - [x] Wozu/was ist `appMemcachedLocal`? (localARC?) **A:** Aggressives Caching; ist jedoch problematisch: entfernen! - [x] memcached ist Instanz-übergreifend? **A:** Ja! - [x] Bester Weg zum Invalidieren einer Klasse von Memcached-Keys ohne die Keys zu kennen: 1. `flushAll` simpel, aber kann es zu echten Problemen führen? 2. Nur ein Key für die Klasse, gespeicherter Wert ist eine Map, bei der Werte hinzugefügt werden und dann Map überschreiben 3. `memcachedByClass` und `memcachedByClassInvalidate`: Idee eine Map MemClass -> MemKey im memcache selbst **A:** 3. speichern, um so alle Keys zu löschen?
Owner
  • ARC entfernt, unklar ob PrewarmCacheConf{..} überhaupt noch eine Funktion hat? A: PrewarmCacheConf kann ebenfalls entfernt werden, da ohne Funktion ohne ARC
  • Stundenpläne: Handler.Utils.Occurrences.occurringLesson
  • DB Migration 13.11. OK?
  • Fix Handler.Utils.Form.Occurrences.occurrencesAForm in 83fe750b15
- [x] ARC entfernt, unklar ob `PrewarmCacheConf{..}` überhaupt noch eine Funktion hat? **A:** `PrewarmCacheConf` kann ebenfalls entfernt werden, da ohne Funktion ohne ARC - [x] Stundenpläne: `Handler.Utils.Occurrences.occurringLesson` - [x] DB Migration 13.11. OK? - [ ] Fix `Handler.Utils.Form.Occurrences.occurrencesAForm` in 83fe750b15
Owner
  • Verwendung von jsonb_array_elements? Momentan mit sqlQQ: Wie kann man das mit Esqueleto realisieren oder zumindest gegen Fehlermeldungen absichern? Siehe Handler.Utils.Form.roomReferenceSimpleFormOpt.
  • Verwendung von memcachedHere oder memcachedByHere unklar A: problem korrigiert, nun verwendbar
  • roomReferenceSimpleOpt geht nicht - warum? A: nudge vergessen!
- [x] Verwendung von `jsonb_array_elements`? Momentan mit `sqlQQ`: Wie kann man das mit Esqueleto realisieren oder zumindest gegen Fehlermeldungen absichern? Siehe `Handler.Utils.Form.roomReferenceSimpleFormOpt`. - [x] Verwendung von `memcachedHere` oder `memcachedByHere` unklar **A:** problem korrigiert, nun verwendbar - [x] `roomReferenceSimpleOpt` geht nicht - warum? **A:** nudge vergessen!
Owner
  • Priorisierung DevOps Build Pipeline zum Einspielen 2er Hotfixes notwendig!
  • Prod liefert immer wieder diese Fehlermeldung, ist das kritisch: 2024-10-14 08:26:09 +0000 [Error#Job-Executor 9] MinioErr: MErrService NoSuchBucketJOB: JobCtlPerform (QueuedJobKey {unQueuedJobKey = SqlBackendKey {unSqlBackendKey = 1672640}}) @(uniworx-27.4.79-2OyHzi6AEpCKNz8GOwqOcs:Jobs src/Jobs.hs:484:33)
  • Schliesst gitea Issues durch Commit messages wie bisher? A: Ja, funktioniert.
  • make clean löscht zu viel?
  • Zuständigkeiten Issues immer noch nicht eingestellt
  • Löschen mehrerer sinnloser Issue-Kommentare "Beschreibung geändert" einfach möglich?
  • WARNUNG: Nutzlose newtype für memcached-keys (e.g. MemcachedKeyedLoc, MemcachedUnkeyedLoc)? Dem Beispiel von MemcachedUnkeyedLoc, MemcachedKeyedLoc, MemcachedKeyClassStore, etc. folgend habe ich newtype MemcachedQualification = MemcachedQualification { unMemachedQualification :: QualificationId } angelegt. Doch Experimente zeigen, dass memcachedGet <QualificationId> trotzdem ein Hit ist, d.h. die gewünschte Unterscheidung geht verloren, wenn man statt data nur newtype benutzt - ein Problem?
  • Fun with Template Haskell: Antwort: Hab es selbst doch noch hinbekommen, falls es Euch interessiert! Nie wieder so was tippen wie $(sqlIJproj 2 1) . $(sqlLOJproj 6 1) 😄
/home/jost/programming/FRADrive/branch/src/Handler/LMS.hs:306:15: error:
    • Type constructor ‘E.InnerJoin’ used as a constructor-like thing
    • In the pattern:
        E.InnerJoin (E.InnerJoin (E.LeftOuterJoin _ x_a17GV) _) _
      In the expression:
        (\ (E.InnerJoin (E.InnerJoin (E.LeftOuterJoin _ x_a17GV) _) _)
           -> x_a17GV)
      In an equation for ‘queryUser’:
          queryUser
            = (\ (E.InnerJoin (E.InnerJoin (E.LeftOuterJoin _ x_a17GV) _) _)
                 -> x_a17GV)
    |
- [ ] Priorisierung DevOps Build Pipeline zum Einspielen 2er Hotfixes notwendig! - [ ] Prod liefert immer wieder diese Fehlermeldung, ist das kritisch: `2024-10-14 08:26:09 +0000 [Error#Job-Executor 9] MinioErr: MErrService NoSuchBucketJOB: JobCtlPerform (QueuedJobKey {unQueuedJobKey = SqlBackendKey {unSqlBackendKey = 1672640}}) @(uniworx-27.4.79-2OyHzi6AEpCKNz8GOwqOcs:Jobs src/Jobs.hs:484:33)` - [x] Schliesst gitea Issues durch Commit messages wie bisher? **A:** Ja, funktioniert. - [x] `make clean` löscht zu viel? - [ ] Zuständigkeiten Issues immer noch nicht eingestellt - [x] Löschen mehrerer sinnloser Issue-Kommentare "Beschreibung geändert" einfach möglich? - [ ] **WARNUNG:** Nutzlose `newtype` für memcached-keys (e.g. `MemcachedKeyedLoc`, `MemcachedUnkeyedLoc`)? Dem Beispiel von `MemcachedUnkeyedLoc`, `MemcachedKeyedLoc`, `MemcachedKeyClassStore`, etc. folgend habe ich `newtype MemcachedQualification = MemcachedQualification { unMemachedQualification :: QualificationId }` angelegt. Doch Experimente zeigen, dass `memcachedGet <QualificationId>` trotzdem ein Hit ist, d.h. die gewünschte Unterscheidung geht verloren, wenn man statt `data` nur `newtype` benutzt - ein Problem? - [x] Fun with Template Haskell: **Antwort:** Hab es selbst doch noch hinbekommen, falls es Euch interessiert! Nie wieder so was tippen wie `$(sqlIJproj 2 1) . $(sqlLOJproj 6 1)` 😄 ``` /home/jost/programming/FRADrive/branch/src/Handler/LMS.hs:306:15: error: • Type constructor ‘E.InnerJoin’ used as a constructor-like thing • In the pattern: E.InnerJoin (E.InnerJoin (E.LeftOuterJoin _ x_a17GV) _) _ In the expression: (\ (E.InnerJoin (E.InnerJoin (E.LeftOuterJoin _ x_a17GV) _) _) -> x_a17GV) In an equation for ‘queryUser’: queryUser = (\ (E.InnerJoin (E.InnerJoin (E.LeftOuterJoin _ x_a17GV) _) _) -> x_a17GV) | ```
Owner
  • Anzeige Räume aus JSONB Occurrences in dbTable? Lateral-Joins könnten helfen, doch die gibt es nur in Esqueleto.Experimental. @ishka Wird dbTable auch auf das neue Esqueleto umgestellt werden? Wenn ja, wie ist der Zeitrahmen?
  • Warum ist das noch nie aufgefallen: listCell ["A","D","C","B"] textCell gibt die Reihenfolge BCDA wieder. Schuld ist der Aufruf von otoKeyedList der zumindest für [Text] die Reihenfolge umkehrt?!
- [x] Anzeige Räume aus `JSONB Occurrences` in dbTable? Lateral-Joins könnten helfen, doch die gibt es nur in Esqueleto.Experimental. @ishka Wird dbTable auch auf das neue Esqueleto umgestellt werden? Wenn ja, wie ist der Zeitrahmen? - [x] Warum ist das noch nie aufgefallen: `listCell ["A","D","C","B"] textCell` gibt die Reihenfolge BCDA wieder. Schuld ist der Aufruf von `otoKeyedList` der zumindest für `[Text]` die Reihenfolge umkehrt?!
Owner
  • Jobs.Handler.Files.dispatchJobInjectFiles und andere mit crude surgery markierte Stellen der ARC Cache Entfernung durchgehen und kontrollieren
- [ ] `Jobs.Handler.Files.dispatchJobInjectFiles` und andere mit `crude surgery` markierte Stellen der ARC Cache Entfernung durchgehen und kontrollieren
This repo is archived. You cannot comment on issues.
No Milestone
No project
No Assignees
2 Participants
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: fraport/fradrive-old#2
No description provided.