From d6229fa0aebcee3f5b31f24d02d71eb74ddd0b1b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 27 Jul 2026 21:07:35 +0000 Subject: [PATCH 1/4] Add providers management page Adds a /providers page so maintainers can add, edit, and remove the organizations credited as "Provided by" on the map. Previously the providers list could only be changed directly in Supabase. - app/types/Provider.ts: Provider + ProviderInput types - app/api/providers/methods.ts: CRUD client, plus per-provider resource counts so the UI can warn before removing one that is still attributed - app/routes/authenticated/providers/index.tsx: list with add/edit dialogs and a delete confirmation - Sidebar nav entry + route wiring Also adds an RLS migration: providers had RLS enabled with no write policy, so inserts failed with 42501 even for signed-in users. Adds insert/update/delete for `authenticated` while keeping reads public (phlask-map's ProvidedBy component reads providers with the anon key). Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01DQCnNexihkvzxUYee3NUa1 --- app/api/providers/methods.ts | 89 ++++ app/routes.ts | 1 + app/routes/authenticated/_layout.tsx | 8 +- app/routes/authenticated/providers/index.tsx | 383 ++++++++++++++++++ app/types/Provider.ts | 20 + .../20260722010000_providers_rls.sql | 45 ++ 6 files changed, 545 insertions(+), 1 deletion(-) create mode 100644 app/api/providers/methods.ts create mode 100644 app/routes/authenticated/providers/index.tsx create mode 100644 app/types/Provider.ts create mode 100644 supabase/migrations/20260722010000_providers_rls.sql diff --git a/app/api/providers/methods.ts b/app/api/providers/methods.ts new file mode 100644 index 0000000..d7f86b2 --- /dev/null +++ b/app/api/providers/methods.ts @@ -0,0 +1,89 @@ +import type { SupabaseClient } from "@supabase/supabase-js"; +import type { Provider, ProviderInput } from "~/types/Provider"; + +const TABLE_NAME = "providers"; +const JOIN_TABLE_NAME = "resource_providers"; + +export const getProviderAPI = (client: SupabaseClient) => { + const table = client.from(TABLE_NAME); + + return { + getList: async () => { + const { data, error } = await table + .select("*") + .order("name", { ascending: true }); + + if (error) { + throw error; + } + + return (data ?? []) as Provider[]; + }, + getById: async (id: number) => { + const { data, error } = await table + .select("*") + .eq("id", id) + .single(); + + if (error) { + throw error; + } + + return data; + }, + create: async (values: ProviderInput) => { + const { data, error } = await table + .insert(values) + .select() + .single(); + + if (error) { + throw error; + } + + return data; + }, + updateById: async (id: number, values: ProviderInput) => { + const { data, error } = await table + .update(values) + .eq("id", id) + .select() + .single(); + + if (error) { + throw error; + } + + return data; + }, + delete: async (id: number) => { + const { error } = await table.delete().eq("id", id); + + if (error) { + throw error; + } + }, + /** + * How many resources each provider is currently attributed to, keyed by + * provider id. Used to warn before removing a provider that is still in use. + */ + getResourceCounts: async () => { + const { data, error } = await client + .from(JOIN_TABLE_NAME) + .select("provider_id"); + + if (error) { + throw error; + } + + const counts: Record = {}; + for (const row of data ?? []) { + counts[row.provider_id] = (counts[row.provider_id] ?? 0) + 1; + } + + return counts; + }, + }; +}; + +export default getProviderAPI; diff --git a/app/routes.ts b/app/routes.ts index e9dd613..c4baabe 100644 --- a/app/routes.ts +++ b/app/routes.ts @@ -10,6 +10,7 @@ export default [ index("routes/authenticated/dashboard.tsx"), route("reviews", "routes/authenticated/reviews/index.tsx"), route("reviews/:id", "routes/authenticated/reviews/detail.tsx"), + route("providers", "routes/authenticated/providers/index.tsx"), route("logout", "routes/authenticated/logout.tsx"), ]), route("auth", "routes/unauthenticated/_layout.tsx", [ diff --git a/app/routes/authenticated/_layout.tsx b/app/routes/authenticated/_layout.tsx index 959568c..06e4e74 100644 --- a/app/routes/authenticated/_layout.tsx +++ b/app/routes/authenticated/_layout.tsx @@ -1,4 +1,4 @@ -import { Dashboard, Logout, RateReview } from "@mui/icons-material"; +import { Business, Dashboard, Logout, RateReview } from "@mui/icons-material"; import { Box } from "@mui/material"; import { styled } from "@mui/material/styles"; import { Link, NavLink, Outlet } from "react-router"; @@ -134,6 +134,12 @@ export default function DashboardLayout() { Reviews +
  • + + + Providers + +
  • { + const { client } = getDatabaseClient(request); + const providerAPI = getProviderAPI(client); + + const [providers, resourceCounts] = await Promise.all([ + providerAPI.getList(), + providerAPI.getResourceCounts(), + ]); + + return { providers, resourceCounts }; +}; + +/** Treat blank form fields as "not set" rather than empty strings. */ +const optionalField = (value: FormDataEntryValue | null) => { + const trimmed = String(value ?? "").trim(); + return trimmed.length > 0 ? trimmed : null; +}; + +export const action: ActionFunction = async ({ request }) => { + const { client } = getDatabaseClient(request); + const providerAPI = getProviderAPI(client); + const formData = await request.formData(); + const intent = formData.get("intent"); + + if (intent === "delete") { + const id = Number(formData.get("id")); + if (!Number.isInteger(id)) { + return data({ message: "Invalid provider." }, { status: 400 }); + } + + try { + await providerAPI.delete(id); + return data({ message: "Provider removed.", ok: true }); + } catch { + return data({ message: "Failed to remove provider." }, { status: 400 }); + } + } + + if (intent !== "create" && intent !== "update") { + return data({ message: "Unknown action" }, { status: 400 }); + } + + const name = String(formData.get("name") ?? "").trim(); + if (!name) { + return data({ message: "Name is required." }, { status: 400 }); + } + + const values = { + name, + logo_url: optionalField(formData.get("logo_url")), + website_url: optionalField(formData.get("website_url")), + }; + + try { + if (intent === "create") { + await providerAPI.create(values); + return data({ message: `Added ${name}.`, ok: true }); + } + + const id = Number(formData.get("id")); + if (!Number.isInteger(id)) { + return data({ message: "Invalid provider." }, { status: 400 }); + } + + await providerAPI.updateById(id, values); + return data({ message: `Updated ${name}.`, ok: true }); + } catch { + return data( + { + message: + intent === "create" + ? "Failed to add provider." + : "Failed to update provider.", + }, + { status: 400 }, + ); + } +}; + +type ActionResponse = { message: string; ok?: boolean }; + +const ProvidersPage = () => { + const { providers, resourceCounts } = useLoaderData<{ + providers: Provider[]; + resourceCounts: Record; + }>(); + const actionData = useActionData(); + const navigation = useNavigation(); + const isSubmitting = navigation.state === "submitting"; + + const [editing, setEditing] = useState(null); + const [isCreating, setIsCreating] = useState(false); + const [deleting, setDeleting] = useState(null); + + // Close the dialogs once a submission has succeeded. + useEffect(() => { + if (actionData?.ok) { + setEditing(null); + setIsCreating(false); + setDeleting(null); + } + }, [actionData]); + + const isFormOpen = isCreating || editing !== null; + + return ( +
    + + + + Resource providers + + + Organizations credited beneath a resource on the map as "Provided + by". + + + + + + {actionData?.message && ( + + {actionData.message} + + )} + + + + + + Logo + Name + Website + Resources + + Actions + + + + + {providers.length === 0 && ( + + + + No providers yet. Add one to start attributing resources. + + + + )} + {providers.map((provider) => ( + + + + {provider.name.charAt(0).toUpperCase()} + + + + + {provider.name} + + + + {provider.website_url ? ( + + {new URL(provider.website_url).hostname} + + + ) : ( + + — + + )} + + + + + + + setEditing(provider)} + aria-label={`Edit ${provider.name}`} + > + + + + + setDeleting(provider)} + aria-label={`Remove ${provider.name}`} + > + + + + + + ))} + +
    +
    + + {/* Add / edit */} + { + setEditing(null); + setIsCreating(false); + }} + fullWidth + maxWidth="sm" + > +
    + + {editing ? "Edit provider" : "Add provider"} + + + + {editing && } + + + + + + + + + + +
    +
    + + {/* Delete confirmation */} + setDeleting(null)}> +
    + Remove provider? + + + + + {deleting?.name} will no longer be available for attribution. + + {deleting && (resourceCounts[deleting.id] ?? 0) > 0 && ( + + This provider is attributed to {resourceCounts[deleting.id]}{" "} + resource(s). Those resources will lose their "Provided by" + credit. + + )} + + + + + +
    +
    +
    + ); +}; + +export default ProvidersPage; diff --git a/app/types/Provider.ts b/app/types/Provider.ts new file mode 100644 index 0000000..41b9f57 --- /dev/null +++ b/app/types/Provider.ts @@ -0,0 +1,20 @@ +/** + * An organization that supplies one or more PHLask resources. + * + * Surfaced on the map as the "Provided By" attribution beneath a resource. + */ +export type Provider = { + id: number; + /** The date this provider was added, in ISO UTC format */ + created_at: string; + /** The display name of the organization */ + name: string; + /** If available, a URL to the organization's logo */ + logo_url?: string | null; + /** If available, a URL to the organization's website */ + website_url?: string | null; +}; + +/** The fields a maintainer can set when creating or editing a provider */ +export type ProviderInput = Pick & + Partial>; diff --git a/supabase/migrations/20260722010000_providers_rls.sql b/supabase/migrations/20260722010000_providers_rls.sql new file mode 100644 index 0000000..30ff8c9 --- /dev/null +++ b/supabase/migrations/20260722010000_providers_rls.sql @@ -0,0 +1,45 @@ +-- ============================================================================ +-- RLS policies so signed-in maintainers can manage the providers list from the +-- admin dashboard. +-- +-- Today `providers` has RLS enabled with (at most) a public read policy, so any +-- INSERT/UPDATE/DELETE — including from a signed-in admin — fails with: +-- 42501: new row violates row-level security policy for table "providers" +-- +-- Reads stay public: the map's "Provided By" component fetches providers with +-- the anon key and must keep working. +-- ============================================================================ + +begin; + +-- Ensure RLS is on (no-op if it already is). +alter table public.providers enable row level security; + +-- Public read — required by phlask-map's ProvidedBy component. +drop policy if exists providers_select_public on public.providers; +create policy providers_select_public + on public.providers for select + to anon, authenticated + using (true); + +-- Signed-in maintainers manage the list from the admin dashboard. +drop policy if exists providers_insert_auth on public.providers; +create policy providers_insert_auth + on public.providers for insert + to authenticated + with check (true); + +drop policy if exists providers_update_auth on public.providers; +create policy providers_update_auth + on public.providers for update + to authenticated + using (true) + with check (true); + +drop policy if exists providers_delete_auth on public.providers; +create policy providers_delete_auth + on public.providers for delete + to authenticated + using (true); + +commit; From 598b7268455e1d66fc37bbf5099bd58e3fe58f4b Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 28 Jul 2026 04:58:45 +0000 Subject: [PATCH 2/4] Render provider logos uncropped MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Provider logos are wide wordmarks (Share Food Program's is 702x242), but they were rendered in a square 40x40 Avatar, which crops to fill — only "Sh" was visible. Scale to fit instead (height-constrained, object-fit: contain), and fall back to the initial when a logo is missing or fails to load, matching the map's ProvidedBy behaviour. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01DQCnNexihkvzxUYee3NUa1 --- app/routes/authenticated/providers/index.tsx | 45 ++++++++++++++++---- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/app/routes/authenticated/providers/index.tsx b/app/routes/authenticated/providers/index.tsx index a116eb2..a6f75ba 100644 --- a/app/routes/authenticated/providers/index.tsx +++ b/app/routes/authenticated/providers/index.tsx @@ -122,6 +122,42 @@ export const action: ActionFunction = async ({ request }) => { type ActionResponse = { message: string; ok?: boolean }; +/** + * Provider logos are usually wide wordmarks, so they are scaled to fit rather + * than cropped into a square. Falls back to the initial if the logo is missing + * or fails to load, matching the map's "Provided By" behaviour. + */ +const ProviderLogo = ({ provider }: { provider: Provider }) => { + const [failed, setFailed] = useState(false); + + if (!provider.logo_url || failed) { + return ( + + {provider.name.charAt(0).toUpperCase()} + + ); + } + + return ( + setFailed(true)} + sx={{ + height: 40, + maxWidth: 120, + objectFit: "contain", + objectPosition: "left center", + display: "block", + }} + /> + ); +}; + const ProvidersPage = () => { const { providers, resourceCounts } = useLoaderData<{ providers: Provider[]; @@ -208,14 +244,7 @@ const ProvidersPage = () => { {providers.map((provider) => ( - - {provider.name.charAt(0).toUpperCase()} - + From e2885a538554f4fe0dcb52208248707a243ebb09 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 28 Jul 2026 05:11:48 +0000 Subject: [PATCH 3/4] Add providers page screenshots for PR reference Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01DQCnNexihkvzxUYee3NUa1 --- docs/screenshots/providers-add-dialog.png | Bin 0 -> 95796 bytes docs/screenshots/providers-list.png | Bin 0 -> 71381 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/screenshots/providers-add-dialog.png create mode 100644 docs/screenshots/providers-list.png diff --git a/docs/screenshots/providers-add-dialog.png b/docs/screenshots/providers-add-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..bae09e78a46c0d9b9923d426139ea121438edfa2 GIT binary patch literal 95796 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

    *nuWezjhyIq<3r&YtHkFOFY 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 J<1}qT{|oan2^9bU literal 0 HcmV?d00001 diff --git a/docs/screenshots/providers-list.png b/docs/screenshots/providers-list.png new file mode 100644 index 0000000000000000000000000000000000000000..60ae4805cc2bbf6853eb763773ceba5b85874424 GIT binary patch literal 71381 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�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 Uw9Hm+A1DkwUHx3vIVCg!08k6D=l}o! literal 0 HcmV?d00001 From 8bf7a170de0eada8a0f30d5b9de82e997681df13 Mon Sep 17 00:00:00 2001 From: Anil Kumar Karapa <90452951+AnilKumar3494@users.noreply.github.com> Date: Tue, 8 Sep 2026 12:55:31 -0400 Subject: [PATCH 4/4] square up providers page (#49) --- app/api/providers/methods.ts | 18 +-- app/routes/authenticated/providers/index.tsx | 142 ++++++++++++++---- ...0260908000000_resource_provider_counts.sql | 27 ++++ ...08000000_resource_provider_counts.down.sql | 5 + 4 files changed, 157 insertions(+), 35 deletions(-) create mode 100644 supabase/migrations/20260908000000_resource_provider_counts.sql create mode 100644 supabase/rollback/20260908000000_resource_provider_counts.down.sql diff --git a/app/api/providers/methods.ts b/app/api/providers/methods.ts index d7f86b2..da6b8b6 100644 --- a/app/api/providers/methods.ts +++ b/app/api/providers/methods.ts @@ -2,7 +2,7 @@ import type { SupabaseClient } from "@supabase/supabase-js"; import type { Provider, ProviderInput } from "~/types/Provider"; const TABLE_NAME = "providers"; -const JOIN_TABLE_NAME = "resource_providers"; +const COUNTS_VIEW_NAME = "resource_provider_counts"; export const getProviderAPI = (client: SupabaseClient) => { const table = client.from(TABLE_NAME); @@ -56,21 +56,21 @@ export const getProviderAPI = (client: SupabaseClient) => { return data; }, + delete: async (id: number) => { - const { error } = await table.delete().eq("id", id); + const { data, error } = await table.delete().eq("id", id).select("id"); if (error) { throw error; } + + return (data ?? []).length > 0; }, - /** - * How many resources each provider is currently attributed to, keyed by - * provider id. Used to warn before removing a provider that is still in use. - */ + getResourceCounts: async () => { const { data, error } = await client - .from(JOIN_TABLE_NAME) - .select("provider_id"); + .from(COUNTS_VIEW_NAME) + .select("provider_id, resource_count"); if (error) { throw error; @@ -78,7 +78,7 @@ export const getProviderAPI = (client: SupabaseClient) => { const counts: Record = {}; for (const row of data ?? []) { - counts[row.provider_id] = (counts[row.provider_id] ?? 0) + 1; + counts[row.provider_id] = Number(row.resource_count); } return counts; diff --git a/app/routes/authenticated/providers/index.tsx b/app/routes/authenticated/providers/index.tsx index a6f75ba..456cfc2 100644 --- a/app/routes/authenticated/providers/index.tsx +++ b/app/routes/authenticated/providers/index.tsx @@ -41,6 +41,31 @@ import type { Provider } from "~/types/Provider"; export const middleware = [authMiddleware]; +type FieldErrors = Partial>; + +const parseProviderId = (value: FormDataEntryValue | null) => { + const trimmed = String(value ?? "").trim(); + if (!/^\d+$/.test(trimmed)) { + return null; + } + + const id = Number(trimmed); + return Number.isSafeInteger(id) && id > 0 ? id : null; +}; + +const INVALID_URL_MESSAGE = + "Enter a valid web address, for example example.org/logo.svg"; + +/** Keep the underlying reason visible — an RLS denial reads the same as a typo otherwise. */ +const describeFailure = (error: unknown, fallback: string) => { + const detail = + error && typeof error === "object" && "message" in error + ? String((error as { message: unknown }).message) + : ""; + + return detail ? `${fallback} ${detail}` : fallback; +}; + export const loader: LoaderFunction = async ({ request }) => { const { client } = getDatabaseClient(request); const providerAPI = getProviderAPI(client); @@ -53,10 +78,27 @@ export const loader: LoaderFunction = async ({ request }) => { return { providers, resourceCounts }; }; -/** Treat blank form fields as "not set" rather than empty strings. */ -const optionalField = (value: FormDataEntryValue | null) => { +type UrlField = { ok: true; value: string | null } | { ok: false }; + +const optionalUrl = (value: FormDataEntryValue | null): UrlField => { const trimmed = String(value ?? "").trim(); - return trimmed.length > 0 ? trimmed : null; + if (!trimmed) { + return { ok: true, value: null }; + } + + const candidate = /^[a-z][a-z0-9+.-]*:\/\//i.test(trimmed) + ? trimmed + : `https://${trimmed}`; + + try { + const url = new URL(candidate); + if (url.protocol !== "http:" && url.protocol !== "https:") { + return { ok: false }; + } + return { ok: true, value: url.toString() }; + } catch { + return { ok: false }; + } }; export const action: ActionFunction = async ({ request }) => { @@ -66,16 +108,27 @@ export const action: ActionFunction = async ({ request }) => { const intent = formData.get("intent"); if (intent === "delete") { - const id = Number(formData.get("id")); - if (!Number.isInteger(id)) { + const id = parseProviderId(formData.get("id")); + if (id === null) { return data({ message: "Invalid provider." }, { status: 400 }); } try { - await providerAPI.delete(id); + const removed = await providerAPI.delete(id); + if (!removed) { + return data( + { message: "That provider no longer exists." }, + { status: 404 }, + ); + } + return data({ message: "Provider removed.", ok: true }); - } catch { - return data({ message: "Failed to remove provider." }, { status: 400 }); + } catch (error) { + console.error("Failed to delete provider", error); + return data( + { message: describeFailure(error, "Failed to remove provider.") }, + { status: 400 }, + ); } } @@ -84,14 +137,31 @@ export const action: ActionFunction = async ({ request }) => { } const name = String(formData.get("name") ?? "").trim(); + const logoUrl = optionalUrl(formData.get("logo_url")); + const websiteUrl = optionalUrl(formData.get("website_url")); + + const fieldErrors: FieldErrors = {}; if (!name) { - return data({ message: "Name is required." }, { status: 400 }); + fieldErrors.name = "Name is required."; + } + if (!websiteUrl.ok) { + fieldErrors.website_url = INVALID_URL_MESSAGE; + } + if (!logoUrl.ok) { + fieldErrors.logo_url = INVALID_URL_MESSAGE; + } + + if (Object.keys(fieldErrors).length > 0) { + return data( + { message: "Please fix the highlighted fields.", fieldErrors }, + { status: 400 }, + ); } const values = { name, - logo_url: optionalField(formData.get("logo_url")), - website_url: optionalField(formData.get("website_url")), + logo_url: logoUrl.ok ? logoUrl.value : null, + website_url: websiteUrl.ok ? websiteUrl.value : null, }; try { @@ -100,33 +170,43 @@ export const action: ActionFunction = async ({ request }) => { return data({ message: `Added ${name}.`, ok: true }); } - const id = Number(formData.get("id")); - if (!Number.isInteger(id)) { + const id = parseProviderId(formData.get("id")); + if (id === null) { return data({ message: "Invalid provider." }, { status: 400 }); } await providerAPI.updateById(id, values); return data({ message: `Updated ${name}.`, ok: true }); - } catch { + } catch (error) { + console.error(`Failed to ${intent} provider`, error); return data( { - message: + message: describeFailure( + error, intent === "create" ? "Failed to add provider." : "Failed to update provider.", + ), }, { status: 400 }, ); } }; -type ActionResponse = { message: string; ok?: boolean }; +type ActionResponse = { + message: string; + ok?: boolean; + fieldErrors?: FieldErrors; +}; + +const hostnameOf = (url: string) => { + try { + return new URL(url).hostname; + } catch { + return url; + } +}; -/** - * Provider logos are usually wide wordmarks, so they are scaled to fit rather - * than cropped into a square. Falls back to the initial if the logo is missing - * or fails to load, matching the map's "Provided By" behaviour. - */ const ProviderLogo = ({ provider }: { provider: Provider }) => { const [failed, setFailed] = useState(false); @@ -164,6 +244,7 @@ const ProvidersPage = () => { resourceCounts: Record; }>(); const actionData = useActionData(); + const fieldErrors = actionData?.fieldErrors; const navigation = useNavigation(); const isSubmitting = navigation.state === "submitting"; @@ -171,7 +252,6 @@ const ProvidersPage = () => { const [isCreating, setIsCreating] = useState(false); const [deleting, setDeleting] = useState(null); - // Close the dialogs once a submission has succeeded. useEffect(() => { if (actionData?.ok) { setEditing(null); @@ -263,7 +343,7 @@ const ProvidersPage = () => { gap: 0.5, }} > - {new URL(provider.website_url).hostname} + {hostnameOf(provider.website_url)} ) : ( @@ -335,23 +415,33 @@ const ProvidersPage = () => { autoFocus defaultValue={editing?.name ?? ""} placeholder="Share Food Program" + error={Boolean(fieldErrors?.name)} + helperText={fieldErrors?.name} /> diff --git a/supabase/migrations/20260908000000_resource_provider_counts.sql b/supabase/migrations/20260908000000_resource_provider_counts.sql new file mode 100644 index 0000000..ca3bbe9 --- /dev/null +++ b/supabase/migrations/20260908000000_resource_provider_counts.sql @@ -0,0 +1,27 @@ +-- ============================================================================ +-- resource_provider_counts: how many resources each provider is attributed to. +-- +-- The dashboard previously selected every `resource_providers` row and tallied +-- them in JS. PostgREST caps a response at max-rows (1000 by default) and +-- returns the first page WITHOUT an error, so that tally silently under-reports +-- once the join table outgrows the cap. +-- +-- That number is what the "remove provider" confirmation uses to warn that +-- resources are about to lose their "Provided by" credit, so an undercount +-- reads as "safe to delete" — the failure is both silent and destructive. +-- +-- Mirrors the existing `resource_edit_counts` view. +-- ============================================================================ + +begin; + +create or replace view public.resource_provider_counts + with (security_invoker = true) + as + select provider_id, count(*) as resource_count + from public.resource_providers + group by provider_id; + +grant select on public.resource_provider_counts to anon, authenticated; + +commit; diff --git a/supabase/rollback/20260908000000_resource_provider_counts.down.sql b/supabase/rollback/20260908000000_resource_provider_counts.down.sql new file mode 100644 index 0000000..c0baee1 --- /dev/null +++ b/supabase/rollback/20260908000000_resource_provider_counts.down.sql @@ -0,0 +1,5 @@ +begin; + +drop view if exists public.resource_provider_counts; + +commit;