Pokaż spis treści

Tasko

Model tenantów i modułów

Model tenantów rozdziela dane platformowe od danych operacyjnych firm. App.Control przechowuje firmy, konta, członkostwa, role, tokeny i flagi modułów, a moduły biznesowe pracują na bazach tenantów.

Zakres odpowiedzialności

Tenant reprezentuje firmę i zestaw włączonych modułów. Core jest obowiązkowy, a Settings, Chat, Mcp i RecurringTasks mogą być włączane lub wyłączane przez administratora platformy.

Kontekst tenanta jest wymagany dla operacji na danych firmowych. Endpointy kontrolne tworzenia i obsługi platformy działają poza tym kontekstem, ponieważ dotyczą samej struktury systemu.

Scenariusze funkcjonalne

Utworzenie lub zaproszenie firmy: SystemAdmin wykonuje operację w Tasko.Platform, a App.Control zapisuje rekord tenanta, bazę/secrets oraz początkowy zestaw modułów. Operacja działa poza kontekstem tenantowym, bo dopiero tworzy granicę organizacji.

Zmiana aktywnych modułów: administrator platformy włącza lub wyłącza Settings, Chat, Mcp albo RecurringTasks. Skutek pojawia się w nawigacji klienta, statusie integracji API oraz w RequireModule na endpointach modułów.

Żądanie z PAT scoped do integracji: PersonalAccessTokenAuthenticator porównuje zakres tokenu z metadanymi modułu endpointu. Token ograniczony do Mcp nie powinien przejść przez zwykłe endpointy Core, nawet jeśli należy do poprawnego użytkownika.

Przepływ procesu

flowchart TD
  A[Aktor systemu] --> B[Model tenantów i modułów]
  B --> C[Widok funkcji]
  C --> D[Warstwa komunikacji aplikacji]
  D --> E[Warstwa API]
  E --> F[Logika aplikacyjna i walidacja]
  F --> G{Wynik operacji}
  G -->|poprawny| H[Zapis stanu]
  G -->|odmowa lub blad| I[Problem Details albo komunikat walidacyjny]

Reguły techniczne

EnabledByDefault obejmuje Core, Settings i Chat. Mcp jest wyłączony domyślnie, ponieważ udostępnia powierzchnię API dla narzędzi zewnętrznych.

Rozdzielenie Control DB i baz tenantów ogranicza skutki błędów operacyjnych oraz upraszcza zarządzanie modułami w środowisku wielofirmowym.