- Szycy
- 8 sierpnia 2026 16:47 UTC
- Autor
- Kamo
- Pochęt się
- a9a5b38
Uprawnienia teraz rozwiązuje się na kolumnie typu service_type, ale nie przenoś żadnego wiersza katalogu, więc Każdy plan nadal wiązał się z „wszystko włączone” poprzez niewykonanie zobowiązania. To ziarno Matryca, więc kamo.entitlement.fail-open można ostatecznie wyłączyć bez aplikacji z ciemnego wypalania. - AppEntitlementCatalogMigration (?(51), po PlatformOwnerPlanSeeder): idempotent Zastój. Tworzy kategorię funkcji "Aplikacje" z jednym wierszem BOOLEAN na aplikację non-core Związany z serwisem, ponownie wiąże każdy wcześniej istniejący wiersz, który ma kod, ale nie serwisType, i wstawia brakujące wiersze do planu na poziom. Wstawianie-jeśli brakuje tylko - Nigdy nie usuwa i nigdy nie nadpisuje operatoraIncluded, więc poziom edytowany w Ustawienia UI przetrwają rebooty. Również ponownie łącz istniejące VIDEO_CONF / AI_ASSISTANT / HR_SYSTEM / ESIGNATURES / EMAIL_HOSTING dodatki, które nie przyznawali nic. - KamoCRMPricingLoader: ta sama matryca dla świeżego klastra. W rzędy aplikacji są dołączane do wewnątrz upsertFeatures zamiast pisać w drugim przejściu, ponieważ upsertPlanFeatures usuwa Planowe wiersze przed wstawieniem – drugie połączenie po cichu wyczyściłoby matrycę marketingową. Notatka Ta ładownica jest wyłączona (wczesne zwroty, a jego połączenie DataLoader jest komentowane), co oznacza Dlaczego migracja powyżej jest ścieżką produkcyjną.