Direkt zum Inhalt
KAMOUniverse

Changelog

Was ist neu?

Jede Verbesserung an der Plattform, wie sie geliefert wird.

  1. · SecurityService

    AccountSettingsController + Service für Telefon + Sicherheitsfragen hinzufügen (SP3)

    Ermöglicht angemeldeten Benutzern, das Telefon zu setzen/verifizieren und 3 Sicherheitsfragen zu konfigurieren. Routen zu /api/account/* (session-authenticated via KSESSION_DATA).

  2. · SecurityService

    BulkTextSmsClient + EmailTemplateServiceClient + PasswordRecoveryController (SP3) hinzufügen

    Vollständiger Passwort-Recovery-Flow: E-Mail-Link, SMS OTP, Sicherheitsfragen, Samen Phrase. Routen nach /api/wiederherstellung/* (unuthenttärkt). Verwendet SP1 E-Mail-Pipeline + VOIPService SMS.

  3. · VOIPService

    InternalAuthFilter + POST /api/bulktext/send für Service-to-Service SMS (SP3) hinzufügen

  4. · kamo-shared-library

    Recovery entities + repos hinzufügen; Bump auf 1.3.0 (SP3)

    Fügt PasswordResetToken, SmsOtp, RecoverySession, AccountVerificationCode hinzu JPA-Einheiten mit entsprechenden Repositories für SP3-Rückgewinnungsfluss.

  5. · kamo-shared-library

    SecurityQuestionCatalog enum + sq1/2/3 + seedPhraseHash zum Benutzer hinzufügen (SP3)

  6. · InitializerService

    Fügen Sie SP3-Reheditionstabelle DDL + User-Spalte hinzu Ergänzungen zu SchemaCleanupRunner hinzu

  7. · kamo-internal

    Routenvorschau durch Browser's Backend-rendered modal (Teil von SP2)

    Der EmailTemplateBrowser besitzt nun direkt das Vorschau-Modal, also Manager muss nicht mehr Zeilenebene-Vorschau-Anfragen abfangen und umleiten in den Bearbeitungsmodus.

  8. · kamo-internal

    Wire EmailTemplateEdit zu real API

    Hydrat von templateApi.get, speichert über templateApi.update. Kategorie Dropdown ist API-getrieben mit Inline-Kategorie-Erzeugung. Variablen Picker liest aus variableContracts.ts (deklarierte Verträge für REQUIRED Template-Tasten; gemeinsames Set für CUSTOM). REQUIRED / SYSTEM-Reihenbearbeitung zeigt das entsprechende Warnbanner. Vorschau-Button öffnet die Backend-rendered EmailTemplatePreview modal. Teil von SP2.

  9. · kamo-internal

    Wire EmailTemplateBrowser zu real API + System Defaults Register hinzufügen

    Ersetzte -140 Zeilen von Mock-Daten durch TemplateApi.list() Aufrufe. Bedingt fünfter Tab 'System Defaults' erscheint nur für Top-Level-Org-Administratoren und Renders von response.systemTemplates. Kategorie-Filter aus Kategorie Api.list( bemalt. Alle Reihenaktionen ************ Hit real Backend Endpoints. Fehler, die durch handleApiError Toast Helper geroutet werden. Teil von SP2.

  10. · kamo-internal

    E-MailTemplateDuplicateDialog hinzufügen (Teil von SP2)

  11. · kamo-internal

    EmailTemplateKategorieManager modal hinzufügen (Teil von SP2)

  12. · kamo-internal

    EmailTemplatePreview modal hinzufügen

    Öffnet auf Zeilen-Action Vorschau. Backend-rendered via templateApi.preview(); Ergebnis in einem sandboxed iframe für Stil Isolation angezeigt. Matches exakte Code-Pfad, der das Senden verwendet, so dass das, was Sie vorher ansehen, ist, was Empfänger erhalten. Teil von SP2.

  13. · kamo-internal

    TemplateApi + categoryApi + variableContracts Client Module hinzufügen

    Wraps SP1's /api/Email/templates/* und ************ Endpunkte mit typed TypeScript Helfern. variableContracts spiegelt SP1's TemplateKeys Javadoc so der Editor der Variable Picker zeigt erklärt Verträge für REQUIRED Vorlagen. Teil von SP2.

  14. · SecurityService

    Wire EmailTemplateSeedClient in ************

    Thin RestTemplate Client, der POSTs zu EmailService's ************ nach einem org + Besitzer TeamMember sind beharrte. Retries zweimal mit Backoff; Ausfall wirft OrgProvisioningException und rollt die umgebende @Transactional so die org + owner-TeamMember save is an undone (pro SP1 spec). Spiegelt den bestehenden TranslateServiceClient X-Internal-Auther Muster. k8s/configmap.yaml fügt hinzu: email.service.url (EmailService intern URL) internal.auth.secret (cluster-widerzeit X-Internal-Auth Header Wert) pom.xml bumps kamo-shared-Bibliothek 1.1.0 . 1.2.0. Teil von SP1.

  15. · EmailService

    EmailTemplateKategorieController REST endpoints hinzufügen

    ************ CRUD. Löschantwort enthält reassignedCount - die Anzahl der Vorlagen, die nicht als ein Ergebnis der Entfernung der Kategorie. Sitzungskontext gelesen über die gleiche ************ Muster wie andere EmailService-Controller. Teil von SP1.

  16. · EmailService

    EmailTemplateController REST Endpoints + DTOs hinzufügen

    Exposes /api/email/templates/* CRUD + Vorschau + Duplikat + Reset-to-default + service-to-service /send + /seed-org/{orgId'. Top-Level orgs (keine Eltern) siehe systemTemplates in der Listenantwort. Service-to-Service Endpunkte sind durch den bestehenden InternalAuthFilter geschützt. Sitzungskontext (orgID, memberID) lesen Sie aus dem REQ_ATTR_SESSION von OTKPreAuthFilter Attribut das gleiche Muster, das bereits von AliasController / MailboxController verwendet wird. Teil von SP1.

  17. · EmailService

    InternAuthFilter für Service-to-Service-Endpunkte hinzufügen

    Validiert X-Internal-Auth Header auf /api/email/templates/send und /api/email/templates/seed-org/* Pfade. Andere Pfade umgehen diesen Filter (Benutzersitzung auth behandelt sie). Geheimnis kommt von INTERNAL_AUTH_SECRET env var. fügt auch transaktional.smtp.user / transaktional.smtp.pass hinzu Konfiguration Stubs von EmailTemplateService verbraucht - alle drei werden bezogen aus der in Produktion erhältlichen k8s configmap. Teil von SP1.

  18. · EmailService

    EmailTemplateKategorieService hinzufügen . CRUD für Org-scoped Kategorien

    Case-unempfindliche Namensununempfindlichkeit pro org auf Service-Schicht durchgesetzt (passt mit dem teilweisen eindeutigen Index in der DB). Lösen nulls Kategorie_id auf betroffene Vorlagen vor dem Entfernen der Kategorie-Reihe. Teil von SP1.

  19. · EmailService

    E-MailTemplateService hinzufügen: CRUD + senden + Saatgut + Reset-to-default

    Core orchestrator für transaktionale E-Mail. sendToUser löst die Vorlage, macht Subjekt/body, wählt die primäre Domäne der org von Organization.domains, und reicht ab zu EmailSmtpService mit NoReply@{org.domain-" als von Adresse. Inklusive SaatForOrg für New-Por Lebenszyklus-Hook und resetToDefault kopiert den Inhalt einer SYSTEM-Reihe über eine Zeile per-org REQUIRED. Auth für den Senden verwendet Cluster-weite transaktionale SMTP-Service-Anglaubigungen (transactional.smtp.user / transaktional.smtp.pass) statt der pro-Mitglied Provider-Entwickler - transaktionale Sendungen haben kein geschäftspflichtiges Mitglied. Teil von SP1.

  20. · EmailService

    NoReplySenderService für 'NoReply@{domain' von Adresse hinzufügen

    Einzelne Wahrheitsquelle für Transaktions-E-Mail von Adressen. Akzept ein Domain-String, Kleinbuchstaben-Normalisierung, gibt "NoReply@<domain" zurück. Anrufer müssen die Org-Domain auflösen (über Organization.domains lookup oder ähnlich) und übergeben Sie es in. Teil von SP1.

  21. · EmailService

    TemplateRenderer für {{var-Ersatz hinzufügen

    Staatenloser Regex-basierter Renderer. Fehlende Vars ersetzen leere Schnur und emittieren ein WARN-Log mit templateKey + orgId zur Zuordnung. Kein HTML-Emission in v1 - Werte sind servergesteuert. Teil von SP1.

  22. · InitializerService

    EmailTemplateSeedRunner für SYSTEM + per-org-Saatgut hinzufügen

    Läuft unter @Order(20) auf KamoInitializerService Start. Lasten kanonisch templates aus Kamo-shared-Bibliotheksressourcen; upserts SYSTEM-Reihen (keine Clobber); Backfills pro-Org-Reihen für jede Org, die sie noch nicht hat. Idempotent - sicher auf jedem Start-up wieder zu laufen. Teil von SP1.

  23. · InitializerService

    Teilte Unikate + CHECK Einschränkungen für email_templates hinzufügen

    Hibernate ddl-auto kann keine partiellen Indizes oder Rechen-CHECK erzeugen Zwänge. Diese Commit fügt sie über den bestehenden idempotent DDL-Läufer hinzu Muster nach Hibernate erstellt die Basistabellen aus den neuen Entitäten. Teil von SP1.

  24. · kamo-shared-library

    CanonicalTemplateLoader + CanonicalTemplate record hinzufügen

    Lesen Sie die drei REQUIRED Vorlagen (WELCOME, PASSWORD_RESET, EMAIL_VERIFICATION) von Classpath-Ressourcen unter **************** Verzehrt von KamoInitializerService für SYSTEM-Row-Saatgutung. Teil von SP1.

  25. · kamo-shared-library

    kanonisches HTML + JSON für WELCOME, PASSWORD_RESET, EMAIL_VERIFICATION hinzufügen

    Source-of-Truth-Inhalte für SYSTEM-Reihen. Geladen bei KamoInitializerService Start von CanonicalTemplateLoader und UPSERTed in email_templates. Teil von SP1.

  26. · kamo-shared-library

    EmailTemplate Enterstelle + Repository hinzufügen

    Speichert eine SYSTEM-Reihe pro template_key (org_id NULL, is_system TRUE) plus ein Klon pro org pro template_key. Soft-Referenz org_id/category_id. DB- angetriebene Zeitstempel; JSONB für body_blocks und Tags. Repository bietet org-scoped lookups, atomar use counter inkrement, und Kategorie-löschen Bereinigung über nullifyKategorieForOrg. Teil von SP1.

  27. · kamo-shared-library

    EmailTemplateKategorie Entität + Repository hinzufügen

    Org-kopierte Kategorien für E-Mail-Vorlagen. Soft BIGINT org_id (keine FK) passt zu bestehenden Mustern. Case-unsensitive Namen Einzigartigkeit pro-Ort ist durch einen Teilindex, der in KamoInitializerService hinzugefügt wird, durchgesetzt. Teil von SP1.

  28. · kamo-shared-library

    TemplateStatus enum + Templates Konstanten für Transaktionsvorlagen hinzufügen

    Erklärt die REQUIRED/CUSTOM/ARCHIVED Lebenszykluszustände und die drei erforderliche Vorlagen-Tasten (WELCOME, PASSWORD_RESET, EMAIL_VERIFICATION). Variable Verträge für jede REQUIRED Vorlage, die als Javadoc dokumentiert ist die Konstanten Klasse; SP3 und SP4 Anrufer beziehen diese. Teil von SP1.

  29. · InitializerService

    Seed KamoCRM mit ALL_WORK_ELIGIBLE auf frischen Installationen

    Der createOrg() Helfer wendet dieses einzelne Argument auf beide an ageReqTypeMitglied und ageReqTypeTeamMitglied; im Einklang mit Plattform-Konvention. Paare mit KamoCRMAgeReqUpdateRunner, die behandelt bestehende Einsätze über ein bedingtes UPDATE. Vervollständigt SP5.

  30. · InitializerService

    Einfacher Läufer hinzufügen, um KamoCRM agereq zu ALL_WORK_ELIGIBLE zu migrieren

    Bedingte idempotent UPDATE läuft auf Service-Start-up; WO Klausel überprüft der erwartete alte Wert, also sind Wiederholungen No-Ops. Fehler werden protokolliert und geschluckt - Start-up darf nicht auf diese unkritische Migration zu blockieren. Teil von SP5. Paare mit dem DataLoader bearbeiten in der nächsten Commit, die macht fresh installs den neuen Wert direkt.

Euer Universum wartet.

Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.

Für immer kostenlos – keine Kreditkarte erforderlich