diff --git a/src/govoplan_audit/backend/api/v1/routes.py b/src/govoplan_audit/backend/api/v1/routes.py index 171e70c..63f13ae 100644 --- a/src/govoplan_audit/backend/api/v1/routes.py +++ b/src/govoplan_audit/backend/api/v1/routes.py @@ -6,7 +6,7 @@ from fastapi import APIRouter, Depends, HTTPException, Query, status from sqlalchemy import and_, false, func, or_ from sqlalchemy.orm import Session -from govoplan_access.auth import ApiPrincipal, has_scope, require_any_scope +from govoplan_core.auth import ApiPrincipal, has_scope, require_any_scope from govoplan_audit.backend.db.models import AuditLog from govoplan_core.audit.logging import AUDIT_MODULE_ID, AUDIT_SYSTEM_EVENTS_COLLECTION, AUDIT_TENANT_EVENTS_COLLECTION from govoplan_core.core.access import CAPABILITY_ACCESS_ADMINISTRATION, AccessAdministration @@ -14,7 +14,7 @@ from govoplan_core.core.change_sequence import decode_sequence_watermark, encode from govoplan_core.core.pagination import KeysetCursorError, decode_keyset_cursor, encode_keyset_cursor, keyset_query_fingerprint from govoplan_core.core.runtime import get_registry from govoplan_core.db.session import get_session -from govoplan_tenancy.backend.db.models import Tenant +from govoplan_core.tenancy.scope import Tenant from .schemas import AuditAdminDeltaResponse, AuditAdminItem, AuditAdminListResponse, AuditLogItemResponse, AuditLogListResponse diff --git a/src/govoplan_audit/backend/db/models.py b/src/govoplan_audit/backend/db/models.py index b9ec30a..5adb6d9 100644 --- a/src/govoplan_audit/backend/db/models.py +++ b/src/govoplan_audit/backend/db/models.py @@ -22,7 +22,7 @@ class AuditLog(Base, TimestampMixin): id: Mapped[str] = mapped_column(String(36), primary_key=True, default=new_uuid) scope: Mapped[str] = mapped_column(String(20), default="tenant", nullable=False, index=True) - tenant_id: Mapped[str | None] = mapped_column(ForeignKey("tenancy_tenants.id", ondelete="CASCADE"), nullable=True, index=True) + tenant_id: Mapped[str | None] = mapped_column(String(36), nullable=True, index=True) user_id: Mapped[str | None] = mapped_column(ForeignKey("access_users.id", ondelete="SET NULL"), nullable=True, index=True) api_key_id: Mapped[str | None] = mapped_column(ForeignKey("access_api_keys.id", ondelete="SET NULL"), nullable=True, index=True) action: Mapped[str] = mapped_column(String(100), nullable=False, index=True) diff --git a/src/govoplan_audit/backend/manifest.py b/src/govoplan_audit/backend/manifest.py index 17ce69f..13b4434 100644 --- a/src/govoplan_audit/backend/manifest.py +++ b/src/govoplan_audit/backend/manifest.py @@ -1,6 +1,7 @@ from __future__ import annotations from govoplan_audit.backend.db import models as audit_models # noqa: F401 - populate Audit ORM metadata +from govoplan_core.core.access import CAPABILITY_AUTH_PERMISSION_EVALUATOR, CAPABILITY_AUTH_PRINCIPAL_RESOLVER from govoplan_core.core.module_guards import drop_table_retirement_provider, persistent_table_uninstall_guard from govoplan_core.core.modules import MigrationSpec, ModuleContext, ModuleManifest from govoplan_core.db.base import Base @@ -17,7 +18,7 @@ manifest = ModuleManifest( id="audit", name="Audit", version="0.1.6", - dependencies=("access",), + required_capabilities=(CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR), route_factory=_route_factory, migration_spec=MigrationSpec( module_id="audit",