Skip to content

Per-service picker fan-out UI#1315

Open
RhysSullivan wants to merge 8 commits into
ms-per-servicefrom
picker-fanout-ui
Open

Per-service picker fan-out UI#1315
RhysSullivan wants to merge 8 commits into
ms-per-servicefrom
picker-fanout-ui

Conversation

@RhysSullivan

@RhysSullivan RhysSullivan commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #1309. The Google and Microsoft add flows keep the bulk-select picker but now create one integration per selected service via addServices/addWorkloads, with an in-modal result panel (added / already exists / failed with per-service retry). Custom Discovery URLs and custom Graph scopes keep their existing paths; a mixed Microsoft submit no longer folds the selected presets into the custom bundle. Adds stable data-testids for the e2e suite.

Independently reviewed (ship-with-nits; both nits fixed: mixed-flow double-add, google-photos e2e spec updated for the multi-select flow).

Stack

  1. Add per-service Google integrations API #1308
  2. Add per-service Microsoft workload integrations API #1309
  3. Per-service picker fan-out UI #1315 👈 current

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 4, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
executor-marketing a83a2fb Commit Preview URL

Branch Preview URL
Jul 04 2026, 09:28 AM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 4, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
executor-cloud a83a2fb Jul 04 2026, 09:29 AM

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Cloudflare preview

Console https://executor-preview-pr-1315.executor-e2e.workers.dev
MCP https://executor-preview-pr-1315.executor-e2e.workers.dev/mcp
Deployed commit a83a2fb

Sign-in is Cloudflare Access (one-time PIN to an allowed email). The preview has its own database and encryption key; it is destroyed when this PR closes.

@pkg-pr-new

pkg-pr-new Bot commented Jul 4, 2026

Copy link
Copy Markdown

Open in StackBlitz

@executor-js/cli

npm i https://pkg.pr.new/@executor-js/cli@1315

@executor-js/config

npm i https://pkg.pr.new/@executor-js/config@1315

@executor-js/execution

npm i https://pkg.pr.new/@executor-js/execution@1315

@executor-js/sdk

npm i https://pkg.pr.new/@executor-js/sdk@1315

@executor-js/codemode-core

npm i https://pkg.pr.new/@executor-js/codemode-core@1315

@executor-js/runtime-quickjs

npm i https://pkg.pr.new/@executor-js/runtime-quickjs@1315

@executor-js/plugin-file-secrets

npm i https://pkg.pr.new/@executor-js/plugin-file-secrets@1315

@executor-js/plugin-graphql

npm i https://pkg.pr.new/@executor-js/plugin-graphql@1315

@executor-js/plugin-keychain

npm i https://pkg.pr.new/@executor-js/plugin-keychain@1315

@executor-js/plugin-mcp

npm i https://pkg.pr.new/@executor-js/plugin-mcp@1315

@executor-js/plugin-onepassword

npm i https://pkg.pr.new/@executor-js/plugin-onepassword@1315

@executor-js/plugin-openapi

npm i https://pkg.pr.new/@executor-js/plugin-openapi@1315

executor

npm i https://pkg.pr.new/executor@1315

commit: a83a2fb

When presets are checked and custom scopes entered in the same submit, the
workloads already fan out through addWorkloads, so the legacy addGraph call
now carries only the custom scopes. Empty presetIds with custom scopes no
longer falls back to the default workload selection.
The Photos flow now initializes the fan-out picker with both Photos
products checked, so there is no single-integration name/namespace form.
Assert the checked presets, the scope count, and the preset-identity
settings copy instead.
Result panel containers, per-preset result rows (with a data-state of
added/skipped/failed), per-row retry buttons, submit buttons, and preset
checkboxes get data-testid attributes so e2e scenarios can bind to
structure instead of copy.
Cover the Google product and Microsoft workload pickers end to end: check
several presets, submit, and assert each fans out to its own integration with
added/skipped result rows, a per-service detail page, and separate list
entries. The add paths fetch real provider specs (Google Discovery,
msgraph-metadata), so these run against the live specs rather than an emulator.

Also stub the Google per-service OAuth scenario as a documented skip: the
preset add path hardcodes Discovery and OAuth endpoints to real Google with no
emulator override, so it cannot drive an auto-approving consent flow yet.
On selfhost every scenario shares the bootstrap admin, so integrations
added by the fan-out specs stay in the sidebar under their workload
names. Page-wide getByText lookups for names like Outlook Mail then
match both the sidebar link and the picker row and trip Playwright's
strict mode. Scope those lookups to the main landmark in the provider
plugins spec and the two fan-out specs.
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.

1 participant