Release Notes — v0.2.22 (October 31, 2026)
This release refreshes project generation and adds first-class Docker/Coolify deployment support to both generated projects and the framework repository.
1. Central framework app reference
Generated projects no longer list framework apps individually.
from enezaframework.conf import ENEZA_APPS, ENEZA_CONTEXT_PROCESSORS
INSTALLED_APPS = [
# Django and third-party apps...
*ENEZA_APPS,
# Project apps...
]
enezaframework.conf now also exposes:
ENEZA_CONTEXT_PROCESSORSframework_urlpatterns()framework_websocket_urlpatterns()
enezaframework.urls includes the framework modules once, and enezaframework/routing.py supplies the framework websocket routes. Optional apps are included only when installed.
The default ENEZA_APPS set includes enezaframework, enezacommon, enezarbac, enezareporting, enezadashboard, enezacommunication, enezaadminstrator, enezaworkflowengine, enezanotification, enezaagents and humanresource.
2. Project and app scaffolding
eneza startproject now generates:
- A dashboard-first root URL.
- A
coreapp withmodels/__init__.pyandviews/__init__.py. - No sample dashboard view, sample model or sample menu item.
- A generated
routing.pyand ASGI configuration with websocket routing. Dockerfile,.dockerignore,docker-compose.yml,.env.sample,requirements.txtanddocker/init.sh,docker/web.sh,docker/worker.sh,docker/periodic.sh.
eneza startapp now generates the same empty models/views/migrations scaffold. The app remains menu-eligible through app_entry_menu, which resolves to the dashboard module entry. If no dashboard is defined, the dashboard app renders its empty state.
3. eneza adddeployment
New command for existing projects:
eneza adddeployment [project_dir] --project-name myproject
It copies the deployment artifacts, replaces project placeholders, skips existing files by default, supports --force, and never writes .env or patches settings.py / urls.py. It prints a checklist for adopting ENEZA_APPS, enezaframework.urls and the deployment requirements.
4. Runtime and deployment
- Docker Compose services:
db,init,web,workerandperiodic. initruns migrations, cache table creation, site update, superuser bootstrap, RBAC bootstrap, dashboard seeding and static collection.webruns Uvicorn on port 8000.workerrunsdb_worker --queue-name=default,workflow_tasks.periodicrunsrun_periodic.- Optional Redis is enabled with
REDIS_URLand theredisCompose profile. - Production static files use WhiteNoise; media is served by Django when
SERVE_MEDIA=1. - Environment-driven settings cover Coolify hosts/CSRF origins, PostgreSQL, static/media roots, security headers and optional Redis.
5. Management commands
- New
ensure_superuser: creates the bootstrap admin fromDJANGO_SUPERUSER_*; never resets an existing password. - New
ensure_site: updates thedjango.contrib.sitesrow fromDJANGO_SITE_DOMAINorCOOLIFY_FQDN. - New
seed_hr_sample: creates an idempotent sample HR entity, department, job, position, employee and linked demo user; optionally grants entity access and assigns roles. Enabled optionally withSEED_HR_SAMPLE=1. - Init scripts run the existing
rbac_bootstrap,seed_dashboardsand optionalseed_hr_rolescommands, plus the optional sample HR seed.
6. Packaging and CLI
- Version bumped to
0.2.22. - Added the
enezaconsole script entry point. - Package discovery now includes every
eneza*andhumanresource*package and its data automatically in the wheel, so new framework apps do not need a per-apppackage_dataentry.MANIFEST.inlists the current app packages for source distributions. humanresourceis now part of the distribution and manifest.- Project template dotfiles (
.env.sample,.dockerignore) are explicitly packaged. - Root requirements include the deployment dependencies (
uvicorn,psycopg,dj-database-url,whitenoise,channels-redis).
7. Upgrading existing projects
- Run
eneza adddeployment --project-name <package>in the project root. - Add
from enezaframework.conf import ENEZA_APPSand*ENEZA_APPStoINSTALLED_APPS. - Replace individual framework URL includes with
path("", include("enezaframework.urls")). - Add
ensure_superuser,ensure_site,rbac_bootstrapandseed_dashboardsto the deploy pipeline. - Merge the deployment requirements into the existing requirements file.
- Update
.envfrom.env.sample.
On Windows, record the DockerFile to Dockerfile case rename before committing:
git mv DockerFile Dockerfile.tmp
git mv Dockerfile.tmp Dockerfile
Validation
Per project rules, the developer or agent does not run or claim test results. The user is solely responsible for all testing and validation of generated projects, Docker images, migrations, seeding and Coolify deployments.