configurator-cli

CLI commands for deploying, diffing, and introspecting Saleor stores. Use this skill whenever running ANY configurator CLI command or debugging CLI output. Covers deploy, introspect, diff, validate, --plan, CI/CD setup, and CLI flags.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "configurator-cli" with this command: npx skills add saleor/configurator/saleor-configurator-configurator-cli

Configurator CLI

Overview

The Saleor Configurator CLI syncs your YAML configuration with a live Saleor instance. You define your store in config.yml, then use CLI commands to preview and apply changes.

In non-TTY mode (pipes, CI, subprocesses), all commands automatically output a JSON envelope. Use --json to force JSON in a terminal, or --text to force human-readable in non-TTY.

When to Use

  • "How do I deploy my config?"
  • "How do I pull the current store configuration?"
  • "How do I preview changes before deploying?"
  • "What flags does deploy support?"
  • "How do I set up CI/CD for my store?"
  • "What do the exit codes mean?"
  • "How do I validate my config without network?"
  • When NOT modeling products or writing YAML -- use product-modeling or configurator-schema instead

Core Commands

validate

Validates config.yml against the schema locally (no network required).

pnpm dlx @saleor/configurator validate
pnpm dlx @saleor/configurator validate --config custom-config.yml
pnpm dlx @saleor/configurator validate --json

introspect

Pulls the current configuration from a Saleor instance into config.yml.

pnpm dlx @saleor/configurator introspect --url=$SALEOR_URL --token=$SALEOR_TOKEN

Use cases: initial setup, backup before changes, restore from known-good state.

deploy

Pushes local config.yml changes to a Saleor instance.

pnpm dlx @saleor/configurator deploy --url=$SALEOR_URL --token=$SALEOR_TOKEN

Important flags:

  • --plan -- preview changes without applying (replaces --dry-run)
  • --plan --json -- machine-readable deployment plan
  • --fail-on-delete -- abort if any deletions would occur (exit code 6)
  • --fail-on-breaking -- abort if breaking changes detected (exit code 7)
  • --include <types> -- only deploy specific entity types
  • --exclude <types> -- skip specific entity types
  • --report-path <file> -- custom path for deployment report (default: auto-generated in CWD)
  • --skip-media -- skip media file uploads

diff

Compares local config.yml with the remote Saleor instance.

pnpm dlx @saleor/configurator diff --url=$SALEOR_URL --token=$SALEOR_TOKEN

Output markers: + CREATE (new), ~ UPDATE (modified), - DELETE (removed).

Entity scoping:

  • --entity-type "Categories" -- filter to one entity type
  • --entity "Categories/electronics" -- filter to one specific entity

Quick Reference

FlagCommandsDescription
--urldeploy, diff, introspectSaleor GraphQL endpoint URL
--tokendeploy, diff, introspectSaleor API authentication token
--jsonAllForce JSON envelope output
--textAllForce human-readable output
--drift-checkintrospectExit code 1 if remote differs from local
--includedeploy, diff, introspectComma-separated entity types to include
--excludedeploy, diff, introspectComma-separated entity types to exclude
--fail-on-deletedeployExit code 6 if deletions detected
--fail-on-breakingdeployExit code 7 if breaking changes detected
--plandeployShow plan without executing changes
--report-pathdeployCustom path for deployment report
--skip-mediadeploy, diffSkip media file comparison/upload
--entity-typediffFilter to one entity type
--entitydiffFilter to one specific entity (Type/name)

Environment Variables

Set credentials via .env.local (auto-loaded) or environment variables:

export SALEOR_URL="https://your-store.saleor.cloud/graphql/"
export SALEOR_TOKEN="your-api-token"

pnpm dlx @saleor/configurator deploy  # No flags needed

JSON Envelope

In non-TTY mode, all commands output:

{
  "command": "deploy",
  "version": "1.3.0",
  "exitCode": 0,
  "result": { },
  "logs": [{ "level": "info", "ts": "...", "message": "..." }],
  "errors": []
}

Parse with jq:

OUTPUT=$(pnpm dlx @saleor/configurator validate --json 2>/dev/null)
echo "$OUTPUT" | jq '.result.valid'
echo "$OUTPUT" | jq '.result.errors[]'

Exit Codes

CodeMeaningAction
0SuccessOperation completed
1Unexpected errorCheck error message and logs
2Authentication errorVerify URL and token
3Network errorCheck connectivity
4Validation errorFix config.yml syntax/schema
5Partial failureSome operations failed, check errors array
6Deletion blocked--fail-on-delete triggered
7Breaking blocked--fail-on-breaking triggered

Common Workflows

Optimal Agent Workflow

# 1. Validate locally first
pnpm dlx @saleor/configurator validate --json

# 2. Compare with remote
pnpm dlx @saleor/configurator diff --json

# 3. Preview deployment
pnpm dlx @saleor/configurator deploy --plan --json

# 4. Execute deployment
pnpm dlx @saleor/configurator deploy --json

Safe CI/CD Deployment

pnpm dlx @saleor/configurator deploy --fail-on-delete

Entity-Scoped Debugging

# Drill into a specific entity type
pnpm dlx @saleor/configurator diff --entity-type "Categories" --json

# Drill into a specific entity
pnpm dlx @saleor/configurator diff --entity "Categories/electronics" --json

Selective Deployment

# Deploy only channels and products
pnpm dlx @saleor/configurator deploy --include channels,products

# Deploy everything except products
pnpm dlx @saleor/configurator deploy --exclude products

Common Mistakes

MistakeFix
Deploying without previewing firstAlways run diff or deploy --plan before deploy
Wrong URL formatURL must end with /graphql/ (e.g., https://store.saleor.cloud/graphql/)
Expired or invalid tokenRegenerate your API token in Saleor Dashboard
Not using --drift-check for CI drift detectionUse introspect --drift-check to fail CI if remote config has drifted
Forgetting --fail-on-delete in CIPrevents accidental deletions
Using SALEOR_API_URLCorrect env var is SALEOR_URL

diff vs deploy --plan

diffdeploy --plan
PurposeShow field-level differences between local and remoteShow what operations deploy would execute
OutputPer-field changes (old -> new values)Operation summary (creates, updates, deletes)
Scoping--entity-type, --entity for drill-downNo entity-level scoping
Use whenDebugging what changed, reviewing individual fieldsPre-deploy safety check, CI gates

Recommended workflow: Use diff to understand changes, then deploy --plan to confirm the execution plan.

Rollback & Recovery

Configurator doesn't have a built-in rollback command, but you can recover using these patterns:

Before deploying (recommended):

# Save current remote state as backup
pnpm dlx @saleor/configurator introspect --config=backup-config.yml

After a bad deploy:

# Restore from backup
pnpm dlx @saleor/configurator deploy --config=backup-config.yml

Using git:

# Revert config.yml to last known good state
git checkout HEAD~1 -- config.yml
pnpm dlx @saleor/configurator deploy

Partial recovery (only fix specific entities):

# Deploy only the entity types that need fixing
pnpm dlx @saleor/configurator deploy --include=categories,products

See Also

Related Skills

  • configurator-schema - Config.yml structure and validation rules
  • saleor-domain - Entity relationships and Saleor concepts
  • agent-output-parsing - JSON envelope parsing and drill-down patterns

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

reviewing-typescript-code

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

implementing-cli-patterns

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

managing-github-ci

No summary provided by upstream source.

Repository SourceNeeds Review
General

creating-changesets

No summary provided by upstream source.

Repository SourceNeeds Review