Besprechung Sarah #2
Open
opened 2022-10-13 16:30:19 +02:00 by savau
·
73 comments
master
master
145-build-system-rewrite
fradrive/jost
144-ghc-update
stundenplan
fraport-corporate-design-icons
oauth-fixes
130-dbtable-kein-automatisches-filtern-bei-input-change-sondern-manuelle-ubernahme-via-button
130-dbtable-kein-automatisches-filtern-bei-input-change-sondern-manuelle-ubernahme-via-button-2
oauth-fixes-tmp
utils
fradrive/fraport-corporate-design
test
55-oauth2-single-sign-on
128-remove-nodejs
fradrive/new-jobsystem
110-crontab
fradrive/firm/indices
frontend
fradrive/apc-envelope-problem
fradrive/tutorial-overhaul
fradrive/simple-quick-actions
fradrive/pagination-fix
fradrive/pagination-problem
frontend-update
544-tutoriumsdaten-bei-teilnehmerliste
729-payloads-pro-zustand-anzeigen-in-workflow-ansicht
256-datenbank-sortiert-sonderzeichen-falsch
workflows
feat/external-apis
722-email-spalte-fur-prufungsteilnehmer-innen
508-frontend-util-cleanup
597-An-geeigneter-Stelle-Anzahl-Abgebende-für-ein-Übungsblatt-anzeigen
631-content-dependent-chunking
minio-file-upload
476-interface-fur-klausurkorrekturen-dev
476-interface-fur-klausurkorrekturen
mr/476-interface-fur-klausurkorrekturen
datepicker-in-async-table-filter
274-maschinenlesbares-format-fur-bewertungsdateien
feat/db-auth
v27.4.79
v27.4.78
v27.4.77
v27.4.76
v27.4.75
v27.4.74
v27.4.73
v27.4.72
v27.4.71
v27.4.70
v27.4.69
v27.4.68
v27.4.67
v27.4.66
v27.4.65
v27.4.64
v27.4.63
v27.4.62
v27.4.61
v27.4.60
t28.1.1
d29.6.7
t28.1.0
t28.0.10
d29.6.6
d29.6.5
t28.0.9
d29.6.4
t28.0.8
d29.6.3
d29.6.2
d29.6.1
d29.6.0
d29.5.6
d29.5.4
d29.5.3
d29.5.2
d29.5.1
d29.5.0
d29.4.0
d29.3.1
d29.3.0
d29.2.1
d29.2.0
d29.1.1
d29.1.0
d29.0.0
t28.0.0
v27.4.59
v27.4.58
v27.4.57
d28.0.10
d28.0.9
d28.0.8
d28.0.7
d28.0.6
d28.0.5
d28.0.4
d28.0.3
d28.0.2
d28.0.1
d28.0.0
v27.4.56
v27.4.55
v27.4.54
v27.4.53
v27.4.52
v27.4.51
v27.4.50
t27.4.49
v27.4.49
v27.4.48
t27.4.48
v27.4.47
v27.4.46
t27.4.47
t27.4.46
v27.4.45
v27.4.44
v27.4.43
v27.4.42
v27.4.41
v27.4.40
v27.4.39
v27.4.38
v27.4.37
v27.4.36
t27.4.35
t27.4.34
v27.4.34
t27.4.33
t27.4.32
t27.4.31
t27.4.30
t27.4.29
t27.4.28
t27.4.27
t27.4.26
t27.4.25
t27.4.24
t27.4.23
t27.4.22
t27.4.21
t27.4.20
t27.4.19
v27.4.18
t27.4.18-2
t27.4.18
t27.4.17
t27.4.16
t27.4.15
t0.4.0
t0.3.0
t0.2.0
t0.1.0
v27.4.14
v27.4.13
v27.4.12
v27.4.11
v27.4.10
v27.4.9
v27.4.8
v27.4.7
v27.4.6
v27.4.5
v27.4.4
v27.4.3
v27.4.2
v27.4.1
v27.4.0
v27.3.2
v27.3.1
v27.3.0
v27.2.0
v27.1.6
v27.1.5
v27.1.4
v27.1.3
v27.1.2
v27.1.1
v27.1.0
v27.0.29
v27.0.28
v27.0.27
v27.0.26
v27.0.25
v27.0.24
v27.0.23
v27.0.22
v27.0.21
v27.0.20
v27.0.19
v27.0.18
v27.0.17
v27.0.16
v27.0.15
v27.0.14
v27.0.13
v27.0.12
v27.0.11
v27.0.10
v27.0.9
v27.0.8
v27.0.7
v27.0.6
v27.0.5
v27.0.4
v27.0.3
v27.0.2
v27.0.1
v27.0.0
v26.6.6
v26.6.5
v26.6.4
v26.6.3
v26.6.2
v26.6.1
v26.6.0
v26.5.14
v26.5.13
v26.5.12
v26.5.11
v26.5.10
v26.5.9
v26.5.8
v26.5.7
v26.5.6
v26.5.5
v26.5.4
v26.5.3
v26.5.2
v26.5.1
v26.5.0
v26.4.0
v26.3.1
v26.3.0
v26.2.6
v26.2.5
v26.2.4
v26.2.3
v26.2.2
v26.2.1
v26.2.0
v26.1.4
v26.1.3
v26.1.2
v25.24.5
v25.24.4
v25.24.3
v25.24.2
v25.24.1
v25.24.0
v25.23.5
v25.23.4
v25.23.3
v25.23.2
v25.23.1
v25.23.0
v25.22.0
v25.21.24
v25.21.23
v25.21.22
v25.21.21
v25.21.20
v25.21.19
v25.21.18
v25.21.17
v25.21.16
v25.21.15
v25.21.14
v25.21.13
v25.21.12
v25.21.11
v25.21.10
v25.21.9
v25.21.8
v25.21.7
v25.21.6
v25.21.5
v25.21.4
v25.21.3
v25.21.2
v25.21.1
v25.21.0
v25.20.2
v25.20.1
v25.20.0
v25.19.3
v25.19.2
v25.19.1
v25.19.0
v25.18.2
v25.18.1
v25.18.0
v25.17.1
v25.17.0
v25.16.0
v25.15.3
v25.15.2
v25.15.1
v25.15.0
v25.14.2
v25.14.1
v25.14.0
v25.13.1
v25.13.0
v25.12.1
v25.12.0
v25.11.0
v25.10.5
v25.10.4
v25.10.3
v25.10.2
v25.10.1
v25.10.0
v25.9.3
v25.9.2
v25.9.1
v25.9.0
v25.8.1
v25.8.0
v25.7.0
v25.6.1
v25.6.0
v25.5.3
v25.5.2
v25.5.1
v25.5.0
v25.4.0
v25.3.0
v25.2.0
v25.1.2
v25.1.1
v25.1.0
v25.0.5
v25.0.4
v25.0.3
v25.0.2
v25.0.1
v25.0.0
v24.9.2
v24.9.1
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.3
v24.4.2
v24.4.1
v24.4.0
v24.3.0
v24.2.1
v24.2.0
v24.1.5
v24.1.4
v24.1.3
v24.1.2
v24.1.1
v24.1.0
v24.0.0
v23.7.0
v23.6.0
v23.5.0
v23.4.3
v23.4.2
v23.4.1
v23.4.0
v23.3.0
v23.2.2
v23.2.1
v23.2.0
v23.1.2
v23.1.1
v23.1.0
v23.0.3
v23.0.2
v23.0.1
v23.0.0
v22.1.1
v22.1.0
v22.0.0
v21.1.1
v21.1.0
v21.0.3
v21.0.2
v21.0.1
v21.0.0
v20.14.0
v20.13.0
v20.12.1
v20.12.0
v20.11.1
v20.11.0
v20.10.0
v20.9.0
v20.8.1
v20.8.0
v20.7.0
v20.6.0
v20.5.1
v20.5.0
v20.4.1
v20.4.0
v20.3.2
v20.3.1
v20.3.0
v20.2.0
v20.1.1
v20.1.0
v20.0.0
v19.3.1
v19.3.0
v19.2.2
v19.2.1
v19.2.0
v19.1.5
v19.1.4
v19.1.3
v19.1.2
v19.1.1
v19.1.0
v19.0.0
v18.6.0
v18.5.0
v18.4.0
v18.3.0
v18.2.2
v18.2.1
v18.2.0
v18.1.0
v18.0.0
v17.8.0
v17.7.0
v17.6.5
v17.6.4
v17.6.3
v17.6.2
v17.6.1
v17.6.0
v17.5.0
v17.4.1
v17.4.0
v17.3.0
v17.2.1
v17.2.0
v17.1.1
v17.1.0
v17.0.0
v16.5.0
v16.4.2
v16.4.1
v16.4.0
v16.3.1
v16.3.0
v16.2.2
v16.2.1
v16.2.0
v16.1.0
v16.0.5
v16.0.4
v16.0.3
v16.0.2
v16.0.1
v16.0.0
v15.6.1
v15.6.0
v15.5.0
v15.4.1
v15.4.0
v15.3.0
v15.2.0
v15.1.2
v15.1.1
v15.1.0
v15.0.0
v14.6.0
v14.5.0
v14.4.0
v14.3.0
v14.2.0
v14.1.1
v14.1.0
v14.0.0
v13.0.1
v13.0.0
v12.1.0
v12.0.0
v11.1.1
v11.1.0
v11.0.0
v10.6.0
v10.5.0
v10.4.1
v10.4.0
v10.3.0
v10.2.0
v10.1.0
v10.0.1
v10.0.0
v9.0.3
v9.0.2
v9.0.1
v9.0.0
v8.0.1
v8.0.0
v7.25.1
v7.25.0
v7.24.0
v7.23.2
v7.23.1
v7.23.0
v7.22.1
v7.22.0
v7.21.5
v7.21.4
v7.21.3
v7.21.2
v7.21.1
v7.21.0
v7.20.0
v7.19.2
v7.19.1
v7.19.0
v7.18.3
v7.18.2
v7.18.1
v7.18.0
v7.17.14
v7.17.13
v7.17.12
v7.17.11
v7.17.10
v7.17.9
v7.17.8
v7.17.7
v7.17.6
v7.17.5
v7.17.4
v7.17.3
v7.17.2
v7.17.1
v7.17.0
v7.16.0
v7.15.0
v7.14.1
v7.14.0
v7.13.0
v7.12.0
v7.11.0
v7.10.0
v7.9.1
v7.9.0
v7.8.5
v7.8.4
v7.8.3
v7.8.2
v7.8.1
v7.8.0
v7.7.0
v7.6.0
v7.5.0
v7.4.2
v7.4.1
v7.4.0
v7.3.2
v7.3.1
v7.3.0
v7.2.2
v7.2.1
v7.2.0
v7.1.2
v7.1.1
v7.1.0
v7.0.0
v6.11.1
v6.11.0
v6.10.0
v6.9.0
v6.8.0
v6.7.0
v6.6.0
v6.5.0
v6.4.0
v6.3.0
v6.2.1
v6.2.0
v6.1.0
v6.0.0
v5.5.0
v5.4.0
v5.3.0
v5.2.3
v5.2.2
v5.2.1
v5.2.0
v5.1.0
v5.0.2
v5.0.1
v5.0.0
v4.14.0
v4.13.1
v4.13.0
v4.12.1
v4.12.0
v4.11.0
v4.10.0
v4.9.0
v4.8.0
v4.7.0
v4.6.0
v4.5.0
v4.4.0
v4.3.0
v4.2.0
v4.1.2
v4.1.1
v4.1.0
v4.0.1
v4.0.0
v3.0.0
db14.0.0
v2.1.1
v2.1.0
v2.0.0
v1.4.1
v1.4.0
v1.3.0
v1.1.0
v1.0.0
db8.0.0
db6.0.0
db1.0.0
db0.0.0
dbinitial
Labels
Clear labels
Benötigt Klärung, noch nichts zu implementieren
Won't fix
Kubernetes, Nix, etc.
Kann jetzt noch nicht gelöst werden, da noch Abhängigkeiten bestehen
Problem vermutlich behoben, muss aber noch beobachtet oder getestet werden
Wird in Uni2work behoben und später portiert
Ordered from and appointed to UniWorX Systems LLC
This issue is currently being worked on; probably within a branch
Aufwand: Hoch
Aufwand: Mittel
Aufwand: Niedrig
Blockiert
Diskussion
Benötigt Klärung, noch nichts zu implementieren
Dokumentation
Won't fix
Frontend
Konfigurationsproblem
Kubernetes, Nix, etc.
Prio: Angehalten
Kann jetzt noch nicht gelöst werden, da noch Abhängigkeiten bestehen
Prio: Blocker
Prio: Hoch
Prio: Mittel
Prio: Niedrig
Prio: Unbedeutend
Prüfung ausstehend
Problem vermutlich behoben, muss aber noch beobachtet oder getestet werden
Schnittstelle
Schnittstelle: APC
Schnittstelle: AVS
Schnittstelle: LMS
Schnittstelle: SAP
Uni2Work
Wird in Uni2work behoben und später portiert
UniWorX
Ordered from and appointed to UniWorX Systems LLC
Working
This issue is currently being worked on; probably within a branch
No Label
Aufwand: Hoch
Aufwand: Mittel
Aufwand: Niedrig
Blockiert
Diskussion
Dokumentation
Frontend
Konfigurationsproblem
Prio: Angehalten
Prio: Blocker
Prio: Hoch
Prio: Mittel
Prio: Niedrig
Prio: Unbedeutend
Prüfung ausstehend
Schnittstelle
Schnittstelle: APC
Schnittstelle: AVS
Schnittstelle: LMS
Schnittstelle: SAP
Uni2Work
UniWorX
Working
Milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Clear assignees
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
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Topics für die nächste Besprechung
Montag 17.Oktober, 15 Uhr
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)
Mittwoch 2.November, 15 Uhr
E.Valuebenötigt? Vermeidbar?By Steffen Jost on 2022-11-02T16:24:32 (imported from GitLab)
Dienstag 8. November, 15 Uhr
Model.Types.Changelog.changelogItemDaysDatum einstellen und Übersetzungsdateien i18n/changelog anpassen!addHtmlMarkdownAlternativesist 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 VarianteaddHtmlMarkdownAlternatives', 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 hinzuzunehmenAllocationListRleider nicht verstanden?toTextUrl?nameHtml'? SieheHandler.Utils.MailHandler.Utils.DateTime.getDateTimeFormatterfor 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 mali18nHamletwelchen Typ hat das eigentlich?By Steffen Jost on 2022-12-21T09:50:42 (imported from GitLab)
Freitag 11.November, 16 Uhr
By Steffen Jost on 2022-11-25T08:25:12 (imported from GitLab)
Open-Source Hinweis unter Info - ist dringend, weil Produktion schon online einsehbar ist!LmsR!maxvsgreatest:maxundminliefern immer das erste Argument, wenn eines der Argumente NULL ist;greatestundleastliefern dagegen immer das non-null Argument, falls es das gibt. Ändern? Welche Auswirkungen?!developmentfunktioniert 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 releaseschlägt mal wieder aus komischen Gründen fehl 😞\healthdeaktivieren (immer noch Problem mit self-signed certificates)VALUESnicht verfügbar, Lizenz-Abgleich in DB damit nicht richtig möglich?! Haskell Land oder ERaw!forcefor uniqueness constraint - warum denn nicht? Ist ok!By Steffen Jost on 2022-11-25T17:15:22 (imported from GitLab)
Database.Esqueleto.Utils.justValListundjustVal: ist es anders herum nicht effizienter?By Steffen Jost on 2022-11-25T16:21:41 (imported from GitLab)
By Steffen Jost on 2022-12-12T16:28:00 (imported from GitLab)
Handler.Utils.Users.getReceiverswithHandler.Utils.Avs.updateReceiversleads to an import cycle: sending a letter is a background job; updating postal addresses before sending requiresupdateReceivers, but this may also add users, but adding users triggers background jobsHandler.Utils.Table.Columns.colUserCompanywirklichliftHandler . runDBnotwendig in DBCell?Handler.Userswarum nichtcolUserCompanyverwendbar?By Steffen Jost on 2023-02-14T09:22:44 (imported from GitLab)
Utils.Form.runButtonFormHashwarum den Hash nicht einfach in den FormIdentifier packen anstatt ein HiddenField zu verwenden?By Steffen Jost on 2022-12-21T09:50:23 (imported from GitLab)
DayundUTCTime, siehe #22mkLicenceTableinHandler.Admin.Avs:dbtRowKeyist nicht eindeutig pro Zeile; wenn ich diesen aber Eindeutig mache, funktioniert diedbSelect-Colonnade aber nicht mehr. Wie ist es richtig?src/Handler/Utils/Mail.hsund dort Zeile 202 inaddHtmlMarkdownAlternatives'für einen Versuch, dies korrekt zu implementieren.sqlCellist offenbar unvereinbar mit Tabellen, welche Actions haben, da der Monaden-Typ komplexer ist. Wie könnte man den Typ vonsqlCellflexibler formulieren? (Problem mitcolUserCompany: eine generische Spalte ist definierbar und typisiert, aber die Verwendung scheitert am Typ. Eine Formulierung ohnesqlCelllässt sich problemlos einsetzen, aber nicht als generische Funktion formulieren.)src/Handler/Tutorial/Users.hsund dort Zeile 91src/Handler/Admin/Avs.hssrc/Utils/Files.hsimportiertsrc/Handler/Utils/Minio.hsdas erscheint mir seltsam!appHealthCheckHttp: truewirklich? 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 gesetztsettings.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)
By Steffen Jost on 2023-03-02T18:00:21 (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
By Steffen Jost on 2023-03-01T17:55:41 (imported from GitLab)
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.stack-work-docfehlteformResultModalwenn widget-modal, bei link-modal erfolgt immer eine UmleitungBy Steffen Jost on 2023-03-09T16:29:00 (imported from GitLab)
TransactionQualificationUserEdit.transactionQualificationUserverzichtbar wegen der Uniqueness Constraint?! Antwort: Ja, verzichtbar!By Steffen Jost on 2023-03-24T10:07:05 (imported from GitLab)
By Steffen Jost on 2023-03-24T12:33:01 (imported from GitLab)
/healthschlägt ständig mit 500 fehl; Seite lädt aber. Warum?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)patchelf: wrong ELF type? Funktioniert trotzdem?instance HasQualification a => HasQualification (a,b) where_userQualifications = _dbrOutput . _8 . to (fmap fst)_userQualifications = _dbrOutput . _8 . over (mapped . _1)By Steffen Jost on 2023-04-25T16:44:36 (imported from GitLab)
dbParamsFormAction = Just $ SomeRoute currentRoutezusammenhängen? Es macht aber kein Unterschied, ob hierNothinggesetzt wird - wozu ist der Parameter gut? FIXEDHandler.Utils.Download.sendResponseByteStringFileWarum funktioniert InlineContent nicht? Browser kann Datei nicht speichern, anders als auf Admin/Test.$ifdef DEVELOPMENT?By Steffen Jost on 2023-04-25T12:12:01 (imported from GitLab)
By Steffen Jost on 2023-04-25T12:11:30 (imported from GitLab)
[460 of 460]folgt jetzt oft[1 of 260]Warum wird jetzt immer doppelt kompiliert?Justdefault?!By Steffen Jost on 2023-05-10T14:44:35 (imported from GitLab)
assigned to @savau
runDBJobs / queueDBJobvsqueueJob'siehe Handler/Users.hsJobHandlerException? Wo landen geworfene Exceptions? A: Sollte alles im Log sein!JobNoQueueSamevsJobNoQueueSameTag: ShouldJobLmsQualificationsEnqueueand-Dequeuenot be categorized as the latter?LmsStatusundQualificationBlockedNotificationencrypt :: CryptoFileNamePritJobDie Internetverbindung ist aber ansonsten stabil, d.h. die Verbindung zu srv01 besteht unproblematisch.
npm run startgeht prinzipiell, aber Server nicht mehr erreichbar auf Port 3163. Es wird stattdessen 3380 gemeldet, aber auch dort ist der Server nicht erreichbar..stackmultiActionAOptsQualificationUserBlocked: Neuer Vorschlag wie folgt, macht das Sinn?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?
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?
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?
anchorCell, welche automatisch prüft, ob der Nutzer den Link anschauen darf und falls nein, den Link unterdrückt? Antwort:linkEitherCellText.isPrefixOfoderText.stripPrefixaufCI TextmitCI.map/CI.original/CI.mkist problematisch, da das Prefix dann nur Case-Sensitiv entfernt wird. Haben wir da eine bessere Lösung für? Workaround: mit folded case ArbeitenupsertCampusUser (UpsertCampusUserLdapSync upsertIdent)undupsertCampusUser UpsertCampusUserGuessUser ldapResponse. UniquenessConstraint einführen!Handler.Utils.Users.hsAufrufe voninsertSelectWithConflictdie in der Update-Klausel den Conflict nicht updaten? Beispiel Zeile 833ff Warum nicht auchQualificationuserUser E.=. E.val newUserId? Es wird in ähnlichen Code-Snippets dort auch nicht gemacht, aber ist das nicht falsch?E.notExistsarbeitenjob-flush-intervalfehlte 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).stack-work-buildaber kein.stack-work-test; d.h. Rückumbenennung schlägt fehl, hatte ich jetzt schon > 3x Ich sehe aber keinen Fehler im script.54f902a83bJobSendNotificationprüft die Settings nicht mehr, das macht nurJobQueueNotification. Anpassen!dispatchJobSynchroniseAvsusingputManywithconduitdispatchJobSynchroniseAvsQueue: Es ist immer noch nicht ausgeschlossen, dass mehrere AvsSynch Jobs laufen.TVar? Kann es auch zum erliegen kommen?Prelude.undefined: Problem besteht weiterhin nach Update zurunDB: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.
Model.Types.Health.healthReportStatus: abgeschaltet HealthDoesFlush wird als Fehler gewertet?! A: war Fehler, auch in Uni2work/healthauf QA. Siehe inzwischen auch #97git checkout master; npm run buildschlägt fehl, weil immer noch nach einer Datei aus dem Branch gesucht wird - und das vor der eigentlich Kompilation. exit-develop/develop undstack clean --fullkonnten das Problem nicht beheben.$logDebugSersetzen? Meist interessiert ja nur ein spezielles Debug-Level. Oder ein Level zwischen Info und Warn einziehen? Was ist üblich?Justliegen? Wenn ja, warum typisiert es trotzdem?Reason code: Canceled on identification as a pivot, during write.;Was tun? A: Deutet auf gecancellte DB Jobs hintestdispatchJobPrintAckAgainoder lieber indispatchJobPrintAckeinfach die Schleife in der Handler-Monade laufen lassen und die einzelnen Schritte mit kurzenrunDBs abwickeln? Ein riesigesrunDBkönnte ja die Applikation lahm legen. Große runDBs zerlegen.npm run testund danach gleichnpm run lintverursachte erneute Kompilation, obwohl Verzeichniswechsel mit.stack-work-testerfolgreich durchgeführt wurde. Als Kompiliergrund wurde "HPC flags changed" angegeben. Hilft das vielleicht weiter? Nach Abschluss wird.stack-workoft nicht zurück in.stack-work-testumbenannt. A: bekanntes Problem, insbesondere bei Ctrl-Cclient_max_body_sizeanpassencfCommaSeparatedSetscheitert leider anPathPiece (Set a). Wie korrigieren? *Implementierte Lösung perE.mkContainsFilterWithCommaschön? Schließlich wäretextFieldja zwingend notwendig und cfCommaSeparatedSet wäre stimmiger. A: Refactor undPathPiece (Set a)Instanz ableiten!QualificationUserundQualificationUserBlockist doch eigentlich Mist. Wie besser machen, um allgemein eine Historie und Kommentare zu haben?setTooltipwird 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 miticonTooltipodermessageTooltiperzeugen könnte, aber die FieldSettings erlauben keine Widgets?!dfa96c7f3enpm run releasefürtestundmasterim Ergebnis? Kann ein test-Container notfalls für Prod verwendet werden?1.
NIX_BUILD_CORES2. uniworx.cabal not updated im Rollout-Verzeichnes, Release scheitert
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. 😞
Handler.Utils.Qualification.quserToNotify: einfach zu kompliziert. Gültigkeit und letzes Änderungsdatum doch lieber direkt inQualificationUserspeichern? 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.Handler.SAP``.compileBlocksuniworx.cabalmanuell anpassen für neue Module bei Branch-Wechsel? Ging das bisher nicht automatisch?npm run startschlägt immer mal wieder wegen fehlender Port Nummer fehl. Yesod-Devel-Ladebildschirm ist aber sichtbat. PORT_OFFSET ist auf 752 gesetzt.exitunddeveloplöst es meistens.e4883c62d0I lost track which changes are where. 😞ghcupnot found?userFieldvs userOptionsList? A: sollte klar sein, nur CryptoUUIDs verwendencommRRoute verwendenAngebote 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/redirectUltDestbenutzbar? 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.MonoTraversablemultiSelectField-Beispiel im Filter gesucht A: Kein Beispiel, konnte aber implementiert werdenUserNotificationSettingswieso sehe ich da oft{}in der DB? Wann wird der Default eingetragen? A: Default wird benutztHandler.Utils.Communication.commRals zusätzliche Auswahl anzubieten?memcachedHereundcachedHereBy. Was verwenden inHandler.Utils.Table.Cells.cellEditUserModalundcellHasUserModal? A: nicht so einfach; access nicht per memcached speichern - Sicherheitsrisiko;cachedHereByhilft eher nichtmultiActionAfirm-users.hamletkillall-uni2workhat nicht funktioniert. Wie richtig? Siehedc6079ec3bSomeMessages: gute oder oder schlechte Idee?No match in record selector olOptionsbei Verwendung vonmultiSelectField $ mkOptionListGrouped [..]Die FunktionmkOptionListGroupedwird sonst nirgends verwendet, wäre aber super-praktisch an einer Stelle inFirm.hs. InUtils.Formwird auch überall mitolOptionsGroupedhantiert. A:multiSelectField'war einfach zu implementieren.Migration20200916ExamModeimmer wieder erneut ausgeführt? Siehe #133Problem 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 HandlernIdeen zur Optimierung des Firmen-Ansprechpartner Suchfilters? A: Map vorberechnen!
PR OAuth2?
runMaybeT . hoist runDBstattrunDB . runMaybeT? Der Typ ist der gleiche, könnte Rollback beeinfluss, sollte man test!d332c0c11aok oder könnte durch den doppelten Aufruf vonrunButtonFormzufälligerweise verschiedene field ids generiert werden, so dass ein echter Confirm dann scheitern könnte?[whamlet|<button onclick="history.back()">_{MsgGenericBack}|]nicht? Also es geht, aber die Formulardaten sind weg. Wie machen wir das an anderer Stelle?SchoolKeynotwendig? A: Vermutlich outdatedNotificationQualificationRenewal { nQualification = qid, nReminder = False }ausgeschlossen durchJobs.Types.notifyNoQueueSame- richtig gemacht? NoQueueSame-> Value Jobs werden auch erst nach erfolgreicher Bearbeitung in einer Transaktion gelöschtHandler.Utils.Concurrent.timeoutHandlerWenn ja, warum hatten wir das nicht schon?TransactionLogInfoden generischen TypValueobwohl fürTransactionjaderivePersistFieldJSON ''Transactiondefiniert ist? Weil eigentlich nie ausgelesen wird? Damit neue/alte Jobs keine Probleme machen/healthzeigt auffradrive-tviel mehr als auffradrive. 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 werdenWie weitere Health Reports hinzufügen?erst einmal nicht notwendigdeleteByandinsert_vsupsertBysieheAudit.hs: sollte die IdHandler.Health.Interfacenicht wie erwartet bei negativer Suche? Positiv geht es ja.memcachedInvalidateUtils.DB.fieldLensVal: geht das besser? Das Problem ist hier, dassDatabase.Persist.Class.fieldLensnur eine Linse vonEntityField record field => Lens' (Entity record) fieldbereitstellt und ich gerne eine LinseLens' record fieldhätte. Diese Linse bastle ich, in dem ich zwischendurchEntity (error "nokey") recverwende. Das ist sicher, da der Key ja gleich danach sofort wieder entfernt wird. Aber geht das nicht besser?_Just . from _CI . re _Just? (um ausMaybe TexteineMaybe (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: Einover _Justfunktionierte leider nicht!Jobs.Handler.QueueNotification.dispatchJobQueueNotificationersetzepickValidUserEmail'durch DB actiongetEmailAddressinnerhalb des conduits? A:hoist lifterlaubt Verwendung von DB ActionsHandler.Utils.Communication.crJobsCourseCommunicationnutzt veraltete FunktionHandler.Utils.Mail.userAddresswelche nach DB geliftet werden müsste - auch innerhalb von conduit. A: gleiche Lösung wie vorherige Fragesrc/Utils/Avs.hs: Variable not in scope: threadDelayA: Ursache des Problems war lediglich ein übersehenes#ifdef DEVELOPMENTgewesennix-env -e '*'notwendig? Abernix-env -qgibt unter anderem auchhome-manage-pathaus? Muss ich das übernehmen?locale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_MESSAGES to default locale: No such file or directorylocale: Cannot set LC_ALL to default locale: No such file or directoryfradrive/cr3aus unklaren Grund. Alte Jobs sind aber auch nicht abrufbar. A: zu wenig runnerfradrive/cr3ausrollen? Auftest? Übermasterauf qa? A: Übermasterauf kube-qafradrive/cr3A: Haskell ist purenix-shell -p haskellPackages.calligraphyodernix-shell -p haskellPackages.SourceGraphliefert 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 #115zshfehlt in develop, wird aber zum release benötigt A: Sarah korrigiert escompanyCellundcompanyWidget. Konvertierung mitwgtCellwohl möglich, aberanchorCellfunktioniert ja anders alssimpleLink. Um duplizierten Code zu vermeiden und eine einheitliche Ausgabe von inhaltlich gleichen Teilen zu gewährleisten: Umgekehrte KonvertierungDBCell Handler () -> Widgetmöglich?profileData.hamlet: Verwendung voniconTooltiperzeugt icons unterschiedlicher Größe - warum?zshin Develop?Internal Server Errorsobald ich eingelogged bin; bei Hanno ok2024-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)QualificationPreconditionwann 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 zumindestE.table @AvsSyncverwendenTODO @jost
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 falseAufräumen der Job-Tabelle findet ansonsten nur bei Start der Applikation stattdbTableWidget'determine table empty?AdminUserR,ProfileRundForProfileR: noch zeitgemäß? Warum fehlen die PageActions? Ja, wegen Formular Actionsattribute 'ghc964' missingsiehe auch Foren-DiskussionliftHandler . runDB? Ja, ganz genau so Bonus-TipprunDBReadqueueJobwird nie abgearbeitet auf qa (kein Job-Worker auf QA, nurqueueJob') -- works as intendedqueueJobwird immer nur vom JobWorker bearbeitet;queueJob'kann Webserver lahm legen.roboto.stynot found - lokalboolField' = boolField (Just $ SomeMessage MsgBoolIrrelevant)mbOldAfi ^? _Just . _avsFirmEMailSuperior . _JustodermbOldAfi ^. _Just . _avsFirmEMailSuperior? Wir haben einMaybe aund eine Linse vonanachMaybe bund wollen wissen, ob es einbgibt in zweiter Funktionsgleichung fürupsertCompanySuperiormkInterfaceLogTable/mkSupervisorsTable: Tabelle mittellCelloptional um Actions erweitern? Konflikt im tell? A: Kein Beispiel bekannt, vermutlich mit Paar arbeiten, für das es eine Monoid Instanz gibtfradrive/cr3undfradrive/newletterA: Ja löschen!Sichtbar bei VolatileCluster-Einstellungengut? Warum funktioniert das MassInputFormsystemMessageVolatileClusterSettingsFormnicht richtig?Handler.Course.Edit.makeCourseForm-> wozu dieprotoAdminSchools? Warum reicht die EintragungUserFunctionFunction ==. SchoolAdminhier nicht aus? (Welche Konsequenzen fürHandler.Course.Edit.upsertCourseQualifications?) A: Hat der Nutzer die Admin Rechte auch aktiviert?Handler.Utils.Qualification.qualificationOpton :: Entity Qualification -> Option QualificationIdvsHandler.Utils.Qualification.qualOpt:optionInternalValuemuss nicht encrypted sein, aber was ist mitoptionExternalValue?mimeoderpurebred-emailgibt es alle nicht auf Stackage.Network.Mime.Mailkann offenbar nur encoden, aber nicht decoden? Gibt es einen einfachen Weg anstattHandler.MailCenter.decodeWord? Copyright? A: hweblib ausprobierenJobHandlerhinzufügenassigned to @jost and unassigned @savau
@CorrectionsGradeRgewesen, dort ist das einzige Beispiel eine dbTable mit echten Formularfelden. Ich versuche gerade, das zu verstehen, ist aber komplex.dbtProjoder ad-hoc in FilteredPost? A:dbtProjwird immer auf alle Zeilen angewendet.tellCellwird nur für angzeigte Zellen berechnet, eignet sich also nicht zum zählen? A: dbCount ist ohnehin deutlich effizientermentioned in commit
b0972bb154withObject "CamlCaseNameWithNoMeaninganstatt kebap-case wie im yaml file?settings.ymlWie kann man hier Werte nur für lokale Tests einstellen? A: Ähnlich wietest-settings.ymlmit einerlocal-settings.ymlimplementieren, welche nur bei#ifdef DEVELOPMENToder so verwendet wird.QueueNotificationautomatisch verhindern, dass es zu oft gesendet wird? #180Abfangen in Notification-Handler schon zu spät? A: man könnte die SentMail Tabelle dafür verwenden
make buildvsmake compile?Database.Esqueleto.PostgreSQL.JSON.JSONB: gut oder schlecht? Warum bisher nur stiefmütterlich verwendet? Workarounds entfernen? Abwärtskompatibel?JSONBausImport.NoModelverschieben? A: src/Model/Types/NeuesModul!OccurrenceszuZeit & Raumin DB freundlichem Format (z.B. suche nach Tutorials, welche am Tag X statt finden). Beste vorgehensweise? A: Room reference auf unterstem Occurrence-LeveldbTable: Filterung mitwhere_nach vorangestelltemE.selectstatt 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?appMemcachedLocal? (localARC?) A: Aggressives Caching; ist jedoch problematisch: entfernen!flushAllsimpel, aber kann es zu echten Problemen führen?memcachedByClassundmemcachedByClassInvalidate: Idee eine Map MemClass -> MemKey im memcache selbst A: 3. speichern, um so alle Keys zu löschen?PrewarmCacheConf{..}überhaupt noch eine Funktion hat? A:PrewarmCacheConfkann ebenfalls entfernt werden, da ohne Funktion ohne ARCHandler.Utils.Occurrences.occurringLessonHandler.Utils.Form.Occurrences.occurrencesAFormin83fe750b15jsonb_array_elements? Momentan mitsqlQQ: Wie kann man das mit Esqueleto realisieren oder zumindest gegen Fehlermeldungen absichern? SieheHandler.Utils.Form.roomReferenceSimpleFormOpt.memcachedHereodermemcachedByHereunklar A: problem korrigiert, nun verwendbarroomReferenceSimpleOptgeht nicht - warum? A: nudge vergessen!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)make cleanlöscht zu viel?newtypefür memcached-keys (e.g.MemcachedKeyedLoc,MemcachedUnkeyedLoc)? Dem Beispiel vonMemcachedUnkeyedLoc,MemcachedKeyedLoc,MemcachedKeyClassStore, etc. folgend habe ichnewtype MemcachedQualification = MemcachedQualification { unMemachedQualification :: QualificationId }angelegt. Doch Experimente zeigen, dassmemcachedGet <QualificationId>trotzdem ein Hit ist, d.h. die gewünschte Unterscheidung geht verloren, wenn man stattdatanurnewtypebenutzt - ein Problem?$(sqlIJproj 2 1) . $(sqlLOJproj 6 1)😄JSONB Occurrencesin 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?listCell ["A","D","C","B"] textCellgibt die Reihenfolge BCDA wieder. Schuld ist der Aufruf vonotoKeyedListder zumindest für[Text]die Reihenfolge umkehrt?!Jobs.Handler.Files.dispatchJobInjectFilesund andere mitcrude surgerymarkierte Stellen der ARC Cache Entfernung durchgehen und kontrollieren