Coverage for netrun_rbac \ __init__.py: 100%
7 statements
« prev ^ index » next coverage.py v7.12.0, created at 2025-11-28 14:16 -0800
« prev ^ index » next coverage.py v7.12.0, created at 2025-11-28 14:16 -0800
1"""
2Netrun RBAC - Multi-tenant Role-Based Access Control with PostgreSQL RLS
4Extracted from Intirkast SaaS platform (85% code reuse, 12h time savings)
6Features:
7- Role hierarchy enforcement (owner > admin > member > viewer)
8- FastAPI dependency injection for route protection
9- PostgreSQL Row-Level Security (RLS) policy generators
10- Tenant context management
11- Resource ownership validation
12- Project-agnostic with placeholder configuration
14Usage:
15 from netrun_rbac import require_role, require_roles, TenantContext, RLSPolicyGenerator
17 @app.get("/api/admin/dashboard")
18 async def admin_dashboard(user: dict = Depends(require_role("admin"))):
19 return {"message": "Admin access granted"}
20"""
22from .dependencies import (
23 require_role,
24 require_roles,
25 require_owner,
26 require_admin,
27 require_member,
28 check_resource_ownership,
29)
30from .models import Role, Permission, RoleHierarchy
31from .policies import RLSPolicyGenerator
32from .tenant import TenantContext, set_tenant_context, clear_tenant_context
33from .exceptions import (
34 RBACException,
35 InsufficientPermissionsError,
36 TenantIsolationError,
37 ResourceOwnershipError,
38)
40__version__ = "1.0.0"
41__all__ = [
42 # Dependencies
43 "require_role",
44 "require_roles",
45 "require_owner",
46 "require_admin",
47 "require_member",
48 "check_resource_ownership",
49 # Models
50 "Role",
51 "Permission",
52 "RoleHierarchy",
53 # Policies
54 "RLSPolicyGenerator",
55 # Tenant Context
56 "TenantContext",
57 "set_tenant_context",
58 "clear_tenant_context",
59 # Exceptions
60 "RBACException",
61 "InsufficientPermissionsError",
62 "TenantIsolationError",
63 "ResourceOwnershipError",
64]