prowler-api
Wzorce API Prowlera: izolacja dzierżawców, kontrola dostępu i zarządzanie dostawcami
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill dla programistów pracujących z API Prowlera. Zawiera gotowe wzorce dla Row-Level Security (RLS), kontroli dostępu opartej na rolach (RBAC), cyklu życia dostawców i zadań Celery'ego. Automatycznie aktywuje się przy tworzeniu lub modyfikacji modeli, serializerów, widoków i filtrów w kontekście izolacji dzierżawców. Obejmuje architekturę czterech baz danych i reguły bezpieczeństwa dla zapytań poza kontekstem ViewSet.
Jak używać
Zainstaluj skill w swoim projekcie Prowlera, umieszczając go w katalogu skills/prowler-api. Skill automatycznie się aktywuje podczas tworzenia lub modyfikacji plików w folderze api/ dotyczących modeli, serializerów i widoków.
Przy pracy z izolacją dzierżawców (RLS) zawsze używaj funkcji rls_transaction(tenant_id) w kodzie poza kontekstem ViewSet. Funkcja akceptuje zarówno obiekty UUID, jak i stringi, konwertując je wewnętrznie.
Przed sprawdzeniem uprawnień użytkownika wywołaj get_role(), która zwraca pierwszą rolę użytkownika. Wykorzystaj wynik do implementacji kontroli dostępu opartej na rolach (RBAC).
Przy dekorowaniu funkcji obsługujących cykl życia dostawcy stosuj dekoratory w kolejności: @set_tenant, a następnie @handle_provider_deletion. Kolejność jest krytyczna dla poprawnego działania.
W relacjach wiele-do-wielu (M2M) zawsze używaj jawnych modeli through z polem tenant_id zamiast domyślnego mechanizmu Django. RLS wymaga tej struktury do prawidłowej izolacji danych.
Nigdy nie omijaj RLS poprzez surowe zapytania SQL lub connection.cursor(). Zawsze korzystaj z ORM Djangu z odpowiednim kontekstem bazy danych (default dla standardowych zapytań, replica dla operacji tylko do odczytu).