Security Permissions Audit
Complete overview of entity RLS and function access controls across Ascend Capital
Entities Audited
Admin-Only Functions
Deletes Protected
Public Creation Points
Entity-Level Security (RLS)
Public Submission
Public
Owner/Email/Admin
Owner/Email/Admin
Admin
Public Submission
Public
Owner/Email/Admin
Owner/Email/Admin
Admin
Email-Based
Email Owner/Admin
Email Owner/Admin
Email Owner/Admin
Admin
System-Generated
Admin Only
Recipient/Admin
Recipient/Admin
Admin
User-Owned
Owner Only
Owner/Admin
Owner/Admin
Admin
Cross-Entity
Application Owner
Application Owner/Admin
Application Owner/Admin
Admin
Public Signup
Public
Owner/Email/Admin
Owner/Email/Admin
Admin
Admin-Controlled
Admin Only
Granted User/Admin
Admin Only
Admin
Backend Function Access Control
🔴 Admin-Only Functions (Critical)
analyzePortfolio
AI risk analysis of debt portfolios
Database Impact: Updates PortfolioSubmission with risk scores
exportReports
Export CSV reports of applications
Database Impact: Read-only data export
processReferralCommission
Calculate referral commissions
Database Impact: Updates Referral records
applicationStatusChanged
Workflow on status changes
Database Impact: Creates notifications, updates records
🔵 Authenticated User Functions
checkEligibility
AI funding eligibility assessment
Database Impact: No database writes
extractFinancialData
Extract metrics from bank statements
Database Impact: Updates FundingApplication
🟡 Public/Anonymous Functions
trackDistributorVisit
Log distributor link clicks
Database Impact: Creates DistributorReferral entry
Admins only via analyzePortfolio function
- Portfolio creator (via created_by)
- Portfolio email owner (via data.email)
- Admins (full access)
Users cannot view other users' portfolios. Email-based isolation enforced.
Full Details: See SECURITY_AUDIT.md in the project root for complete RLS configuration and implementation guide.