main
py 60 lines 2.78 KB
Raw
1 """Add agent vulnerabilities table
2
3 Revision ID: dd0e62747e2c
4 Revises: 6796a7d001ad
5 Create Date: 2025-09-09 14:52:29.588326
6
7 """
8 from typing import Sequence
9 from typing import Union
10
11 import sqlalchemy as sa
12
13 from alembic import op
14
15 # revision identifiers, used by Alembic.
16 revision: str = "dd0e62747e2c"
17 down_revision: Union[str, None] = "6796a7d001ad"
18 branch_labels: Union[str, Sequence[str], None] = None
19 depends_on: Union[str, Sequence[str], None] = None
20
21
22 def upgrade() -> None:
23 # ### commands auto generated by Alembic - please adjust! ###
24 op.create_table(
25 "agent_vulnerabilities",
26 sa.Column("id", sa.Integer(), nullable=False),
27 sa.Column("cve_id", sa.String(length=50), nullable=False),
28 sa.Column("severity", sa.String(length=50), nullable=False),
29 sa.Column("title", sa.String(length=255), nullable=False),
30 sa.Column("references", sa.String(length=2048), nullable=True),
31 sa.Column("status", sa.String(length=50), nullable=False),
32 sa.Column("discovered_at", sa.DateTime(), nullable=False),
33 sa.Column("remediated_at", sa.DateTime(), nullable=True),
34 sa.Column("epss_score", sa.String(length=50), nullable=True),
35 sa.Column("epss_percentile", sa.String(length=50), nullable=True),
36 sa.Column("package_name", sa.String(length=255), nullable=True),
37 sa.Column("agent_id", sa.String(length=256), nullable=False),
38 sa.ForeignKeyConstraint(
39 ["agent_id"],
40 ["agents.agent_id"],
41 ),
42 sa.PrimaryKeyConstraint("id"),
43 )
44 op.create_index(op.f("ix_agent_vulnerabilities_agent_id"), "agent_vulnerabilities", ["agent_id"], unique=False)
45 op.create_index(op.f("ix_agent_vulnerabilities_cve_id"), "agent_vulnerabilities", ["cve_id"], unique=False)
46 op.create_index(op.f("ix_agent_vulnerabilities_discovered_at"), "agent_vulnerabilities", ["discovered_at"], unique=False)
47 op.create_index(op.f("ix_agent_vulnerabilities_severity"), "agent_vulnerabilities", ["severity"], unique=False)
48 op.create_index(op.f("ix_agent_vulnerabilities_status"), "agent_vulnerabilities", ["status"], unique=False)
49 # ### end Alembic commands ###
50
51
52 def downgrade() -> None:
53 # ### commands auto generated by Alembic - please adjust! ###
54 op.drop_index(op.f("ix_agent_vulnerabilities_status"), table_name="agent_vulnerabilities")
55 op.drop_index(op.f("ix_agent_vulnerabilities_severity"), table_name="agent_vulnerabilities")
56 op.drop_index(op.f("ix_agent_vulnerabilities_discovered_at"), table_name="agent_vulnerabilities")
57 op.drop_index(op.f("ix_agent_vulnerabilities_cve_id"), table_name="agent_vulnerabilities")
58 op.drop_index(op.f("ix_agent_vulnerabilities_agent_id"), table_name="agent_vulnerabilities")
59 op.drop_table("agent_vulnerabilities")
60 # ### end Alembic commands ###