Home / Function/ createSQLPolicy() — supabase Function Reference

createSQLPolicy() — supabase Function Reference

Architecture documentation for the createSQLPolicy() function in Policies.utils.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  985f2d7f_95ed_bd41_d27b_4f31564dcf82["createSQLPolicy()"]
  331765b7_d5b8_b1a0_dc2a_d6b857a68adb["PolicyEditorModal()"]
  331765b7_d5b8_b1a0_dc2a_d6b857a68adb -->|calls| 985f2d7f_95ed_bd41_d27b_4f31564dcf82
  ef460339_41b1_8cbe_f6ee_dc2f1aa55216["createSQLStatementForCreatePolicy()"]
  985f2d7f_95ed_bd41_d27b_4f31564dcf82 -->|calls| ef460339_41b1_8cbe_f6ee_dc2f1aa55216
  463c153b_efac_aae1_ca17_44b9918d55bd["createSQLStatementForUpdatePolicy()"]
  985f2d7f_95ed_bd41_d27b_4f31564dcf82 -->|calls| 463c153b_efac_aae1_ca17_44b9918d55bd
  style 985f2d7f_95ed_bd41_d27b_4f31564dcf82 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/studio/components/interfaces/Auth/Policies/Policies.utils.ts lines 20–64

export const createSQLPolicy = (
  policyFormFields: PolicyFormField,
  originalPolicyFormFields: PostgresPolicy
) => {
  const { definition, check } = policyFormFields
  const formattedPolicyFormFields = {
    ...policyFormFields,
    definition: definition
      ? definition.replace(/\s+/g, ' ').trim()
      : definition === undefined
        ? null
        : definition,
    check: check ? check.replace(/\s+/g, ' ').trim() : check === undefined ? null : check,
  }

  if (isEmpty(originalPolicyFormFields)) {
    return createSQLStatementForCreatePolicy(formattedPolicyFormFields)
  }

  // If there are no changes, return an empty object
  if (isEqual(policyFormFields, originalPolicyFormFields)) {
    return {}
  }

  // Extract out all the fields that updated
  const fieldsToUpdate: any = {}
  if (!isEqual(formattedPolicyFormFields.name, originalPolicyFormFields.name)) {
    fieldsToUpdate.name = formattedPolicyFormFields.name
  }
  if (!isEqual(formattedPolicyFormFields.definition, originalPolicyFormFields.definition)) {
    fieldsToUpdate.definition = formattedPolicyFormFields.definition
  }
  if (!isEqual(formattedPolicyFormFields.check, originalPolicyFormFields.check)) {
    fieldsToUpdate.check = formattedPolicyFormFields.check
  }
  if (!isEqual(formattedPolicyFormFields.roles, originalPolicyFormFields.roles)) {
    fieldsToUpdate.roles = formattedPolicyFormFields.roles
  }

  if (!isEmpty(fieldsToUpdate)) {
    return createSQLStatementForUpdatePolicy(formattedPolicyFormFields, fieldsToUpdate)
  }

  return {}
}

Subdomains

Frequently Asked Questions

What does createSQLPolicy() do?
createSQLPolicy() is a function in the supabase codebase.
What does createSQLPolicy() call?
createSQLPolicy() calls 2 function(s): createSQLStatementForCreatePolicy, createSQLStatementForUpdatePolicy.
What calls createSQLPolicy()?
createSQLPolicy() is called by 1 function(s): PolicyEditorModal.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free