Skip to main content

App Panel

The App Panel is the per-app control center in Zango. It gives you full visibility and control over a single deployed application — its code, configuration, users, access policies, appearance, and runtime behaviour — all from one place.

Every app running in your Zango environment gets its own App Panel. You access it via the Platform Panel at http://localhost:8000/platform, then clicking into a specific app.


What You Can Do in the App Panel

SectionPurposeDoc
Code → RoutesView all URL patterns registered by your app and installed packagesRoutes
Code → ModelsBrowse all models defined across your app's modulesModels
Code → PoliciesView synced permission policies and which roles they coverPermission Framework
ReleasesExport and apply versioned configuration snapshots for deploymentsRelease Fixtures
App Settings → ThemesCustomise app colours, typography, and button stylesThemes
App Settings → AuthenticationConfigure login methods, password policy, session management, and SAMLAuthentication
App Settings → SecretsStore and manage encrypted credentials and environment variablesSecrets
Logs → Access / Audit / FrameworkMonitor user access events, data changes, and system-level activityLogs

Panel Structure

App Panel
├── Code
│ ├── Routes — URL patterns from your app and installed packages
│ ├── Models — Model introspection across all modules
│ └── Policies — Synced permissions and role assignments
├── Releases — Versioned config export/apply (top-level nav item)
├── App Settings
│ ├── Themes — Visual customisation (colours, fonts)
│ ├── Authentication — Login methods, password policy, SAML, MFA
│ └── Secrets — Encrypted config values
└── Logs
├── Access Logs — Login events and failed attempts
├── Application Audit Logs — Data create/update/delete tracking
└── Framework Logs — System-level events

Relationship to Platform Panel

The Platform Panel (/platform) manages the environment level — creating apps, installing packages, managing tenants, and global infrastructure.

The App Panel manages a single app within that environment — its code structure, access control, appearance, and runtime configuration.

Most day-to-day development happens in the App Panel after your app is created.


Quick Reference: Common Tasks

After adding or changing policies.json:

Go to App Panel → your app → Code → Policies and click Sync Policies.

This is the only way to sync policies — there is no CLI command for this. After syncing, verify the updated policies appear in the Code → Policies list.

After adding or changing models:

# Docker Compose
docker compose -f deploy/docker_compose.yml exec app bash -c \
"cd zango_project && python manage.py ws_makemigration <app_name> \
&& python manage.py ws_migrate <app_name>"

# Python venv (from zango_project/ directory)
python manage.py ws_makemigration <app_name>
python manage.py ws_migrate <app_name>

Confirm the new models appear in Code → Models.

After changing tasks.py (restart Celery):

# Docker Compose
docker compose -f deploy/docker_compose.yml restart celery

# Python venv — kill the celery process and re-run in its terminal:
celery -A zango_project worker -l INFO

To check if a route is registered: Navigate to Code → Routes — look for the path pattern and the module/view handling it.

To store an API key or secret: Go to App Settings → Secrets and add a new secret. Access it in code via the Secrets API.

To debug a 403 error: Check Code → Policies to confirm the view is listed under a policy that includes the user's role.