Zum Inhalt springen

Dokumentation / Teams und Agenturen

Dienste teilen

Gib einem anderen Team Zugriff auf einen Odoo-Dienst — mit einer Rolle, die festlegt, was es tun darf.

Mit dem Teilen gibt dein Team einem anderen calmo.cloud-Team Zugriff auf einen deiner Odoo-Dienste — ohne etwas zu kopieren und ohne dessen Leute in dein Team aufzunehmen. Der Dienst läuft weiter auf deinem Server und bleibt deiner. Das Partnerteam sieht ihn einfach in seiner eigenen Dienstliste und kann so weit damit arbeiten, wie es die von dir gewählte Rolle erlaubt.

Typische Situationen:

  • Agentur und Kunde — die Agentur hostet den Dienst und gibt dem Team des Kunden Operator-Zugriff, sodass der Kunde den Dienst neu starten und Backups herunterladen, aber nichts verändern kann
  • Externe Entwickler — du hostest den Dienst und gibst dem Team eines Freelancers für die Dauer eines Projekts Developer-Zugriff, den du danach wieder entziehst
  • Unternehmensgruppen — Tochtergesellschaften mit eigenen Teams erhalten Zugriff auf eine gemeinsame ERP-Instanz, ohne Server oder Zugangsdaten zu teilen

Das Teilen wird Team für Team freigeschaltet. Wenn du bei deinen Diensten noch keinen Sharing-Tab siehst, ist es für dein Team noch nicht aktiviert — melde dich bei uns, dann schalten wir es frei. Einladungen, die ein Team erhalten hat, kann es immer annehmen — unabhängig davon, ob es selbst Dienste teilen kann.

Hosting-Team und Partnerteams #

Das Team, das den Dienst erstellt hat, ist das Hosting-Team. Ihm gehört der Dienst, es betreibt den Server, auf dem er läuft, und nur dieses Team entscheidet, wer sonst noch Zugriff bekommt. Jedes andere Team mit Zugriff ist ein Partnerteam.

Ein Partnerteam:

  • sieht den Dienst in seiner eigenen Dienstliste
  • arbeitet über dieselben Seiten mit dem Dienst wie das Hosting-Team, eingeschränkt durch seine Rolle
  • bekommt nie Zugriff auf den Server des Hosting-Teams, dessen andere Dienste oder dessen Teameinstellungen

Das Hosting-Team behält jederzeit die volle Kontrolle und kann die Rolle eines Partners ändern oder ihm den Zugriff entziehen, wann immer es möchte.

Rollen #

Wenn du einen Dienst teilst, wählst du eine Rolle für das Partnerteam. Die Rollen bauen aufeinander auf: Jede Rolle kann alles, was die Rollen darunter können.

Rolle Was das Partnerteam tun kann
Viewer Sieht den Dienst, seinen Status und seine Logs.
Operator Startet, stoppt und startet den Dienst zusätzlich neu, deployt ihn neu und erstellt Backups oder lädt sie herunter.
Developer Bearbeitet zusätzlich Einstellungen, erstellt Kopien, verwaltet Addons und Module, öffnet das Terminal, führt Skripte aus und startet Coding-Agent-Sitzungen.
Manager Stellt zusätzlich Backups wieder her und verwaltet Hostnamen.

Im Detail:

Viewer Operator Developer Manager
Dienst, Status und Logs ansehen ✓ ✓ ✓ ✓
Starten, stoppen und neu starten ✓ ✓ ✓
Neu deployen und Images ziehen ✓ ✓ ✓
Backups erstellen und herunterladen ✓ ✓ ✓
Einstellungen bearbeiten und Admin-Zugangsdaten sehen ✓ ✓
Kopien erstellen ✓ ✓
Kopien neutralisieren ✓ ✓
Angebundene Addons aktualisieren, deployen und entfernen ✓ ✓
Module installieren und aktualisieren ✓ ✓
Vorschau-Deployments erstellen ✓ ✓
Web-Terminal öffnen ✓ ✓
Skripte ausführen ✓ ✓
Coding-Agent-Sitzungen starten ✓ ✓
Backups wiederherstellen ✓
Hostnamen verwalten ✓

Viewer und Operatoren sehen die Diensteinstellungen nur lesend, und die Admin-Zugangsdaten bleiben vor ihnen verborgen.

Coding-Agent-Sitzungen gehören dem Team, das sie gestartet hat: Ein Partnerteam sieht die Sitzungen des Hosting-Teams auf einem geteilten Dienst nie, und das Hosting-Team kann die Sitzungen des Partners weder öffnen noch in sie eingreifen. Webhooks zu den Sitzungen eines Partners gehen allerdings an das Hosting-Team — an seine Webhooks mit der Quelle Agent sessions — und nicht an die des Partners. Sie enthalten den Titel der Sitzung, die Werkzeuge, die der Agent nutzen will, und seine Fragen, und sie verlinken auf den Dienst statt auf die Sitzung. Wer die Sitzung im Partnerteam gestartet hat, bekommt trotzdem über die Glocke im Panel Bescheid, wenn die Sitzung Aufmerksamkeit braucht. Mehr dazu unter Webhooks.

Dem Hosting-Team vorbehalten #

Manche Dinge bekommt ein Partnerteam nie, egal welche Rolle es hat:

  • Den Dienst teilen, Rollen ändern und Zugriff entziehen
  • Den Dienst oder eine seiner Kopien löschen
  • Befehle auf dem Server ausführen und deren Ausgabe im Aktionen-Tab lesen
  • Die Backup-Konfiguration und ihre Ziele ändern sowie Backups vom Server importieren
  • Repositories anbinden und Addons aus dem Katalog des Hosting-Teams hinzufügen

Benachrichtigungen und ausgehende Webhooks eines geteilten Dienstes gehen ausschließlich an das Hosting-Team. Die Backup-Übersicht im Dashboard und die Sicherheitsseite umfassen nur die Dienste, die dein Team hostet; ein geteilter Dienst wird dort nicht mitgezählt.

Einen Dienst teilen #

Um einen Dienst zu teilen, musst du Admin des Hosting-Teams sein.

1. Sharing-Tab öffnen #

Öffne den Dienst und wechsle zum Tab Sharing. Er listet jedes Team auf, mit dem der Dienst aktuell geteilt ist.

2. Auf Share with a team klicken #

Klicke auf Share with a team und fülle aus:

  • Team slug — der Slug des Partnerteams, so wie er in der calmo.cloud-URL dieses Teams steht. Frag das Partnerteam danach; calmo.cloud sucht keine fremden Teams für dich heraus.
  • Role — was das Partnerteam tun darf. Das kannst du später ändern.

3. Einladung senden #

Klicke auf Send invitation. Der Owner und die Admins des Partnerteams erhalten eine E-Mail und eine Benachrichtigung in calmo.cloud. Geteilt wird erst, wenn einer von ihnen annimmt.

Einladungen bleiben 7 Tage offen. Der Tab Share invitations zeigt die noch ausstehenden, abgelehnten und abgelaufenen Einladungen. Ausstehende und abgelaufene Einladungen kannst du mit Resend erneut senden, mit Withdraw ziehst du jede von ihnen zurück. Eine abgelehnte Einladung lässt sich nicht erneut senden — ziehe sie zurück und lade das Team neu ein.

Sobald das Partnerteam annimmt, erscheint es im Tab Sharing, und der Dienst taucht in dessen Dienstliste auf.

Eine Einladung annehmen #

Wenn ein anderes Team einen Dienst mit dir geteilt hat:

  1. Öffne Shared with you über dein Teammenü. Dafür musst du Admin deines Teams sein.
  2. Prüfe den Dienst, das Hosting-Team und die Rolle, die dir angeboten wird.
  3. Klicke auf Accept oder Decline.

Nach dem Annehmen erscheint der Dienst in deiner Dienstliste neben deinen eigenen Diensten.

Rolle ändern oder Zugriff entziehen #

Im Tab Sharing des Dienstes kann das Hosting-Team:

  • Change role — wirkt sofort
  • Revoke — entfernt den Zugriff des Teams sofort

Ein Partnerteam kann seinen eigenen Zugriff jederzeit mit Leave im selben Tab beenden.

Wird einem Team der Zugriff entzogen — oder verlässt es den Dienst selbst —, verliert es ihn auch auf jede Kopie des Dienstes, einschließlich der Kopien, die es selbst erstellt hat. Diese Kopien bleiben beim Hosting-Team.

Kopien eines geteilten Dienstes #

Kopien funktionieren wie gewohnt, mit ein paar Regeln fürs Teilen:

  • Erstellt das Hosting-Team eine Kopie, wird sie mit denselben Partnerteams in denselben Rollen geteilt. Im Kopier-Dialog wählst du unter Share the copy with, welche Partner die Kopie behält.
  • Erstellt ein Partnerteam eine Kopie (Developer oder Manager), läuft sie weiterhin auf dem Server des Hosting-Teams und gehört dem Hosting-Team, ist aber nur mit dem Partnerteam geteilt — in derselben Rolle, die es auf dem Original hat. Das Hosting-Team sieht die Kopie ebenfalls.
  • Ein Partnerteam kann keine Kopie einer Kopie erstellen.

Wie Kopien allgemein funktionieren, erfährst du unter Kopien erstellen.

Die API nutzen #

Alles oben Beschriebene steht auch über die REST-API zur Verfügung. API-Tokens gehören zu einem Team; was ein Token darf, hängt also davon ab, ob dieses Team den Dienst hostet oder Partner ist.

Endpunkt Wer
GET /api/service-odoo/{uuid}/shares Hosting-Team
POST /api/service-odoo/{uuid}/shares Hosting-Team — ein Team einladen
GET /api/service-odoo/{uuid}/share-invitations Hosting-Team
PATCH /api/service-odoo/{uuid}/shares/{team-uuid} Hosting-Team — die Rolle ändern
DELETE /api/service-odoo/{uuid}/shares/{team-uuid} Hosting-Team, oder ein Partnerteam für seinen eigenen Zugriff
GET /api/share-invitations eingeladenes Team
POST /api/share-invitations/{uuid}/accept eingeladenes Team
POST /api/share-invitations/{uuid}/decline eingeladenes Team

Die genauen Anfrage- und Antwortformate findest du in der API-Referenz.