Skip to content

Add a Notion service configuration #9

Description

@shreyanshjain7174

What

Add Notion as a registered service, following the exact pattern already used by github, slack, stripe, and google_workspace.

Why

More service configurations mean more agents can use AgentGate out of the box without writing any Go code — this is a config-only, no-code-required contribution.

Files to touch

  • configs/services.yaml — the file the Dockerfile and quickstart actually load. Add a notion: entry.
  • config/services.yaml — the local, non-Docker dev default. Add the same entry for consistency (see internal/registry/production_config_test.go's TestProductionConfig_LocalDevDefaultMatches, which checks these two files don't drift).
  • configs/services/notion.yaml — a new per-service reference file, matching the convention README.md points readers at (see configs/services/google_workspace.yaml for the exact shape to copy).

Suggested shape

Notion's API (https://developers.notion.com/reference/intro) uses Bearer token auth (an internal integration secret or an OAuth token) and a fixed Notion-Version header is normally required — AgentGate's current injectAuth doesn't send extra static headers per service yet, so start with the two simplest read-only actions that work without one:

notion:
  base_url: https://api.notion.com
  auth:
    type: bearer
  actions:
    search:
      method: POST
      path: /v1/search
      params:
        query: "string?"
    retrieve_page:
      method: GET
      path: /v1/pages/{page_id}
      params:
        page_id: string

(If you find the Notion-Version header is required for a real call, note that in your PR description rather than silently dropping the action — it's fine to file this as a known limitation.)

Acceptance checks

  • configs/services.yaml, config/services.yaml, and configs/services/notion.yaml all parse as valid YAML and match the registry.Config schema in internal/registry/registry.go.
  • go test ./internal/registry/... passes, including the existing TestProductionConfig_* tests (they check for specific named services being present; adding a new one doesn't break them).
  • No Go code changes are required for this issue.

Test path (no secrets needed)

go test ./internal/registry/... -run TestProductionConfig -v

This test loads the real config files directly — no live Notion account, API key, or network access needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions