Repository navigation
Keep Etsy keys while the app awaits Etsy's approval - #1432
Merged
Merged
Conversation
The Etsy guide asked for the callback URL before the keys, but Etsy opens an app's page, where callback URLs go, only after it approves the app. Users stalled at that step and lost the keys they had typed. The guide now follows Etsy's order: create the app, copy the two keys (shown while the app is pending), save them and ask Etsy about them, wait for the approval with the keys kept, then add the callback URL and sign in. Two new setupGuide step fields drive it: saveAndCheck stores the values on the connector and runs checkBeforeAuthorization; waitForProvider is shown only while the provider refuses the keys and checks again when the user comes back to the page. The saved connector id goes into the address and the saved progress, so a user returning days later continues with the same connector. Also: a compact stepper for guides with more than four steps, and Etsy's current labels (Personal Apps, Shared Secret) in the guide and field help.
helpcodeai
enabled auto-merge (squash)
November 2, 2026 08:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Etsy guide asked for the callback URL before Etsy lets anyone add one: a new personal app stays Pending Personal Approval, and its page, where Callback URLs are, opens only after Etsy approves it. In the last 21 days 378 Cloud workspaces hit Etsy's 403 for an app not active yet, and only 36% of them ended with a working connector (details in #1431). The guide now follows Etsy's real order and keeps the keys while the user waits.
Changes
setupGuidestep fields (backend type, frontend type, validator, docs):saveAndCheck: Continue saves the step's fields on the connector (unfinished,needs_authorization, so the AI cannot use it yet) and asks the provider about the keys with the adapter'scheckBeforeAuthorization.waitForProvider: the step after it, shown only while the provider refuses the keys, skipped once it accepts them. It checks again when it opens and whenever the user returns to the tab (at most once a minute, no timer), offers "Check again" and a way back to the keys; Continue opens once the keys are accepted.?connector=) and the saved progress, so a user coming back from Etsy's approval e-mail days later continues with the same connector instead of creating a second one.Type
Testing
etsy.jsonguide)Commands and results (worktree from
origin/main, Node 26):node scripts/validate-adapters.mjs --warn→ 705 passed, 0 failed, 1442 warnings (same count as on main, none from Etsy);node scripts/regenerate-catalog.mjs→ no diff;node scripts/adapter-count.mjs --check→ OK;node --test scripts/validate-adapters.test.mjs→ 31 passed.packages/backend(afterprisma generate):npx tsc --noEmit -p tsconfig.json→ exit 0;npm run lint→ no changes;npm test -- --maxWorkers=4→ 966 suites passed, 6 skipped; 29848 tests passed, 1804 skipped.packages/frontend:npx tsc --noEmit -p tsconfig.json→ exit 0;npm run lint→ 0 errors (49 existing warnings, none in the changed files);npx playwright test tests/e2e/connector-setup-guide.spec.ts tests/e2e/connector-guided-setup.spec.ts→ 19 passed (new: approved app skips the wait, pending app waits with keys saved and goes on after a reload once approved, "Check again" and the way back to the keys, existing connector refused at the last step lands on the wait);npx playwright test tests/e2e/i18n.spec.ts→ 55 passed.Not verified: the live flow against a real Etsy app (no Etsy seller account here). Etsy answers the same 403 for a pending app and a wrong shared secret, so the wait step explains both.
Cloud and self-hosted behave the same: the setup page and the check run on the instance; self-hosted users see their own callback URL.
Checklist
npm test)Related Issues
Fixes #1431