Skip to content

TAN-8139: Source the public API project and folder descriptions from the Content Builder - #14668

Open
EdwinKato wants to merge 16 commits into
masterfrom
TAN-8139-public-api-description-from-layout
Open

TAN-8139: Source the public API project and folder descriptions from the Content Builder#14668
EdwinKato wants to merge 16 commits into
masterfrom
TAN-8139-public-api-description-from-layout

Conversation

@EdwinKato

@EdwinKato EdwinKato commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Part of TAN-8139. Lands before #14434 so that PR no longer has to remove anything from the public API.

The legacy WYSIWYG description_multiloc is on its way out, but three public API fields read it: description_html on /api/v1/projects and /api/v2/projects, and description_multiloc / description on /api/v2/project_folders. Dropping the keys would break integrations — our own Power BI template names them explicitly in its M query, so a missing key fails the whole projects table on the next refresh, not just one column.

So the fields stay, rebuilt from the layout that superseded the column: project_page for a project, project_folder_description for a folder. ContentBuilder::Craftjs::VisibleTextualMultilocs already did the extraction for the admin API; the new service just picks the right layout and hands back a multiloc.

Only text widgets carry over. For a project migrated and not edited since, the original HTML sits in one bridge widget and comes back intact — the v1 acceptance spec's existing exact-HTML assertion passes untouched. For a project rebuilt in the page builder, it is a text-only rendering, which is all a plain HTML field can express anyway.

List endpoints preload content_builder_layouts and the service scans the loaded association, so there is no N+1. Each record still costs a craftjs walk; worth watching if these endpoints turn out to be busy.

Changelog

Technical

  • Project and folder descriptions in the public API are now built from their page
    builder content instead of the old description field, so they keep working once
    that field is removed.

@notion-workspace

Copy link
Copy Markdown

1 similar comment
@notion-workspace

Copy link
Copy Markdown

@cl-dev-bot

cl-dev-bot commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator
Messages
📖 Changelog provided 🎉
📖 Notion issue: TAN-8139
📖

Run the e2e tests

📖 Check translation progress

Generated by 🚫 dangerJS against 88d6469

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