Page 20 - LogiLoom_Plattform_Dokumentation
P. 20

tracking_events       Tracking-Ereignisse        shipmentId, status, location, description, timestamp
                 avis_history          AVIS-Protokoll             shipmentId, avisType, sentAt, recipientEmail, status
                 organisations         Organisationen             name, carrierCode, status, contactEmail
                 organisation_users    Org-Mitgliedschaften       organisationId, userId, orgRole, 6× Berechtigungs-Flags
                 invitations           Einladungen                email, token, orgRole, expiresAt, acceptedAt
                 notification_preferences   Benachrichtigungseinstellungen  userId, notifyOnStatus*, notifySender, notifyRecipient
                 notification_log      Benachrichtigungsprotokoll   shipmentId, eventType, recipientEmail, status, sentAt
                 system_config         Systemkonfiguration        key, value, description
                 saved_searches        Gespeicherte Suchen        userId, name, filters (JSON), isShared, organisationId



                 13.3  API-Architektur (tRPC)

                 LogiLoom verwendet tRPC als API-Schicht. tRPC ermöglicht typsichere Remote Procedure Calls ohne
                 manuelle API-Definitionen oder Code-Generierung. Alle Prozeduren sind in server/routers.ts definiert und
                 werden vom Frontend über trpc.*.useQuery() und trpc.*.useMutation() aufgerufen.

                 Die API ist in folgende Router-Namespaces unterteilt: auth (Authentifizierung), shipments
                 (Sendungsverwaltung), tracking (Sendungsverfolgung), dashboard (Statistiken), notifications
                 (Benachrichtigungen), organisations (Organisationsverwaltung), admin (Administration), export
                 (Datenexport) und savedSearches (gespeicherte Suchen).

                   Für Entwickler:  Alle API-Endpunkte sind unter /api/trpc erreichbar. Neue Prozeduren werden in
                   server/routers.ts hinzugefügt. Geschützte Prozeduren verwenden protectedProcedure, öffentliche
                   publicProcedure. Admin-Prozeduren prüfen ctx.user.role === 'admin'.


                 13.4  Authentifizierung und Sicherheit

                 Die Authentifizierung erfolgt über Manus OAuth oder lokale Anmeldung. Nach erfolgreicher Anmeldung
                 wird ein JWT-Token als HttpOnly-Cookie gesetzt. Jede API-Anfrage liest dieses Cookie, verifiziert das Token
                 und stellt den Benutzer als ctx.user bereit. Abgelaufene oder ungültige Tokens führen zu einer
                 automatischen Weiterleitung zur Login-Seite.
                 Passwörter werden mit bcrypt (Kostenfaktor 10) gehasht. Der JWT_SECRET wird als Umgebungsvariable
                 injiziert und ist nicht im Quellcode enthalten. Alle sensiblen Konfigurationswerte werden über das Secrets-
                 Management der Plattform verwaltet.

                 13.5  Datei-Speicher (S3)

                 Datei-Uploads (z.B. Profilbilder) werden über AWS S3 gespeichert. Der Server verwendet vorkonfigurierte
                 S3-Hilfsfunktionen (storagePut, storageGet) aus server/storage.ts. Dateien werden unter einem zufälligen
                 Schlüssel gespeichert, um Enumeration zu verhindern. Die zurückgegebene CDN-URL wird in der Datenbank
                 gespeichert und direkt in der UI verwendet.
   15   16   17   18   19   20   21   22