Skip to content

ENG-1909 Add no-op Next.js content upsert endpoint#1220

Open
maparent wants to merge 3 commits into
mainfrom
eng-1909-add-no-op-nextjs-content-upsert-endpoint
Open

ENG-1909 Add no-op Next.js content upsert endpoint#1220
maparent wants to merge 3 commits into
mainfrom
eng-1909-add-no-op-nextjs-content-upsert-endpoint

Conversation

@maparent

@maparent maparent commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

https://linear.app/discourse-graphs/issue/ENG-1909/add-no-op-nextjs-content-upsert-endpoint

Content upsert, based on cross-app types.

This introduces a StandaloneCrossAppContent type for upserting contents outside of concepts, following existing sync functions.

Rationale : This is the closest to the current upsert_content practices, since the upsert unification (eng-1824) has been delayed. So it should make eng-1911 as easy as possible.

There is an alternative approach: Do not create StandaloneCrossAppContent, but send the CrossAppNode with the standalone contents; and extract just the contents in the endpoint. In the longer run that is the right approach; but it is only optimal if we are doing the unification of upsert_content and upsert_concepts at the same time, which goes against PR minimalism. But I'm happy to revisit.

Also: I have not, in this PR, introduced a bulk conversion utility function, which could be more optimal in some cases. I think it is worth doing, but clearly a separate scope.

https://www.loom.com/share/202c49deb3014d2e8f60632f38ff71b4

@linear-code

linear-code Bot commented Jul 11, 2026

Copy link
Copy Markdown

ENG-1909

@vercel

vercel Bot commented Jul 11, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
discourse-graph Ready Ready Preview, Comment Jul 17, 2026 12:49pm

Request Review

@supabase

supabase Bot commented Jul 11, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project zytfjzqyijgagqxrzbmz because there are no changes detected in packages/database/supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@maparent
maparent force-pushed the eng-1909-add-no-op-nextjs-content-upsert-endpoint branch from 4cd8e3f to 7fc6f80 Compare July 11, 2026 13:05
@maparent
maparent force-pushed the eng-1909-add-no-op-nextjs-content-upsert-endpoint branch from 7fc6f80 to d43d61e Compare July 11, 2026 13:14
@maparent
maparent marked this pull request as ready for review July 11, 2026 13:19
@maparent
maparent requested a review from mdroidian July 11, 2026 13:19
graphite-app[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

graphite-app[bot]

This comment was marked as resolved.

@maparent
maparent marked this pull request as draft July 13, 2026 19:52
@maparent
maparent force-pushed the eng-2017-add-converter-for-crossapp-schemas-to-localconceptdatainput branch 2 times, most recently from 1127f9a to 284254a Compare July 15, 2026 19:12
@maparent
maparent force-pushed the eng-1909-add-no-op-nextjs-content-upsert-endpoint branch from 615145c to 9445331 Compare July 15, 2026 19:51
@maparent
maparent force-pushed the eng-1909-add-no-op-nextjs-content-upsert-endpoint branch from 9445331 to 856b6fc Compare July 15, 2026 21:41
@maparent
maparent changed the base branch from eng-2017-add-converter-for-crossapp-schemas-to-localconceptdatainput to eng-2036-simplify-the-cross-app-node-contract July 15, 2026 21:42
@maparent
maparent marked this pull request as ready for review July 15, 2026 21:43

@devin-ai-integration devin-ai-integration Bot 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.

Devin Review found 2 new potential issues.

View 2 additional findings in Devin Review.

Open in Devin Review

Comment thread apps/website/app/api/internal/space/[id]/content/route.ts Outdated
Comment thread apps/website/app/api/internal/space/[id]/content/route.ts
@maparent
maparent requested review from mdroidian and removed request for mdroidian July 15, 2026 21:49
Base automatically changed from eng-2036-simplify-the-cross-app-node-contract to main July 16, 2026 19:46
@maparent
maparent force-pushed the eng-1909-add-no-op-nextjs-content-upsert-endpoint branch from d73869a to 477c3be Compare July 17, 2026 12:47
});
return createApiResponse(request, result);
} catch (e: unknown) {
return handleRouteError(request, e, "/api/supabase/space/[id]/content");

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.

The error handler path /api/supabase/space/[id]/content does not match the actual endpoint path /api/internal/space/[id]/content based on the file location. This inconsistency could cause issues with error logging, tracking, and debugging in production.

return handleRouteError(request, e, "/api/internal/space/[id]/content");
Suggested change
return handleRouteError(request, e, "/api/supabase/space/[id]/content");
return handleRouteError(request, e, "/api/internal/space/[id]/content");

Spotted by Graphite

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

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