feat(infra): add repository implementations, mappers, FastAPI wiring, and technique indexes

This commit is contained in:
2026-02-18 19:10:50 +01:00
parent 5c55e7c17f
commit 1521005b62
9 changed files with 618 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
"""add_technique_query_indexes
Add indexes on techniques table for common query patterns
(filter by tactic, filter by status_global) used in heatmap, scoring,
and list-all-techniques operations.
These may already exist if the ORM model auto-created them; the
``if_not_exists`` flag makes this migration safe to run regardless.
Revision ID: b026techidx
Revises: b025uqtdr
Create Date: 2026-02-18 18:00:00.000000
"""
from typing import Sequence, Union
from alembic import op
revision: str = "b026techidx"
down_revision: Union[str, None] = "b025uqtdr"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.execute(
"CREATE INDEX IF NOT EXISTS ix_techniques_tactic "
"ON techniques (tactic)"
)
op.execute(
"CREATE INDEX IF NOT EXISTS ix_techniques_status_global "
"ON techniques (status_global)"
)
def downgrade() -> None:
op.drop_index("ix_techniques_status_global", table_name="techniques")
op.drop_index("ix_techniques_tactic", table_name="techniques")