refactor: remove legacy models/schema/auth.py re-export file
Some checks failed
Some checks failed
All 84 import sites now use the canonical path app.modules.tenancy.schemas.auth directly — no need for backwards-compatibility re-exports. Update audit validator to check module schemas locations instead of only the legacy models/schema/ path. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -23,7 +23,6 @@ Import schemas from their canonical module locations instead of this package.
|
|||||||
|
|
||||||
# Infrastructure schemas that remain here
|
# Infrastructure schemas that remain here
|
||||||
from . import (
|
from . import (
|
||||||
auth,
|
|
||||||
base,
|
base,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -32,5 +31,4 @@ from .base import * # Base Pydantic models
|
|||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"base",
|
"base",
|
||||||
"auth",
|
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
# models/schema/auth.py
|
|
||||||
"""
|
|
||||||
LEGACY LOCATION — re-exports from canonical location.
|
|
||||||
|
|
||||||
All auth schemas have been moved to app/modules/tenancy/schemas/auth.py
|
|
||||||
per MOD-019 (schemas belong in their module).
|
|
||||||
|
|
||||||
This file provides backwards compatibility re-exports.
|
|
||||||
New code should import from: app.modules.tenancy.schemas.auth
|
|
||||||
|
|
||||||
Schemas use Pydantic Field and field_validator for input validation.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from app.modules.tenancy.schemas.auth import ( # noqa: F401
|
|
||||||
LoginResponse,
|
|
||||||
LogoutResponse,
|
|
||||||
OwnedMerchantSummary,
|
|
||||||
PasswordResetRequestResponse,
|
|
||||||
PasswordResetResponse,
|
|
||||||
PlatformSelectResponse,
|
|
||||||
StoreMembershipSummary,
|
|
||||||
StoreUserResponse,
|
|
||||||
UserContext,
|
|
||||||
UserCreate,
|
|
||||||
UserDeleteResponse,
|
|
||||||
UserDetailResponse,
|
|
||||||
UserListResponse,
|
|
||||||
UserLogin,
|
|
||||||
UserResponse,
|
|
||||||
UserSearchItem,
|
|
||||||
UserSearchResponse,
|
|
||||||
UserStatusToggleResponse,
|
|
||||||
UserUpdate,
|
|
||||||
)
|
|
||||||
@@ -205,20 +205,37 @@ class AuditValidator(BaseValidator):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Check input validation (Pydantic)
|
# Check input validation (Pydantic)
|
||||||
schema_path = self.project_root / "models" / "schema"
|
# Check both legacy models/schema/ and module schemas locations
|
||||||
if schema_path.exists():
|
schema_paths = [
|
||||||
has_validation = False
|
self.project_root / "models" / "schema",
|
||||||
for file in schema_path.glob("*.py"):
|
self.project_root / "app" / "modules",
|
||||||
|
]
|
||||||
|
has_validation = False
|
||||||
|
for schema_path in schema_paths:
|
||||||
|
if not schema_path.exists():
|
||||||
|
continue
|
||||||
|
for file in schema_path.rglob("schemas/*.py"):
|
||||||
content = file.read_text()
|
content = file.read_text()
|
||||||
if re.search(r"Field|validator|field_validator", content):
|
if re.search(r"Field|validator|field_validator", content):
|
||||||
has_validation = True
|
has_validation = True
|
||||||
break
|
break
|
||||||
if not has_validation:
|
if has_validation:
|
||||||
self.add_error(
|
break
|
||||||
"DATA-INT-001",
|
# Also check legacy location
|
||||||
"Pydantic validation required for data integrity",
|
if schema_path == self.project_root / "models" / "schema":
|
||||||
str(schema_path),
|
for file in schema_path.glob("*.py"):
|
||||||
)
|
content = file.read_text()
|
||||||
|
if re.search(r"Field|validator|field_validator", content):
|
||||||
|
has_validation = True
|
||||||
|
break
|
||||||
|
if has_validation:
|
||||||
|
break
|
||||||
|
if not has_validation:
|
||||||
|
self.add_error(
|
||||||
|
"DATA-INT-001",
|
||||||
|
"Pydantic validation required for data integrity",
|
||||||
|
str(self.project_root / "app" / "modules"),
|
||||||
|
)
|
||||||
|
|
||||||
# Check user data access endpoint exists (GDPR)
|
# Check user data access endpoint exists (GDPR)
|
||||||
users_api = self.project_root / "app" / "api" / "v1" / "users.py"
|
users_api = self.project_root / "app" / "api" / "v1" / "users.py"
|
||||||
|
|||||||
Reference in New Issue
Block a user