Changelog
Was ist neu?
Jede Verbesserung an der Plattform, wie sie geliefert wird.
· kamo-marketing
Fügen Sie /Anfragt direkte nv Links, Homepage-Abschnitt, und planen Feature-Vergleichszeile
- Header: Anfragen als Top-Level-Direktverbindung zwischen Preis und Unternehmen hinzugefügt - Footer: Anfragen zur Produktspalte für direkte Sichtbarkeit hinzugefügt - Preisseite: Custom dev callout Banner zwischen Bundles und Feature-Vergleich - Features Seite: Feature-Anfragen Callout vor CTA - Homepage: Neuer Abschnitt FeatureRequests zwischen Preis und FAQ mit Plan-Tier-Zugriff - JumpToBar: Anfragen Sprunglink zwischen Preis und FAQ hinzugefügt - DB: FEATURE_REQUESTS in Support-Kategorie mit pro Plan Text-Werten ausgesät (Kostenlos: Gemeinschaftsabstimmung, Starter: Abstimmung & Antrag, Wirtschaft: Priority Requests, Enterprise: Custom dev inbegriffen) - KamoCRMPricingLoader: aktualisiert mit FEATURE_REQUESTS Funktionsdefinition und Plan-Feature Mappings
· kamo-internal
Round-Trip-AppConfigs + Oberflächen-Modell-Einstellungen + privates-org-schalten
- BranchSetupManager: mapBackendModel hydratisiert jetzt die beharrten appConfigs zurückgegeben durch das Backend (Verfügbarkeit + erlaubtCommerceTypes pro Service type) statt sie bei der Ladung auf NOT_AVAILABLE zurücksetzen. Nutzlasten sparen sowohl für die Kinder-Modell-und Master-Modell-Flows gehören appConfigs so dass die pro-app-Verfügbarkeit und CRM-commerce-artige Einschränkungen hin und zurück. Master Modelleditor verwendet mapBackendModel wieder, so dass es sich identisch verhält. - GebrauchAppliedModel Hook: erweiterte Antwortart trägt jetzt die angewendete skalaren Einstellungen des Modells (allowOwnersViewOtherOrgs, allowOwnersPrivateOrgs, erlaubenSubChildOrgs, Altersgruppen, identityProviderSetting, teamMemberPayFeesSetting), die appConfigs-Karte, und orgIsPrivate . zukünftiger Editor (Feature Manager, OAuth config, Commerce-Markt) kann Gate einheitlich ohne Wiederholen. - Private-org-Kipp: neue Proxy-Route ************ (PATCH) und eine Sichtbarkeitskarte auf der Registerkarte der Zweig-Typen aufgetaucht, umbenannten von allowOwnersPrivateOrgs. Wenn aktiviert, werden andere org Besitzer dies nicht sehen org in Inseraten. Optimistische UI versöhnt sich mit dem nächsten angewandten Modell erfrischen.
· BillingService
Team-Mitglied Pay-Gebügel setzen bei Stripe Kundengründung
Bumps kamo-shared-library Abhängigkeit zu 1.5.0 so BillingService lösen kann der neue AppliedModelEnforcementService und wires team-member vs org Pay-Gebühren Durchsetzung in ************ - teamMemberPayFeesSetting == NOT_AVAILABLE: Erstellung eines Member-spezifisch Abrechnungskunden (Selbstzahlung) wird abgelehnt - die Org muss Gebühren abdecken. - teamMemberPayFeesSetting == FORCE_ENABLE: Erstellen eines org-Level-Kunden die Team-Mitglied Gebühren zu decken wäre abgelehnt - Teammitglieder müssen zahlen sich selbst. - OPTIONAL: jeder Fluss ist erlaubt. Durchsetzung ist bestes Problem, wenn die Org nicht gelöst werden kann (Werkzeugkontexte, Vermächtnisdaten) - fällt durch das Vermächtnis Verhalten statt zu blockieren.
· SecurityService
Wire angewendet-Modell Durchsetzung über jeden Controller
Jede Nicht-Rolleneinstellung auf dem angewandten Sicherheitsmodell wird nun bei der genaue Controller-Grenze regelt, und die Skalareinstellungen rund um die Reise sauber durch die Master/Kind-Modelleditoren, so dass die Benutzeroberfläche auf sie einbieten kann. - **************** wenn branchTypeID eingestellt ist, schau bis zum Zweigtyp, um die Elternorg abzuleiten; Aufruf behauptenSubChildOrgGeld und BehauptungAgeRangeAllowed für beide Mitglieder und Team-Mitglieder Altersstufen vor der Verpflichtung. Neue PATCH /{id'/Sichtbarkeit endpoint lässt Besitzer Flip Organization.isPrivate, gated by assertCanSetPrivate. getAllOrganizations gilt filterVisibleOrgsForViewer so Ergebnisse respektieren beide erlaubenOwnersViewOtherOrgs auf das Modell des Betrachters und die istPrivate Flagge auf Kandidaten. - ************ AnrufbehauptungAppEnableAllowed / assertAppDisableAllowed so NOT_AVAILABLE Apps können nicht aktiviert werden und FORCE_ENABLED Apps können nicht deaktiviert werden. - OAuthConfigController POST/PUT: assertCanManageIdentityProvider Blöcke Provider CRUD beim identityProviderSetting == NOT_AVAILABLE. - CommerceMarketController POST/PUT: BehauptungCommerceTypeAllowed lehnt eine Commerce-Typ nicht in der AppConfig für CRM des Modells aufgeführt. - SecurityModelController + MasterModelController: Hin- und Rückfahrt appConfigs durch Erstellung/Update-Nützen und die GET-Antworten. Neue ProzessAppConfigs helper akzeptiert das Listenformular, das vom Frontend-Editor verwendet wird. - AppliedModelController: Antwort beinhaltet jetzt die vollständigen Skalareinstellungen block (allowOwnersViewOtherOrgs, allowOwnersPrivateOrgs, allowSubChildOrgs, Altersgruppen, identityProviderSetting, teamMemberPayFeesSetting) und die appConfigs Karte so Frontend-Redakteure können Gate einheitlich. Auch Oberflächen orgIsPrivate, so dass das Datenschalten synchron bleibt.
· kamo-shared-library
Erzwingen Sie jede Nicht-Rolle-Einstellung auf ChildOrgSecurityModel
Fügt Ende-zu-Ende Durchsetzung für die verbleibenden Einstellungen auf einem Org angewendet Sicherheitsmodell. Jede Einstellung, die vorher nur gelesen wurde (oder aufgegeben wurde speichern) hat jetzt eine Persistenz-Pfad, eine Laufzeit Durchsetzung Helfer, und eine UI Haken, um es zu konsumieren. Datenschicht: - Organisation.isPrivate (boolesche Spalte, Standard falsch) Sichtungsfahne, durch den neuen MasterModelController-Gated PATCH gesetzt Endpunkt. - ServiceAvailabilityType enum (OPTIONAL_DEFAULT_ENABLED / OPTIONAL_DEFAULT_DISABLED / NOT_AVAILABLE / FORCE_ENABLED). - ChildOrgSecurityModelAppConfig Entität + Repo + Service - weiterhin pro App Verfügbarkeit (und CRMs erlaubteCommerceTypes) zuvor auf speichern gesunken. - ************ Hin- und Rückrundfahrten. Laufzeitdurchsetzung: - AppliedModelEnforcementService konsolidiert jede von Anrufern verwendete Prüfung: assertSubChildOrgAllowed, assertAgeRangeAllowed, ************ isIdentityProviderAngewhrt, assertCanSetPrivate, filterVisibleOrgsForViewer, assertTeamMitgliedCanSelfPayFees, isTeamPayFeesForced / Blocked, behauptenAppEnableAllowed, behauptenAppDisableAllowed, getAppVerfügbarkeit, getDefaultEnabledAppsForChild, assertCommerceTypeAllowed, getAllowedCommerceTypes. Null-sicher: "kein angewandtes Modell" erlaubt alles. - ChildOrgTemplateSeedingService erweitert, um auch OrgFeature Reihen von die AppConfig des Elternteils (FORCE_ENABLED und OPTIONAL_DEFAULT_ENABLED) auf neue Kinder-Orgs, also neu geschaffene Orgs kommen mit der richtigen Standardoberfläche.
· kamo-internal
Sperrpflicht-System-Rollen in Mitglieds-Rollen-Vergabe-UI
- PublicProvider: zulassen branchTypeID/masterModelID auf der eingehenden Organisation Nutzlast, so dass die Zweig-Typen Registerkarte zuverlässig Gate kann "Edit Master Model"-Taste (früher auf Jackson- Serialisierung angewiesen fließt durch die Requisitentyp-Prüfung). - RolesPermissionsTab: das Rollen-Checkbox-Gitter markiert jetzt das erforderliche System role(s) als geprüft und deaktiviert basierend auf dem Typ und der Besitzer-Flagge des Mitglieds: * Mitglieder des Mitglieds: "Mitglieder" sind erforderlich. * Team-Mitglied-Typ-Mitglieder: "Team Members" ist erforderlich. * Team-Mitglied-typische Besitzer: "Administrator (Full Access) " ist zusätzlich erforderlich. Ein "erforderlich" Chip und ein erklärender Hinweis machen die Einschränkung für die Herausgeber. Der Versuch, eine obligatorische Rolle zu vertauschen ist eine No-Op; das Backend Eine Aussöhnung in MemberSecurityController würde sie ohnehin wieder aufnehmen.
· SecurityService
Enforce System-Rollen-Einsatz und Auto-Admin für Team-Mitglieder-Besitzer
MemberSecurityController setzt nun die drei Zuweisungs-Invarianten durch definiert in der Brainstorm-Spezifikation: - saveMemberSecurity: bevor die geforderte Rolle des Anrufers aussteht, erweitert den Satz mit der obligatorischen Systemrolle(s) basierend auf dem Mitgliedstyp: Mitgliedsmitglieder erhalten immer roleMemberID; Team-Member-Typ immer roleTeamMemberID; Team-Mitglieder-Besitzer erhalten Sie zusätzlich immer roleAdminID. LinkedHashSet bewahrt Anrufer Bestellung während der Entduierung. - updateMemberAccess: wenn die Flagge des Eigentümers umgeschaltet wird, die Rolle des Administrators wird hinzugefügt oder entfernt auf dem Team-Mitglied, um Rollenzuweisungen synchron zu halten mit Eigentum. Rechte-geprüfte Neuberechnungen läuft in der gleichen Transaktion so Downstream liest die aktualisierten effektiven Berechtigungen sofort.
· kamo-shared-library
Vorlage zwingen Regeln und DEFAULT Fallback auf Mitgliederrechte Auflösung
**************** überlagert jetzt die aufgetragene Die 4 Standard-Rollenvorlagen des Modells auf der Oberseite der bestehenden Kaskaden (org Rollen) - Abteilung - Berufsbezeichnung - Mitglied): - Rollentyp-spezifisch FORCE_GRANTED/FORCE_NUKE überzeugt alle Kaskaden-Ebenen. Die Vorlage wird nach Mitgliedstyp gewählt: Team-Mitglieder-Besitzer verwenden ADMINISTRATOR, Teammitglieder verwenden TEAM_MEMBER, einfache Mitglieder nutzen MEMBER. - DEFAULT Vorlage FORCE Werte gewinnen über Kaskade, wenn die Rollentyp-Vorlage hat keine Kraftregel für dieses Recht (pro Q7 Vorrang). - DEFAULT Nicht-Kraft-Werte (GRANTED/NUKE) dienen als letztes Verteidigungsniveau für Rechte, die sich nach der vollständigen Kaskade auf NOT_SPECIFIED beschieden haben. AppliedModelResolverService wird als @Autowired(required=false) injiziert, also bestehende Unit-Test-Verdrahtungen, die nur die beiden Konstruktor-Pflicht konstruieren Depots arbeiten weiter und entwürdigen sich zum Vermächtnis ohne Gewaltregeln.
· kamo-internal
Master-Modell-Editor, Rollenvorlagen und Kraft-Regel Gating hinzufügen
Oberflächen das neue branchentypische Sicherheitsmodell in der Benutzeroberfläche: - Zweig-Typen-Tab gewinnt eine "Edit Master Model"-Taste (versteckt, wenn die org hat eine branchTypeID zugewiesen), die den Modelleditor im Master öffnet Modus: kein Namefeld, kein Zweig-Typen-Chip, speichern Sie Hits /master-Modell. - Model-Editor (beide Add-Kind-Modell und Edit-Master-Modell) gewinnt ein neues "Default Security Roles" Abschnitt nach "Gebotene Apps", mit Tabs für Administrator / Teammitglied / Mitglied / DEFAULT und 5-Werte Einstellungen (FORCE_GRANTED, GRANTED, NOT_SPECIFIED, FORCE_NUKE, NUKE). - Neuer EinsatzAppliedModel() hook fetches /api/security/anwendungsmodell einmal und setzt isForced(rightName, roleType) für den Verzehr von Editoren aus. - Sicherheitsaufgaben, Abteilungen, Berufsbezeichnungen und Pro-Mitglieder-Berufe Seiten verstecken Rechte, die durch die anwendbaren Vorlagen blockiert werden: * Sicherheitsrollen: Systemrollen verwenden ihre Matching-Vorlage + DEFAULT; Die kundenspezifischen Rollen verwenden nur DEFAULT (Q11 Antwort A). * Abteilungen + Job-Titel: nur DEFAULT (nicht-rollen-spezifisch). * Mitgliedsseite: Vorlage zum Mitgliedstyp (TEAM_MEMBER vs MEMBER) + DEFAULT (Q8 Antwort C, Typ-erster Bewertungsauftrag). Neue Proxy-Routen: /api/security/master-Modell (GET/PUT), /api/security/anwendungsmodell (GET).
· SecurityService
Master-Modell + angewandte Modell Endpunkte und Template-bewusste Org-Saatgut
Fügt die Controller, die den neuen branchentyp Sicherheitsfluss belegen: - /api/security/master-Modell (GET/PUT) verwaltet den aktuellen org-Master-Master Modell; nur schreibenbar, wenn Organization.branchTypeID null ist. - /api/security/anwendet-Modell (GET) löst, welches Modell dieses Org steuert und gibt pro-Vorwurf Kraft-Regel Karten für Frontend Gating. - SecurityModelController Rundfahrten mit den 4 Standard-Rollenvorlagen als Teil der vorhandenen Erstellung/Update-Nützlast. - OrganizationController propagiert die neue ZweigTypeID aus der Anfrage Körper und Samen der neuen org 3 System Rollen aus dem angewandten Modell Templates über ChildOrgTemplateSeedingService.
· kamo-shared-library
Master-Modell, Standard-Rollenvorlagen und Anwendungsmodell-Abschluss hinzufügen
Einführung der Datenschicht für den neuen branchentypischen Sicherheitsmodellfluss: - Organisation gewinnt nullbare branchTypeID- und masterModelID-Spalten. - Neue RoleRTemplateSettingType enum mit 5 Werten (FORCE_GRANTED, GRANTED, NOT_SPECIFIED, FORCE_NUKE, NUKE) für Vorlagen-Layer-Einstellungen. - Neues DefaultRoleType enum (ADMINISTRATOR, TEAM_MEMBER, MEMBER, DEFAULT) für die 4 Rollenvorlagen, die jedem ChildOrgSecurityModell beigefügt sind. - Neue Entitäten ************ und ************ plus ihre Repos, Service und DTOs. - AppliedModelResolverService löst das Modell, das eine gegebene org regelt (branchType-inherited oder master) und stellt Kraft-Regel-Suchen. - ChildOrgTemplateSeedingService Samen neue Kind orgs 3 System Rollen mit GRANTED/NUKE Werte aus den Vorlagen des angewandten Modells; Kraftwerte bleiben in der Vorlage und werden zur Laufzeit durchgesetzt. Endnutzer OrgRoleRight setzt seine Verwendung des 3-Wertes RoleRightSettingType fort Kraft-Werte sind streng genommen ein Template-Layer-Konzept.
· kamo-internal
Zweig-Typ-Chip-Input-Feld zum Sicherheitsmodell-Editor hinzufügen
- BranchTypeChipField mit farbigem Dot toggle, Edit-on-Click-Etikett und X löschen - BranchTypeEditDialog für Name/Beschreibungsbearbeitung - Autocomplete Dropdown Pulls von GET /api/security/Branch-Typen, schließt aktuelle Modelltypen aus, zeigt Quellmodell für Cross-Modell-Typen - handleSaveModel sendet branchentyp und gelöschtBranchTypeIds in PUT/POST Nutzlast - Listentabelle bekommt Branch Types Spalte mit farbigen Dot Chips - loadModels Karten branchTypes von Backend-Antwort
· kamo-login
MANAGE_USERS rechts von RoleRightType entfernen
· kamo-register
MANAGE_USERS rechts von RoleRightType entfernen
· kamo-internal
MANAGE_USERS direkt aus allen Frontend-Referenzen entfernen
· kamo-shared-library
MANAGE_USERS rechts (id=19) von RoleRightType enum entfernen
· kamo-internal
Fügen Sie Zweig-Typen Sicherheits-API-Route
· SecurityService
Draht-Filiale in Sicherheitsmodell CRUD Endpunkte
· kamo-shared-library
ChildOrgSecurityModelDTO mit vollen Feldern und branchTypes erweitern
· kamo-shared-library
OrgBranchTypeService hinzufügen
· kamo-shared-library
OrgBranchTypeRepository hinzufügen
· kamo-shared-library
OrgBranchTypeDTO hinzufügen
· kamo-shared-library
OrgBranchType-Einheit hinzufügen
· kamo-internal
Update BranchSetupManager Untertitel auf dynamisches Branchentyp-Label
· kamo-internal
Umbenennen Sie Branch Setup-Tab in dynamische {branchLabel]-Typen um und aktualisieren Sie URL auf Zweig-Typen
· kamo-login
Capcha *** nach jedem fehlgeschlagenen Anmeldeversuch zurücksetzen
Benutzer müssen nach jedem falschen Passwort erneut verifizieren, dass sie menschlich sind. Ruft Widget.reset() und kläre CapchaVerified/payload-Staat auf sowohl Anmeldefehler als auch Netzwerkfehler.
· EmailService
Auto-Inject-LogoUrl, logoSimpleUrl und orgName Variablen zum Absenden
EmailTemplateService führt jetzt Basisvariablen zusammen (logoUrl, logoSimpleUrl, orgName) abgeleitet von der primären Domäne der Org vor dem Rendering, so dass alle transaktionalen templates kann sich ohne Anrufer auf {{logoUrl' und {{logoSimpleUrl' beziehen müssen sie explizit übergeben. Anrufern gelieferte Vars haben immer noch Vorrang.
· kamo-internal
Berechtigungsgatter für Benutzer-Level-Felder und Passwort-Änderung Abschnitt in MyAccountTab
· kamo-internal
Access Gate und MANAGE_MEMBER_SECURITY Tab-Wächter zur Mitglieder-Einstellungen hinzufügen
· kamo-internal
Änderungspasswort hinzufügen Next.js API Proxy-Route

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