From 31d3d85e97df25dd9238b042254784b27034f99d Mon Sep 17 00:00:00 2001 From: hannahwestra25 Date: Wed, 13 May 2026 11:58:23 -0400 Subject: [PATCH] revert alembic version --- ...8a72344872_add_labels_to_attack_results.py | 35 +++++++++++++ .../7a1b2c3d4e5f_add_error_retry_fields.py | 51 +++++++++++++++++++ .../versions/e373726d391b_initial_schema.py | 9 ---- 3 files changed, 86 insertions(+), 9 deletions(-) create mode 100644 pyrit/memory/alembic/versions/108a72344872_add_labels_to_attack_results.py create mode 100644 pyrit/memory/alembic/versions/7a1b2c3d4e5f_add_error_retry_fields.py diff --git a/pyrit/memory/alembic/versions/108a72344872_add_labels_to_attack_results.py b/pyrit/memory/alembic/versions/108a72344872_add_labels_to_attack_results.py new file mode 100644 index 0000000000..66b1574b93 --- /dev/null +++ b/pyrit/memory/alembic/versions/108a72344872_add_labels_to_attack_results.py @@ -0,0 +1,35 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT license. + +""" +add labels to Attack Results. + +Revision ID: 108a72344872 +Revises: e373726d391b +Create Date: 2026-04-27 13:47:20.711347 +""" + +from collections.abc import Sequence + +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision: str = "108a72344872" +down_revision: str | None = "e373726d391b" +branch_labels: str | Sequence[str] | None = None +depends_on: str | Sequence[str] | None = None + + +def upgrade() -> None: + """Apply this schema upgrade.""" + # ### commands auto generated by Alembic and reviewed by author ### + op.add_column("AttackResultEntries", sa.Column("labels", sa.JSON(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade() -> None: + """Revert this schema upgrade.""" + # ### commands auto generated by Alembic and reviewed by author ### + op.drop_column("AttackResultEntries", "labels") + # ### end Alembic commands ### diff --git a/pyrit/memory/alembic/versions/7a1b2c3d4e5f_add_error_retry_fields.py b/pyrit/memory/alembic/versions/7a1b2c3d4e5f_add_error_retry_fields.py new file mode 100644 index 0000000000..fac69bdf00 --- /dev/null +++ b/pyrit/memory/alembic/versions/7a1b2c3d4e5f_add_error_retry_fields.py @@ -0,0 +1,51 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT license. + +""" +add error and retry fields to attack and scenario results. + +Revision ID: 7a1b2c3d4e5f +Revises: 108a72344872 +Create Date: 2026-05-13 11:50:00.000000 +""" + +from collections.abc import Sequence + +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision: str = "7a1b2c3d4e5f" +down_revision: str | None = "108a72344872" +branch_labels: str | Sequence[str] | None = None +depends_on: str | Sequence[str] | None = None + + +def upgrade() -> None: + """Apply this schema upgrade.""" + # AttackResultEntries: add error and retry tracking columns + op.add_column("AttackResultEntries", sa.Column("error_message", sa.Unicode(), nullable=True)) + op.add_column("AttackResultEntries", sa.Column("error_type", sa.String(), nullable=True)) + op.add_column("AttackResultEntries", sa.Column("error_traceback", sa.Unicode(), nullable=True)) + op.add_column("AttackResultEntries", sa.Column("retry_events_json", sa.Unicode(), nullable=True)) + op.add_column("AttackResultEntries", sa.Column("total_retries", sa.INTEGER(), nullable=True)) + + # ScenarioResultEntries: add error tracking columns + op.add_column("ScenarioResultEntries", sa.Column("error_attack_result_ids_json", sa.Unicode(), nullable=True)) + op.add_column("ScenarioResultEntries", sa.Column("error_message", sa.Unicode(), nullable=True)) + op.add_column("ScenarioResultEntries", sa.Column("error_type", sa.String(), nullable=True)) + + +def downgrade() -> None: + """Revert this schema upgrade.""" + # AttackResultEntries + op.drop_column("AttackResultEntries", "error_message") + op.drop_column("AttackResultEntries", "error_type") + op.drop_column("AttackResultEntries", "error_traceback") + op.drop_column("AttackResultEntries", "retry_events_json") + op.drop_column("AttackResultEntries", "total_retries") + + # ScenarioResultEntries + op.drop_column("ScenarioResultEntries", "error_attack_result_ids_json") + op.drop_column("ScenarioResultEntries", "error_message") + op.drop_column("ScenarioResultEntries", "error_type") diff --git a/pyrit/memory/alembic/versions/e373726d391b_initial_schema.py b/pyrit/memory/alembic/versions/e373726d391b_initial_schema.py index 2ac9a666d6..c4dd5a8d09 100644 --- a/pyrit/memory/alembic/versions/e373726d391b_initial_schema.py +++ b/pyrit/memory/alembic/versions/e373726d391b_initial_schema.py @@ -100,9 +100,6 @@ def upgrade() -> None: sa.Column("number_tries", sa.INTEGER(), nullable=False), sa.Column("completion_time", sa.DateTime(), nullable=False), sa.Column("timestamp", sa.DateTime(), nullable=False), - sa.Column("error_attack_result_ids_json", sa.Unicode(), nullable=True), - sa.Column("error_message", sa.Unicode(), nullable=True), - sa.Column("error_type", sa.String(), nullable=True), sa.PrimaryKeyConstraint("id"), ) op.create_table( @@ -183,12 +180,6 @@ def upgrade() -> None: sa.Column("adversarial_chat_conversation_ids", sa.JSON(), nullable=True), sa.Column("timestamp", sa.DateTime(), nullable=False), sa.Column("pyrit_version", sa.String(), nullable=True), - sa.Column("labels", sa.JSON(), nullable=True), - sa.Column("error_message", sa.Unicode(), nullable=True), - sa.Column("error_type", sa.String(), nullable=True), - sa.Column("error_traceback", sa.Unicode(), nullable=True), - sa.Column("retry_events_json", sa.Unicode(), nullable=True), - sa.Column("total_retries", sa.INTEGER(), nullable=True), sa.ForeignKeyConstraint( ["last_response_id"], ["PromptMemoryEntries.id"],