Catalog

Deploying Catalog Updates

Deploy catalog changes using the CLI and GitOps workflows

MoneyMQ catalogs are deployed using the CLI. This enables GitOps workflows where catalog changes are version-controlled and deployed through CI/CD pipelines.

CLI Deployment

Deploy from a Directory

# Deploy all YAML files in the catalog directory
moneymq catalog deploy ./catalog

# Deploy to a specific endpoint
moneymq catalog deploy ./catalog --endpoint https://api.yourapp.com

Deploy a Single File

moneymq catalog deploy ./billing/v1/products/weather-api/variants/pro/product.yaml

Dry Run

Preview changes before deploying:

moneymq catalog deploy ./catalog --dry-run

GitOps Workflow

Integrate catalog deployment into your CI/CD pipeline:

.github/workflows/deploy-catalog.yml
name: Deploy Catalog

on:
  push:
    branches: [main]
    paths:
      - 'catalog/**'

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install MoneyMQ CLI
        run: curl -sSL https://install.money.mq | bash

      - name: Deploy Catalog
        run: moneymq catalog deploy ./catalog
        env:
          MONEYMQ_ENDPOINT: ${{ secrets.MONEYMQ_ENDPOINT }}
          MONEYMQ_API_KEY: ${{ secrets.MONEYMQ_API_KEY }}
.gitlab-ci.yml
deploy-catalog:
  stage: deploy
  only:
    refs:
      - main
    changes:
      - catalog/**
  script:
    - curl -sSL https://install.money.mq | bash
    - moneymq catalog deploy ./catalog
  variables:
    MONEYMQ_ENDPOINT: $MONEYMQ_ENDPOINT
    MONEYMQ_API_KEY: $MONEYMQ_API_KEY

Pull Request Previews

Add catalog validation to your PR workflow:

.github/workflows/validate-catalog.yml
name: Validate Catalog

on:
  pull_request:
    paths:
      - 'catalog/**'

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install MoneyMQ CLI
        run: curl -sSL https://install.money.mq | bash

      - name: Validate Catalog
        run: moneymq catalog validate ./catalog

      - name: Preview Changes
        run: moneymq catalog deploy ./catalog --dry-run

Managing Environments

Use environment variables to deploy to different environments:

# Development
MONEYMQ_ENDPOINT=http://localhost:8488 moneymq catalog deploy ./catalog

# Staging
MONEYMQ_ENDPOINT=https://staging-api.yourapp.com moneymq catalog deploy ./catalog

# Production
MONEYMQ_ENDPOINT=https://api.yourapp.com moneymq catalog deploy ./catalog

Rollback

Catalog deployments are versioned. To rollback:

# List recent deployments
moneymq catalog history

# Rollback to a specific version
moneymq catalog rollback --version v1.2.3

Next Steps

On this page