buildPolicyExpression() — supabase Function Reference
Architecture documentation for the buildPolicyExpression() function in Policies.utils.ts from the supabase codebase.
Entity Profile
Dependency Diagram
graph TD 12f30a10_8c77_dfc2_4c89_6857f9e2229c["buildPolicyExpression()"] 0f79b9f8_05d2_1b6f_0b8b_79c7b67cf61d["buildPoliciesForPath()"] 0f79b9f8_05d2_1b6f_0b8b_79c7b67cf61d -->|calls| 12f30a10_8c77_dfc2_4c89_6857f9e2229c style 12f30a10_8c77_dfc2_4c89_6857f9e2229c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
apps/studio/components/interfaces/Auth/Policies/Policies.utils.ts lines 273–307
const buildPolicyExpression = (path: Relationship[]): string => {
if (path.length === 0) return ''
// Direct FK to auth.users
if (path.length === 1) {
return `(select auth.uid()) = ${ident(path[0].source_column_name)}`
}
// Indirect path - build EXISTS with JOINs
const [first, ...rest] = path
const firstTarget = `${ident(first.target_table_schema)}.${ident(first.target_table_name)}`
const source = `${ident(first.source_schema)}.${ident(first.source_table_name)}`
const last = path[path.length - 1]
const joins = rest
.slice(0, -1)
.map((r) => {
const targetSchema = ident(r.target_table_schema)
const targetTable = ident(r.target_table_name)
const targetColumn = ident(r.target_column_name)
const sourceSchema = ident(r.source_schema)
const sourceTable = ident(r.source_table_name)
const sourceColumn = ident(r.source_column_name)
return `join ${targetSchema}.${targetTable} on ${targetSchema}.${targetTable}.${targetColumn} = ${sourceSchema}.${sourceTable}.${sourceColumn}`
})
.join('\n ')
return `exists (
select 1 from ${firstTarget}
${joins}
where ${firstTarget}.${ident(first.target_column_name)} = ${source}.${ident(first.source_column_name)}
and ${ident(last.source_schema)}.${ident(last.source_table_name)}.${ident(last.source_column_name)} = (select auth.uid())
)`
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does buildPolicyExpression() do?
buildPolicyExpression() is a function in the supabase codebase.
What calls buildPolicyExpression()?
buildPolicyExpression() is called by 1 function(s): buildPoliciesForPath.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free