Repository navigation
feat(products): submit App Store products for Apple review - #128
joshdholtz wants to merge 5 commits into
Conversation
DX-975 Add `rc products store submit` — submit App Store products for Apple review
Problem
The MCP/dashboard flow has a dedicated submit step ( What to build
Open question / dependencyThe submit endpoint is not yet in our v2 spec/overlay. First step is to confirm the real API endpoint (check RevenueCat/agents' Related |
c521e95 to
532b61a
Compare
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 77c5935. Configure here.
Applying a store-state plan pushes desired configuration to App Store Connect but never submits anything for review, so products sit configured-but-not-purchasable. This adds `rc products store submit` to start Apple review for the named App Store products. Only the products passed as arguments are submitted, and the backend skips any that aren't ready yet (with a reason) instead of failing the whole run. The endpoint is a beta product-catalog route, so it's added to the beta overlay with a hand-written client method and response types alongside the existing store-state code. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Non-submitted products now get a follow-up hint pointing at the DETAIL reason and the apply-first remedy. Adds unit coverage for the ID validation (trim, empty, >200 cap) and asserts a fully-skipped response still exits 0. Documents the per-product result type (no per-product failure — hard failures are HTTP errors). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The first In-App Purchase or subscription for an app can't be submitted on its own — App Store Connect requires it to be reviewed with a new app version, so submit returns it skipped until the app has an approved product. Document that in the command help and the command surface so it reads as expected, not a bug. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The submit Use string was "<product-id>...", but parseArgsFromUse only recognizes tokens fully enclosed in <> or [], so the trailing dots left the positional args invisible to `rc schema` / `rc commands --schemas` even though MinimumNArgs(1) requires them. Match the sibling attach/detach convention: "<product-id> [product-id...]". Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
77c5935 to
e73262f
Compare
rc products store applypushes desired state to App Store Connect, but nothing is actually submitted to Apple for review — products end up configured but not purchasable. This adds asubmitcommand that starts Apple review for the App Store products you name.You pass the product IDs you want submitted. They all have to belong to the same app. If a product isn't ready yet (not in App Store Connect, or Apple won't take the first IAP through this API), the backend skips it with a reason instead of failing the whole run, and the command reports each outcome plus a summary. It's App Store only;
--storedefaults toapp_storeand rejects anything else.The endpoint is a beta product-catalog route that isn't in the public spec, so it's added to the beta overlay with a hand-written client method and response types next to the existing store-state code.
Tests cover the happy path, a skipped product, the App-Store-only rejection, and a submission failure exit code.
🤖 Generated with Claude Code
Note
Medium Risk
Introduces a confirmed CLI action that triggers Apple App Review for real IAP products; mistakes can start review for the wrong SKUs, though skips and App Store–only validation limit blast radius.
Overview
Adds
rc products store submitso configured App Store products can be sent to Apple review after store-state apply (which only pushes metadata to App Store Connect).The command accepts one or more product IDs (same app, up to 200), defaults
--storetoapp_store, requires confirmation/--yes, and calls a new betaPOST .../products/actions/submit_to_storeendpoint viaStoreStateService.SubmitToStore. It prints a per-product submitted/skipped table (skip reasons in DETAIL), exits nonzero when nothing was submitted, and surfaces API errors (e.g. mixed apps).Docs/spec coverage and the v2 beta overlay document the endpoint; generated path/types support the client. Tests cover mixed outcomes, non–App Store rejection, validation, and CLI output snapshots; schema tests guard variadic
submitargs for agent discovery.Reviewed by Cursor Bugbot for commit e73262f. Bugbot is set up for automated code reviews on this repo. Configure here.