Skip to main content
Typically we will deploy resources to Kodexa using the Kodexa CLI, this allows us to deploy resources to Kodexa from the command line.

Deploying Resources

Lets consider a use-case where we have a fairly standard set of resources that we want to deploy to Kodexa.
Resource Deployment
Usually when we start with a project like this the key elements such as:
  • Taxonomy
  • Invoice Data Form
  • Transformer Model (optional)
We will create a manifest file that describes the resources that we want to deploy to Kodexa.
# This is a Manifest file
resources-paths:
  - "models/*.yml"
  - "resources/taxonomy.yml"
  - "resources/invoice-data-form.yml"
In order to start the process we will want to download each of these resources from the instance and then create a new GitHub repository to store the resources.
mkdir -p resources models   
kodexa get taxonom my-org/7644d17a-cbac-44b5-b756-731f793a763e-content:1.0.0 --output-path resources --output-file taxonomy.yml
kodexa get dataform my-org/7644d17a-cbac-44b5-b756-731f793a763e-data-form:1.0.0 --output-path resources --output-file invoice-data-form.yml
Once we have these files in place we can now commit the structure to the repository and create a pull request.
git add .
git commit -m "Initial commit of resources"
git push

Deployment using Github Actions

With Github Actions we can now deploy the resources to Kodexa. To do this we will need to define a workflow file in the repository, this will make sure we have Python 3.11 and also ensure we have the kodexa-cli installed.
You will need to ensure you have set your access token and URL as secrets in the repository.
name: Deploy Resources

on:
  push: 
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Python 3.11
        uses: actions/setup-python@v4
        with:
          python-version: 3.11
      - name: Install Kodexa CLI
        run: |
          python -m pip install --upgrade pip
          pip install kodexa-cli
      - name: Deploy Resources
        env:
          KODEXA_ACCESS_TOKEN: ${{ secrets.KODEXA_ACCESS_TOKEN }}
          KODEXA_URL: ${{ secrets.KODEXA_URL }}
        run: |
          kodexa manifest manifest.yml deploy my-org