identity-plan-kit 0.2.2__tar.gz → 0.2.3__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.
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/PKG-INFO +1 -1
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/pyproject.toml +2 -2
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/admin/views.py +16 -16
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/uv.lock +1 -1
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/.gitignore +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/Makefile +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/README.md +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/alembic/env.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/alembic/script.py.mako +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/alembic/versions/20250124_000000_initial_schema.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/alembic/versions/20250127_000000_add_password_hash.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/alembic.ini +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/integration/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/integration/fastapi_integration.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/integration/sample_alembic_env.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/integration/webhook_integration.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/playing/admin_usage.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/playing/basic_usage.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/playing/custom_error_formats.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/playing/extending_models.html +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/playing/extension_example.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/prod/.env.production.example +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/prod/Dockerfile +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/prod/docker-compose.yml +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/prod/nginx.conf +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/prod/production_setup.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/prod/prometheus.yml +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/README.md +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/config.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/locustfile.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/test_auth.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/test_database_stress.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/test_mixed_scenarios.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/test_plans_quota.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/test_quota_direct.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/test_rbac_cache.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/loadtests/utils.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/admin/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/admin/auth.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/dependencies.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/domain/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/domain/entities.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/domain/exceptions.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/dto/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/dto/requests.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/dto/responses.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/handlers/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/handlers/oauth_routes.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/models/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/models/refresh_token.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/models/user.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/models/user_provider.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/repositories/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/repositories/token_repo.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/repositories/user_repo.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/services/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/services/auth_service.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/services/oauth_service.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/uow.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/cli.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/config.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/kit.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/migrations.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/cache/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/cache/plan_cache.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/dependencies.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/domain/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/domain/entities.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/domain/exceptions.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/dto/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/dto/responses.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/dto/usage.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/handlers/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/handlers/plan_routes.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/feature.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/feature_usage.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/plan.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/plan_limit.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/plan_permission.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/user_plan.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/repositories/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/repositories/plan_repo.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/repositories/usage_repo.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/services/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/services/plan_service.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/uow.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/cache/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/cache/permission_cache.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/dependencies.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/domain/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/domain/entities.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/domain/exceptions.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/models/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/models/permission.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/models/role.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/models/role_permission.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/repositories/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/repositories/rbac_repo.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/services/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/services/rbac_service.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/uow.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/audit.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/circuit_breaker.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/cleanup_scheduler.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/database.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/error_formatter.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/exception_handlers.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/exceptions.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/graceful_shutdown.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/health.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/http_utils.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/lockout.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/logging.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/metrics.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/models.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/rate_limiter.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/request_id.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/schemas.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/security.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/state_store.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/uow.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/uuid7.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_auth_service.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_circuit_breaker.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_csrf_state.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_dependencies.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_domain_entities.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_http_utils.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_lockout.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_lockout_concurrent.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_oauth_service_resilience.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_security_comprehensive.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_token_security.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/conftest.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/conftest.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_concurrent_plan_operations.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_concurrent_token_operations.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_concurrent_user_creation.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_limit_boundaries.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_quota_concurrency.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_token_cleanup.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_token_repository.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_usage_periods.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_user_repository.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/plans/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/plans/test_domain_entities.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/plans/test_period_edge_cases.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/plans/test_plan_cache_concurrent.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/plans/test_plan_service.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/rbac/__init__.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/rbac/test_permission_cache.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/rbac/test_permission_cache_concurrent.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/rbac/test_rbac_cache_stampede.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/rbac/test_rbac_service.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_audit_pii_masking.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_circuit_breaker_concurrent.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_cleanup_scheduler_concurrent.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_config_validation.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_http_utils_security.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_rate_limiter.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_rate_limiter_concurrent.py +0 -0
- {identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_state_store_concurrent.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "identity-plan-kit"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.3"
|
|
4
4
|
description = "Modern FastAPI library for authentication, RBAC, subscription plans, and usage tracking"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -140,7 +140,7 @@ testpaths = ["tests"]
|
|
|
140
140
|
addopts = "-v --tb=short"
|
|
141
141
|
|
|
142
142
|
[tool.bumpversion]
|
|
143
|
-
current_version = "0.2.
|
|
143
|
+
current_version = "0.2.3"
|
|
144
144
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
145
145
|
serialize = ["{major}.{minor}.{patch}"]
|
|
146
146
|
tag = true
|
|
@@ -131,24 +131,19 @@ class BaseAdminView(ModelView):
|
|
|
131
131
|
|
|
132
132
|
def _get_auth_backend(self, request: Request) -> Any | None:
|
|
133
133
|
"""Get the authentication backend from request."""
|
|
134
|
-
#
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
has_state=True,
|
|
141
|
-
admin_auth_found=admin_auth is not None,
|
|
142
|
-
state_attrs=list(vars(request.app.state).keys()) if hasattr(request.app.state, "__dict__") else "no __dict__",
|
|
143
|
-
)
|
|
134
|
+
# SQLAdmin mounts as a sub-application, so request.app is the Admin's app,
|
|
135
|
+
# not the FastAPI app. We need to get the auth backend from the Admin instance.
|
|
136
|
+
# The Admin stores authentication_backend as an attribute.
|
|
137
|
+
if hasattr(request, "app"):
|
|
138
|
+
# Try to get from Admin's authentication_backend (preferred)
|
|
139
|
+
admin_auth = getattr(request.app, "authentication_backend", None)
|
|
144
140
|
if admin_auth:
|
|
145
141
|
return admin_auth
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
"
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
)
|
|
142
|
+
# Fallback: try app.state (for backwards compatibility)
|
|
143
|
+
if hasattr(request.app, "state"):
|
|
144
|
+
admin_auth = getattr(request.app.state, "_admin_auth_backend", None)
|
|
145
|
+
if admin_auth:
|
|
146
|
+
return admin_auth
|
|
152
147
|
return None
|
|
153
148
|
|
|
154
149
|
def _is_superadmin(self, request: Request) -> bool:
|
|
@@ -972,6 +967,11 @@ def setup_admin(
|
|
|
972
967
|
# Store auth backend in app state for permission checking in views
|
|
973
968
|
if authentication_backend is not None:
|
|
974
969
|
app.state._admin_auth_backend = authentication_backend
|
|
970
|
+
logger.info(
|
|
971
|
+
"setup_admin_auth_backend_stored",
|
|
972
|
+
backend_type=type(authentication_backend).__name__,
|
|
973
|
+
app_type=type(app).__name__,
|
|
974
|
+
)
|
|
975
975
|
|
|
976
976
|
# Use bundled templates for role-based permission UI if no custom templates_dir provided.
|
|
977
977
|
# These templates check is_superadmin_user(request) to hide edit/delete buttons for non-superadmin.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/integration/fastapi_integration.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/integration/sample_alembic_env.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/integration/webhook_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/examples/playing/custom_error_formats.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/dependencies.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/domain/__init__.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/domain/entities.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/domain/exceptions.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/dto/__init__.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/dto/requests.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/dto/responses.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/handlers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/models/user.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/auth/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/cache/__init__.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/cache/plan_cache.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/dependencies.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/domain/__init__.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/domain/entities.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/domain/exceptions.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/dto/__init__.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/dto/responses.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/dto/usage.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/handlers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/__init__.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/feature.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/plan.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/plan_limit.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/models/user_plan.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/plans/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/cache/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/dependencies.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/domain/__init__.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/domain/entities.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/domain/exceptions.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/models/__init__.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/models/permission.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/models/role.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/rbac/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/circuit_breaker.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/database.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/error_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/http_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/rate_limiter.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/request_id.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/security.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/src/identity_plan_kit/shared/state_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_oauth_service_resilience.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/auth/test_security_comprehensive.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_limit_boundaries.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_quota_concurrency.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_token_repository.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/integration/test_user_repository.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/plans/test_plan_cache_concurrent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/rbac/test_permission_cache_concurrent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_circuit_breaker_concurrent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_http_utils_security.py
RENAMED
|
File without changes
|
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_rate_limiter_concurrent.py
RENAMED
|
File without changes
|
{identity_plan_kit-0.2.2 → identity_plan_kit-0.2.3}/tests/shared/test_state_store_concurrent.py
RENAMED
|
File without changes
|