Skip to content

Prisma 8 + Supabase: blog post and extension docs guide - #8131

Draft
ankur-arch wants to merge 17 commits into
mainfrom
ankur/prisma-8-supabase-blog-guide
Draft

Prisma 8 + Supabase: blog post and extension docs guide#8131
ankur-arch wants to merge 17 commits into
mainfrom
ankur/prisma-8-supabase-blog-guide

Conversation

@ankur-arch

Copy link
Copy Markdown
Contributor

TL;DR

Adds the Prisma 8 + Supabase launch content: the blog post ("Your Supabase RLS policies and auth.users, in your Prisma contract", authors Will + Ankur, with cover images) and the orm/next/extensions/supabase docs guide. Every command and code block was executed against a real hosted Supabase project and deployed to Prisma Compute before being written down. Draft until launch coordination (publish date + public example repo link).

What's in the PR

  • apps/blog/content/blog/prisma-8-supabase-rls-and-auth/index.mdx + hero.svg/meta.png (Eclipse house style, official Prisma + Supabase logos)
  • apps/docs/content/docs/orm/next/extensions/supabase.mdx + registration in the extensions meta.json

Evidence behind the content

  • Example app (contract with @@rls + 4 policies, supabase:auth.AuthUser FK, Hono API) built with prisma-next@0.17.0, @prisma/orm-postgres@0.17.0, @prisma/orm-extension-supabase@0.17.0
  • 15/15 vitest acceptance tests against hosted Supabase (owner-scoped reads/writes, forged-owner rejected, anon denied, cross-user updates 0 rows, service-role bypass, FK integrity + cascade, JWT rejection), re-verified from a fresh clone
  • Deployed to Prisma Compute (live 7.2s); RLS behavior re-verified over HTTP against the deployed URL
  • Known upstream defect surfaced honestly in both documents: db verify fails against current hosted Supabase projects: extension contract declares storage.iceberg_* tables that no longer exist orm#29896 (db verify fails on current hosted projects due to extension storage-contract drift; workaround --marker-only)

Conventions

  • Product named Prisma 8 throughout; real package names recorded (prisma@next does not exist)
  • No em dashes; Early Access framing per the locked positioning; Compute qualified as public beta
  • Docs guide follows the docs-writer skill (numbered steps, verify blocks, troubleshooting, agent prompt); one flagged deviation: the skill reference still says "Prisma Next", overridden by the Prisma 8 naming decision

Before merge

  • Set the real publish date in the blog frontmatter
  • Replace the TODO before publish comment with the public example repo link
  • Coordinate with the Prisma 8 launch train (this content references 0.17.0 as current)

🤖 Generated with Claude Code

Blog: prisma-8-supabase-rls-and-auth (Will + Ankur), covering RLS policies
in the Prisma contract and the supabase:auth.AuthUser cross-space FK, with
hero/meta cover images. Docs: orm/next/extensions/supabase guide following
the docs-writer conventions. All code executed against a real hosted
Supabase project and deployed to Prisma Compute; see the test evidence in
the PR description.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
blog Ready Ready Preview Aug 28, 2026 12:57pm
docs Ready Ready Preview Aug 28, 2026 12:57pm
eclipse Ready Ready Preview Aug 28, 2026 12:57pm
site Ready Ready Preview Aug 28, 2026 12:57pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

🍈 Lychee Link Check Report

9 links: ✅ 7 OK | 🚫 0 errors | 🔀 4 redirects | 👻 2 excluded

✅ All links are working!


Full Statistics Table
Status Count
✅ Successful 7
🔀 Redirected 4
👻 Excluded 2
🚫 Errors 0
⛔ Unsupported 0
⏳ Timeouts 0
❓ Unknown 0

@argos-ci

argos-ci Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Argos notifications ↗︎

Awaiting the start of a new Argos build…

Blog: new benefit-led title, pain-first opening, schema and policy in the
first third, one policy shown in full, before/after and request-flow
diagrams, Compute/versions/test-report sections cut.

Docs: replace unsupported 'terminal' code fence language with 'bash'
(broke the Shiki-based docs build and every downstream docs check) and
add the new page's SQL catalog terms plus PostgREST to cspell.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread apps/docs/content/docs/orm/next/extensions/supabase.mdx Outdated
Pyramid-principle pass: RC1 framing throughout with a feedback CTA,
sections renamed to reader takeaways, connected prose instead of
fragments, proof section removed, limitations reframed around
supported scenarios.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Restructure in the Turborepo-guide style: what-you'll-learn list,
connection details collected up front, numbered steps with expected
output after each command, plain-language explanations of the auth
relation, @@rls, and policy blocks, and a verification step. RC1
framing replaces Early Access copy; jargon (contract space, facade,
secondary root) replaced with plain terms.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… syntax

- Blog: lead with the schema and what it does; move the migrations-dir
  pain section below it; retitle sections to say what they claim; cut
  filler transitions and metaphor captions
- Blog + guide: swap prisma-next lane commands for the unified
  npx prisma@next CLI (orm init scaffold, prisma.config.ts with
  definePrismaConfig/ormConfig, contract emit auto-run), validated
  against a fresh scaffold
- Add an extended shiki prisma grammar (namespace, policy_* blocks,
  supabase:auth.AuthUser types) shared from @prisma-docs/ui and wired
  into both apps' fences via rehypeCodeOptions
- RlsFlowDemo: add a Client -> Prisma -> Postgres rail, merge the two
  caption tracks into one, scope the where-clause note to the query and
  enforce steps
- OneContractGraph: render the after card as real Prisma 8 schema
  highlighted with the extended grammar via --ch theme variables
- Guide: backtick auth.users heading (review comment), pin the Compute
  deploy to @prisma/cli@latest so the local rc CLI doesn't shadow it

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Open with the questions a Supabase developer has to answer across
  migrations, dashboard state, app filters, and generated types, then
  state the one-schema value proposition before any syntax
- Add functional before/after comparisons: the .eq('user_id') filter
  and which client key it runs under vs role-bound queries, and the
  hand-written auth.users FK migration vs the declared relation
- Credit Supabase for the RLS enforcement model; make explicit that
  supabase-js stays for Realtime, Storage, and frontend Auth
- Collapse the limitations section to one line linking to the guide
- Retitle to "One schema for your Supabase database, auth
  relationships, and RLS"; remove em dashes

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Validated the full guide against a fresh hosted Supabase project on
prisma@next (rc.6 CLI + rc.4 extension): scaffold, extension config,
session pooler connection, contract emit, migration plan + migrate
(policy hash names and auth.users FK match the published SQL), all six
RLS behavior checks (owner-scoped select with no filter, zero-row
cross-user update, WITH CHECK rejection of forged inserts, empty anon
reads, service_role bypass), and the db verify storage.iceberg known
issue with --marker-only as the workaround.

Only divergence found: the extension snapshot lands in
migrations/snapshots/ referenced from migrations/supabase/, and the app
migration in migrations/app/, so the step-7 bullet now says to commit
the whole migrations directory.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…one idea per paragraph

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ankur-arch and others added 2 commits August 28, 2026 14:41
…over; guide on db migrate

- Blog: lead with the one-file authorization model, show three concrete supabase-js
  failure modes (service-role .eq, hand-written policy SQL, separate type generation),
  then the Prisma 8 answer with a live 7-check RLS run against a fresh Supabase project.
- Commands moved to npx prisma@latest (8.0.0-rc.12): migrate -> db migrate,
  migration ref set db for follow-up plans.
- Guide: same command updates, runnable src/check.ts, PLAN_ORIGIN_UNKNOWN troubleshooting,
  /orm/extensions paths after the main merge.
- Cover regenerated in the 2026 brand: paper surface, prism cyan accent, prism mark +
  Supabase tiles, ink code card, full-color lockup sign-off.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KQCq52DbjW5rnYPEBTjaJv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant