Skip to content

feat(hubspot): scope-gated surfaces — connect with whatever the app has - #18

Merged
jhd3197 merged 1 commit into
mainfrom
dev
Aug 3, 2026
Merged

feat(hubspot): scope-gated surfaces — connect with whatever the app has#18
jhd3197 merged 1 commit into
mainfrom
dev

Conversation

@jhd3197

@jhd3197 jhd3197 commented Aug 3, 2026

Copy link
Copy Markdown
Owner

A private app no longer needs every scope: connect validates the token against account-info (scopeless, so 401 means bad token), then probes one route per surface — content → design roots, files → /files/, hubdb → /hubdb/. A missing scope hides that root; entering one anyway names the scope to enable. Connect fails only when nothing is usable.

Also fixes two live-API mismatches found while testing against a real portal: File Manager listings move to the GET search routes (/files/v3/{files,folders}/search — the plain list URLs 405 at the edge), and the connect probe/root metadata use the double-encoded %252F root path.

docs/hubspot-private-app.md documents the scopes for whoever owns the HubSpot app. Mock gains a pat-no-content token (403s Source Code API) plus a degradation test.

A private app no longer needs every scope: connect validates the token
against account-info (scopeless, so 401 means bad token), then probes
one route per surface — content → design roots, files → /files/,
hubdb → /hubdb/. A missing scope hides that root; entering one anyway
names the scope to enable. Connect fails only when nothing is usable.

Also fixes two live-API mismatches found while testing against a real
portal: File Manager listings move to the GET search routes
(/files/v3/{files,folders}/search — the plain list URLs 405 at the
edge), and the connect probe/root metadata use the double-encoded
%252F root path.

docs/hubspot-private-app.md documents the scopes for whoever owns the
HubSpot app. Mock gains a pat-no-content token (403s Source Code API)
plus a degradation test.
Copilot AI review requested due to automatic review settings August 3, 2026 16:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@jhd3197
jhd3197 merged commit b9e96cf into main Aug 3, 2026
2 checks passed
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