prowler-api

Enforce RLS, RBAC, and secure Celery tasks in Django APIs.

1|Updated Aug 16, 2025
One-click install
npx skills add https://github.com/professor-moody/cloud-tools --skill prowler-api-professor-moody
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: prowler-api
Source: https://github.com/professor-moody/cloud-tools/tree/main/repos/prowler/skills/prowler-api
Command: npx skills add https://github.com/professor-moody/cloud-tools --skill prowler-api-professor-moody

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve?

This Skill provides guidance and enforces best practices for developing secure, multi-tenant API features within the Prowler application, specifically addressing complex patterns like Row-Level Security (RLS) and Role-Based Access Control (RBAC).

Core Features & Use Cases

  • RLS Enforcement: Ensures data isolation between tenants using database-level security.
  • RBAC Implementation: Guides the implementation of granular permissions and role management.
  • Celery Task Security: Details patterns for secure and reliable background task execution within a multi-tenant context.
  • Use Case: When developing a new API endpoint that allows users to manage cloud providers, this Skill ensures that each user can only access and modify providers belonging to their own tenant, and that background tasks related to provider synchronization are handled securely.

Quick Start

Use the prowler-api skill to implement Row-Level Security for a new Django model.

Frequently Asked Questions about prowler-api

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce Row-Level Security for multi-tenancy in a Django API?

Row-Level Security (RLS) for multi-tenancy in a Django API is enforced by applying database-level security rules to ensure data isolation. This approach guarantees that queries only return records belonging to the user's specific tenant.

How do I implement Role-Based Access Control in a Django REST API?

Role-Based Access Control (RBAC) in a Django REST API is implemented by defining granular permissions and role management rules. This ensures users can only access or modify cloud resources explicitly authorized for their tenant.

How does Celery handle secure background task execution in a multi-tenant Django application?

Celery handles secure background task execution in a multi-tenant Django application by applying patterns that maintain tenant isolation and permission checks during asynchronous jobs. This securely synchronizes provider data across isolated tenants.

When do I need Row-Level Security and RBAC for my API endpoints?

You need Row-Level Security and RBAC for your API endpoints when developing features that manage tenant-specific cloud providers. These mechanisms enforce tenant isolation and ensure users only access their own tenant's resources.

Can I use Django and Celery for multi-tenant API task isolation?

Yes, you can use Django and Celery for multi-tenant API task isolation by applying specific Python patterns. This combination enforces permission checks and secure background job execution for tenant-specific provider synchronization.

What is the best way to isolate tenant data in a Prowler API application?

The best way to isolate tenant data in a Prowler API application is combining database-level Row-Level Security with RBAC. This dual approach strictly enforces data isolation and granular permission checks for every multi-tenant request.