PoliciesDataProvider() — supabase Function Reference
Architecture documentation for the PoliciesDataProvider() function in PoliciesDataContext.tsx from the supabase codebase.
Entity Profile
Relationship Graph
Source Code
apps/studio/components/interfaces/Auth/Policies/PoliciesDataContext.tsx lines 33–82
export const PoliciesDataProvider = ({
children,
policies,
isPoliciesLoading,
isPoliciesError,
policiesError,
exposedSchemas,
}: PropsWithChildren<PoliciesDataProviderProps>) => {
const policiesByTable = useMemo(() => {
const map = new Map<TableKey, PostgresPolicy[]>()
for (const policy of policies) {
const key = `${policy.schema}.${policy.table}` satisfies TableKey
const existing = map.get(key)
if (existing) {
existing.push(policy)
} else {
map.set(key, [policy])
}
}
for (const list of map.values()) {
list.sort((a, b) => a.name.localeCompare(b.name))
}
return map
}, [policies])
const getPoliciesForTable = useCallback(
(schema: string, table: string) => policiesByTable.get(`${schema}.${table}`) ?? [],
[policiesByTable]
)
const exposedSchemasSet = useMemo(() => new Set(exposedSchemas), [exposedSchemas])
const contextValue = useMemo(
() => ({
getPoliciesForTable,
isPoliciesLoading,
isPoliciesError,
policiesError,
exposedSchemas: exposedSchemasSet,
}),
[getPoliciesForTable, isPoliciesLoading, isPoliciesError, policiesError, exposedSchemasSet]
)
return (
<PoliciesDataContext.Provider value={contextValue}>{children}</PoliciesDataContext.Provider>
)
}
Domain
Subdomains
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free