Django Enterprise Maintenance Suite
Enterprise Maintenance Suite is a Django reusable application that provides enterprise-grade maintenance control such as:
- Full Maintenance Mode (503)
- Read-Only Mode (No Writes)
- Admin approval workflow
- Time-based maintenance windows
- Audit logging
This package is intended to be installed via pip and plugged directly into any existing Django project.
Features
- Full system maintenance (HTTP 503)
- Read-only mode (blocks POST / PUT / PATCH / DELETE)
- Admin-controlled enable / disable
- Approval workflow
- Time-window based activation
- Middleware based request interception
- Audit trail for maintenance actions
- Production-ready Django app
Installation
1. Install Package from PyPI
pip install django_enterprise_maintenance_suite
2. Add to INSTALLED_APPS
INSTALLED_APPS = [
...
"django_enterprise_maintenance_suite",
...
]
3. Add Middleware
MIDDLEWARE = [
...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_enterprise_maintenance_suite.middleware.MaintenanceMiddleware',
]
4. Add to settings.py
MAINTENANCE_SUITE = {
'ADMIN_URL_NAME': 'admin:index',
'MAINTENANCE_TEMPLATE': '503.html',
'READ_ONLY_ALLOWED_METHODS': ["GET", "HEAD"],
}
5. Run Migrations
python manage.py migrate
6. Add to urls.py
from django.urls import path, include
urlpatterns = [
...
path("maintenance/", include("django_enterprise_maintenance_suite.urls")),
]
7. Create SuperUser
python manage.py createsuperuser
Requirements
- Python 3.9+
- Django 4.2+
How It Works
- Incoming requests pass through
MaintenanceMiddleware - Active maintenance window is evaluated
- Mode is applied:
- Maintenance Mode → HTTP 503
- Read-Only Mode → Blocks write methods
- Admin URLs are ignored by default
Maintenance Modes
Full Maintenance Mode
- Blocks all requests
- Returns 503 Service Unavailable
- Intended for deployments & outages
Read-Only Mode
- Allows safe HTTP methods
- Blocks:
- POST
- PUT
- PATCH
- DELETE
- Returns 403 Forbidden
Admin Panel Usage
The Django Admin allows you to:
- Create maintenance windows
- Enable / disable maintenance
- Approve or reject maintenance
- Track audit logs
Custom 503 Page
To override the default maintenance page, create: templates/503.html Django will automatically use this template.
Use Cases
- Production deployments
- Database migrations
- Emergency maintenance
- Compliance-driven outages
- Enterprise change management
Supporting
License
Licensed under the MIT License. Copyright © 2026 TS Tamarai Selvan Copy of the license.
Metadata
Release files for django-enterprise-maintenance-suite 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django_enterprise_maintenance_suite-1.0.1.tar.gz | 14.7 kB | Without provenance | Details for django_enterprise_maintenance_suite-1.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| django_enterprise_maintenance_suite-1.0.1-py3-none-any.whl | Python 3 | none | any | Details for django_enterprise_maintenance_suite-1.0.1-py3-none-any.whl |
Total release size: 32.5 kB
Release files / django_enterprise_maintenance_suite-1.0.1.tar.gz
| Download URL | django_enterprise_maintenance_suite-1.0.1.tar.gz |
|---|---|
| Size | 14.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
44e82832f221fb7967718b227927c9a970de4151c80ba8853b877dae92b491ea
|
|
BLAKE2b-256 checksum How to use checksums |
1d94f85def87aa9272e9fa877c99d97b271d0c78a4f6b4c90d14b7ca5d0bf615
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / django_enterprise_maintenance_suite-1.0.1-py3-none-any.whl
| Download URL | django_enterprise_maintenance_suite-1.0.1-py3-none-any.whl |
|---|---|
| Size | 17.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
876da047d54decb12ebd5e48e354ad8a8278562720191960290c6bd3d1eea192
|
|
BLAKE2b-256 checksum How to use checksums |
1d69b0a933200814096c1c3025c10c9719c8c9317ae5d4c41fd4957becf663d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Security for django-enterprise-maintenance-suite 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.