Skip to content

Notion needs someone with a real workspace to run its test #215

Description

@WaylandYang

The Notion source ships with parsing tests only. Nobody has pointed it at a real workspace.

Unlike the other connectors there is no way to close this locally: Notion is closed-source SaaS
with no emulator, and the open-source alternatives (AppFlowy, AFFiNE) do not speak its API.

The risk is the same one that bit S3, which passed its construction tests and still broke on
every bucket with a folder in it until a live endpoint was tried.

What would help: create an internal integration, share one page with it, run the test.

# Settings -> My connections -> New internal integration
# then share a page with it from the page's ... menu
UTOPIA_NOTION_TEST_TOKEN=ntn_xxx cargo test -p utopia-server notion

A free workspace with a single page works. The token is read-only over exactly the pages you
share with it.

The parts most likely to be wrong, none of which construction tests reach:

  • Pagination. Both /v1/search and /v1/blocks/{id}/children page at 100. A workspace with
    more than that exercises has_more and next_cursor; one with fewer never does.
  • Notion-Version. Pinned to 2026-03-11. A wrong value returns 400 saying only "missing
    version", without naming an acceptable one.
  • Database rows. Their title property is named by the user, so the by-type lookup matters
    here in a way it does not for plain pages.
  • Rate limiting. Roughly three requests a second. Requests are sequential for that reason,
    but nobody has watched what a workspace large enough to hit it actually does.

See crates/utopia-server/src/notion.rs.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions