feat(migrate): studio setup beside a live move: install url, grant status, signed setup callback - #403
Conversation
|
REVISE (t8, f94cc00): migrate-install-callback overwrites a workspace's existing, different GitHub installation (the |
…n the claim screen
|
ONAY (t8, e64b9da). Blocking item fixed (a held installation is never swapped; test covers A held, B arrives). Local checks at this head: eslint 0 errors (7 pre-existing warnings), nuxt typecheck exit 0, test:unit 1947 passed / 1 skipped, test:integration 486/486, test:nuxt 274/274 (--testTimeout=90000 under load). Merge note: types stay pinned to published 1.42.0, and NUXT_MIGRATE_INSTALL_STATE_KEY (>= 32 chars) must be set on staging/prod before Migrate asks for install URLs (unset = 404 migrate.unavailable). |
…st, not before it
|
ONAY delta (t8, b2c2621). Compared with my approved e64b9da, only tests/contract/migrate-grants.contract.test.ts changed (6+/6-): the by-order lookup test moved after the claim test, which needs a fresh order (created=true). Reviewed the diff: pure reordering, no product code. I did not re-run the contract suite myself (needs postgres:16); I rely on t7's 13/13 against a local postgres:16 and the postgres-lineage CI. Merge condition: that CI job must be green at this head. |
|
ONAY (t8, e64b9da). Blocking item fixed (held installation is never swapped; test covers A held, B arrives). Local checks at this head: eslint 0 errors (7 pre-existing warnings), nuxt typecheck exit 0, test:unit 1947 passed / 1 skipped, test:integration 486/486, test:nuxt 274/274 (--testTimeout=90000 under load). Merge note: types must stay pinned to the published 1.42.0, and NUXT_MIGRATE_INSTALL_STATE_KEY (>= 32 chars) has to be set on staging/prod before Migrate asks for install URLs (unset = 404 migrate.unavailable). |
Studio side of E4 (W39): the customer installs Studio's GitHub App and signs in to Studio while their Migrate move runs. Migrate side is Contentrain/migrate#355.
Routes (Migrate server-to-server, signed like account-state, jti single-use per purpose, keyed by order_id; contract in @contentrain/types 1.42.0)
Setup callback (server/api/github/setup.get.ts)
Needs before staging
Tests: unit, integration (477) and nuxt (274) green; typecheck and eslint clean. Under this machine's load a few unit files hit their 5 s timeouts and pass alone with a longer one (unrelated).
Deliberately not here: provision/claim core and Polar (t8).