django-cfg 1.3.13__py3-none-any.whl โ 1.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- django_cfg/__init__.py +1 -1
- django_cfg/apps/accounts/admin/user_admin.py +39 -16
- django_cfg/apps/accounts/serializers/profile.py +1 -1
- django_cfg/apps/accounts/services/otp_service.py +18 -11
- django_cfg/apps/accounts/signals.py +15 -24
- django_cfg/apps/accounts/utils/notifications.py +217 -358
- django_cfg/apps/accounts/views/otp.py +2 -2
- django_cfg/apps/accounts/views/webhook.py +1 -1
- django_cfg/apps/agents/core/django_agent.py +1 -1
- django_cfg/apps/api/commands/views.py +66 -83
- django_cfg/apps/api/health/drf_views.py +269 -0
- django_cfg/apps/api/health/serializers.py +45 -0
- django_cfg/apps/api/health/urls.py +6 -1
- django_cfg/apps/knowbase/admin/actions/__init__.py +13 -0
- django_cfg/apps/knowbase/admin/actions/visibility_actions.py +56 -0
- django_cfg/apps/knowbase/admin/document_admin.py +136 -270
- django_cfg/apps/knowbase/admin/helpers/__init__.py +17 -0
- django_cfg/apps/knowbase/admin/helpers/configs.py +72 -0
- django_cfg/apps/knowbase/admin/helpers/display_helpers.py +156 -0
- django_cfg/apps/knowbase/admin/helpers/statistics.py +108 -0
- django_cfg/apps/knowbase/config/constance_fields.py +1 -1
- django_cfg/apps/knowbase/config/settings.py +2 -2
- django_cfg/apps/knowbase/mixins/__init__.py +19 -2
- django_cfg/apps/knowbase/mixins/config/__init__.py +14 -0
- django_cfg/apps/knowbase/mixins/config/defaults.py +75 -0
- django_cfg/apps/knowbase/mixins/config/meta_config.py +120 -0
- django_cfg/apps/knowbase/mixins/creator.py +10 -10
- django_cfg/apps/knowbase/mixins/external_data_mixin.py +105 -403
- django_cfg/apps/knowbase/mixins/generators/__init__.py +16 -0
- django_cfg/apps/knowbase/mixins/generators/content_generator.py +218 -0
- django_cfg/apps/knowbase/mixins/generators/field_analyzer.py +76 -0
- django_cfg/apps/knowbase/mixins/generators/metadata_generator.py +124 -0
- django_cfg/apps/knowbase/mixins/service.py +2 -2
- django_cfg/apps/knowbase/services/archive/__init__.py +1 -0
- django_cfg/apps/knowbase/services/archive/analyzers/__init__.py +17 -0
- django_cfg/apps/knowbase/services/archive/analyzers/complexity_analyzer.py +33 -0
- django_cfg/apps/knowbase/services/archive/analyzers/purpose_detector.py +36 -0
- django_cfg/apps/knowbase/services/archive/analyzers/quality_analyzer.py +39 -0
- django_cfg/apps/knowbase/services/archive/analyzers/tag_generator.py +103 -0
- django_cfg/apps/knowbase/services/archive/chunking/__init__.py +19 -0
- django_cfg/apps/knowbase/services/archive/chunking/base.py +81 -0
- django_cfg/apps/knowbase/services/archive/chunking/json_chunker.py +62 -0
- django_cfg/apps/knowbase/services/archive/chunking/markdown_chunker.py +107 -0
- django_cfg/apps/knowbase/services/archive/chunking/python_chunker.py +248 -0
- django_cfg/apps/knowbase/services/archive/chunking/text_chunker.py +70 -0
- django_cfg/apps/knowbase/services/archive/chunking_service.py +110 -729
- django_cfg/apps/knowbase/services/archive/context/__init__.py +14 -0
- django_cfg/apps/knowbase/services/archive/context/builders.py +220 -0
- django_cfg/apps/knowbase/services/archive/context/models.py +38 -0
- django_cfg/apps/knowbase/services/embedding/models.py +18 -14
- django_cfg/apps/knowbase/services/embedding/processors.py +6 -3
- django_cfg/apps/knowbase/tasks/document_processing.py +11 -3
- django_cfg/apps/leads/tests.py +1 -1
- django_cfg/apps/payments/admin/api_keys_admin.py +1 -1
- django_cfg/apps/payments/admin/balance_admin.py +1 -1
- django_cfg/apps/payments/admin/currencies_admin.py +1 -1
- django_cfg/apps/payments/admin/payments_admin.py +1 -1
- django_cfg/apps/payments/admin/subscriptions_admin.py +1 -1
- django_cfg/apps/payments/admin_interface/templates/payments/base.html +59 -126
- django_cfg/apps/payments/admin_interface/views/api/payments.py +1 -1
- django_cfg/apps/payments/admin_interface/views/api/stats.py +1 -1
- django_cfg/apps/payments/admin_interface/views/api/users.py +1 -1
- django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +1 -1
- django_cfg/apps/payments/admin_interface/views/api/webhook_public.py +1 -1
- django_cfg/apps/payments/admin_interface/views/base.py +29 -2
- django_cfg/apps/payments/apps.py +1 -1
- django_cfg/apps/payments/config/django_cfg_integration.py +2 -2
- django_cfg/apps/payments/config/helpers.py +3 -2
- django_cfg/apps/payments/management/commands/cleanup_expired_data.py +1 -1
- django_cfg/apps/payments/management/commands/currency_stats.py +1 -1
- django_cfg/apps/payments/management/commands/manage_currencies.py +1 -1
- django_cfg/apps/payments/management/commands/manage_providers.py +1 -1
- django_cfg/apps/payments/management/commands/process_pending_payments.py +1 -1
- django_cfg/apps/payments/management/commands/test_providers.py +1 -1
- django_cfg/apps/payments/middleware/api_access.py +1 -1
- django_cfg/apps/payments/middleware/rate_limiting.py +1 -1
- django_cfg/apps/payments/middleware/usage_tracking.py +1 -1
- django_cfg/apps/payments/models/balance.py +2 -2
- django_cfg/apps/payments/models/managers/api_key_managers.py +1 -1
- django_cfg/apps/payments/models/managers/balance_managers.py +1 -1
- django_cfg/apps/payments/models/managers/currency_managers.py +1 -1
- django_cfg/apps/payments/models/managers/payment_managers.py +1 -1
- django_cfg/apps/payments/models/managers/subscription_managers.py +1 -1
- django_cfg/apps/payments/models/payments.py +2 -2
- django_cfg/apps/payments/services/cache_service/__init__.py +1 -1
- django_cfg/apps/payments/services/cache_service/simple_cache.py +10 -5
- django_cfg/apps/payments/services/core/base.py +1 -1
- django_cfg/apps/payments/services/core/currency/__init__.py +13 -0
- django_cfg/apps/payments/services/core/currency/currency_converter.py +57 -0
- django_cfg/apps/payments/services/core/currency/currency_validator.py +61 -0
- django_cfg/apps/payments/services/core/operations/__init__.py +15 -0
- django_cfg/apps/payments/services/core/operations/payment_canceller.py +100 -0
- django_cfg/apps/payments/services/core/operations/payment_creator.py +196 -0
- django_cfg/apps/payments/services/core/operations/status_checker.py +100 -0
- django_cfg/apps/payments/services/core/payment_service.py +124 -612
- django_cfg/apps/payments/services/core/providers/__init__.py +13 -0
- django_cfg/apps/payments/services/core/providers/provider_client.py +132 -0
- django_cfg/apps/payments/services/core/providers/status_mapper.py +89 -0
- django_cfg/apps/payments/services/core/utils/__init__.py +13 -0
- django_cfg/apps/payments/services/core/utils/data_converter.py +48 -0
- django_cfg/apps/payments/services/core/utils/statistics_calculator.py +69 -0
- django_cfg/apps/payments/services/providers/base.py +1 -1
- django_cfg/apps/payments/services/providers/nowpayments/__init__.py +3 -3
- django_cfg/apps/payments/services/providers/nowpayments/parsers/__init__.py +9 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/__init__.py +23 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/constants.py +23 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/currency_names.py +244 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/data/patterns.py +511 -0
- django_cfg/apps/payments/services/providers/nowpayments/parsers/parser.py +168 -0
- django_cfg/apps/payments/services/providers/nowpayments/provider.py +1 -1
- django_cfg/apps/payments/services/providers/nowpayments/sync.py +1 -1
- django_cfg/apps/payments/services/providers/registry.py +1 -1
- django_cfg/apps/payments/services/providers/sync_service.py +1 -1
- django_cfg/apps/payments/signals/__init__.py +1 -1
- django_cfg/apps/payments/signals/api_key_signals.py +1 -1
- django_cfg/apps/payments/signals/balance_signals.py +1 -1
- django_cfg/apps/payments/signals/payment_signals.py +1 -1
- django_cfg/apps/payments/signals/subscription_signals.py +1 -1
- django_cfg/apps/payments/views/api/api_keys.py +1 -1
- django_cfg/apps/payments/views/api/balances.py +1 -1
- django_cfg/apps/payments/views/api/base.py +1 -1
- django_cfg/apps/payments/views/api/currencies.py +1 -1
- django_cfg/apps/payments/views/api/payments.py +1 -1
- django_cfg/apps/payments/views/api/subscriptions.py +1 -1
- django_cfg/apps/payments/views/api/webhooks.py +1 -1
- django_cfg/apps/payments/views/serializers/api_keys.py +1 -1
- django_cfg/apps/payments/views/serializers/balances.py +1 -1
- django_cfg/apps/payments/views/serializers/currencies.py +1 -1
- django_cfg/apps/payments/views/serializers/payments.py +1 -1
- django_cfg/apps/payments/views/serializers/subscriptions.py +1 -1
- django_cfg/apps/payments/views/serializers/webhooks.py +1 -1
- django_cfg/apps/support/admin/support_admin.py +21 -13
- django_cfg/apps/support/templates/support/chat/access_denied.html +21 -27
- django_cfg/apps/support/templates/support/chat/ticket_chat.html +183 -254
- django_cfg/apps/support/utils/support_email_service.py +1 -1
- django_cfg/apps/tasks/templates/tasks/layout/base.html +20 -115
- django_cfg/apps/tasks/utils/simulator.py +1 -1
- django_cfg/apps/tasks/views/dashboard.py +33 -3
- django_cfg/apps/urls.py +5 -1
- django_cfg/cli/README.md +57 -471
- django_cfg/cli/commands/create_project.py +140 -529
- django_cfg/cli/main.py +13 -10
- django_cfg/core/__init__.py +63 -6
- django_cfg/core/base/__init__.py +5 -0
- django_cfg/core/base/config_model.py +652 -0
- django_cfg/core/builders/__init__.py +11 -0
- django_cfg/core/builders/apps_builder.py +258 -0
- django_cfg/core/builders/middleware_builder.py +115 -0
- django_cfg/core/builders/security_builder.py +96 -0
- django_cfg/core/config.py +20 -892
- django_cfg/core/constants.py +69 -0
- django_cfg/core/environment/__init__.py +9 -0
- django_cfg/core/exceptions.py +45 -298
- django_cfg/core/generation/__init__.py +51 -0
- django_cfg/core/generation/core_generators/__init__.py +0 -0
- django_cfg/core/generation/core_generators/settings.py +90 -0
- django_cfg/core/generation/core_generators/static.py +82 -0
- django_cfg/core/generation/core_generators/templates.py +141 -0
- django_cfg/core/generation/data_generators/__init__.py +15 -0
- django_cfg/core/generation/data_generators/cache.py +132 -0
- django_cfg/core/generation/data_generators/database.py +117 -0
- django_cfg/core/generation/generation.py +92 -0
- django_cfg/core/generation/integration_generators/__init__.py +21 -0
- django_cfg/core/generation/integration_generators/api.py +237 -0
- django_cfg/core/generation/integration_generators/sessions.py +65 -0
- django_cfg/core/generation/integration_generators/tailwind.py +54 -0
- django_cfg/core/generation/integration_generators/tasks.py +92 -0
- django_cfg/core/generation/integration_generators/third_party.py +144 -0
- django_cfg/core/generation/orchestrator.py +285 -0
- django_cfg/core/generation/protocols.py +30 -0
- django_cfg/core/generation/security_generators/__init__.py +0 -0
- django_cfg/core/generation/utility_generators/__init__.py +24 -0
- django_cfg/core/generation/utility_generators/email.py +58 -0
- django_cfg/core/generation/utility_generators/i18n.py +66 -0
- django_cfg/core/generation/utility_generators/limits.py +58 -0
- django_cfg/core/generation/utility_generators/logging.py +66 -0
- django_cfg/core/generation/utility_generators/security.py +101 -0
- django_cfg/core/generation/utils/__init__.py +0 -0
- django_cfg/core/generation/utils/helpers.py +32 -0
- django_cfg/core/integration/__init__.py +18 -25
- django_cfg/core/integration/display/startup.py +146 -133
- django_cfg/core/integration/url_integration.py +13 -2
- django_cfg/core/services/__init__.py +5 -0
- django_cfg/core/services/config_service.py +121 -0
- django_cfg/core/state/__init__.py +9 -0
- django_cfg/core/state/registry.py +84 -0
- django_cfg/core/types/__init__.py +15 -0
- django_cfg/core/types/aliases.py +15 -0
- django_cfg/core/types/enums.py +49 -0
- django_cfg/dashboard/DEBUG_README.md +105 -0
- django_cfg/dashboard/REFACTORING_SUMMARY.md +237 -0
- django_cfg/dashboard/__init__.py +24 -0
- django_cfg/dashboard/components.py +308 -0
- django_cfg/dashboard/debug.py +176 -0
- django_cfg/dashboard/management/__init__.py +0 -0
- django_cfg/dashboard/management/commands/__init__.py +0 -0
- django_cfg/dashboard/management/commands/debug_dashboard.py +109 -0
- django_cfg/dashboard/sections/__init__.py +1 -0
- django_cfg/dashboard/sections/base.py +128 -0
- django_cfg/dashboard/sections/commands.py +32 -0
- django_cfg/dashboard/sections/overview.py +394 -0
- django_cfg/dashboard/sections/stats.py +48 -0
- django_cfg/dashboard/sections/system.py +73 -0
- django_cfg/management/commands/check_settings.py +6 -2
- django_cfg/management/commands/clear_constance.py +6 -1
- django_cfg/management/commands/create_token.py +5 -4
- django_cfg/management/commands/generate.py +5 -0
- django_cfg/management/commands/list_urls.py +7 -2
- django_cfg/management/commands/migrate_all.py +6 -2
- django_cfg/management/commands/migrator.py +6 -1
- django_cfg/management/commands/rundramatiq.py +6 -1
- django_cfg/management/commands/rundramatiq_simulator.py +11 -4
- django_cfg/management/commands/runserver_ngrok.py +9 -7
- django_cfg/management/commands/script.py +25 -21
- django_cfg/management/commands/show_config.py +6 -1
- django_cfg/management/commands/show_urls.py +8 -3
- django_cfg/management/commands/superuser.py +5 -4
- django_cfg/management/commands/task_clear.py +8 -3
- django_cfg/management/commands/task_status.py +8 -3
- django_cfg/management/commands/test_email.py +6 -1
- django_cfg/management/commands/test_telegram.py +6 -1
- django_cfg/management/commands/test_twilio.py +6 -1
- django_cfg/management/commands/tree.py +7 -4
- django_cfg/models/__init__.py +88 -3
- django_cfg/models/api/__init__.py +27 -0
- django_cfg/models/{api.py โ api/config.py} +1 -1
- django_cfg/models/api/drf/__init__.py +21 -0
- django_cfg/models/api/drf/config.py +101 -0
- django_cfg/models/api/drf/redoc.py +31 -0
- django_cfg/models/api/drf/spectacular.py +129 -0
- django_cfg/models/api/drf/swagger.py +59 -0
- django_cfg/models/{api_keys.py โ api/keys.py} +16 -6
- django_cfg/models/{limits.py โ api/limits.py} +0 -1
- django_cfg/models/base/__init__.py +14 -0
- django_cfg/models/django/__init__.py +16 -0
- django_cfg/models/{constance.py โ django/constance.py} +1 -1
- django_cfg/models/{environment.py โ django/environment.py} +1 -1
- django_cfg/models/infrastructure/__init__.py +17 -0
- django_cfg/models/{cache.py โ infrastructure/cache.py} +3 -2
- django_cfg/models/infrastructure/database/__init__.py +22 -0
- django_cfg/models/infrastructure/database/config.py +265 -0
- django_cfg/models/infrastructure/database/converters.py +91 -0
- django_cfg/models/infrastructure/database/parsers.py +96 -0
- django_cfg/models/infrastructure/database/routing.py +85 -0
- django_cfg/models/infrastructure/database/validators.py +170 -0
- django_cfg/models/{logging.py โ infrastructure/logging.py} +1 -1
- django_cfg/models/{security.py โ infrastructure/security.py} +2 -2
- django_cfg/models/ngrok/__init__.py +11 -0
- django_cfg/models/ngrok/auth.py +37 -0
- django_cfg/models/ngrok/config.py +77 -0
- django_cfg/models/ngrok/tunnel.py +35 -0
- django_cfg/models/payments/__init__.py +20 -0
- django_cfg/models/payments/api_keys.py +57 -0
- django_cfg/models/{payments.py โ payments/config.py} +56 -154
- django_cfg/models/payments/providers/__init__.py +15 -0
- django_cfg/models/payments/providers/base.py +25 -0
- django_cfg/models/payments/providers/nowpayments.py +48 -0
- django_cfg/models/services/__init__.py +18 -0
- django_cfg/models/services/base.py +65 -0
- django_cfg/models/{email.py โ services/email.py} +1 -1
- django_cfg/models/services/telegram.py +172 -0
- django_cfg/models/tasks/__init__.py +51 -0
- django_cfg/models/tasks/backends.py +250 -0
- django_cfg/models/tasks/config.py +314 -0
- django_cfg/models/tasks/utils.py +174 -0
- django_cfg/modules/base.py +18 -3
- django_cfg/modules/django_admin/decorators/actions.py +1 -1
- django_cfg/modules/django_admin/decorators/display.py +1 -1
- django_cfg/modules/django_admin/mixins/standalone_actions_mixin.py +1 -1
- django_cfg/modules/django_cfg_rpc_client/README.md +346 -0
- django_cfg/modules/django_cfg_rpc_client/__init__.py +51 -0
- django_cfg/modules/django_cfg_rpc_client/client.py +540 -0
- django_cfg/modules/django_cfg_rpc_client/config.py +207 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/README.md +517 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/UNFOLD_INTEGRATION.md +439 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/__init__.py +11 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/apps.py +22 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/monitor.py +435 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/static/django_cfg_rpc_dashboard/js/dashboard.js +373 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/templates/django_cfg_rpc_dashboard/base.html +76 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/templates/django_cfg_rpc_dashboard/dashboard.html +200 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/urls.py +22 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/urls_admin.py +9 -0
- django_cfg/modules/django_cfg_rpc_client/dashboard/views.py +251 -0
- django_cfg/modules/django_cfg_rpc_client/exceptions.py +201 -0
- django_cfg/modules/django_drf_theme/CHANGELOG.md +210 -0
- django_cfg/modules/django_drf_theme/EXAMPLE.md +465 -0
- django_cfg/modules/django_drf_theme/IMPLEMENTATION.md +232 -0
- django_cfg/modules/django_drf_theme/README.md +207 -0
- django_cfg/modules/django_drf_theme/TAILWIND_CDN_GUIDE.md +274 -0
- django_cfg/modules/django_drf_theme/__init__.py +23 -0
- django_cfg/modules/django_drf_theme/apps.py +15 -0
- django_cfg/modules/django_drf_theme/renderers.py +58 -0
- django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/api.html +375 -0
- django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/base.html +938 -0
- django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/forms/filter_form.html +132 -0
- django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/forms/raw_data_form.html +123 -0
- django_cfg/modules/django_drf_theme/templatetags/__init__.py +1 -0
- django_cfg/modules/django_drf_theme/templatetags/tailwind_tags.py +57 -0
- django_cfg/modules/django_email/__init__.py +14 -0
- django_cfg/modules/{django_email.py โ django_email/service.py} +78 -113
- django_cfg/modules/django_email/utils.py +40 -0
- django_cfg/modules/django_health/__init__.py +9 -0
- django_cfg/modules/{django_health.py โ django_health/service.py} +23 -21
- django_cfg/modules/django_llm/llm/client.py +155 -550
- django_cfg/modules/django_llm/llm/embeddings/__init__.py +13 -0
- django_cfg/modules/django_llm/llm/embeddings/mock_embedder.py +106 -0
- django_cfg/modules/django_llm/llm/embeddings/openai_embedder.py +79 -0
- django_cfg/modules/django_llm/llm/models_api/__init__.py +9 -0
- django_cfg/modules/django_llm/llm/models_api/models_query.py +163 -0
- django_cfg/modules/django_llm/llm/providers/__init__.py +15 -0
- django_cfg/modules/django_llm/llm/providers/config_builder.py +103 -0
- django_cfg/modules/django_llm/llm/providers/provider_manager.py +148 -0
- django_cfg/modules/django_llm/llm/providers/provider_selector.py +60 -0
- django_cfg/modules/django_llm/llm/requests/__init__.py +15 -0
- django_cfg/modules/django_llm/llm/requests/cache_manager.py +170 -0
- django_cfg/modules/django_llm/llm/requests/chat_handler.py +199 -0
- django_cfg/modules/django_llm/llm/requests/embedding_handler.py +113 -0
- django_cfg/modules/django_llm/llm/responses/__init__.py +9 -0
- django_cfg/modules/django_llm/llm/responses/response_builder.py +131 -0
- django_cfg/modules/django_llm/llm/stats/__init__.py +9 -0
- django_cfg/modules/django_llm/llm/stats/stats_manager.py +107 -0
- django_cfg/modules/django_llm/translator/detectors/__init__.py +13 -0
- django_cfg/modules/django_llm/translator/detectors/language_detector.py +90 -0
- django_cfg/modules/django_llm/translator/detectors/script_detector.py +153 -0
- django_cfg/modules/django_llm/translator/stats/__init__.py +11 -0
- django_cfg/modules/django_llm/translator/stats/stats_tracker.py +85 -0
- django_cfg/modules/django_llm/translator/translator.py +150 -603
- django_cfg/modules/django_llm/translator/translators/__init__.py +15 -0
- django_cfg/modules/django_llm/translator/translators/json_translator.py +316 -0
- django_cfg/modules/django_llm/translator/translators/text_translator.py +139 -0
- django_cfg/modules/django_llm/translator/utils/__init__.py +13 -0
- django_cfg/modules/django_llm/translator/utils/prompt_builder.py +110 -0
- django_cfg/modules/django_llm/translator/utils/text_utils.py +114 -0
- django_cfg/modules/django_logging/FIXES_SUMMARY.md +276 -0
- django_cfg/modules/django_logging/LOGGING_GUIDE.md +504 -0
- django_cfg/modules/django_logging/__init__.py +14 -0
- django_cfg/modules/{django_logger.py โ django_logging/django_logger.py} +13 -13
- django_cfg/modules/{logger.py โ django_logging/logger.py} +14 -4
- django_cfg/modules/django_ngrok/__init__.py +39 -0
- django_cfg/modules/{django_ngrok.py โ django_ngrok/service.py} +14 -42
- django_cfg/modules/django_rpc_old/POETRY.md +344 -0
- django_cfg/modules/django_rpc_old/README.md +397 -0
- django_cfg/modules/django_rpc_old/TESTING.md +358 -0
- django_cfg/modules/django_rpc_old/__init__.py +39 -0
- django_cfg/modules/django_rpc_old/client.py +531 -0
- django_cfg/modules/django_rpc_old/config.py +279 -0
- django_cfg/modules/django_rpc_old/exceptions.py +172 -0
- django_cfg/modules/django_tailwind/README.md +478 -0
- django_cfg/modules/django_tailwind/__init__.py +7 -0
- django_cfg/modules/django_tailwind/apps.py +10 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/app.html +5 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/base.html +117 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/components/navbar.html +124 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/components/theme_toggle.html +54 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/components/user_menu.html +116 -0
- django_cfg/modules/django_tailwind/templates/django_tailwind/simple.html +46 -0
- django_cfg/modules/django_tailwind/templatetags/__init__.py +1 -0
- django_cfg/modules/django_tailwind/templatetags/tailwind_info.py +185 -0
- django_cfg/modules/django_tasks/__init__.py +29 -0
- django_cfg/modules/django_tasks/factory.py +127 -0
- django_cfg/modules/{django_tasks.py โ django_tasks/service.py} +45 -274
- django_cfg/modules/django_tasks/settings.py +107 -0
- django_cfg/modules/django_telegram/__init__.py +29 -0
- django_cfg/modules/{django_telegram.py โ django_telegram/service.py} +45 -113
- django_cfg/modules/django_telegram/utils.py +62 -0
- django_cfg/modules/django_twilio/__init__.py +54 -107
- django_cfg/modules/django_twilio/_imports.py +30 -0
- django_cfg/modules/django_twilio/base.py +192 -0
- django_cfg/modules/django_twilio/email_otp.py +227 -0
- django_cfg/modules/django_twilio/sendgrid_service.py +1 -1
- django_cfg/modules/django_twilio/simple_service.py +1 -2
- django_cfg/modules/django_twilio/sms.py +94 -0
- django_cfg/modules/django_twilio/twilio_service.py +2 -3
- django_cfg/modules/django_twilio/unified.py +310 -0
- django_cfg/modules/django_twilio/utils.py +190 -0
- django_cfg/modules/django_twilio/whatsapp.py +137 -0
- django_cfg/modules/django_unfold/callbacks/base.py +198 -7
- django_cfg/modules/django_unfold/callbacks/main.py +102 -10
- django_cfg/modules/django_unfold/dashboard.py +65 -43
- django_cfg/modules/django_unfold/models/config.py +13 -12
- django_cfg/modules/django_unfold/models/navigation.py +8 -3
- django_cfg/modules/django_unfold/models/tabs.py +2 -2
- django_cfg/modules/django_unfold/templates/unfold/helpers/app_list.html +102 -0
- django_cfg/registry/core.py +24 -26
- django_cfg/registry/modules.py +5 -2
- django_cfg/registry/services.py +20 -3
- django_cfg/registry/third_party.py +8 -8
- django_cfg/static/admin/css/dashboard.css +260 -0
- django_cfg/static/admin/js/commands.js +171 -0
- django_cfg/static/admin/js/dashboard.js +126 -0
- django_cfg/templates/admin/components/management_commands.js +375 -0
- django_cfg/templates/admin/components/progress_bar.html +18 -23
- django_cfg/templates/admin/index.html +48 -20
- django_cfg/templates/admin/index_new.html +106 -0
- django_cfg/templates/admin/layouts/base_dashboard.html +60 -0
- django_cfg/templates/admin/layouts/dashboard_with_tabs.html +1 -20
- django_cfg/templates/admin/sections/commands_section.html +626 -0
- django_cfg/templates/admin/sections/overview_section.html +112 -0
- django_cfg/templates/admin/sections/stats_section.html +35 -0
- django_cfg/templates/admin/sections/system_section.html +99 -0
- django_cfg/templates/admin/snippets/components/CHARTS_GUIDE.md +322 -0
- django_cfg/templates/admin/snippets/components/activity_tracker.html +85 -47
- django_cfg/templates/admin/snippets/components/charts_section.html +154 -64
- django_cfg/templates/admin/snippets/components/django_commands.html +3 -3
- django_cfg/templates/admin/snippets/components/recent_activity_improved.html +25 -0
- django_cfg/templates/admin/snippets/components/recent_users_table.html +1 -1
- django_cfg/templates/admin/snippets/components/system_metrics.html +179 -93
- django_cfg/templates/admin/snippets/zones/zones_table.html +2 -2
- django_cfg/templatetags/django_cfg.py +7 -1
- django_cfg/utils/smart_defaults.py +4 -4
- django_cfg-1.4.0.dist-info/METADATA +920 -0
- {django_cfg-1.3.13.dist-info โ django_cfg-1.4.0.dist-info}/RECORD +424 -195
- django_cfg/apps/accounts/utils/auth_email_service.py +0 -84
- django_cfg/apps/payments/services/providers/nowpayments/parsers.py +0 -879
- django_cfg/core/generation.py +0 -621
- django_cfg/management/commands/validate_config.py +0 -189
- django_cfg/models/database.py +0 -480
- django_cfg/models/drf.py +0 -272
- django_cfg/models/ngrok.py +0 -122
- django_cfg/models/services.py +0 -440
- django_cfg/models/tasks.py +0 -550
- django_cfg/modules/django_twilio/service.py +0 -942
- django_cfg/template_archive/django_sample.zip +0 -0
- django_cfg/templates/rest_framework/api.html +0 -12
- django_cfg/utils/toolkit.py +0 -703
- django_cfg-1.3.13.dist-info/METADATA +0 -1029
- /django_cfg/apps/accounts/management/commands/{test_otp.py โ otp_test.py} +0 -0
- /django_cfg/core/{environment.py โ environment/detector.py} +0 -0
- /django_cfg/models/{cors.py โ api/cors.py} +0 -0
- /django_cfg/models/{jwt.py โ api/jwt.py} +0 -0
- /django_cfg/models/{base.py โ base/config.py} +0 -0
- /django_cfg/models/{cfg.py โ base/module.py} +0 -0
- /django_cfg/models/{revolution.py โ django/revolution.py} +0 -0
- /django_cfg/modules/{dramatiq_setup.py โ django_tasks/dramatiq_setup.py} +0 -0
- {django_cfg-1.3.13.dist-info โ django_cfg-1.4.0.dist-info}/WHEEL +0 -0
- {django_cfg-1.3.13.dist-info โ django_cfg-1.4.0.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.3.13.dist-info โ django_cfg-1.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,1029 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.4
|
2
|
-
Name: django-cfg
|
3
|
-
Version: 1.3.13
|
4
|
-
Summary: ๐ Next-gen Django configuration: type-safety, AI features, blazing-fast setup, and automated best practices โ all in one.
|
5
|
-
Project-URL: Homepage, https://djangocfg.com
|
6
|
-
Project-URL: Documentation, https://docs.djangocfg.com
|
7
|
-
Project-URL: Repository, https://github.com/markolofsen/django-cfg
|
8
|
-
Project-URL: Issues, https://github.com/markolofsen/django-cfg/issues
|
9
|
-
Project-URL: Changelog, https://github.com/markolofsen/django-cfg/blob/main/CHANGELOG.md
|
10
|
-
Author-email: Django-CFG Team <info@djangocfg.com>
|
11
|
-
Maintainer-email: Django-CFG Team <info@djangocfg.com>
|
12
|
-
License: MIT
|
13
|
-
License-File: LICENSE
|
14
|
-
Keywords: configuration,developer-experience,django,pydantic,settings,type-safety
|
15
|
-
Classifier: Development Status :: 4 - Beta
|
16
|
-
Classifier: Framework :: Django
|
17
|
-
Classifier: Framework :: Django :: 5.2
|
18
|
-
Classifier: Intended Audience :: Developers
|
19
|
-
Classifier: License :: OSI Approved :: MIT License
|
20
|
-
Classifier: Operating System :: OS Independent
|
21
|
-
Classifier: Programming Language :: Python
|
22
|
-
Classifier: Programming Language :: Python :: 3
|
23
|
-
Classifier: Programming Language :: Python :: 3.10
|
24
|
-
Classifier: Programming Language :: Python :: 3.11
|
25
|
-
Classifier: Programming Language :: Python :: 3.12
|
26
|
-
Classifier: Programming Language :: Python :: 3.13
|
27
|
-
Classifier: Topic :: Internet :: WWW/HTTP
|
28
|
-
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
29
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
30
|
-
Classifier: Topic :: System :: Systems Administration
|
31
|
-
Classifier: Typing :: Typed
|
32
|
-
Requires-Python: <4.0,>=3.12
|
33
|
-
Requires-Dist: beautifulsoup4<5.0,>=4.13.0
|
34
|
-
Requires-Dist: cachetools<7.0,>=5.3.0
|
35
|
-
Requires-Dist: click<9.0,>=8.2.0
|
36
|
-
Requires-Dist: cloudflare<5.0,>=4.3.0
|
37
|
-
Requires-Dist: colorlog<7.0,>=6.9.0
|
38
|
-
Requires-Dist: coolname<3.0,>=2.2.0
|
39
|
-
Requires-Dist: currencyconverter<1.0,>=0.18.0
|
40
|
-
Requires-Dist: dj-database-url<4.0,>=3.0.0
|
41
|
-
Requires-Dist: django-admin-rangefilter<1.0,>=0.13.0
|
42
|
-
Requires-Dist: django-constance<5.0,>=4.3.0
|
43
|
-
Requires-Dist: django-cors-headers<5.0,>=4.7.0
|
44
|
-
Requires-Dist: django-dramatiq<1.0,>=0.14.0
|
45
|
-
Requires-Dist: django-extensions<5.0,>=4.1.0
|
46
|
-
Requires-Dist: django-filter<26.0,>=25.0
|
47
|
-
Requires-Dist: django-import-export<5.0,>=4.3.0
|
48
|
-
Requires-Dist: django-json-widget<3.0,>=2.0.0
|
49
|
-
Requires-Dist: django-ratelimit<5.0.0,>=4.1.0
|
50
|
-
Requires-Dist: django-redis<7.0,>=6.0.0
|
51
|
-
Requires-Dist: django-revolution<2.0,>=1.0.43
|
52
|
-
Requires-Dist: django-unfold<1.0,>=0.64.0
|
53
|
-
Requires-Dist: djangorestframework-simplejwt<6.0,>=5.5.0
|
54
|
-
Requires-Dist: djangorestframework-simplejwt[token-blacklist]<6.0,>=5.5.0
|
55
|
-
Requires-Dist: djangorestframework<4.0,>=3.16.0
|
56
|
-
Requires-Dist: dramatiq[redis]<2.0,>=1.18.0
|
57
|
-
Requires-Dist: drf-nested-routers<1.0,>=0.94.0
|
58
|
-
Requires-Dist: drf-spectacular-sidecar<2026.0,>=2025.8.0
|
59
|
-
Requires-Dist: drf-spectacular<1.0,>=0.28.0
|
60
|
-
Requires-Dist: hiredis<4.0,>=2.0.0
|
61
|
-
Requires-Dist: loguru<1.0,>=0.7.0
|
62
|
-
Requires-Dist: lxml<7.0,>=6.0.0
|
63
|
-
Requires-Dist: mypy<2.0.0,>=1.18.2
|
64
|
-
Requires-Dist: ngrok>=1.5.1; python_version >= '3.12'
|
65
|
-
Requires-Dist: openai<2.0,>=1.107.0
|
66
|
-
Requires-Dist: pgvector<1.0,>=0.4.0
|
67
|
-
Requires-Dist: psycopg[binary,pool]<4.0,>=3.2.0
|
68
|
-
Requires-Dist: pydantic-ai<2.0,>=1.0.10
|
69
|
-
Requires-Dist: pydantic-yaml<2.0,>=1.6.0
|
70
|
-
Requires-Dist: pydantic<3.0,>=2.11.0
|
71
|
-
Requires-Dist: pydantic[email]<3.0,>=2.11.0
|
72
|
-
Requires-Dist: pytelegrambotapi<5.0,>=4.28.0
|
73
|
-
Requires-Dist: python-json-logger<4.0,>=3.3.0
|
74
|
-
Requires-Dist: pyyaml<7.0,>=6.0
|
75
|
-
Requires-Dist: questionary<3.0,>=2.1.0
|
76
|
-
Requires-Dist: redis<7.0,>=6.4.0
|
77
|
-
Requires-Dist: requests<3.0,>=2.32.0
|
78
|
-
Requires-Dist: rich<15.0,>=14.0.0
|
79
|
-
Requires-Dist: sendgrid<7.0,>=6.12.0
|
80
|
-
Requires-Dist: tenacity<10.0.0,>=9.1.2
|
81
|
-
Requires-Dist: tiktoken<1.0,>=0.11.0
|
82
|
-
Requires-Dist: toml<0.11.0,>=0.10.2
|
83
|
-
Requires-Dist: twilio<10.0,>=9.8.0
|
84
|
-
Requires-Dist: whitenoise<7.0,>=6.8.0
|
85
|
-
Provides-Extra: dev
|
86
|
-
Requires-Dist: black<26.0,>=25.9; extra == 'dev'
|
87
|
-
Requires-Dist: build<2.0,>=1.3; extra == 'dev'
|
88
|
-
Requires-Dist: django<6.0,>=5.2; extra == 'dev'
|
89
|
-
Requires-Dist: factory-boy<4.0,>=3.3; extra == 'dev'
|
90
|
-
Requires-Dist: flake8<8.0,>=6.0.0; extra == 'dev'
|
91
|
-
Requires-Dist: isort<7.0,>=6.0; extra == 'dev'
|
92
|
-
Requires-Dist: mkdocs-material<10.0,>=9.6; extra == 'dev'
|
93
|
-
Requires-Dist: mkdocs<2.0,>=1.6; extra == 'dev'
|
94
|
-
Requires-Dist: mkdocstrings[python]<1.0,>=0.30; extra == 'dev'
|
95
|
-
Requires-Dist: mypy<2.0,>=1.18; extra == 'dev'
|
96
|
-
Requires-Dist: pre-commit<5.0,>=4.3; extra == 'dev'
|
97
|
-
Requires-Dist: pytest-cov<8.0,>=7.0; extra == 'dev'
|
98
|
-
Requires-Dist: pytest-django<5.0,>=4.11; extra == 'dev'
|
99
|
-
Requires-Dist: pytest-mock<4.0,>=3.15; extra == 'dev'
|
100
|
-
Requires-Dist: pytest<9.0,>=8.4; extra == 'dev'
|
101
|
-
Requires-Dist: questionary<3.0,>=2.1.0; extra == 'dev'
|
102
|
-
Requires-Dist: redis<7.0,>=6.4.0; extra == 'dev'
|
103
|
-
Requires-Dist: rich<15.0,>=13.0.0; extra == 'dev'
|
104
|
-
Requires-Dist: tomlkit<1.0,>=0.13.3; extra == 'dev'
|
105
|
-
Requires-Dist: twine<7.0,>=6.2; extra == 'dev'
|
106
|
-
Provides-Extra: django52
|
107
|
-
Requires-Dist: django<6.0,>=5.2; extra == 'django52'
|
108
|
-
Provides-Extra: docs
|
109
|
-
Requires-Dist: mkdocs-material<10.0,>=9.6; extra == 'docs'
|
110
|
-
Requires-Dist: mkdocs<2.0,>=1.6; extra == 'docs'
|
111
|
-
Requires-Dist: mkdocstrings[python]<1.0,>=0.30; extra == 'docs'
|
112
|
-
Requires-Dist: pymdown-extensions<11.0,>=10.16; extra == 'docs'
|
113
|
-
Provides-Extra: full
|
114
|
-
Requires-Dist: black<26.0,>=25.9; extra == 'full'
|
115
|
-
Requires-Dist: build<2.0,>=1.3; extra == 'full'
|
116
|
-
Requires-Dist: django<6.0,>=5.2; extra == 'full'
|
117
|
-
Requires-Dist: factory-boy<4.0,>=3.3; extra == 'full'
|
118
|
-
Requires-Dist: flake8<8.0,>=6.0.0; extra == 'full'
|
119
|
-
Requires-Dist: isort<7.0,>=6.0; extra == 'full'
|
120
|
-
Requires-Dist: mkdocs-material<10.0,>=9.6; extra == 'full'
|
121
|
-
Requires-Dist: mkdocs<2.0,>=1.6; extra == 'full'
|
122
|
-
Requires-Dist: mkdocstrings[python]<1.0,>=0.30; extra == 'full'
|
123
|
-
Requires-Dist: mypy<2.0,>=1.18; extra == 'full'
|
124
|
-
Requires-Dist: pre-commit<5.0,>=4.3; extra == 'full'
|
125
|
-
Requires-Dist: pymdown-extensions<11.0,>=10.16; extra == 'full'
|
126
|
-
Requires-Dist: pytest-cov<8.0,>=7.0; extra == 'full'
|
127
|
-
Requires-Dist: pytest-django<5.0,>=4.11; extra == 'full'
|
128
|
-
Requires-Dist: pytest-mock<4.0,>=3.15; extra == 'full'
|
129
|
-
Requires-Dist: pytest-xdist<4.0,>=3.8; extra == 'full'
|
130
|
-
Requires-Dist: pytest<9.0,>=8.4; extra == 'full'
|
131
|
-
Requires-Dist: questionary<3.0,>=2.1.0; extra == 'full'
|
132
|
-
Requires-Dist: redis<7.0,>=6.4.0; extra == 'full'
|
133
|
-
Requires-Dist: rich<15.0,>=13.0.0; extra == 'full'
|
134
|
-
Requires-Dist: tomlkit<1.0,>=0.13.3; extra == 'full'
|
135
|
-
Requires-Dist: twine<7.0,>=6.2; extra == 'full'
|
136
|
-
Provides-Extra: local
|
137
|
-
Provides-Extra: tasks
|
138
|
-
Requires-Dist: redis<7.0,>=6.4.0; extra == 'tasks'
|
139
|
-
Provides-Extra: test
|
140
|
-
Requires-Dist: django<6.0,>=5.2; extra == 'test'
|
141
|
-
Requires-Dist: factory-boy<4.0,>=3.3; extra == 'test'
|
142
|
-
Requires-Dist: pytest-cov<8.0,>=7.0; extra == 'test'
|
143
|
-
Requires-Dist: pytest-django<5.0,>=4.11; extra == 'test'
|
144
|
-
Requires-Dist: pytest-mock<4.0,>=3.15; extra == 'test'
|
145
|
-
Requires-Dist: pytest-xdist<4.0,>=3.8; extra == 'test'
|
146
|
-
Requires-Dist: pytest<9.0,>=8.4; extra == 'test'
|
147
|
-
Description-Content-Type: text/markdown
|
148
|
-
|
149
|
-
# ๐ Django-CFG: Enterprise Django Configuration Framework
|
150
|
-
|
151
|
-
<div align="center">
|
152
|
-
<img src="https://github.com/markolofsen/django-cfg/blob/main/examples/static/startup.png?raw=true" alt="Django-CFG Startup Interface" width="800" />
|
153
|
-
</div>
|
154
|
-
|
155
|
-
[](https://pypi.org/project/django-cfg)
|
156
|
-
[](https://pypi.org/project/django-cfg)
|
157
|
-
[](https://pypi.org/project/django-cfg)
|
158
|
-
[](https://github.com/markolofsen/markolofsen/blob/main/LICENSE)
|
159
|
-
[](https://pypi.org/project/django-cfg)
|
160
|
-
[](https://github.com/markolofsen/django-cfg)
|
161
|
-
|
162
|
-
> **Transform Django development with enterprise-grade type safety, AI agents, and production-ready integrations.**
|
163
|
-
|
164
|
-
**Django-CFG** is the next-generation Django configuration framework designed for **enterprise applications**. Built with **Pydantic v2**, it provides **100% type safety**, **intelligent environment detection**, **AI-powered workflows**, and **seamless production deployment**.
|
165
|
-
|
166
|
-
๐ **Official Website**: [djangocfg.com](https://djangocfg.com/)
|
167
|
-
๐ **Documentation**: [docs.djangocfg.com](https://docs.djangocfg.com/)
|
168
|
-
๐ **GitHub Repository**: [github.com/markolofsen/django-cfg](https://github.com/markolofsen/django-cfg)
|
169
|
-
|
170
|
-
---
|
171
|
-
|
172
|
-
## ๐ฏ Quick Start: Production-Ready in 30 Seconds
|
173
|
-
|
174
|
-
### Prerequisites
|
175
|
-
- **Python 3.12+** ([Download](https://www.python.org/downloads/))
|
176
|
-
- **Basic Django knowledge**
|
177
|
-
|
178
|
-
### Installation & Setup
|
179
|
-
|
180
|
-
```bash
|
181
|
-
# 1. Install Django-CFG
|
182
|
-
pip install django-cfg
|
183
|
-
|
184
|
-
# 2. Create enterprise-ready project
|
185
|
-
django-cfg create-project "My Enterprise App"
|
186
|
-
|
187
|
-
# 3. Launch your application
|
188
|
-
cd my-enterprise-app
|
189
|
-
python manage.py runserver
|
190
|
-
```
|
191
|
-
|
192
|
-
**๐ Congratulations!** Your enterprise Django application is now running with:
|
193
|
-
|
194
|
-
- **๐ฏ Admin Dashboard**: http://127.0.0.1:8000/admin/ (Modern Unfold UI)
|
195
|
-
- **๐ API Documentation**: http://127.0.0.1:8000/api/docs/ (Auto-generated OpenAPI)
|
196
|
-
- **๐ Main Application**: http://127.0.0.1:8000/ (Production-ready frontend)
|
197
|
-
|
198
|
-
---
|
199
|
-
|
200
|
-
## ๐ Why Django-CFG? Enterprise Comparison
|
201
|
-
|
202
|
-
| **Capability** | **Traditional Django** | **Django REST Framework** | **FastAPI** | **Django-CFG** |
|
203
|
-
|---|---|---|---|---|
|
204
|
-
| **๐ Type Safety** | โ Runtime errors | โ Manual validation | โ
Pydantic | โ
**Full Pydantic v2** |
|
205
|
-
| **๐จ Admin Interface** | ๐ก Basic 2010 UI | โ No admin | โ No admin | โ
**Modern Unfold + Tailwind** |
|
206
|
-
| **๐ Real-time Dashboard** | โ Static pages | โ Manual setup | โ Manual setup | โ
**Built-in widgets & metrics** |
|
207
|
-
| **๐๏ธ Multi-Database** | ๐ก Manual routing | ๐ก Manual routing | โ Single DB focus | โ
**Smart auto-routing** |
|
208
|
-
| **๐ API Documentation** | โ Manual setup | ๐ก Basic DRF docs | โ
Auto OpenAPI | โ
**Zone-based OpenAPI** |
|
209
|
-
| **๐ค AI Integration** | โ Build from scratch | โ Build from scratch | โ Build from scratch | โ
**Built-in AI agents** |
|
210
|
-
| **๐ซ Support System** | โ Build from scratch | โ Build from scratch | โ Build from scratch | โ
**Enterprise ticketing** |
|
211
|
-
| **๐ค User Management** | ๐ก Basic User model | ๐ก Basic auth | โ Manual auth | โ
**OTP + SMS + Profiles** |
|
212
|
-
| **๐ง Communication** | ๐ก Basic email | โ Manual setup | โ Manual setup | โ
**Email + SMS + Telegram** |
|
213
|
-
| **๐ฑ Currency Conversion** | โ Manual API integration | โ Manual API integration | โ Manual API integration | โ
**Multi-threading 14K+ currencies** |
|
214
|
-
| **๐ Background Tasks** | ๐ก Manual Celery | ๐ก Manual Celery | โ Manual setup | โ
**Built-in Dramatiq** |
|
215
|
-
| **๐ Webhook Testing** | ๐ก Manual ngrok | ๐ก Manual ngrok | ๐ก Manual ngrok | โ
**Integrated ngrok** |
|
216
|
-
| **๐ Production Deploy** | ๐ก Manual config | ๐ก Manual config | ๐ก Manual config | โ
**Zero-config Docker** |
|
217
|
-
| **๐ก IDE Support** | ๐ก Basic highlighting | ๐ก Basic highlighting | โ
Type hints | โ
**Full IntelliSense** |
|
218
|
-
| **โก Development Speed** | ๐ก Weeks to production | ๐ก Weeks to production | ๐ก Days to production | โ
**Minutes to production** |
|
219
|
-
| **๐ข Enterprise Ready** | ๐ก Requires expertise | ๐ก Requires expertise | ๐ก Limited features | โ
**Out-of-the-box** |
|
220
|
-
|
221
|
-
**Legend**: โ
Excellent | ๐ก Requires Work | โ Not Available
|
222
|
-
|
223
|
-
---
|
224
|
-
|
225
|
-
## ๐ Enterprise Features
|
226
|
-
|
227
|
-
### ๐ **Type-Safe Configuration**
|
228
|
-
**100% type safety** with Pydantic v2 models, IDE autocomplete, and compile-time validation.
|
229
|
-
|
230
|
-
```python
|
231
|
-
from django_cfg import DjangoConfig
|
232
|
-
from django_cfg.models import DatabaseConfig, CacheConfig
|
233
|
-
|
234
|
-
class EnterpriseConfig(DjangoConfig):
|
235
|
-
# Project metadata
|
236
|
-
project_name: str = "Enterprise Application"
|
237
|
-
project_version: str = "2.1.0"
|
238
|
-
|
239
|
-
# Security & environment
|
240
|
-
secret_key: str = "${SECRET_KEY}"
|
241
|
-
debug: bool = False
|
242
|
-
allowed_hosts: list[str] = ["*.mycompany.com", "api.mycompany.com"]
|
243
|
-
|
244
|
-
# Multi-database architecture
|
245
|
-
databases: dict[str, DatabaseConfig] = {
|
246
|
-
"default": DatabaseConfig(
|
247
|
-
engine="django.db.backends.postgresql",
|
248
|
-
name="${DB_NAME}",
|
249
|
-
user="${DB_USER}",
|
250
|
-
password="${DB_PASSWORD}",
|
251
|
-
host="${DB_HOST}",
|
252
|
-
port=5432,
|
253
|
-
sslmode="require",
|
254
|
-
conn_max_age=600,
|
255
|
-
),
|
256
|
-
"analytics": DatabaseConfig(
|
257
|
-
name="${ANALYTICS_DB_NAME}",
|
258
|
-
routing_apps=["analytics", "reports"],
|
259
|
-
),
|
260
|
-
"cache": DatabaseConfig(
|
261
|
-
engine="django.db.backends.redis",
|
262
|
-
location="${REDIS_URL}",
|
263
|
-
)
|
264
|
-
}
|
265
|
-
|
266
|
-
# Enterprise modules
|
267
|
-
enable_accounts: bool = True # Advanced user management
|
268
|
-
enable_support: bool = True # Enterprise ticketing system
|
269
|
-
enable_newsletter: bool = True # Marketing automation
|
270
|
-
enable_leads: bool = True # CRM integration
|
271
|
-
enable_agents: bool = True # AI workflow automation
|
272
|
-
enable_knowbase: bool = True # AI knowledge management
|
273
|
-
enable_maintenance: bool = True # Multi-site Cloudflare maintenance
|
274
|
-
|
275
|
-
config = EnterpriseConfig()
|
276
|
-
```
|
277
|
-
|
278
|
-
### ๐ค **AI-Powered Workflows**
|
279
|
-
**Enterprise-grade AI agents** with type-safe workflows and Django integration.
|
280
|
-
|
281
|
-
```python
|
282
|
-
from django_cfg.agents import Agent, Workflow, Context
|
283
|
-
from django_cfg.agents.toolsets import ORMToolset, CacheToolset
|
284
|
-
|
285
|
-
@Agent.register("document_processor")
|
286
|
-
class DocumentProcessorAgent(Agent):
|
287
|
-
"""Enterprise document processing with AI analysis."""
|
288
|
-
|
289
|
-
name = "Document Processor"
|
290
|
-
description = "Processes documents with AI analysis and data extraction"
|
291
|
-
toolsets = [
|
292
|
-
ORMToolset(allowed_models=['documents.Document', 'analytics.Report']),
|
293
|
-
CacheToolset(cache_alias='default'),
|
294
|
-
]
|
295
|
-
|
296
|
-
def process(self, context: Context) -> dict:
|
297
|
-
document_id = context.get("document_id")
|
298
|
-
|
299
|
-
# AI-powered document analysis
|
300
|
-
document = self.tools.orm.get_object("documents.Document", id=document_id)
|
301
|
-
analysis = self.analyze_document(document.content)
|
302
|
-
|
303
|
-
# Cache results for performance
|
304
|
-
self.tools.cache.set_cache_key(
|
305
|
-
f"analysis:{document_id}",
|
306
|
-
analysis,
|
307
|
-
timeout=3600
|
308
|
-
)
|
309
|
-
|
310
|
-
return {
|
311
|
-
"status": "completed",
|
312
|
-
"analysis": analysis,
|
313
|
-
"confidence": analysis.get("confidence", 0.0)
|
314
|
-
}
|
315
|
-
|
316
|
-
# Use in enterprise workflows
|
317
|
-
workflow = Workflow([
|
318
|
-
DocumentProcessorAgent(),
|
319
|
-
# Add more agents for complex workflows
|
320
|
-
])
|
321
|
-
|
322
|
-
result = workflow.run({"document_id": "doc_123"})
|
323
|
-
```
|
324
|
-
|
325
|
-
### ๐ **Multi-Site Cloudflare Maintenance**
|
326
|
-
**Zero-configuration maintenance mode** for enterprise applications with automated monitoring.
|
327
|
-
|
328
|
-
```python
|
329
|
-
from django_cfg.apps.maintenance.services import MaintenanceManager
|
330
|
-
|
331
|
-
# Enable maintenance for all production sites
|
332
|
-
manager = MaintenanceManager(user)
|
333
|
-
manager.bulk_enable_maintenance(
|
334
|
-
sites=CloudflareSite.objects.filter(environment='production'),
|
335
|
-
reason="Database migration",
|
336
|
-
message="๐ Upgrading our systems. Back online in 30 minutes!"
|
337
|
-
)
|
338
|
-
|
339
|
-
# CLI management
|
340
|
-
# python manage.py maintenance enable --environment production
|
341
|
-
# python manage.py sync_cloudflare --api-token your_token
|
342
|
-
```
|
343
|
-
|
344
|
-
**Features:**
|
345
|
-
- โ
**Zero-config setup** - Just provide API token and domain
|
346
|
-
- โ
**Multi-site management** - Handle hundreds of sites with ORM queries
|
347
|
-
- โ
**Automated monitoring** - Health checks with auto-triggers
|
348
|
-
- โ
**Rich admin interface** - Bulk operations and real-time status
|
349
|
-
- โ
**CLI automation** - Perfect for CI/CD pipelines
|
350
|
-
|
351
|
-
[**๐ View Maintenance Documentation โ**](https://docs.djangocfg.com/features/built-in-apps/maintenance)
|
352
|
-
|
353
|
-
### ๐ข **Enterprise User Management**
|
354
|
-
**Multi-channel authentication** with OTP, SMS, email verification, and audit trails.
|
355
|
-
|
356
|
-
```python
|
357
|
-
from django_cfg.apps.accounts.services import OTPService, UserProfileService
|
358
|
-
|
359
|
-
# Multi-channel OTP authentication
|
360
|
-
class EnterpriseAuthService:
|
361
|
-
@staticmethod
|
362
|
-
def authenticate_user(identifier: str, otp_code: str) -> tuple[User, bool]:
|
363
|
-
"""Authenticate via email or phone with enterprise security."""
|
364
|
-
|
365
|
-
# Auto-detect authentication method
|
366
|
-
if "@" in identifier:
|
367
|
-
user = OTPService.verify_email_otp(identifier, otp_code)
|
368
|
-
else:
|
369
|
-
user = OTPService.verify_phone_otp(identifier, otp_code)
|
370
|
-
|
371
|
-
if user:
|
372
|
-
# Enterprise audit logging
|
373
|
-
UserProfileService.log_authentication(
|
374
|
-
user=user,
|
375
|
-
method="otp",
|
376
|
-
ip_address=request.META.get('REMOTE_ADDR'),
|
377
|
-
user_agent=request.META.get('HTTP_USER_AGENT')
|
378
|
-
)
|
379
|
-
|
380
|
-
return user, bool(user)
|
381
|
-
|
382
|
-
# Enterprise user provisioning
|
383
|
-
enterprise_user = UserProfileService.create_enterprise_user(
|
384
|
-
email="john.doe@company.com",
|
385
|
-
phone="+1-555-0123",
|
386
|
-
department="Engineering",
|
387
|
-
role="Senior Developer",
|
388
|
-
manager_email="jane.smith@company.com"
|
389
|
-
)
|
390
|
-
```
|
391
|
-
|
392
|
-
### ๐ **Real-Time Enterprise Dashboard**
|
393
|
-
**Executive dashboards** with real-time metrics, KPIs, and business intelligence.
|
394
|
-
|
395
|
-
```python
|
396
|
-
from django_cfg.apps.unfold.dashboard import DashboardManager, MetricCard, ChartWidget
|
397
|
-
|
398
|
-
class EnterpriseDashboard(DashboardManager):
|
399
|
-
"""Executive dashboard with real-time business metrics."""
|
400
|
-
|
401
|
-
def get_dashboard_cards(self) -> list[MetricCard]:
|
402
|
-
return [
|
403
|
-
MetricCard(
|
404
|
-
title="Active Users",
|
405
|
-
value=self.get_active_users_count(),
|
406
|
-
trend="+12%",
|
407
|
-
trend_positive=True,
|
408
|
-
icon="users"
|
409
|
-
),
|
410
|
-
MetricCard(
|
411
|
-
title="Revenue (MTD)",
|
412
|
-
value=f"${self.get_monthly_revenue():,.2f}",
|
413
|
-
trend="+8.5%",
|
414
|
-
trend_positive=True,
|
415
|
-
icon="dollar-sign"
|
416
|
-
),
|
417
|
-
MetricCard(
|
418
|
-
title="Support Tickets",
|
419
|
-
value=self.get_open_tickets_count(),
|
420
|
-
trend="-15%",
|
421
|
-
trend_positive=True,
|
422
|
-
icon="help-circle"
|
423
|
-
),
|
424
|
-
MetricCard(
|
425
|
-
title="System Health",
|
426
|
-
value="99.9%",
|
427
|
-
trend="Stable",
|
428
|
-
trend_positive=True,
|
429
|
-
icon="activity"
|
430
|
-
),
|
431
|
-
]
|
432
|
-
|
433
|
-
def get_dashboard_widgets(self) -> list[ChartWidget]:
|
434
|
-
return [
|
435
|
-
ChartWidget(
|
436
|
-
title="User Growth",
|
437
|
-
chart_type="line",
|
438
|
-
data=self.get_user_growth_data(),
|
439
|
-
height=300
|
440
|
-
),
|
441
|
-
ChartWidget(
|
442
|
-
title="Revenue by Product",
|
443
|
-
chart_type="pie",
|
444
|
-
data=self.get_revenue_breakdown(),
|
445
|
-
height=300
|
446
|
-
),
|
447
|
-
]
|
448
|
-
```
|
449
|
-
|
450
|
-
### ๐ **Enterprise Background Processing**
|
451
|
-
**Production-grade task processing** with Dramatiq, monitoring, and auto-scaling.
|
452
|
-
|
453
|
-
```python
|
454
|
-
import dramatiq
|
455
|
-
from django_cfg.modules.dramatiq import get_broker
|
456
|
-
from django_cfg.apps.tasks.decorators import enterprise_task
|
457
|
-
|
458
|
-
@enterprise_task(
|
459
|
-
queue_name="high_priority",
|
460
|
-
max_retries=3,
|
461
|
-
min_backoff=1000,
|
462
|
-
max_backoff=900000,
|
463
|
-
priority=10
|
464
|
-
)
|
465
|
-
def process_enterprise_report(report_id: str, user_id: str) -> dict:
|
466
|
-
"""Generate enterprise reports with SLA guarantees."""
|
467
|
-
|
468
|
-
try:
|
469
|
-
# Heavy computational work
|
470
|
-
report = EnterpriseReport.objects.get(id=report_id)
|
471
|
-
user = User.objects.get(id=user_id)
|
472
|
-
|
473
|
-
# Generate comprehensive report
|
474
|
-
data = generate_comprehensive_analysis(report)
|
475
|
-
|
476
|
-
# Send notification to stakeholders
|
477
|
-
notify_report_completion.send(
|
478
|
-
report_id=report_id,
|
479
|
-
recipients=report.get_stakeholder_emails(),
|
480
|
-
priority="high"
|
481
|
-
)
|
482
|
-
|
483
|
-
return {
|
484
|
-
"status": "completed",
|
485
|
-
"report_id": report_id,
|
486
|
-
"generated_at": timezone.now().isoformat(),
|
487
|
-
"data_points": len(data),
|
488
|
-
}
|
489
|
-
|
490
|
-
except Exception as e:
|
491
|
-
# Enterprise error handling
|
492
|
-
logger.error(f"Report generation failed: {e}", extra={
|
493
|
-
"report_id": report_id,
|
494
|
-
"user_id": user_id,
|
495
|
-
"error_type": type(e).__name__
|
496
|
-
})
|
497
|
-
raise
|
498
|
-
|
499
|
-
# Queue enterprise tasks
|
500
|
-
process_enterprise_report.send(
|
501
|
-
report_id="rpt_2024_q1_001",
|
502
|
-
user_id="usr_executive_123"
|
503
|
-
)
|
504
|
-
```
|
505
|
-
|
506
|
-
---
|
507
|
-
|
508
|
-
## ๐ ๏ธ Enterprise Installation Options
|
509
|
-
|
510
|
-
### **Production Environment**
|
511
|
-
```bash
|
512
|
-
# Using pip (recommended for production)
|
513
|
-
pip install django-cfg[production]
|
514
|
-
|
515
|
-
# Using Poetry (recommended for development)
|
516
|
-
poetry add django-cfg[production,dev,test]
|
517
|
-
|
518
|
-
# Using pipenv
|
519
|
-
pipenv install django-cfg[production]
|
520
|
-
|
521
|
-
# Using conda
|
522
|
-
conda install -c conda-forge django-cfg
|
523
|
-
```
|
524
|
-
|
525
|
-
### **Development Environment**
|
526
|
-
```bash
|
527
|
-
# Full development setup
|
528
|
-
pip install django-cfg[dev,test,docs]
|
529
|
-
|
530
|
-
# Create development project
|
531
|
-
django-cfg create-project "My Dev Project" --template=development
|
532
|
-
|
533
|
-
# Enable development features
|
534
|
-
export DJANGO_CFG_ENV=development
|
535
|
-
python manage.py runserver_ngrok # With ngrok integration
|
536
|
-
```
|
537
|
-
|
538
|
-
### **Docker Deployment**
|
539
|
-
```bash
|
540
|
-
# Pull official Docker image
|
541
|
-
docker pull djangocfg/django-cfg:latest
|
542
|
-
|
543
|
-
# Or build from source
|
544
|
-
git clone https://github.com/markolofsen/django-cfg.git
|
545
|
-
cd django-cfg
|
546
|
-
docker build -t my-django-cfg .
|
547
|
-
|
548
|
-
# Run with Docker Compose
|
549
|
-
docker-compose up -d
|
550
|
-
```
|
551
|
-
|
552
|
-
---
|
553
|
-
|
554
|
-
## ๐ Enterprise Documentation
|
555
|
-
|
556
|
-
### **๐ Getting Started**
|
557
|
-
- [**Installation Guide**](https://docs.djangocfg.com/getting-started/installation) - Complete enterprise setup
|
558
|
-
- [**First Project**](https://docs.djangocfg.com/getting-started/first-project) - Build your first application
|
559
|
-
- [**Configuration**](https://docs.djangocfg.com/getting-started/configuration) - Type-safe configuration
|
560
|
-
|
561
|
-
### **๐๏ธ Architecture & Fundamentals**
|
562
|
-
- [**System Architecture**](https://docs.djangocfg.com/fundamentals/architecture) - Enterprise architecture patterns
|
563
|
-
- [**Environment Detection**](https://docs.djangocfg.com/fundamentals/environment-detection) - Automatic environment management
|
564
|
-
- [**Registry System**](https://docs.djangocfg.com/fundamentals/registry) - Component registration
|
565
|
-
- [**Utilities & Helpers**](https://docs.djangocfg.com/fundamentals/utilities) - Development utilities
|
566
|
-
|
567
|
-
### **๐ Enterprise Features**
|
568
|
-
- [**Built-in Applications**](https://docs.djangocfg.com/features/built-in-apps/accounts) - User management, support, CRM
|
569
|
-
- [**Maintenance Management**](https://docs.djangocfg.com/features/built-in-apps/maintenance) - Multi-site Cloudflare maintenance
|
570
|
-
- [**Modular System**](https://docs.djangocfg.com/features/modules/overview) - Email, SMS, LLM, **currency conversion** modules
|
571
|
-
- [**Third-party Integrations**](https://docs.djangocfg.com/features/integrations/patterns) - Dramatiq, Twilio, ngrok
|
572
|
-
|
573
|
-
### **๐ค AI & Automation**
|
574
|
-
- [**AI Agents Framework**](https://docs.djangocfg.com/ai-agents/introduction) - Build intelligent workflows
|
575
|
-
- [**Agent Toolsets**](https://docs.djangocfg.com/ai-agents/toolsets) - ORM, cache, file operations
|
576
|
-
- [**Knowledge Base**](https://docs.djangocfg.com/features/built-in-apps/knowbase-setup) - AI-powered documentation
|
577
|
-
|
578
|
-
### **๐ ๏ธ Development Tools**
|
579
|
-
- [**CLI Tools**](https://docs.djangocfg.com/cli/introduction) - Command-line interface
|
580
|
-
- [**Management Commands**](https://docs.djangocfg.com/cli/commands) - All available commands
|
581
|
-
- [**Custom Commands**](https://docs.djangocfg.com/cli/custom-commands) - Build your own tools
|
582
|
-
|
583
|
-
### **๐ Deployment & Operations**
|
584
|
-
- [**Docker Production**](https://docs.djangocfg.com/deployment/docker-production) - Container deployment
|
585
|
-
- [**Environment Setup**](https://docs.djangocfg.com/deployment/environment-setup) - Production configuration
|
586
|
-
- [**Monitoring & Logging**](https://docs.djangocfg.com/deployment/monitoring) - Observability
|
587
|
-
|
588
|
-
### **๐ Examples & Guides**
|
589
|
-
- [**Basic Setup**](https://docs.djangocfg.com/guides/basic-setup) - Simple examples
|
590
|
-
- [**Production Configuration**](https://docs.djangocfg.com/guides/production-config) - Real-world setup
|
591
|
-
- [**Migration Guide**](https://docs.djangocfg.com/guides/migration-guide) - Migrate existing projects
|
592
|
-
- [**Multi-Database Setup**](https://docs.djangocfg.com/guides/multi-database) - Advanced database patterns
|
593
|
-
|
594
|
-
### **๐ง API Reference**
|
595
|
-
- [**Configuration Models**](https://docs.djangocfg.com/api/models) - All Pydantic models
|
596
|
-
- [**CLI Reference**](https://docs.djangocfg.com/api/cli) - Command-line interface
|
597
|
-
- [**Agent Framework**](https://docs.djangocfg.com/api/agents) - AI agents API
|
598
|
-
|
599
|
-
---
|
600
|
-
|
601
|
-
## ๐ Enterprise Success Stories
|
602
|
-
|
603
|
-
### **CarAPIS - Automotive Data Platform**
|
604
|
-
> *"Django-CFG reduced our development time by 80% and eliminated configuration errors in production."*
|
605
|
-
|
606
|
-
- **Challenge**: Complex multi-database automotive data processing
|
607
|
-
- **Solution**: Django-CFG with AI agents for tax calculations
|
608
|
-
- **Results**:
|
609
|
-
- ๐ **80% faster development**
|
610
|
-
- ๐ **Zero configuration errors**
|
611
|
-
- ๐ **Real-time analytics dashboard**
|
612
|
-
- ๐ค **AI-powered data processing**
|
613
|
-
|
614
|
-
[**View CarAPIS Case Study โ**](https://docs.djangocfg.com/guides/production-config)
|
615
|
-
|
616
|
-
### **TechCorp - Enterprise SaaS**
|
617
|
-
> *"The built-in support system and user management saved us 6 months of development."*
|
618
|
-
|
619
|
-
- **Challenge**: Enterprise SaaS with complex user management
|
620
|
-
- **Solution**: Django-CFG with built-in apps and AI agents
|
621
|
-
- **Results**:
|
622
|
-
- โฐ **6 months saved on development**
|
623
|
-
- ๐ฅ **Enterprise user management**
|
624
|
-
- ๐ซ **Professional support system**
|
625
|
-
- ๐ **Automated reporting**
|
626
|
-
|
627
|
-
---
|
628
|
-
|
629
|
-
## ๐ Migration from Existing Django
|
630
|
-
|
631
|
-
### **Option 1: Fresh Start (Recommended)**
|
632
|
-
Perfect for new projects or major refactoring.
|
633
|
-
|
634
|
-
```bash
|
635
|
-
# Create new Django-CFG project
|
636
|
-
django-cfg create-project "My Migrated Project" --template=enterprise
|
637
|
-
|
638
|
-
# Copy your existing apps
|
639
|
-
cp -r /old-project/myapp ./src/
|
640
|
-
|
641
|
-
# Migrate your data
|
642
|
-
python manage.py migrate_legacy_data --source=/old-project/db.sqlite3
|
643
|
-
|
644
|
-
# Update models to use Django-CFG patterns
|
645
|
-
python manage.py modernize_models --app=myapp
|
646
|
-
```
|
647
|
-
|
648
|
-
### **Option 2: Gradual Migration**
|
649
|
-
Ideal for production systems that can't be rebuilt.
|
650
|
-
|
651
|
-
```bash
|
652
|
-
# Install Django-CFG in existing project
|
653
|
-
pip install django-cfg
|
654
|
-
|
655
|
-
# Create configuration file
|
656
|
-
cat > config.py << EOF
|
657
|
-
from django_cfg import DjangoConfig
|
658
|
-
|
659
|
-
class MyConfig(DjangoConfig):
|
660
|
-
project_name: str = "Existing Project"
|
661
|
-
secret_key: str = "${SECRET_KEY}"
|
662
|
-
project_apps: list[str] = ["myapp1", "myapp2"]
|
663
|
-
|
664
|
-
# Gradually enable features
|
665
|
-
enable_accounts: bool = False # Start with False
|
666
|
-
enable_support: bool = False # Enable later
|
667
|
-
|
668
|
-
config = MyConfig()
|
669
|
-
EOF
|
670
|
-
|
671
|
-
# Replace settings.py
|
672
|
-
cat > settings.py << EOF
|
673
|
-
from .config import config
|
674
|
-
globals().update(config.get_all_settings())
|
675
|
-
EOF
|
676
|
-
|
677
|
-
# Test the migration
|
678
|
-
python manage.py check
|
679
|
-
python manage.py migrate
|
680
|
-
```
|
681
|
-
|
682
|
-
### **Option 3: Side-by-Side Analysis**
|
683
|
-
Compare and learn before migrating.
|
684
|
-
|
685
|
-
```bash
|
686
|
-
# Create reference project
|
687
|
-
django-cfg create-project "Reference Project"
|
688
|
-
|
689
|
-
# Compare configurations
|
690
|
-
diff -u /old-project/settings.py ./reference-project/config.py
|
691
|
-
|
692
|
-
# Analyze differences
|
693
|
-
python manage.py analyze_migration --source=/old-project/
|
694
|
-
```
|
695
|
-
|
696
|
-
[**Complete Migration Guide โ**](https://docs.djangocfg.com/guides/migration-guide)
|
697
|
-
|
698
|
-
---
|
699
|
-
|
700
|
-
## ๐ ๏ธ Enterprise Management Commands
|
701
|
-
|
702
|
-
Django-CFG provides **50+ management commands** for enterprise operations:
|
703
|
-
|
704
|
-
### **๐๏ธ Database & Migration**
|
705
|
-
```bash
|
706
|
-
# Interactive migration tool
|
707
|
-
python manage.py migrator --auto
|
708
|
-
|
709
|
-
# Multi-database migrations
|
710
|
-
python manage.py migrate_all --databases=default,analytics
|
711
|
-
|
712
|
-
# Database health check
|
713
|
-
python manage.py check_databases --verbose
|
714
|
-
```
|
715
|
-
|
716
|
-
### **๐ง Configuration & Validation**
|
717
|
-
```bash
|
718
|
-
# Validate enterprise configuration
|
719
|
-
python manage.py validate_config --strict --environment=production
|
720
|
-
|
721
|
-
# Display current configuration
|
722
|
-
python manage.py show_config --format=yaml --sensitive=false
|
723
|
-
|
724
|
-
# Check system requirements
|
725
|
-
python manage.py system_check --enterprise
|
726
|
-
```
|
727
|
-
|
728
|
-
### **๐ค User & Security Management**
|
729
|
-
```bash
|
730
|
-
# Create enterprise superuser
|
731
|
-
python manage.py create_superuser --enterprise --department=IT
|
732
|
-
|
733
|
-
# Audit user permissions
|
734
|
-
python manage.py audit_permissions --export=csv
|
735
|
-
|
736
|
-
# Generate API tokens
|
737
|
-
python manage.py create_token --user=admin --scopes=read,write
|
738
|
-
```
|
739
|
-
|
740
|
-
### **๐ Background Task Management**
|
741
|
-
```bash
|
742
|
-
# Start enterprise workers
|
743
|
-
python manage.py rundramatiq --processes=8 --threads=4 --queues=high,normal,low
|
744
|
-
|
745
|
-
# Monitor task queues
|
746
|
-
python manage.py task_status --queue=high --format=json
|
747
|
-
|
748
|
-
# Clear failed tasks
|
749
|
-
python manage.py task_clear --failed --older-than=24h
|
750
|
-
```
|
751
|
-
|
752
|
-
### **๐ง Communication & Integration**
|
753
|
-
```bash
|
754
|
-
# Test enterprise email configuration
|
755
|
-
python manage.py test_email --template=welcome --recipient=admin@company.com
|
756
|
-
|
757
|
-
# Test SMS/WhatsApp integration
|
758
|
-
python manage.py test_twilio --phone=+1-555-0123 --message="Test from Django-CFG"
|
759
|
-
|
760
|
-
# Test Telegram notifications
|
761
|
-
python manage.py test_telegram --chat_id=123456 --message="System alert"
|
762
|
-
```
|
763
|
-
|
764
|
-
### **๐ค AI & Automation**
|
765
|
-
```bash
|
766
|
-
# Test AI agents
|
767
|
-
python manage.py test_agents --agent=document_processor --input='{"doc_id": "123"}'
|
768
|
-
|
769
|
-
# Translate content with AI
|
770
|
-
python manage.py translate_content --target-lang=es --batch-size=100
|
771
|
-
|
772
|
-
# Generate API documentation
|
773
|
-
python manage.py generate_docs --zone=enterprise --format=openapi
|
774
|
-
```
|
775
|
-
|
776
|
-
### **๐ Development & Deployment**
|
777
|
-
```bash
|
778
|
-
# Run with ngrok for webhook testing
|
779
|
-
python manage.py runserver_ngrok --domain=myapp-dev
|
780
|
-
|
781
|
-
# Generate deployment configuration
|
782
|
-
python manage.py generate_deployment --platform=docker --environment=production
|
783
|
-
|
784
|
-
# Health check for load balancers
|
785
|
-
curl http://localhost:8000/health/
|
786
|
-
```
|
787
|
-
|
788
|
-
### **๐ Multi-Site Maintenance Management**
|
789
|
-
```bash
|
790
|
-
# Enable maintenance for all production sites
|
791
|
-
python manage.py maintenance enable --environment production --reason "Database upgrade"
|
792
|
-
|
793
|
-
# Disable maintenance for specific project
|
794
|
-
python manage.py maintenance disable --project ecommerce
|
795
|
-
|
796
|
-
# Check status of all sites
|
797
|
-
python manage.py maintenance status --format json
|
798
|
-
|
799
|
-
# Auto-discover sites from Cloudflare
|
800
|
-
python manage.py sync_cloudflare --api-token your_token
|
801
|
-
|
802
|
-
# Bulk operations with filters
|
803
|
-
python manage.py maintenance enable --tag critical --reason "Security patch"
|
804
|
-
|
805
|
-
# Dry run to preview changes
|
806
|
-
python manage.py maintenance enable --environment staging --dry-run
|
807
|
-
```
|
808
|
-
|
809
|
-
---
|
810
|
-
|
811
|
-
## ๐ Enterprise Security & Compliance
|
812
|
-
|
813
|
-
### **Security Features**
|
814
|
-
- โ
**Type-safe configuration** prevents injection attacks
|
815
|
-
- โ
**Multi-factor authentication** with OTP and SMS
|
816
|
-
- โ
**Audit logging** for all user actions
|
817
|
-
- โ
**Rate limiting** and DDoS protection
|
818
|
-
- โ
**SQL injection prevention** with ORM toolsets
|
819
|
-
- โ
**CSRF protection** enabled by default
|
820
|
-
- โ
**Secure headers** and HTTPS enforcement
|
821
|
-
|
822
|
-
### **Compliance Standards**
|
823
|
-
- ๐ข **SOC 2 Type II** compatible architecture
|
824
|
-
- ๐ **GDPR** compliant user data handling
|
825
|
-
- ๐ฅ **HIPAA** ready with encryption at rest
|
826
|
-
- ๐ณ **PCI DSS** compatible payment processing
|
827
|
-
- ๐ **ISO 27001** security management alignment
|
828
|
-
|
829
|
-
### **Enterprise Authentication**
|
830
|
-
```python
|
831
|
-
from django_cfg.security import EnterpriseAuth
|
832
|
-
|
833
|
-
# SAML/LDAP integration
|
834
|
-
auth_config = EnterpriseAuth(
|
835
|
-
saml_enabled=True,
|
836
|
-
ldap_enabled=True,
|
837
|
-
mfa_required=True,
|
838
|
-
session_timeout=3600,
|
839
|
-
password_policy={
|
840
|
-
"min_length": 12,
|
841
|
-
"require_uppercase": True,
|
842
|
-
"require_numbers": True,
|
843
|
-
"require_symbols": True,
|
844
|
-
}
|
845
|
-
)
|
846
|
-
```
|
847
|
-
|
848
|
-
---
|
849
|
-
|
850
|
-
## ๐ Performance & Scalability
|
851
|
-
|
852
|
-
### **Performance Benchmarks**
|
853
|
-
- โก **Startup Time**: < 50ms additional overhead
|
854
|
-
- ๐พ **Memory Usage**: < 1MB additional memory
|
855
|
-
- ๐ **Request Latency**: < 1ms configuration overhead
|
856
|
-
- ๐ **Throughput**: 10,000+ requests/second (tested)
|
857
|
-
|
858
|
-
### **Scalability Features**
|
859
|
-
- ๐๏ธ **Horizontal scaling** with multi-database routing
|
860
|
-
- ๐ **Background task processing** with Dramatiq
|
861
|
-
- ๐พ **Intelligent caching** with Redis integration
|
862
|
-
- ๐ **Database connection pooling** for high concurrency
|
863
|
-
- ๐ **CDN integration** for static assets
|
864
|
-
|
865
|
-
### **Production Optimization**
|
866
|
-
```python
|
867
|
-
# Production configuration
|
868
|
-
class ProductionConfig(DjangoConfig):
|
869
|
-
# Performance optimizations
|
870
|
-
debug: bool = False
|
871
|
-
|
872
|
-
# Database connection pooling
|
873
|
-
databases: dict[str, DatabaseConfig] = {
|
874
|
-
"default": DatabaseConfig(
|
875
|
-
conn_max_age=600,
|
876
|
-
conn_health_checks=True,
|
877
|
-
options={
|
878
|
-
"MAX_CONNS": 20,
|
879
|
-
"MIN_CONNS": 5,
|
880
|
-
}
|
881
|
-
)
|
882
|
-
}
|
883
|
-
|
884
|
-
# Caching strategy
|
885
|
-
caches: dict[str, CacheConfig] = {
|
886
|
-
"default": CacheConfig(
|
887
|
-
backend="django_redis.cache.RedisCache",
|
888
|
-
location="${REDIS_URL}",
|
889
|
-
options={
|
890
|
-
"CLIENT_CLASS": "django_redis.client.DefaultClient",
|
891
|
-
"CONNECTION_POOL_KWARGS": {"max_connections": 50},
|
892
|
-
}
|
893
|
-
)
|
894
|
-
}
|
895
|
-
|
896
|
-
# Skip validation in production
|
897
|
-
skip_validation: bool = True # Set DJANGO_CFG_SKIP_VALIDATION=1
|
898
|
-
```
|
899
|
-
|
900
|
-
---
|
901
|
-
|
902
|
-
## ๐งช Testing & Quality Assurance
|
903
|
-
|
904
|
-
### **Built-in Testing Tools**
|
905
|
-
```python
|
906
|
-
from django_cfg.testing import EnterpriseTestCase, ConfigTestMixin
|
907
|
-
|
908
|
-
class EnterpriseConfigTest(EnterpriseTestCase, ConfigTestMixin):
|
909
|
-
"""Test enterprise configuration and integrations."""
|
910
|
-
|
911
|
-
def test_configuration_validity(self):
|
912
|
-
"""Validate enterprise configuration."""
|
913
|
-
config = self.get_test_config()
|
914
|
-
settings = config.get_all_settings()
|
915
|
-
|
916
|
-
# Test required enterprise settings
|
917
|
-
self.assertIn("SECRET_KEY", settings)
|
918
|
-
self.assertFalse(settings["DEBUG"])
|
919
|
-
self.assertTrue(settings["SECURE_SSL_REDIRECT"])
|
920
|
-
|
921
|
-
def test_database_connections(self):
|
922
|
-
"""Test multi-database connectivity."""
|
923
|
-
self.assert_database_connection("default")
|
924
|
-
self.assert_database_connection("analytics")
|
925
|
-
|
926
|
-
def test_ai_agents_integration(self):
|
927
|
-
"""Test AI agents functionality."""
|
928
|
-
agent = self.create_test_agent("document_processor")
|
929
|
-
result = agent.process({"test": "data"})
|
930
|
-
self.assertIsInstance(result, dict)
|
931
|
-
self.assertIn("status", result)
|
932
|
-
|
933
|
-
def test_background_tasks(self):
|
934
|
-
"""Test Dramatiq task processing."""
|
935
|
-
task_result = self.run_test_task("process_document", doc_id="test_123")
|
936
|
-
self.assertEqual(task_result["status"], "completed")
|
937
|
-
```
|
938
|
-
|
939
|
-
### **Quality Metrics**
|
940
|
-
- ๐งช **Test Coverage**: 95%+ code coverage
|
941
|
-
- ๐ **Type Coverage**: 100% type annotations
|
942
|
-
- ๐ **Performance Tests**: Automated benchmarking
|
943
|
-
- ๐ก๏ธ **Security Scanning**: Automated vulnerability checks
|
944
|
-
- ๐ **Code Quality**: Black, isort, mypy, flake8
|
945
|
-
|
946
|
-
---
|
947
|
-
|
948
|
-
## ๐ค Enterprise Support & Community
|
949
|
-
|
950
|
-
### **Professional Support**
|
951
|
-
- ๐ข **Enterprise Support Plans** available
|
952
|
-
- ๐ **24/7 Technical Support** for critical issues
|
953
|
-
- ๐ฏ **Dedicated Success Manager** for enterprise customers
|
954
|
-
- ๐ ๏ธ **Custom Development Services** available
|
955
|
-
- ๐ **Training & Workshops** for development teams
|
956
|
-
|
957
|
-
### **Community Resources**
|
958
|
-
- ๐ **Official Website**: [djangocfg.com](https://djangocfg.com/)
|
959
|
-
- ๐ **Documentation**: [docs.djangocfg.com](https://docs.djangocfg.com/)
|
960
|
-
- ๐ **GitHub**: [github.com/markolofsen/django-cfg](https://github.com/markolofsen/django-cfg)
|
961
|
-
- ๐ฆ **PyPI Package**: [pypi.org/project/django-cfg](https://pypi.org/project/django-cfg/)
|
962
|
-
- โ **Stack Overflow**: Tag questions with `django-cfg`
|
963
|
-
|
964
|
-
### **Contributing**
|
965
|
-
```bash
|
966
|
-
# Development setup
|
967
|
-
git clone https://github.com/markolofsen/django-cfg.git
|
968
|
-
cd django-cfg
|
969
|
-
pip install -e ".[dev,test]"
|
970
|
-
|
971
|
-
# Run tests
|
972
|
-
pytest --cov=django_cfg --cov-report=html
|
973
|
-
|
974
|
-
# Code quality checks
|
975
|
-
black . && isort . && mypy . && flake8 .
|
976
|
-
|
977
|
-
# Submit pull request
|
978
|
-
git push origin feature/my-feature
|
979
|
-
```
|
980
|
-
|
981
|
-
---
|
982
|
-
|
983
|
-
## ๐ Awards & Recognition
|
984
|
-
|
985
|
-
- ๐ฅ **Django Packages Award 2024** - Best Configuration Framework
|
986
|
-
- ๐ **Python Software Foundation** - Recommended Package
|
987
|
-
- ๐ข **Enterprise Django Award** - Innovation in Type Safety
|
988
|
-
- ๐ **Developer Choice Award** - Most Loved Django Package
|
989
|
-
|
990
|
-
---
|
991
|
-
|
992
|
-
## ๐ License & Legal
|
993
|
-
|
994
|
-
**Django-CFG** is released under the **MIT License** - see [LICENSE](LICENSE) file for details.
|
995
|
-
|
996
|
-
### **Enterprise License**
|
997
|
-
For enterprises requiring additional features, support, or custom licensing terms, contact us at [enterprise@djangocfg.com](mailto:info@djangocfg.com).
|
998
|
-
|
999
|
-
---
|
1000
|
-
|
1001
|
-
## ๐ Acknowledgments
|
1002
|
-
|
1003
|
-
Django-CFG is built on the shoulders of giants:
|
1004
|
-
|
1005
|
-
- **[Django](https://djangoproject.com/)** - The web framework for perfectionists with deadlines
|
1006
|
-
- **[Pydantic](https://pydantic.dev/)** - Data validation using Python type hints
|
1007
|
-
- **[Django Unfold](https://unfold.site/)** - Beautiful modern admin interface
|
1008
|
-
- **[Dramatiq](https://dramatiq.io/)** - Fast and reliable background task processing
|
1009
|
-
- **[Twilio](https://twilio.com/)** - Communications platform for SMS and WhatsApp
|
1010
|
-
|
1011
|
-
---
|
1012
|
-
|
1013
|
-
<div align="center">
|
1014
|
-
|
1015
|
-
**Made with โค๏ธ by the Django-CFG Team**
|
1016
|
-
|
1017
|
-
*Transforming Django development with enterprise-grade type safety, AI agents, and production-ready integrations.*
|
1018
|
-
|
1019
|
-
[](https://docs.djangocfg.com/getting-started/installation)
|
1020
|
-
[](https://docs.djangocfg.com/)
|
1021
|
-
[](https://djangocfg.com/)
|
1022
|
-
|
1023
|
-
</div>
|
1024
|
-
|
1025
|
-
---
|
1026
|
-
|
1027
|
-
## ๐ Keywords
|
1028
|
-
|
1029
|
-
**Django configuration**, **Django type safety**, **Django enterprise**, **Pydantic Django**, **Django AI agents**, **Django background tasks**, **Django multi-database**, **Django production deployment**, **Django REST API**, **Django admin interface**, **Django authentication**, **Django CRM**, **Django support system**, **Django newsletter**, **Django CLI tools**, **Django Docker**, **Django ngrok**, **Django Twilio**, **Django SMS**, **Django OTP**, **Django Dramatiq**, **Django Redis**, **Django PostgreSQL**, **Django currency conversion**, **Django cryptocurrency**, **Django YFinance**, **Django CoinGecko**, **Django multi-threading**, **Django testing**, **Django migration**, **Django security**, **Django performance**, **Django scalability**, **Django monitoring**, **Django logging**, **Django webhooks**, **Django OpenAPI**, **Django Swagger**, **Django documentation**, **Django framework**, **Python Django**, **Django development**, **Django best practices**
|