Skip to content

Add hidden App Doctor submit command - #8462

Draft
jek wants to merge 1 commit into
app-doctor/cli-scanfrom
app-doctor/scan-submit
Draft

Add hidden App Doctor submit command#8462
jek wants to merge 1 commit into
app-doctor/cli-scanfrom
app-doctor/scan-submit

Conversation

@jek

@jek jek commented Sep 2, 2026

Copy link
Copy Markdown

Adds shopify app doctor submit, which reads the local App Doctor trace, builds a fail-closed allowlisted submission, and uploads it to App Management. The submission carries only check outcomes, finding fingerprints, redacted titles and justifications, engine and CLI versions, and a trace digest. No source code, file paths, snippets, evidence,
messages, or commit identifiers are sent.

The command extends BaseCommand rather than AppLinkedCommand so trace validation runs before the app is linked. It always writes .shopify/app-doctor/submission.json for inspection, then either stops (--dry-run), asks for confirmation, or uploads (--force). --json emits a single tagged result and links non-interactively. In non-interactive terminals --force is required unless --dry-run is set.

Plumbing: appRequestScanUploadUrl and appScanCreate mutations with generated types, generateScanUploadUrl/createAppScan on the developer platform client, an artifactName label for uploadToGCS, and a skipPrompts option on linkedAppContext.

The command is hidden, so there is no changeset. The App Management schema additions live in the gitignored local schema; codegen and the graphql-schema CI job will fail until Core ships the contract.

Co-authored-by: AI noreply@pi.dev

Assisted-By: devx/f000c74b-02bd-420a-abaf-487fbbbd8b3e

WHY are these changes introduced?

Fixes #0000

WHAT is this pull request doing?

How to test your changes?

Post-release steps

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact
  • The change is user-facing — I've identified the correct bump type (patch for bug fixes · minor for new features · major for breaking changes) and added a changeset with pnpm changeset add

Adds `shopify app doctor submit`, which reads the local App Doctor trace,
builds a fail-closed allowlisted submission, and uploads it to App
Management. The submission carries only check outcomes, finding
fingerprints, redacted titles and justifications, engine and CLI versions,
and a trace digest. No source code, file paths, snippets, evidence,
 messages, or commit identifiers are sent.

The command extends BaseCommand rather than AppLinkedCommand so trace
validation runs before the app is linked. It always writes
`.shopify/app-doctor/submission.json` for inspection, then either stops
(`--dry-run`), asks for confirmation, or uploads (`--force`). `--json`
emits a single tagged result and links non-interactively. In
non-interactive terminals `--force` is required unless `--dry-run` is set.

Plumbing: `appRequestScanUploadUrl` and `appScanCreate` mutations with
generated types, `generateScanUploadUrl`/`createAppScan` on the developer
platform client, an `artifactName` label for `uploadToGCS`, and a
`skipPrompts` option on `linkedAppContext`.

The command is hidden, so there is no changeset. The App Management
schema additions live in the gitignored local schema; codegen and the
`graphql-schema` CI job will fail until Core ships the contract.

Co-authored-by: AI <noreply@pi.dev>

Assisted-By: devx/f000c74b-02bd-420a-abaf-487fbbbd8b3e
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