[GH-ISSUE #592] feat: Add multi-app orchestration manifest (apps.json) #167

Closed
opened 2026-02-26 21:33:52 +03:00 by kerem · 1 comment
Owner

Originally created by @rudrankriyam on GitHub (Feb 17, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/592

Summary

Add a simple way to run the same asc operation across multiple apps (a portfolio), without writing bespoke shell loops.

This should be designed for CI/agents and stay non-interactive.

Why this matters

Many teams manage:

  • multiple white-label apps
  • multiple bundle IDs per product
  • iOS + macOS variants

Running “the same thing” per app today requires custom scripts around ASC_APP_ID / --app.

Current state (verified)

  • Some commands have their own --all-* flags (domain-specific), but there is no cross-app orchestration.
  • No .asc/apps.json (or equivalent) manifest exists.
  • Workflow orchestration is being discussed separately (#581).

Proposed UX

Manifest file

.asc/apps.json (proposal):

{
  "apps": [
    {"name":"App A","id":"123","bundleId":"com.example.a"},
    {"name":"App B","id":"456","bundleId":"com.example.b"}
  ]
}

Command runner

# Run a command for every app in the manifest
asc apps run --file .asc/apps.json -- \
  builds latest --output json

Alternative UX (if you prefer pairing with workflows):

  • extend asc workflow run (#581) with --apps-file .asc/apps.json

Flags (proposal):

  • --file (manifest path; default .asc/apps.json)
  • --concurrency (bounded; default 4)
  • --continue-on-error (default true; aggregate failures)
  • --output json|table|markdown (default json)

Output model

Return a deterministic array of per-app results:

  • app metadata
  • exitCode
  • stdout/stderr capture options (off by default to avoid huge output)
  • timings

Constraints

  • Must not introduce interactive prompts.
  • Must be explicit about what is being run.
  • Should avoid leaking secrets in aggregated outputs.

Test plan (TDD-first)

  • cmdtests:
    • manifest validation errors return exit usage (2)
    • runs a harmless subcommand (asc version or --help) per app deterministically
    • concurrency and continue-on-error behavior

Acceptance criteria

  • A manifest-driven multi-app runner exists.
  • Output is deterministic and CI-friendly.
  • make test passes.
Originally created by @rudrankriyam on GitHub (Feb 17, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/592 ## Summary Add a simple way to run the same `asc` operation across multiple apps (a portfolio), without writing bespoke shell loops. This should be designed for CI/agents and stay non-interactive. ## Why this matters Many teams manage: - multiple white-label apps - multiple bundle IDs per product - iOS + macOS variants Running “the same thing” per app today requires custom scripts around `ASC_APP_ID` / `--app`. ## Current state (verified) - Some commands have their own `--all-*` flags (domain-specific), but there is no cross-app orchestration. - No `.asc/apps.json` (or equivalent) manifest exists. - Workflow orchestration is being discussed separately (#581). ## Proposed UX ### Manifest file `.asc/apps.json` (proposal): ```json { "apps": [ {"name":"App A","id":"123","bundleId":"com.example.a"}, {"name":"App B","id":"456","bundleId":"com.example.b"} ] } ``` ### Command runner ```bash # Run a command for every app in the manifest asc apps run --file .asc/apps.json -- \ builds latest --output json ``` Alternative UX (if you prefer pairing with workflows): - extend `asc workflow run` (#581) with `--apps-file .asc/apps.json` Flags (proposal): - `--file` (manifest path; default `.asc/apps.json`) - `--concurrency` (bounded; default 4) - `--continue-on-error` (default true; aggregate failures) - `--output json|table|markdown` (default json) ## Output model Return a deterministic array of per-app results: - `app` metadata - `exitCode` - `stdout`/`stderr` capture options (off by default to avoid huge output) - timings ## Constraints - Must not introduce interactive prompts. - Must be explicit about what is being run. - Should avoid leaking secrets in aggregated outputs. ## Test plan (TDD-first) - [ ] cmdtests: - [ ] manifest validation errors return exit usage (2) - [ ] runs a harmless subcommand (`asc version` or `--help`) per app deterministically - [ ] concurrency and continue-on-error behavior ## Acceptance criteria - [ ] A manifest-driven multi-app runner exists. - [ ] Output is deterministic and CI-friendly. - [ ] `make test` passes.
kerem 2026-02-26 21:33:52 +03:00
Author
Owner

@rudrankriyam commented on GitHub (Feb 20, 2026):

Closing this for now. For the current single-app workflow, repo-local workflows are sufficient. We can revisit multi-app orchestration later if there is clear demand from users/teams.

<!-- gh-comment-id:3932857147 --> @rudrankriyam commented on GitHub (Feb 20, 2026): Closing this for now. For the current single-app workflow, repo-local workflows are sufficient. We can revisit multi-app orchestration later if there is clear demand from users/teams.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/App-Store-Connect-CLI#167
No description provided.