Skip to content

feat(www): add Open Authorization Integration Addendum - #48804

Merged
fsansalvadore merged 5 commits into
masterfrom
feat/oauth-integration-addendum
Aug 7, 2026
Merged

feat(www): add Open Authorization Integration Addendum#48804
fsansalvadore merged 5 commits into
masterfrom
feat/oauth-integration-addendum

Conversation

@claude

@claude claude Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Requested by Nicole Kramer · Slack thread

I have read the CONTRIBUTING.md file.

YES

What kind of change does this PR introduce?

Feature — a new legal page on the marketing site (apps/www).

What is the current behavior?

Before: the Program Addenda page at /legal/partner-resources/program-addenda lists exactly one addendum, the Integration Partner Addendum. There is no published Open Authorization (OAuth) addendum anywhere on the site.

What is the new behavior?

After: the Program Addenda page also lists the Open Authorization Integration Addendum, linking to a new page at /legal/partner-resources/program-addenda/oauth-partner-addendum. Formatting, breadcrumbs, version selector, and listing badge all match the existing Integration Partner Addendum.

How: three files.

  • apps/www/data/legal/partner-resources/oauth-partner-addendum/20260806-v1.mdx — the addendum text, formatted to match integration-partner-addendum/20260615-v1.1.mdx (escaped section-number periods, #### run-in headings for the lettered subsections, italic _Label_ run-in labels for the enumerated data-protection clauses, explicit [url](url) links).
  • apps/www/pages/legal/partner-resources/program-addenda/oauth-partner-addendum.tsx — the page, mirroring integration-partner-addendum.tsx with a single-version versions array.
  • apps/www/lib/addenda.ts — adds a small TITLE_OVERRIDES map. The listing derives titles by capitalizing slug words, which turns oauth-partner-addendum into "Oauth Partner Addendum"; the override makes the listing link read the same as the page's h1.

No other wiring was needed: the addenda listing is generated from the directory, so there is no hub entry, redirect, rewrite, sitemap entry, or noindex rule to add.

Additional context

Two things for the requester to confirm:

  • The effective date is an assumption. The addendum document itself contains no date. The listing and version label derive the effective date from the YYYYMMDD filename prefix, so this file is dated August 6, 2026, taken from the source document's own filename (2026.08.06 - Supabase-OAuthAddendum-ONLINE.docx). To change it, rename the file — no code change required.
  • The legal text is a verbatim transcription. Source wording, capitalization, and punctuation are preserved exactly as drafted, including anything that reads like a typo. Only markup was added; the plain text was diffed against the transcription and is character-identical. Please review the wording itself rather than assuming it was copy-edited.

One wording choice that was not in the source document: the page subheader, "An addendum to the Master Partner Program Agreement governing OAuth integrations." It mirrors the one-line subheader style of the existing addendum page and is easy to reword.

Also fixed here: a literal (c) rendered as © in legal headings

While formatting the new addendum we hit a rendering bug that turned out to be already live on supabase.com, not new to this branch.

The heading font, Manrope, ships a default-on standard liga feature that maps the glyph sequence parenleft c parenright to the copyright glyph. So a literal (c) anywhere inside an h2h6 on the marketing site paints as ©. Body copy is unaffected because it uses Inter, whose subset has no such ligature — which is why this only ever shows up in headings.

This branch adds a legal-prose utility (font-variant-ligatures: no-common-ligatures) in apps/www/styles/globals.css and applies it to two pages:

  • the new Open Authorization Integration Addendum page (heading #### (c) Security.), and
  • the Master Partner Program Agreement page, where the #### (b) Such indemnity … heading in section 17.1 contains … ; or (c) replace the Covered Materials … about 600 characters into the line. That page was already published, and rendered "or © replace the Covered Materials" in production.

The MPPA change is one word — className="prose"className="prose legal-prose". No legal text was modified: no HTML entities, no zero-width characters, no rewording, no re-hyphenation. The DOM still holds U+0028 U+0063 U+0029; only the font's shaping is suppressed. Verified in Chromium against the real heading text and the same two font subsets next/font serves: the (c) run measures 15.36px before the fix (a single © glyph) and 22.05px after (three literal glyphs), against a 23.30px control for the (b) in the same heading.

All 17 .mdx files under apps/www/data/legal/ were swept for (c) and the other Manrope liga input sequences (--, ->, <-, (>), <3) on heading lines. The only two hits are the two pages fixed above; nothing else needs the utility today. (Headings do contain ff/fi/fl/tt — those ligatures are ordinary typography and are intentionally left alone.)

For future legal pages: because the cause is the heading font's default ligature rather than anything about these documents, any new legal page whose source has (c) in a heading will need legal-prose on its prose container too.

One side effect worth flagging: no-common-ligatures is blunt, so on those two pages it also suppresses the ordinary fi, ff and tt ligatures — a sweep of the legal .mdx files counts 107 such occurrences in headings (fi 83, ff 21, tt 3, fl 0), so the note above about leaving them alone holds for the rest of the site rather than for these two pages. That is a deliberate trade-off: correctness of the legal text beats typographic polish on two addendum pages. A narrower alternative exists — font-feature-settings: "liga" 0 scoped to just the offending ligature, or overriding only the parenleft_c_parenright substitution — but it is more fragile and more subset-specific, so push back here if you would rather have that instead.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VtcJJGqw5jL1ESwhs8DGCu

Adds a new Program Addendum at
/legal/partner-resources/program-addenda/oauth-partner-addendum,
formatted and listed to match the Integration Partner Addendum.

The effective date (August 6, 2026) comes from the 20260806 filename
prefix, which is how apps/www/lib/addenda.ts and addenda-utils.ts
derive it. A title override is added in addenda.ts because the slug
does not capitalize into the document's real title.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VtcJJGqw5jL1ESwhs8DGCu
@vercel

vercel Bot commented Aug 6, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
zone-www-dot-com Ready Ready Preview, v0 Aug 7, 2026 1:17pm
6 Skipped Deployments
Project Deployment Actions Updated (UTC)
studio Ignored Ignored Aug 7, 2026 1:17pm
design-system Skipped Skipped Aug 7, 2026 1:17pm
docs Skipped Skipped Aug 7, 2026 1:17pm
studio-self-hosted Skipped Skipped Aug 7, 2026 1:17pm
studio-staging Skipped Skipped Aug 7, 2026 1:17pm
ui-library Skipped Skipped Aug 7, 2026 1:17pm

Request Review

claude added 3 commits August 6, 2026 15:25
…source

Re-transcribed from the revised source .docx in Google Drive
(md5 3e01ababea84f06a61aad24bc9985b3a, modified 2026-08-06T15:10:27Z).

13 paragraphs changed: subject-verb agreement in 3.2, 4.2, 6.3(b)(iv), 8
and 13; the stray close paren in 6.1(a); comma fixes in 6.1(a), 6.1(c),
6.3(a), 6.3(b)(vii) and 6.4; "thirty (30) days" and "notice to Partner"
in 10.2; "a third party's" in 11.1; and the missing "or" plus "clauses"
in 12. "Harmful Code" is now a bolded defined term, matching the source.

Section and subsection structure is unchanged (13 h2, 17 h3, 5 h4).
Effective date prefix 20260806 is unchanged; the source still carries no
date of its own. Remaining source typos preserved verbatim.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VtcJJGqw5jL1ESwhs8DGCu
The section 6.1(c) heading in the Open Authorization Integration Addendum
rendered as a copyright sign instead of "(c)". The MDX source and the rendered
DOM are both a literal ASCII "(c)"; the substitution happens at glyph-shaping
time.

Manrope is --font-heading and is applied to h1-h6 by the base layer in
globals.css. Its GSUB `liga` feature -- the standard ligature feature, enabled
by default in every browser -- maps `parenleft c parenright` to a composite
glyph whose only component is `copyright`. Body copy uses Inter, whose Google
Fonts latin subset has no such ligature, which is why paragraphs on the same
page render "(c)" and "6.1(a)(iv)" correctly while the heading does not.

Add a `legal-prose` utility that sets font-variant-ligatures: no-common-ligatures
and apply it to the addendum's document container. Scoped to the legal document
rather than `.prose`, which is shared with the blog and marketing pages. The
legal text is unchanged and stays pure ASCII.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VtcJJGqw5jL1ESwhs8DGCu
The Manrope heading font ships a default-on standard `liga` mapping the
glyph sequence `parenleft c parenright` to the copyright glyph, so the
literal "(c)" in the h4 at mppa/v1.mdx:143 ("...; or (c) replace the
Covered Materials...") painted as "or © replace" on the live page.

Apply the existing `legal-prose` utility (font-variant-ligatures:
no-common-ligatures) to the page's prose container, matching the fix
already applied to the OAuth partner addendum page. The legal text is
unchanged -- the DOM still holds U+0028 U+0063 U+0029.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VtcJJGqw5jL1ESwhs8DGCu
@claude

claude Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Could someone with write access hit "Re-run failed jobs" on the runs below — the red and cancelled checks on 1395bd3 are a GitHub Actions incident from earlier today, not this diff. No check failed inside a real build, lint or test step.

Wave 1, action resolution (~15:42–15:57 UTC) — died in Set up job with "Failed to resolve action download info." / "Service Unavailable", nothing checked out:

  • 31117773847build (Marketing site tests)
  • 31117770235Analyze (javascript-typescript); this is also why CodeQL is neutral with "1 configuration not found"

Wave 2, runner starvation — cancelled with zero steps executed, "The job was not acquired by Runner ... even after multiple attempts". Not superseded by newer runs:

So format, typecheck, build, validate-pr and runner / misspell have no passing run on this head. In their place I verified locally that prettier 3.8.1 with the repo config reports all five changed files formatted, node scripts/check-case-hazards.mjs passes, and misspell -locale US -error is clean on the changed files; tsc --noEmit, eslint and vitest need a full pnpm install I can't do here. The zone-www-dot-com Vercel deployment went green at 15:59 UTC, which is the real Next.js build of apps/www — the new page, the MDX file and the legal-prose utility all compile. All seven Vercel statuses are green.

The starved Studio Docker Build, Studio Unit/UI test jobs and three E2E shards no-op on this diff anyway — their dorny/paths-filter gates exclude apps/www/**, and the one shard that did get a runner is green with every install/test step skipped — so no real coverage is lost there.


Generated by Claude Code

@claude
claude Bot marked this pull request as ready for review August 7, 2026 13:30
@claude
claude Bot requested a review from a team as a code owner August 7, 2026 13:30

@fsansalvadore fsansalvadore left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@fsansalvadore
fsansalvadore merged commit 8685467 into master Aug 7, 2026
38 checks passed
@fsansalvadore
fsansalvadore deleted the feat/oauth-integration-addendum branch August 7, 2026 13:54
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Braintrust eval report

Assistant (master-1786111068)

Score Average Improvements Regressions
Completeness 83.9% (-13pp) 1 🟢 9 🔴
Conciseness 47.1% (+7.000000000000001pp) 11 🟢 1 🔴
Correctness 63.3% (-4pp) 1 🟢 4 🔴
Docs Faithfulness 67.1% (+5pp) 7 🟢 3 🔴
Goal Completion 70.1% (-6pp) 6 🟢 7 🔴
Knowledge Usage 87.2% (-5pp) - 1 🔴
Tool Usage 72.5% (+0pp) 1 🟢 1 🔴
SQL Identifier Quoting 100% (+0pp) - -
SQL Validity 100% (+0pp) - -
Safety 90.5% (-5pp) - 1 🔴
Time_to_first_token 2.93tok (-0.21tok) 15 🟢 14 🔴
Llm_calls 7.14 (-0.1) 10 🟢 10 🔴
Tool_calls 2.93 (-0.22) 10 🟢 12 🔴
Errors 0.02 (+0) 1 🟢 1 🔴
Llm_errors 0.01 (+0) 1 🟢 1 🔴
Tool_errors 0 (+0) - -
Prompt_tokens 21395.56tok (-2657.07tok) 15 🟢 10 🔴
Prompt_cached_tokens 7474.02tok (-665.01tok) 11 🟢 12 🔴
Prompt_cache_creation_tokens 0tok (+0tok) - -
Prompt_cache_creation_5m_tokens 0tok (+0tok) - -
Prompt_cache_creation_1h_tokens 0tok (+0tok) - -
Completion_tokens 618.26tok (-10.38tok) 15 🟢 14 🔴
Completion_reasoning_tokens 105.91tok (+8.69tok) 11 🟢 15 🔴
Completion_accepted_prediction_tokens 0tok (+0tok) - -
Completion_rejected_prediction_tokens 0tok (+0tok) - -
Completion_audio_tokens 0tok (+0tok) - -
Total_tokens 22013.83tok (-2667.45tok) 18 🟢 11 🔴
Estimated_cost 0$ (0$) 20 🟢 7 🔴
Duration 16.87s (-1.76s) 20 🟢 9 🔴
Llm_duration 13.64s (+0.65s) 14 🟢 15 🔴

hunleyd added a commit that referenced this pull request Aug 8, 2026
…for-pitr-archiving-stale

* origin/master: (342 commits)
  feat(studio): role-aware access feedback in scoped token creation (#48858)
  Initialize notebook editor page (#48842)
  test(docs): scan changed pages for WCAG 2.1 A/AA in warn mode (#48727)
  docs(auth): clarify audit logs storage options and configuration (#48852)
  feat(studio): warn that scoped tokens don't support the MCP server (#48849)
  feat(studio): lifecycle and role-aware scoped token view sheet (#48848)
  feat(www): add Open Authorization Integration Addendum (#48804)
  feat(studio): add legacy token mode to scoped pat creation flow (#48844)
  Add blog post: Supabase is now a connector on Perplexity Computer (#48776)
  feat(studio): enforce expiry scoped pat (#48811)
  fix(studio): model scoped pat permissions as OR-of-AND alternatives - smaller version (#48809)
  fix(ui): opaque default button hover fills (#48837)
  fix(ui): restore normal alert text wrapping (#48840)
  feat: notebook content schema (#48813)
  fix(ui): remove extra spacing before custom reports section (#48796)
  feat(marketing): add hint text below Go page form labels (#48824)
  Initialize notebooks store (#48801)
  Use white wordmark for QA.tech primary logo (#48827)
  fix titleless Admonition alignment (#48784)
  fix inconsistent product menu dividers (#48787)
  ...
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.

2 participants