Skip to main content

Release Fixtures

The Releases section is a top-level item in the App Panel sidebar (at the same level as Code, App Settings, and Logs). It manages versioned snapshots of your app's configuration — menu layouts, login settings, and AppBuilder routes — so you can deploy consistent, reproducible app states across environments.

Release Fixtures Overview

What Are Release Fixtures?

A fixture is a JSON snapshot of your app's current AppBuilder configuration (menus, routes, login config). Fixtures let you:

  • Version-control your app configuration alongside your code
  • Deploy the same configuration to staging and production reliably
  • Roll back to a previous configuration if a deployment breaks something

Fixtures capture:

Fixture TypeDescription
Menu configurationsWhich menu items appear for which roles
Login configurationsCustom login page settings per app
AppBuilder settingsRoute-to-component mappings and page configs

Exporting Fixtures

# Docker Compose
docker compose -f deploy/docker_compose.yml exec app bash -c \
"cd zango_project && python manage.py export_fixture \
--workspace=<app_name> --package --release_version=<version>"

# Python venv (from zango_project/ directory)
python manage.py export_fixture \
--workspace=<app_name> --package --release_version=<version>

This generates fixture files under workspaces/<app_name>/release/<version>/:

  • menu_config.json
  • login_config.json
  • appbuilder_config.json

Commit these files to version control.

Example:

python manage.py export_fixture --workspace=clinic --package --release_version=1.2.0

Applying Fixtures

Apply a fixture to update the app's live configuration:

# Docker Compose
docker compose -f deploy/docker_compose.yml exec app bash -c \
"cd zango_project && zango update-apps --app_name=<app_name>"

# Python venv (from zango_project/ directory)
zango update-apps --app_name=<app_name>

This reads the fixture files in the workspace and applies them to the running app — menus, routes, login config, and AppBuilder settings. Use this during CI/CD deployments to ensure AppBuilder config is always in sync with your code.

Workflow in Practice

Development → Export fixture → Commit to git → CI/CD applies fixture on deploy
  1. Make changes to menus/routes via the App Panel or API during development
  2. Export the fixture with a version tag matching your release
  3. Commit release/<version>/ to your repo
  4. On deployment, zango update-apps applies the fixture automatically