feat(products): submit App Store products for Apple review - #128
feat(products): submit App Store products for Apple review#128joshdholtz wants to merge 4 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 |
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>
c521e95 to
532b61a
Compare
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>
|
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.
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
Starts real Apple review submissions (confirmation-gated, App Store only). Skips unready products instead of failing the batch; first-IAP-for-an-app still cannot go through this path.
Overview
Adds
rc products store submitso products that were applied to App Store Connect can actually be sent for Apple review. Apply never submitted; this command does.You pass one or more product IDs (same app, max 200).
--storeis App Store only. Unready products (not in ASC, or first IAP that must ship with a new app version) come back skipped with a reason; the run still succeeds. Confirmation is required (--yes/--no-input). Output is a per-product table plus a hint when anything was skipped.Wires a development
POST .../products/actions/submit_to_storeoverlay, a hand-writtenStoreState.SubmitToStoreclient, and tests for mixed outcomes, store rejection, API errors, and agent-schema variadic args.Reviewed by Cursor Bugbot for commit 77c5935. Bugbot is set up for automated code reviews on this repo. Configure here.