Enezaframework — Developer Documentation Index
Entry point for the Enezaframework developer guides. Start here, then follow the links to the topic you need.
Table of Contents
- What Enezaframework Is
- How a Feature Fits Together
- Feature Map
- Documentation Map
- Suggested Reading Paths
- A Note on Testing
What Enezaframework Is
Enezaframework is a low-code framework for Django for building CRUD (Create, Read, Update, Delete) functionality in ERP-style systems. Instead of hand-writing list, detail, create, and delete views for every model, a developer:
- Defines a model that inherits from a framework base model.
- Declares a view that inherits from a framework base view.
- Describes the form layout in a small configuration method.
- Registers the view with a decorator and adds a menu entry.
The framework then supplies the generic templates, the CRUD behavior, navigation, and URL routing.
Who it is for: Django developers and coding agents building Small to Medium Enterprise (SME) business applications on top of Enezaframework.
How a Feature Fits Together
Every standard feature follows the same chain, from model to menu.
flowchart LR
MODEL[Model<br/>inherits an Eneza base model] --> VIEW[View<br/>inherits a Base CRUD view]
VIEW --> LAYOUT[detail_ui_view<br/>tabs + columns]
VIEW --> DECORATE["@auto_url_register"]
DECORATE --> URLS[urls.py<br/>get_registered_urls]
VIEW --> MENU[apps.py menus<br/>fast tabs + items]
URLS --> PAGE[Rendered CRUD pages<br/>generic templates]
MENU --> PAGE- Model — pick the right base (
EnezaMaster,EnezaDocument,EnezaSetup, and others) and declare fields. - View — pick the right base (
BaseListView,BaseDetailView, and others) and setmodel. - Layout — implement
detail_ui_viewto organize fields into tabs and columns. - URLs — decorate with
@auto_url_register; the app'surls.pyspreads*dynamic_urlsintourlpatterns. - Navigation — add the generated URL names to the app's
menuslist inapps.py.
Related records (children, one-to-one extensions) are handled by inline views declared in
get_inline_related_objects.
Feature Map
flowchart LR
IDX[Developer Index] --> GS[Get Started]
IDX --> MOD[Models]
IDX --> VIEWS[Views]
IDX --> ROUTE[Routing and Navigation]
IDX --> FE[Frontend]
IDX --> SEC[Security & RBAC]
IDX --> CLI[CLI & Deployment]- Get Started — what the framework is, how an app is structured, and the build order.
- Models — the base models, how to add a model, field conventions, document numbering, and lifecycle hooks.
- Views — CRUD base views, form/inline UI configuration, specialized views, and actions.
- Routing and Navigation — URL auto-registration and menu configuration.
- Frontend — reusing the shipped templates, static assets, HTMX, and Alpine.js.
- Security & RBAC — elements, task privileges, roles, the readiness checklist and the agent access-request playbook.
- CLI & Deployment — project/app scaffolding,
ENEZA_APPS, Docker/Coolify, workers and release notes.
Documentation Map
Get Started
| Pos | Guide | What it covers |
|---|---|---|
| 1 | Framework Overview | Purpose, core tech, the three app types, dependency rules. |
| 2 | Standardized App Structure | Required app layout, package re-export rules, templates, migrations. |
| 3 | Developer Workflow | The ordered build steps and a completion checklist. |
| 4 | End-to-End CRUD Example (VendorTable) | A complete worked example from models to menus to URLs. |
Models
| Pos | Guide | What it covers |
|---|---|---|
| 1 | Base Models & Model Types | Every base model, how to choose one, the Entity model. |
| 2 | How to Add a Model | Atomic steps to add, re-export, and migrate a model. |
| 3 | Model Field Conventions | The mandatory field rules and model-level image sizing. |
| 4 | Document Sequences & Numbering | SequenceMixin, SequenceConfig, and failure modes. |
| 5 | Lifecycle Hooks (Events) | @hook, hook moments, conditions, EnezaEvents, and automatic support on EnezaModel. |
Views
| Pos | Guide | What it covers |
|---|---|---|
| 1 | CRUD Base Views | BaseListView, BaseDetailView, BaseCreateView, BaseDeleteView, BaseParameter, BaseAutocompleteView. |
| 2 | Field & Inline UI Configuration | detail_ui_view schema, disabling fields, ManyToMany autocomplete, inline declarations. |
| 3 | Inline & Specialized Views | Inline views, journals, setups, document header/lines views, images. |
| 4 | Base Actions (Custom Actions) | The BaseAction contract and how actions surface on detail views. |
| 5 | Ribbon & Action Menus | Ribbon profiles, tabs, list/detail handoff, related workspaces, inline menus, permissions and DB overlays. |
| 6 | Adding Ribbon Tabs, Groups & Menus | Step-by-step recipes for adding ribbon tabs, groups, menu items, list/detail contexts and actions. |
Routing and Navigation
| Pos | Guide | What it covers |
|---|---|---|
| 1 | URL Auto-Registration | @auto_url_register, get_registered_urls, generated URL names. |
| 2 | Menu & Navigation Configuration | apps.py menus, fast tabs, menu items, icons. |
Frontend
| Pos | Guide | What it covers |
|---|---|---|
| 1 | Frontend Templates & UI Reuse | Reusing the Vristo template, static assets, HTMX/Alpine. |
| 2 | Migrating Templates to the EZ Surface Style | Moving legacy panel/table/btn templates onto the current ez-* surface language without changing behaviour. |
Security & RBAC
| Pos | Guide | What it covers |
|---|---|---|
| 1 | Security & RBAC | Elements, task privileges, roles, default-deny and code formats. |
| 2 | Security Readiness Checklist | Every step a developer must complete for a new element. |
| 3 | Creating Roles and Privileges | The agent playbook for access requests and minimal grants. |
| 4 | Troubleshooting Access | Diagnosing unexpected access and the /admin/ bypass. |
Dashboards
| Pos | Guide | What it covers |
|---|---|---|
| 0 | Dashboards — Developer Index | Series map, the two workflows, and reading paths. |
| 1 | Dashboards Overview | Concepts, architecture, identifiers, publication, security, and v1 scope. |
| 2 | Creating a Dashboard Data Source | Opting reports in, exposing dimensions/measures, permissions, and verification. |
| 3 | Defining and Seeding Dashboards | Declarative definitions, widget composition, seeding, ownership, and versioning. |
| 4 | Dashboard Designer and Publication | Browser workflow: create, wireframe, bind widgets, preview, publish, versions, preferences. |
| 5 | Dashboard Reference | Full attributes, metadata, widget, layout, parameter, filter, settings, route, and error-code reference. |
| 6 | Worked Example: frameworkapp | The real report and dashboard, end to end. |
| 7 | Operations and Troubleshooting | Deployment checklist, failure matrix, error codes, and user validation steps. |
The original monolith this series slices is preserved at
enezaframework/requirement/framework.md.
CLI and Deployment
| Guide | What it covers |
|---|---|
| Eneza CLI Developer Guide | startproject, startapp, adddeployment, ENEZA_APPS, Docker/Coolify scaffolding and runtime services. |
| Deployment section | Compose services, init/seeding, db_worker, run_periodic, Redis, media and Coolify setup. |
| Release notes — v0.4.1 | AI assistant coverage across framework templates, including audit trail, setup, journal, attachment, workflow and notification pages. |
| Changelog | Version history and release notes. |
Suggested Reading Paths
Creating a new project 1. Eneza CLI Developer Guide 2. Standardized App Structure 3. Menu & Navigation Configuration 4. Docker/Coolify deployment
New to the framework 1. Framework Overview 2. Base Models & Model Types 3. CRUD Base Views 4. End-to-End CRUD Example (VendorTable)
Adding a new entity to an existing app 1. How to Add a Model 2. Model Field Conventions 3. CRUD Base Views 4. URL Auto-Registration 5. Menu & Navigation Configuration
Adding related or child records 1. Inline & Specialized Views 2. Field & Inline UI Configuration
Working on layout and UI 1. Frontend Templates & UI Reuse 2. Field & Inline UI Configuration 3. Model Field Conventions
Adding security to a new feature 1. Security & RBAC 2. Security Readiness Checklist 3. Creating Roles and Privileges
A Note on Testing
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 the output described in these guides.