[
  {
    "esquema": "auth",
    "objeto": "audit_log_entries",
    "comentario": "Auth: Audit trail for user actions."
  },
  {
    "esquema": "auth",
    "objeto": "flow_state",
    "comentario": "Stores metadata for all OAuth/SSO login flows"
  },
  {
    "esquema": "auth",
    "objeto": "identities",
    "comentario": "Auth: Stores identities associated to a user."
  },
  {
    "esquema": "auth",
    "objeto": "identities_email_idx",
    "comentario": "Auth: Ensures indexed queries on the email column"
  },
  {
    "esquema": "auth",
    "objeto": "instances",
    "comentario": "Auth: Manages users across multiple sites."
  },
  {
    "esquema": "auth",
    "objeto": "mfa_amr_claims",
    "comentario": "auth: stores authenticator method reference claims for multi factor authentication"
  },
  {
    "esquema": "auth",
    "objeto": "mfa_challenges",
    "comentario": "auth: stores metadata about challenge requests made"
  },
  {
    "esquema": "auth",
    "objeto": "mfa_factors",
    "comentario": "auth: stores metadata about factors"
  },
  {
    "esquema": "auth",
    "objeto": "oauth_client_states",
    "comentario": "Stores OAuth states for third-party provider authentication flows where Supabase acts as the OAuth client."
  },
  {
    "esquema": "auth",
    "objeto": "refresh_tokens",
    "comentario": "Auth: Store of tokens used to refresh JWT tokens once they expire."
  },
  {
    "esquema": "auth",
    "objeto": "saml_providers",
    "comentario": "Auth: Manages SAML Identity Provider connections."
  },
  {
    "esquema": "auth",
    "objeto": "saml_relay_states",
    "comentario": "Auth: Contains SAML Relay State information for each Service Provider initiated login."
  },
  {
    "esquema": "auth",
    "objeto": "schema_migrations",
    "comentario": "Auth: Manages updates to the auth system."
  },
  {
    "esquema": "auth",
    "objeto": "sessions",
    "comentario": "Auth: Stores session data associated to a user."
  },
  {
    "esquema": "auth",
    "objeto": "sso_domains",
    "comentario": "Auth: Manages SSO email address domain mapping to an SSO Identity Provider."
  },
  {
    "esquema": "auth",
    "objeto": "sso_providers",
    "comentario": "Auth: Manages SSO identity provider information; see saml_providers for SAML."
  },
  {
    "esquema": "auth",
    "objeto": "users",
    "comentario": "Auth: Stores user login data within a secure schema."
  },
  {
    "esquema": "auth",
    "objeto": "users_email_partial_key",
    "comentario": "Auth: A partial unique index that applies only when is_sso_user is false"
  },
  {
    "esquema": "kynda",
    "objeto": "admin_email_seed",
    "comentario": "Code-declared admin assignments. The auth.users trigger consults this on signup. Modify via migrations only."
  },
  {
    "esquema": "public",
    "objeto": "app_user",
    "comentario": "Profile row mirroring auth.users. Soft-delete via deleted_at; never hard-delete."
  },
  {
    "esquema": "public",
    "objeto": "brand",
    "comentario": "Client tenant. Slug becomes the leftmost subdomain (e.g. easyfairs.bekynda.com)."
  },
  {
    "esquema": "public",
    "objeto": "brand_membership",
    "comentario": "User <-> brand link with role. status=REVOKED keeps audit trail (do not delete rows)."
  },
  {
    "esquema": "public",
    "objeto": "chain",
    "comentario": "Cadena de impacto: secuencia de hasta 6 eslabones sobre la acción de la campaña. BR-1: pertenece a una campaña+marca."
  },
  {
    "esquema": "public",
    "objeto": "chain_link",
    "comentario": "Eslabón: un participante ejecutando la acción de la campaña dentro de una cadena. transferred_at se sella cuando el siguiente eslabón se activa (la pulsera cambió de manos)."
  },
  {
    "esquema": "public",
    "objeto": "chain_token",
    "comentario": "Identificador de cadena: pulsera física con id lateral impreso (kind=PHYSICAL) o token digital autogenerado (kind=DIGITAL). BR-4: un token ↔ como máximo una cadena."
  },
  {
    "esquema": "public",
    "objeto": "portal_allowlist",
    "comentario": "Emails autorizados a registrarse en un portal en modo RESTRICTED. Pegar bulk desde /admin/users."
  },
  {
    "esquema": "public",
    "objeto": "role",
    "comentario": "Canonical role catalog. GLOBAL = Kynda staff. BRAND = roles inside a tenant."
  }
]