paperclip/doc
Dotta a560b48d6d
feat(apps): refine Postman and Shopify setup (#12357)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - Apps give those agents governed access to external tools.
> - Provider catalogs must match each provider's current protocol and
credential contract.
> - Postman method labels and API-key placement were outdated.
> - Shopify now offers a UCP commerce endpoint that needs a managed
agent-profile argument.
> - This pull request updates both providers and documents the complete
connection-authoring workflow.
> - The benefit is accurate setup, safer runtime defaults, and a
repeatable provider review process.

## Linked Issues or Issue Description

Refs #11965

This is stack 10 of 11. It depends on stack 9 and preserves the final
catalog work recovered from #11965.

Related: #5904 covers Shopify skill routing. This pull request covers
the Apps connection contract instead.

## What Changed

- Update Postman hosted MCP methods, capability choices, default
selection, and bearer-token placement.
- Add Shopify UCP commerce and Storefront compatibility methods with
public-store prerequisites.
- Inject the reviewed Shopify UCP agent profile at runtime and remove
that managed field from user input schemas.
- Classify Shopify checkout completion and cancellation as destructive
actions.
- Expand the connection authoring runbook from provider research through
verification and pull request handoff.
- Add focused shared, server, and UI coverage.
- Make the approved-execution waiter phase-aware so slow preparation
cannot consume the provider execution timeout and grace period.
- Settle legacy pre-execute-on-approve requests and invocations as
failed, clear their stale idempotency key, and allow a fresh governed
approval instead of leaving work stuck in `executing`.

## Verification

- `pnpm exec vitest run packages/shared/src/app-definitions.test.ts
server/src/__tests__/tool-access-service.test.ts
ui/src/pages/apps/AppsConnect.test.tsx -t
"Postman|Shopify|normalizeConnectionMethodConfig|classifyRisk"` (16
passed)
- `pnpm exec vitest run
server/src/services/approved-execution-wait.test.ts` (4 passed)
- `pnpm exec vitest run server/src/__tests__/tool-gateway.test.ts -t
"enforces policy, approvals, retries, rate limits, and company
boundaries for connected remote MCP calls"` (1 passed)
- `pnpm exec vitest run
server/src/__tests__/tool-gateway-service.test.ts` (21 passed; includes
legacy approval settlement and fresh-approval recovery)
- `pnpm --filter @paperclipai/server typecheck`
- `pnpm check:token-gates`
- `pnpm -r typecheck`
- `pnpm build`

## Risks

- Shopify UCP calls now include a Paperclip-managed agent profile that
overrides caller input at the same path.
- Postman EU credentials now use the hosted MCP server's bearer-token
contract instead of the general REST API header.
- The catalog generator and checked-in definitions change together to
prevent regeneration drift.
- Approved execution preparation has an explicit two-minute bound;
provider execution retains its own 65-second timeout and persistence
grace starting from durable provider start.
- Legacy approvals created before execute-on-approve are intentionally
terminalized and must be requested again under the current signed
contract.

> I checked `ROADMAP.md`. This provider update does not duplicate
planned core work. The related open Shopify PR addresses skill routing,
not Apps connections.

## Model Used

OpenAI Codex, GPT-5. The runtime exact model ID and context window were
not exposed. The model used reasoning, tool use, and code execution.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change and contains no internal
Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] All Paperclip CI gates are green
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge
2026-08-29 12:08:35 -05:00
..
architecture docs(runner): define architecture and compatibility (#12084) 2026-08-24 09:30:47 -05:00
assets
connections feat(apps): refine Postman and Shopify setup (#12357) 2026-08-29 12:08:35 -05:00
design
experimental
logs
plans feat(connections): add managed external MCP connectors (#12346) 2026-08-29 12:08:34 -05:00
plugins fix(build): enforce Node 24 across Paperclip (#11792) 2026-08-21 10:17:52 -07:00
pr/5429
screenshots
spec
AGENT-ARTIFACTS.md
AGENTCOMPANIES_SPEC_INVENTORY.md
CHANNELS.md
CLI.md copy: unify user-facing "company" wording to "organization" (#12243) 2026-08-27 01:04:55 -07:00
CLIPHUB.md
DATABASE.md Repair the drizzle snapshot so generate emits no spurious migration (#12333) 2026-08-27 12:56:07 -07:00
DEPLOYMENT-MODES.md docs: point section 11 at the renamed implementation plan (#11677) 2026-08-28 11:21:19 -05:00
DEVELOPING.md feat(apps): add connection grants and delegated identities (#12341) 2026-08-29 12:08:33 -05:00
DOCKER.md feat(connections): add managed external MCP connectors (#12346) 2026-08-29 12:08:34 -05:00
GOAL.md
HERMES_GATEWAY_ONBOARDING.md
HERMES_GATEWAY_SMOKE.md
INSTALLING.md fix(cli): open dashboard after onboarding service starts (#12164) 2026-08-25 09:33:09 -05:00
LOW-TRUST-PRESETS.md
MCP-ACCESS-GOVERNANCE.md
MCP-DEMO-SCRIPT.md
MCP-RUNTIME-OPERATIONS.md
OPENCLAW_ONBOARDING.md
PRODUCT.md
PUBLISHING.md
README-draft.md
RELEASE-AUTOMATION-SETUP.md
RELEASE-CHECKLIST.md
RELEASE-NOTES-mcp-access-governance.md
RELEASING.md
SECRETS-AWS-PROVIDER.md
SPEC-implementation.md feat(apps): add connection grants and delegated identities (#12341) 2026-08-29 12:08:33 -05:00
SPEC.md fix(recovery): stop automatic stranded-task takeovers (#11961) 2026-08-22 11:41:24 -05:00
TASK-WATCHDOG.md
TASKS-mcp.md
TASKS.md
TELEMETRY_WORKFLOW.md
UNTRUSTED-PR-REVIEW.md
acp-run-lifecycle.md refactor: disambiguate the Telemetry and Observability data paths (#12128) 2026-08-24 16:42:33 -07:00
connection-intents.md feat(connections): add self-serve intent runtime (#12345) 2026-08-29 12:08:34 -05:00
execution-semantics.md fix(adapter-utils): bound the ACP startup handshake and fence the abandoned session promise (#12454) 2026-08-28 12:21:37 -07:00
memory-landscape.md
observability.md refactor(adapter-utils): replace the process-wide byte ledger with route-local byte bounds (#12465) 2026-08-28 14:36:18 -07:00
run-log-events.md feat(runner): add hidden server PRP coordinator (#12176) 2026-08-25 14:17:14 -05:00