Wie Customermates gebaut ist, wie Daten isoliert sind, und wie externer KI-Zugriff kontrolliert wird.
Customermates erzwingt ein Single-Tenant-pro-Company-Datenmodell auf jeder Ebene. Jeder Datensatz ist auf eine Company begrenzt, API-Keys tragen die Identität des Owner-Users, und Agents sehen nur das, was dieser User sehen darf.
Jeder Datensatz gehört zu einer Company. Die Company-ID wird an drei Stellen erzwungen:
companyId in jedem where.@TenantInteractor sorgt dafür, dass Interactors, die den Scope vergessen, zur Laufzeit werfen.Cross-Tenant-Reads sind über die öffentliche Oberfläche nicht möglich. Es gibt kein Admin-Panel, das den Scope umgeht.
Drei Wege:
Secure unter HTTPS.x-api-key gesendet.Alle Methoden lösen auf denselben User- und Company-Kontext auf.
Pro User und rollenbasiert. Rollen tragen Permissions auf Resources (Contacts, Organizations, Deals, Services, Tasks) und Actions (Read, Create, Update, Delete). Jeder Interactor ruft userService.hasPermissionOrThrow(resource, action), bevor er handelt.
API-Keys erben die Rechte ihres Owner-Users. Es gibt kein Scoping pro Key.
MCP-Requests nutzen denselben Authentifizierungs- und Autorisierungspfad. Wenn ein Agent über MCP handelt:
/api/v1/mcp mit einem API-Key oder einem OAuth-Bearer-Token.Die MCP-Oberfläche fügt Input-Guardrails hinzu, die Tool-Calls absichern:
null auf einem Relation-Array wird abgelehnt, bevor es die Datenbank erreicht.Den vollständigen Tool-Katalog finden Sie unter MCP.
.env werden nie geloggt. Der Logger redaktiert alles, was wie ein Key, Token oder Passwort aussieht.Jeder Write wird mit User, Action, Entity sowie Vorher- und Nachher-Werten geloggt. Er ist aus der UI abfragbar und als JSON exportierbar. Audit-Logging ist in jedem Cloud-Plan enthalten. Die selbstgehostete Community-Edition enthält kein Audit-Logging.
Bitte melden Sie verantwortungsvoll an security@customermates.com. Der PGP-Key liegt im Repository. Wir bestätigen den Eingang innerhalb von 24 Stunden.