Skip to content

Publishing

Ship to the marketplace and inspect what's already there.

orion publish

Builds your app with npm run build, runs every validation check, prompts for a changelog, archives your bundle and source, and uploads to the marketplace. If the build or any check fails, it aborts before authentication.

bash
orion publish

The CLI runs your package.json build script, then prints validation rows for Manifest, Bundle, and Source archive, then prompts for confirmation before authenticating and uploading. On success, you'll see a Publish Details block with the new version's App ID, Version, and Status (typically pending_review for a new submission).

If your package.json has no build script, publish aborts with a clear remediation message — add one, or skip the step with --no-build (only safe when your dist/ is already current, e.g. when CI built the bundle in a prior step).

Flags

FlagPurpose
--dry-runRun every check + print the planned upload, but skip the API call. Useful in CI to verify a build is publishable without consuming a version slot. --dry-run still runs npm run build and writes the build-provenance stamp into dist/.orion-build-stamp, so a subsequent --no-build step in the same workflow can reuse the artifacts.
-c, --changelog <message>Inline changelog. Prompted interactively if omitted.
--no-buildSkip npm run build before publish. The CLI still verifies a build-provenance stamp (dist/.orion-build-stamp) written by an earlier auto-build, and refuses to publish if your source has changed since then. Intended for CI flows that build in a separate step; otherwise prefer the default.

Re-publishing the same version

Each version is uploaded once. If the version in orion-app.json already exists for this app, publish exits before uploading:

✖ Version 1.0.0 has already been uploaded (status: submitted). Bump the version in orion-app.json before publishing again.

Bump version in orion-app.json and run orion publish again. To iterate quickly during development, use orion dev instead — it tunnels your local build into the sandbox without writing a marketplace version.

What gets uploaded

  • The contents of dist/ (the bundle).
  • A source archive of your repo. When the project is a git repo, the file list comes from git ls-files (so anything in your .gitignore is already out). On top of that, the CLI hard-excludes the following defense-in-depth list regardless of how the file list was sourced:
    • node_modules/, dist/, .git/
    • .env, .env.* (including .env.local, .env.production, .env.staging)
    • orion.config.{ts,js,mjs,cjs,tsx} (contains your clientId / tenantUuid)
    • Private keys and credentials: *.key, *.pem, *.p12, *.pfx, credentials.json, secrets.json, id_rsa, id_ed25519
    • *.log and .DS_Store

The archive is meant for marketplace reviewer audit; nothing in it is run.


orion apps list

List apps owned by the authenticated developer. Paginates through all results — the count banner reflects total, not page size.

bash
orion apps list
You own 1 app.

  SLUG    STATUS     CURRENT  PUBLISHER
  my-app  published  1.0.5    Your Name

Flags

FlagPurpose
--status <draft|submitted|published|...>Filter by app status.
--jsonMachine-readable response (full envelope including pagination metadata).

orion apps info [slug]

Detail view for a single app. Defaults slug to the value in ./orion-app.json when omitted.

bash
orion apps info my-app
My App (my-app)
  status:           published
  publisher:        Your Name
  current version:  1.0.5
  scopes_required:  user/Patient.read,
                    user/ActivityDefinition.read
  created:          2026-04-21

Flags

FlagPurpose
--jsonEmit the raw record.

orion versions list

List submitted versions for an app, newest first. Slug defaults to the value in ./orion-app.json.

bash
orion versions list
slug: my-app

  VERSION  STATUS     SUBMITTED
  1.0.5    published  2026-04-30 10:15 PDT
  1.0.4    published  2026-04-27 19:16 PDT
  1.0.3    published  2026-04-27 14:44 PDT
  1.0.2    rejected   2026-04-27 14:22 PDT
  1.0.1    published  2026-04-27 13:41 PDT

Flags

FlagPurpose
--slug <slug>App slug (overrides the manifest default).
--status <in_review|published|deprecated|rejected>Filter by status.
--jsonNewline-delimited JSON, one record per line.

orion versions show <version>

Show details and the reviewer thread for one version.

bash
orion versions show 1.0.5
my-app 1.0.5
  status:    published
  submitted: 2026-04-30 10:15 PDT
  bundle:    https://orion-cdn.../bundle.js
  sha256:    eba5a60d…23578d7e
  scope[]:   user/Patient.read,
             user/ActivityDefinition.read
  changelog: "Fix exercise reorder bug"

Review thread (1 message)

  2026-04-30 11:02 PDT — reviewer@orion.dev
    Approved. Tested the reorder flow on staging.

Flags

FlagPurpose
--slug <slug>App slug (overrides the manifest default).
--jsonEmit {version: {…}, review: [{…}]} with internal-only review notes filtered out.

Documents @orion-ehr/cli v0.0.15 — released under the MIT License.