Skip to content

[P2] Add Notion as a catalog platform (via localthought/overlays) #72

Description

@michielbdejong

Summary

The Notion connector in atomic-server's Integrations UI fails to connect. Root cause: notion is not a registered platform in the LocalThought catalog — there is no OpenAPI source or overlay set for it in localthought/overlays' catalog.json, and integration-proxy therefore has nothing to compose or serve at /catalog/notion.yaml.

Why this isn't an integration-proxy code change

Per AGENTS.md, platform-specific data (OpenAPI documents, CRUD/collection structure, crudResources, pagination, auth, throttling) must not be hand-authored in this repo. It belongs in localthought/overlays, referenced by pinned, immutable URLs from that repo's catalog.json. This repo only ever gets a one-line bump of the pinned CATALOG_PATH default in src/config.rs once the new revision exists.

Hand-off plan

  1. In localthought/overlays: author Notion's platform data, following the pattern used for github-issues / google-calendar / moneybird / todoist / spotify / discord:
    • An OpenAPI document for the Notion API (pin from localthought/openapi-directory if a suitable OAD already exists there, otherwise author one).
    • auth-overlay.yaml — OAuth2 security scheme + flow.
    • pagination-overlay.yaml — Notion's cursor-based pagination scheme.
    • crud-causality-overlay.yaml — components.crudResources for the resources the plugin needs (e.g. pages, databases), matching the shape validated by src/catalog.rs's pinned-fixture tests for other platforms.
    • Run that repo's own authoring-time validation before publishing pins.
  2. Add a notion entry to localthought/overlays' root catalog.json referencing the pinned commit URLs from step 1, and publish/commit it.
  3. In integration-proxy: bump the default CATALOG_PATH in src/config.rs to the new catalog.json commit, restart the service, and optionally add a pinned-fixture test (in the style of the existing #[ignore]d tests in src/catalog.rs) asserting the composed Notion document looks right.

References

No implementation changes are proposed here; this issue is a hand-off record only.

Activity

  1. michielbdejong commented on Sep 16, 2026

    @michielbdejong
    ContributorAuthor

    Verified already resolved on main before this issue was filed — Notion is registered in the application's actual default catalog pin (config::DEFAULT_CATALOG_PATH, bumped in commit 8f22a85, two days before this issue) with a working auth overlay (notionOAuth security scheme) and existing fixture tests (tests/fixtures/notion-composed.yaml, composed_notion_preserves_base_path_and_resolves_version_header, composed_notion_fixture_builds_json_token_request). #73 adds a further regression test (default_catalog_pin_selects_google_offline_and_spotify_pkce_profiles) that loads the live default pin over the network and confirms oauth_provider("notion") resolves successfully alongside the other platforms.

    This issue's own hand-off framing correctly identified that step 3 (bumping CATALOG_PATH) belongs in integration-proxy — that bump had already happened. No further integration-proxy code change is needed. Closing with no additional code change.


    Generated by Claude Code

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions