Skip to main content
Kodexa enables modern, Git-based deployment workflows that bring the power of version control, code review, and CI/CD to your document processing infrastructure.

Deployment Approaches

Why GitOps for Kodexa?

Traditional Deployment Challenges

Before GitOps, managing Kodexa configurations across environments involved:
  • ❌ Manual changes prone to human error
  • ❌ No audit trail of who changed what
  • ❌ Difficult to rollback problematic changes
  • ❌ Hard to maintain consistency across environments
  • ❌ No code review for infrastructure changes

GitOps Benefits

With Git-based workflows, you get:
  • Version Control - Full history of all changes
  • Code Review - Pull requests for infrastructure changes
  • Rollback - Easy revert to any previous state
  • Multi-Environment - Promote changes dev → staging → production
  • Automation - CI/CD pipelines for deployment
  • Collaboration - Team can review and approve changes

Quick Comparison

AspectGitHub ActionsCLI
Best ForProduction deploymentsLocal development
AutomationFully automatedManual
Code ReviewBuilt-in via PRsN/A
Multi-EnvironmentEasy with workflowsManual switching
Audit TrailGit historyLocal only
Team CollaborationExcellentLimited
Setup ComplexityModerateMinimal

Common Use Cases

Multi-Environment Deployment

Deploy configurations across development, staging, and production with automated promotion:
# .github/workflows/deploy.yml
on:
  push:
    branches:
      - main        # → Production
      - staging     # → Staging
      - develop     # → Development

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: kodexa-ai/kdx-sync-action@v1
        with:
          kodexa-url: ${{ secrets.KODEXA_URL }}
          kodexa-token: ${{ secrets.KODEXA_TOKEN }}

Pull Request Validation

Validate changes before they reach production:
# Dry-run on PRs
on: pull_request

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: kodexa-ai/kdx-sync-action@v1
        with:
          kodexa-url: ${{ secrets.KODEXA_URL }}
          kodexa-token: ${{ secrets.KODEXA_TOKEN }}
          dry-run: true  # Preview only, no changes

Local Development

Use the CLI for rapid development iteration:
# Pull latest configuration
kdx sync pull --from-profile dev

# Make changes
vim kodexa-metadata/my-org/taxonomies/new-classification.yaml

# Test locally
kdx sync push --dry-run

# Deploy when ready
kdx sync push --to-profile dev

Repository Structure

Both approaches use the same repository structure:
my-project/
├── .github/
│   └── workflows/
│       ├── deploy.yml           # Main deployment workflow
│       └── pr-validation.yml    # PR validation
├── kodexa-metadata/
│   ├── sync-config.yaml         # Sync configuration
│   ├── my-org/
│   │   ├── organization.yaml
│   │   ├── taxonomies/
│   │   ├── stores/
│   │   ├── feature-types/
│   │   └── models/
│   └── README.md
└── README.md

Getting Started

1

Choose Your Approach

For teams: Start with GitOps with GitHub ActionsFor solo development: Start with CLI
2

Initialize Repository

Pull existing configuration or create new structure
3

Configure Workflows

Set up deployment workflows for your needs
4

Deploy

Push changes and let automation handle deployment

Next Steps