fastapi-admin-kit 0.3.2__tar.gz → 0.5.0__tar.gz
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.
- fastapi_admin_kit-0.5.0/CHANGELOG.md +127 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/PKG-INFO +14 -6
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/README.md +2 -4
- fastapi_admin_kit-0.5.0/SECURITY.md +32 -0
- fastapi_admin_kit-0.5.0/example/custom_templates/admin/list.html +28 -0
- fastapi_admin_kit-0.5.0/example/custom_templates/admin/products/list.html +27 -0
- fastapi_admin_kit-0.5.0/example/example_ai.py +930 -0
- fastapi_admin_kit-0.5.0/example/example_custom_templates.py +251 -0
- fastapi_admin_kit-0.5.0/example/example_notifications.py +492 -0
- fastapi_admin_kit-0.5.0/example/validate_ws.py +74 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/__init__.py +48 -2
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/admin/admin_config.py +9 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/admin/admin_database.py +176 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/admin/admin_router.py +5 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/admin/admin_template.py +10 -8
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/admin/builtin_models.py +158 -9
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/admin/core.py +731 -56
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/admin/decorators.py +156 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/admin/state.py +2 -4
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/__init__.py +37 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/agent.py +119 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/attachments.py +136 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/backends/__init__.py +129 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/backends/pydantic_ai_backend.py +699 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/backends/repairer.py +381 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/builtin_tools.py +105 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/config.py +126 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/conversation.py +350 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/dashboard.py +298 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/data_access.py +142 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/deps.py +186 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/errors.py +17 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/model_agent.py +419 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/plugin.py +73 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/prompts.py +126 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/serialization.py +71 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/service.py +851 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/tools.py +110 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/ui/__init__.py +11 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/ui/native.py +52 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/ai/usage.py +126 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/api/__init__.py +6 -5
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/api/auth.py +201 -35
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/api/crud.py +219 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/api/deps.py +141 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/api/middleware.py +131 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/api/roles.py +3 -4
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/api/schema_generator.py +61 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/api/search.py +5 -2
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/api/security.py +23 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/middleware.py +6 -1
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/auth/backend.py +221 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/csrf.py +68 -15
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/dependencies.py +5 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/identity.py +22 -2
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/mixins.py +16 -13
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/password.py +6 -3
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/permissions.py +4 -4
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/auth/proxy.py +98 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/auth/ratelimit.py +112 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/auth/session.py +186 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/auth/totp.py +158 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/views.py +63 -21
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/backends/__init__.py +109 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/backends/memory.py +610 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/backends/protocols.py +86 -2
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/backends/sqlalchemy.py +453 -38
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/cli/user.py +360 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/config/__init__.py +4 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/config/ai_chat.py +27 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/config/auth.py +25 -6
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/config/cache.py +137 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/config/database.py +11 -2
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/db.py +150 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/export_import/base.py +57 -7
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/export_import/csv.py +3 -4
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/export_import/excel.py +8 -5
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/filters/__init__.py +4 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/filters/base.py +527 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/filters/lookups.py +76 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/filters/registry.py +52 -17
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/form/pipeline.py +3 -4
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/inspection/__init__.py +59 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/inspection/types.py +26 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/inspection.py +38 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/migrations/__init__.py +5 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/migrations/models.py +36 -8
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/modeladmin.py +150 -6
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/nav.py +3 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/__init__.py +74 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/config.py +116 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/dispatcher.py +203 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/email.py +137 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/models.py +15 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/plugin.py +52 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/realtime.py +136 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/router.py +404 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/schemas.py +75 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/service.py +570 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/sms/__init__.py +22 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/sms/base.py +66 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/sms/twilio.py +128 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/notifications/store.py +327 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/pagination/cursor.py +17 -6
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/pagination/dynamic.py +4 -2
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/pagination/offset.py +5 -4
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/py.typed +0 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/redis.py +325 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/registry/__init__.py +9 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/registry/core.py +91 -47
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/router.py +252 -71
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/schemas/builtin.py +473 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/static/css/admin.css +182 -4
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/static/js/admin.js +245 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/storage/base.py +3 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/storage/local.py +117 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/admin/base_detail.html +86 -0
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/templates/pages/form.html → fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/admin/base_form.html +24 -1
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/templates/pages/list.html → fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/admin/base_list.html +85 -11
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/base.html +3 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/macros/form_fields.html +7 -8
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/macros/table.html +1 -1
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/pages/ai/agents.html +228 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/pages/ai/chat.html +1152 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/pages/ai/chat_htmx.html +198 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/pages/ai/dashboard.html +153 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/pages/ai/logs.html +1098 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/pages/ai/tools.html +197 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/pages/detail.html +2 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/pages/form.html +2 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/pages/list.html +2 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/roles/form.html +1 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/users/form.html +2 -2
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/_inline_edit_row.html +1 -1
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/partials/ai_chat_widget.html +656 -0
- fastapi_admin_kit-0.5.0/fastapi_admin_kit/templates/partials/detail_field.html +59 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/inline_stacked.html +2 -2
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/inline_tabular.html +2 -2
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/list_table.html +1 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/perm_select_widget.html +1 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/permission_widget.html +1 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/topbar.html +54 -4
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/validation.py +9 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/audit.py +1 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/class_views.py +181 -20
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/context.py +2 -4
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/dashboard.py +6 -6
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/file_handler.py +43 -15
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/form.py +11 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/list_context.py +18 -42
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/model_saver.py +7 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/profile.py +9 -7
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/protocols.py +1 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/renderers.py +175 -160
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/roles.py +13 -20
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/settings.py +1 -1
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/sidebar.py +4 -6
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/totp.py +100 -11
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/users.py +6 -6
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views.py +10 -2
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/mkdocs.yml +3 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/pyproject.toml +14 -0
- fastapi_admin_kit-0.5.0/scripts/generate_changelog.py +275 -0
- fastapi_admin_kit-0.5.0/test_on_complete.py +2 -0
- fastapi_admin_kit-0.3.2/CHANGELOG.md +0 -51
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/admin/admin_database.py +0 -279
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/admin/decorators.py +0 -70
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/api/crud.py +0 -129
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/api/deps.py +0 -75
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/auth/backend.py +0 -92
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/auth/ratelimit.py +0 -104
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/auth/session.py +0 -106
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/auth/totp.py +0 -86
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/backends/__init__.py +0 -63
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/cli/user.py +0 -207
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/db.py +0 -161
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/filters/base.py +0 -335
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/registry/__init__.py +0 -5
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/schemas/builtin.py +0 -259
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/storage/local.py +0 -73
- fastapi_admin_kit-0.3.2/fastapi_admin_kit/templates/pages/detail.html +0 -183
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/.gitignore +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/LICENSE +0 -0
- /fastapi_admin_kit-0.3.2/fastapi_admin_kit/py.typed → /fastapi_admin_kit-0.5.0/example/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/actions/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/actions/base.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/actions/registry.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/admin/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/api/schemas.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/context.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/diff.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/event_bus.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/events.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/listener.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/logger.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/models.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/audit/sqlalchemy_logger.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/hasher.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/models.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/protocol.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/router.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/auth/types.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/cli/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/cli/__main__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/cli/helpers.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/cli/migrate.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/cli/permissions.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/cli/scaffold.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/config/audit.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/config/behavior.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/config/nav.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/config/storage.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/config/theme.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/config/ui.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/dashboard/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/exceptions.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/export_import/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/export_import/registry.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/field_types.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/flash.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/form/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/form/types.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/inline.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/inspection/registry.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/models/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/models/base.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/pagination/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/pagination/base.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/plugins/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/registry/validation.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/registry.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/schemas/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/schemas/schema.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/search_utils.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/static/css/presets.css +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/static/css/tokens.css +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/static/css/variables.css +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/static/icons/heroicons.svg +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/static/js/htmx-config.js +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/storage/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/macros/icons.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/macros/widgets.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/2fa/setup.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/2fa/verify.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/403.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/audit_detail.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/audit_log.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/dashboard.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/login.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/profile/password.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/profile/profile.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/role_form.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/roles/list.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/roles.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/search.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/settings/theme.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/pages/users/list.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/command_palette.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/field_wrapper.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/flash_messages.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/head.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/head_minimal.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/inline_edit_form.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/mobile_backdrop.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/pagination.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/scripts.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/templates/partials/sidebar.html +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/types.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/ui/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/ui/types.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/bulk.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/delete.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/extra.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/factory.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/list.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/views/search.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/widgets/__init__.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/widgets/base.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/widgets/inputs.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/widgets/registry.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/widgets/relation.py +0 -0
- {fastapi_admin_kit-0.3.2 → fastapi_admin_kit-0.5.0}/fastapi_admin_kit/widgets/resolver.py +0 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Robust Django-style filtering system
|
|
12
|
+
([#52](https://github.com/borhanst/fastapi-admin-kit/issues/52)):
|
|
13
|
+
- New lookup types for the JSON API and admin UI list views:
|
|
14
|
+
`icontains`, `startswith`, `endswith`, `gt`, `gte`, `lt`, `lte`,
|
|
15
|
+
`range`, and `in` — in addition to exact matches.
|
|
16
|
+
- New `ChoiceFilter` for relation/FK fields (auto-detected in
|
|
17
|
+
`FilterRegistry.auto_generate()`), plus `IntegerFilter` with full
|
|
18
|
+
numeric lookups.
|
|
19
|
+
- Admin UI now renders text-input filters (case-insensitive contains)
|
|
20
|
+
and min/max inputs for numeric fields.
|
|
21
|
+
- Filters are ORM-agnostic: `QueryBackend` gained an `and_` combinator
|
|
22
|
+
and the in-memory backend now handles `%`-anchored `ilike` patterns.
|
|
23
|
+
- `Admin.setup()` now logs a non-blocking preflight warning naming any missing
|
|
24
|
+
`admin_ai_*` tables (with the command to fix them) when `ai_enabled=True`
|
|
25
|
+
but the schema is absent (Alembic / `SKIP_CREATE_TABLES=true` mode).
|
|
26
|
+
- `fastapi_admin_kit.schemas.builtin.AI_TABLE_NAMES` and
|
|
27
|
+
`INTERNAL_TABLE_NAMES` constants for gating/identification.
|
|
28
|
+
- `AdminRegistry.auto_discover(exclude_tables=...)` accepts a set of table
|
|
29
|
+
names to skip during discovery.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- **AI is now gated behind `ai_enabled` (default `False`).** When AI is
|
|
33
|
+
disabled, the `admin_ai_*` tables are not created, and the AI models, nav
|
|
34
|
+
group, and routes are not registered in the admin UI or the JSON API.
|
|
35
|
+
Notifications, auth, roles, audit, and login-attempt models are unaffected.
|
|
36
|
+
- Internal tables (`admin_refresh_tokens`, `admin_user_permissions`,
|
|
37
|
+
`admin_user_totp`, `admin_ai_attachments`) are no longer exposed over the
|
|
38
|
+
JSON API (previously a latent security hole). They remain hidden from the
|
|
39
|
+
sidebar.
|
|
40
|
+
|
|
41
|
+
## [0.3.2] - 2026-07-31
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
- Added Alembic database migrations so schema changes can be versioned and
|
|
45
|
+
applied incrementally instead of relying solely on auto-create
|
|
46
|
+
([#39](https://github.com/borhanst/fastapi-admin-kit/pull/39)).
|
|
47
|
+
|
|
48
|
+
## [0.3.1] - 2026-07-29
|
|
49
|
+
|
|
50
|
+
### Added
|
|
51
|
+
- CSV export and import support for models, enabling bulk data download and
|
|
52
|
+
upload from the admin UI
|
|
53
|
+
([#38](https://github.com/borhanst/fastapi-admin-kit/pull/38)).
|
|
54
|
+
|
|
55
|
+
## [0.3.0] - 2026-07-28
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
- Per-model permission updates and refinements to the RBAC model
|
|
59
|
+
([#20](https://github.com/borhanst/fastapi-admin-kit/pull/20)).
|
|
60
|
+
- Inline formset support for `ModelAdmin`, allowing related records to be
|
|
61
|
+
edited on the same page
|
|
62
|
+
([#21](https://github.com/borhanst/fastapi-admin-kit/pull/21)).
|
|
63
|
+
- Adapter registration wired directly into `Admin`
|
|
64
|
+
([#35](https://github.com/borhanst/fastapi-admin-kit/pull/35)).
|
|
65
|
+
- Schema-first + protocol hybrid approach for built-in admin models
|
|
66
|
+
([#34](https://github.com/borhanst/fastapi-admin-kit/pull/34)).
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
- Decoupled `DefaultQueryProvider`, `search_utils`, and the `Filter` classes
|
|
70
|
+
from SQLAlchemy, improving backend portability
|
|
71
|
+
([#33](https://github.com/borhanst/fastapi-admin-kit/pull/33)).
|
|
72
|
+
|
|
73
|
+
### Fixed
|
|
74
|
+
- Assorted bug fixes and stability improvements
|
|
75
|
+
([#36](https://github.com/borhanst/fastapi-admin-kit/pull/36)).
|
|
76
|
+
|
|
77
|
+
## [0.2.1] - 2026-07-21
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
- Corrected a user-permission model bug and adjusted how permissions are
|
|
81
|
+
stored and evaluated
|
|
82
|
+
([#19](https://github.com/borhanst/fastapi-admin-kit/pull/19)).
|
|
83
|
+
|
|
84
|
+
## [0.2.0] - 2026-07-13
|
|
85
|
+
|
|
86
|
+
### Added
|
|
87
|
+
- Authentication subsystem with session-based login, logout, and protected
|
|
88
|
+
routes ([#14](https://github.com/borhanst/fastapi-admin-kit/pull/14)).
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
- Resolved a documentation build failure
|
|
92
|
+
([#15](https://github.com/borhanst/fastapi-admin-kit/pull/15)).
|
|
93
|
+
|
|
94
|
+
## [0.1.2] - 2026-07-09
|
|
95
|
+
|
|
96
|
+
### Added
|
|
97
|
+
- CLI commands for project scaffolding and user management
|
|
98
|
+
([#10](https://github.com/borhanst/fastapi-admin-kit/pull/10)).
|
|
99
|
+
|
|
100
|
+
### Fixed
|
|
101
|
+
- Added support for UUID primary keys on models
|
|
102
|
+
([#12](https://github.com/borhanst/fastapi-admin-kit/pull/12)).
|
|
103
|
+
|
|
104
|
+
## [0.1.1] - 2026-07-09
|
|
105
|
+
|
|
106
|
+
### Added
|
|
107
|
+
- Database configuration and connection handling
|
|
108
|
+
([#1](https://github.com/borhanst/fastapi-admin-kit/pull/1)).
|
|
109
|
+
- Inline editing — edit records directly from the list view
|
|
110
|
+
([#9](https://github.com/borhanst/fastapi-admin-kit/pull/9)).
|
|
111
|
+
|
|
112
|
+
### Changed
|
|
113
|
+
- Renamed the CLI from `fastapi-admin-kit` to `fak-admin`
|
|
114
|
+
([#3](https://github.com/borhanst/fastapi-admin-kit/pull/3)).
|
|
115
|
+
|
|
116
|
+
### Fixed
|
|
117
|
+
- Use `StrEnum` for `DatabaseType` for safer, string-compatible enums
|
|
118
|
+
([#4](https://github.com/borhanst/fastapi-admin-kit/pull/4)).
|
|
119
|
+
- Updated emoji configuration in the markdown extensions
|
|
120
|
+
([#5](https://github.com/borhanst/fastapi-admin-kit/pull/5)).
|
|
121
|
+
|
|
122
|
+
## [0.1.0] - 2026-07-08
|
|
123
|
+
|
|
124
|
+
### Added
|
|
125
|
+
- Initial release of FastAPI Admin Kit: a drop-in admin panel for FastAPI +
|
|
126
|
+
SQLAlchemy + SQLModel applications with auto-discovery, RBAC, audit logging,
|
|
127
|
+
and a modern UI.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: fastapi-admin-kit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: Drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps
|
|
5
5
|
Project-URL: Homepage, https://github.com/borhanst/fastapi-admin-kit
|
|
6
6
|
Project-URL: Documentation, https://borhanst.github.io/fastapi-admin-kit/
|
|
@@ -31,9 +31,15 @@ Requires-Dist: jinja2>=3.1.0
|
|
|
31
31
|
Requires-Dist: pre-commit>=4.6.0
|
|
32
32
|
Requires-Dist: python-multipart>=0.0.9
|
|
33
33
|
Requires-Dist: sqlalchemy>=2.0.0
|
|
34
|
+
Provides-Extra: ai
|
|
35
|
+
Requires-Dist: pydantic-ai[groq]>=2.0.0; extra == 'ai'
|
|
36
|
+
Provides-Extra: ai-gemini
|
|
37
|
+
Requires-Dist: google-genai>=1.0.0; extra == 'ai-gemini'
|
|
38
|
+
Requires-Dist: pydantic-ai>=2.0.0; extra == 'ai-gemini'
|
|
34
39
|
Provides-Extra: alembic
|
|
35
40
|
Requires-Dist: alembic>=1.13.0; extra == 'alembic'
|
|
36
41
|
Provides-Extra: dev
|
|
42
|
+
Requires-Dist: fakeredis>=2.26.0; extra == 'dev'
|
|
37
43
|
Requires-Dist: hatch>=1.13.0; extra == 'dev'
|
|
38
44
|
Requires-Dist: httpx>=0.27.0; extra == 'dev'
|
|
39
45
|
Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
|
|
@@ -53,8 +59,12 @@ Requires-Dist: pyjwt>=2.13.0; extra == 'full'
|
|
|
53
59
|
Requires-Dist: uvicorn>=0.30.0; extra == 'full'
|
|
54
60
|
Provides-Extra: mysql
|
|
55
61
|
Requires-Dist: aiomysql>=0.2.0; extra == 'mysql'
|
|
62
|
+
Provides-Extra: notifications
|
|
63
|
+
Requires-Dist: twilio>=8.9.0; extra == 'notifications'
|
|
56
64
|
Provides-Extra: postgres
|
|
57
65
|
Requires-Dist: asyncpg>=0.29.0; extra == 'postgres'
|
|
66
|
+
Provides-Extra: redis
|
|
67
|
+
Requires-Dist: fastapi-redis-sdk>=0.8.0; extra == 'redis'
|
|
58
68
|
Provides-Extra: sqlmodel
|
|
59
69
|
Requires-Dist: sqlmodel>=0.0.39; extra == 'sqlmodel'
|
|
60
70
|
Description-Content-Type: text/markdown
|
|
@@ -66,7 +76,7 @@ Description-Content-Type: text/markdown
|
|
|
66
76
|
[](https://github.com/borhanst/fastapi-admin-kit/blob/main/LICENSE)
|
|
67
77
|
[](https://github.com/borhanst/fastapi-admin-kit/actions/workflows/tests.yml)
|
|
68
78
|
|
|
69
|
-
A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django
|
|
79
|
+
A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django Admin.
|
|
70
80
|
|
|
71
81
|

|
|
72
82
|
|
|
@@ -84,7 +94,7 @@ A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Djan
|
|
|
84
94
|
- **17 Built-in Widgets** — TextInput, Toggle, DatePicker, FileUpload, Wysiwyg, and more
|
|
85
95
|
- **Inline Editing** — Edit records directly from list view with 3-dot action menu
|
|
86
96
|
- **Command Palette** — `Cmd+K` / `Ctrl+K` global search across models and fields
|
|
87
|
-
|
|
97
|
+
<!--- **JSON API** — REST endpoints with JWT token auth for external frontends-->
|
|
88
98
|
- **Dashboard** — Configurable stat cards, charts, tables, and progress bars
|
|
89
99
|
- **CLI Tools** — `fak-admin` / `fak` for superuser management and project scaffolding
|
|
90
100
|
- **Pagination** — Offset, cursor, or dynamic strategies per model
|
|
@@ -248,7 +258,6 @@ All commands accept `-d DATABASE_URL` or read the `DATABASE_URL` environment var
|
|
|
248
258
|
|
|
249
259
|
```python
|
|
250
260
|
from fastapi_admin_kit import Admin
|
|
251
|
-
from fastapi_admin_kit.config import ThemeConfig
|
|
252
261
|
|
|
253
262
|
admin = Admin(
|
|
254
263
|
app=app,
|
|
@@ -257,7 +266,6 @@ admin = Admin(
|
|
|
257
266
|
secret_key=SECRET_KEY,
|
|
258
267
|
title="My Admin", # Admin panel title
|
|
259
268
|
admin_path="/admin", # URL prefix
|
|
260
|
-
dark_mode_default=False, # Dark mode on by default
|
|
261
269
|
# Auth
|
|
262
270
|
auth_backend=BuiltinAuthBackend(),
|
|
263
271
|
# Environment badge
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/borhanst/fastapi-admin-kit/blob/main/LICENSE)
|
|
6
6
|
[](https://github.com/borhanst/fastapi-admin-kit/actions/workflows/tests.yml)
|
|
7
7
|
|
|
8
|
-
A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django
|
|
8
|
+
A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Django Admin.
|
|
9
9
|
|
|
10
10
|

|
|
11
11
|
|
|
@@ -23,7 +23,7 @@ A drop-in admin panel for FastAPI + SQLAlchemy + SQLModel apps, inspired by Djan
|
|
|
23
23
|
- **17 Built-in Widgets** — TextInput, Toggle, DatePicker, FileUpload, Wysiwyg, and more
|
|
24
24
|
- **Inline Editing** — Edit records directly from list view with 3-dot action menu
|
|
25
25
|
- **Command Palette** — `Cmd+K` / `Ctrl+K` global search across models and fields
|
|
26
|
-
|
|
26
|
+
<!--- **JSON API** — REST endpoints with JWT token auth for external frontends-->
|
|
27
27
|
- **Dashboard** — Configurable stat cards, charts, tables, and progress bars
|
|
28
28
|
- **CLI Tools** — `fak-admin` / `fak` for superuser management and project scaffolding
|
|
29
29
|
- **Pagination** — Offset, cursor, or dynamic strategies per model
|
|
@@ -187,7 +187,6 @@ All commands accept `-d DATABASE_URL` or read the `DATABASE_URL` environment var
|
|
|
187
187
|
|
|
188
188
|
```python
|
|
189
189
|
from fastapi_admin_kit import Admin
|
|
190
|
-
from fastapi_admin_kit.config import ThemeConfig
|
|
191
190
|
|
|
192
191
|
admin = Admin(
|
|
193
192
|
app=app,
|
|
@@ -196,7 +195,6 @@ admin = Admin(
|
|
|
196
195
|
secret_key=SECRET_KEY,
|
|
197
196
|
title="My Admin", # Admin panel title
|
|
198
197
|
admin_path="/admin", # URL prefix
|
|
199
|
-
dark_mode_default=False, # Dark mode on by default
|
|
200
198
|
# Auth
|
|
201
199
|
auth_backend=BuiltinAuthBackend(),
|
|
202
200
|
# Environment badge
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting Security Issues
|
|
4
|
+
|
|
5
|
+
**DO NOT report security vulnerabilities via public GitHub issues.**
|
|
6
|
+
|
|
7
|
+
Instead, please report them by emailing security@fastapi-admin-kit.com with:
|
|
8
|
+
|
|
9
|
+
- A detailed description of the vulnerability
|
|
10
|
+
- Steps to reproduce the issue
|
|
11
|
+
- Potential impact and affected versions
|
|
12
|
+
- Any proof-of-concept code (if applicable)
|
|
13
|
+
|
|
14
|
+
## What to Include
|
|
15
|
+
|
|
16
|
+
Please include the following in your report:
|
|
17
|
+
|
|
18
|
+
1. **Vulnerability type** (e.g., XSS, SQL injection, authentication bypass, etc.)
|
|
19
|
+
2. **Affected components** or endpoints
|
|
20
|
+
3. **Steps to reproduce**
|
|
21
|
+
4. **Expected vs. actual behavior**
|
|
22
|
+
5. **Environment details** (OS, Python version, framework version)
|
|
23
|
+
6. **Suggested fix** (optional but appreciated)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Security Policy
|
|
27
|
+
|
|
28
|
+
This project follows responsible disclosure. We will:
|
|
29
|
+
|
|
30
|
+
- Credit reporters in the release notes (unless requested otherwise)
|
|
31
|
+
- Fix security issues in a timely manner
|
|
32
|
+
- Publish security advisories via the GitHub Security tab
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{# custom_templates/admin/list.html — GLOBAL list-view override.
|
|
2
|
+
Extends the built-in admin/base_list.html and replaces the page header with a
|
|
3
|
+
custom banner. Because this template lives in a custom template dir that is
|
|
4
|
+
prepended ahead of the built-ins, it wins over the default admin/list.html
|
|
5
|
+
for every registered model that doesn't provide its own per-model override.
|
|
6
|
+
|
|
7
|
+
To target a single model instead, name the file admin/<table>/list.html (see
|
|
8
|
+
the Product example in example/custom_templates/admin/products/list.html).
|
|
9
|
+
#}
|
|
10
|
+
{% extends "admin/base_list.html" %}
|
|
11
|
+
|
|
12
|
+
{% block list_header %}
|
|
13
|
+
<div class="page-header" style="border: 2px dashed #6366F1; border-radius: 0.75rem; padding: 1rem;">
|
|
14
|
+
<div class="page-header-left">
|
|
15
|
+
<h1 class="page-header-title">{{ registered.verbose_name_plural }}</h1>
|
|
16
|
+
<p class="page-header-subtitle">
|
|
17
|
+
✓ Custom template dir override applied — built-in header replaced.
|
|
18
|
+
</p>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="page-header-right" style="display: flex; gap: 0.5rem; align-items: center;">
|
|
21
|
+
{% if permissions.can_create %}
|
|
22
|
+
<a href="{{ admin_path | default('/admin') }}/{{ registered.table_name }}/create" class="btn btn-primary">
|
|
23
|
+
+ New {{ registered.verbose_name }}
|
|
24
|
+
</a>
|
|
25
|
+
{% endif %}
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
{% endblock %}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{# custom_templates/admin/products/list.html — PER-MODEL list-view override.
|
|
2
|
+
Only applies to the Product model (table "products"). It takes priority over
|
|
3
|
+
the global admin/list.html and the built-in default.
|
|
4
|
+
|
|
5
|
+
Template resolution order (first match wins):
|
|
6
|
+
1. Explicit admin.list_template
|
|
7
|
+
2. admin/<table>/list.html <- this file
|
|
8
|
+
3. admin/list.html <- global override
|
|
9
|
+
4. pages/list.html <- built-in default
|
|
10
|
+
#}
|
|
11
|
+
{% extends "admin/base_list.html" %}
|
|
12
|
+
|
|
13
|
+
{% block list_header %}
|
|
14
|
+
<div class="page-header" style="border: 2px solid #10B981; border-radius: 0.75rem; padding: 1rem;">
|
|
15
|
+
<div class="page-header-left">
|
|
16
|
+
<h1 class="page-header-title">📦 PRODUCT CATALOG (custom template)</h1>
|
|
17
|
+
<p class="page-header-subtitle">This header comes from a per-model template: admin/products/list.html</p>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="page-header-right" style="display: flex; gap: 0.5rem; align-items: center;">
|
|
20
|
+
{% if permissions.can_create %}
|
|
21
|
+
<a href="{{ admin_path | default('/admin') }}/{{ registered.table_name }}/create" class="btn btn-primary">
|
|
22
|
+
+ New {{ registered.verbose_name }}
|
|
23
|
+
</a>
|
|
24
|
+
{% endif %}
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
{% endblock %}
|