From 388200fd52b6883623047dc6f43e968e6f528640 Mon Sep 17 00:00:00 2001 From: Allan Eising Date: Sat, 10 May 2025 09:58:46 +0200 Subject: [PATCH] Check in migrations --- .../versions/06af53cdf350_initial.py | 88 +++++++++++++++++++ .../versions/37329d9b5437_update_apiclient.py | 34 +++++++ 2 files changed, 122 insertions(+) create mode 100644 packages/sshecret-backend/migrations/versions/06af53cdf350_initial.py create mode 100644 packages/sshecret-backend/migrations/versions/37329d9b5437_update_apiclient.py diff --git a/packages/sshecret-backend/migrations/versions/06af53cdf350_initial.py b/packages/sshecret-backend/migrations/versions/06af53cdf350_initial.py new file mode 100644 index 0000000..1df4bbc --- /dev/null +++ b/packages/sshecret-backend/migrations/versions/06af53cdf350_initial.py @@ -0,0 +1,88 @@ +"""Initial + +Revision ID: 06af53cdf350 +Revises: +Create Date: 2025-05-06 08:39:33.531696 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '06af53cdf350' +down_revision: Union[str, None] = None +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Upgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('api_client', + sa.Column('id', sa.Uuid(), nullable=False), + sa.Column('subsystem', sa.String(), nullable=True), + sa.Column('token', sa.String(), nullable=False), + sa.Column('read_write', sa.Boolean(), nullable=False), + sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('audit_log', + sa.Column('id', sa.Uuid(), nullable=False), + sa.Column('subsystem', sa.String(), nullable=False), + sa.Column('message', sa.String(), nullable=False), + sa.Column('operation', sa.String(), nullable=False), + sa.Column('client_id', sa.Uuid(), nullable=True), + sa.Column('data', sa.JSON(), nullable=True), + sa.Column('client_name', sa.String(), nullable=True), + sa.Column('secret_id', sa.Uuid(), nullable=True), + sa.Column('secret_name', sa.String(), nullable=True), + sa.Column('origin', sa.String(), nullable=True), + sa.Column('timestamp', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('client', + sa.Column('id', sa.Uuid(), nullable=False), + sa.Column('name', sa.String(), nullable=False), + sa.Column('description', sa.String(), nullable=True), + sa.Column('public_key', sa.Text(), nullable=False), + sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=False), + sa.Column('updated_at', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('client_access_policy', + sa.Column('id', sa.Uuid(), nullable=False), + sa.Column('source', sa.String(), nullable=False), + sa.Column('client_id', sa.Uuid(), nullable=True), + sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=False), + sa.Column('updated_at', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True), + sa.ForeignKeyConstraint(['client_id'], ['client.id'], ondelete='CASCADE'), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('client_secret', + sa.Column('id', sa.Uuid(), nullable=False), + sa.Column('name', sa.String(), nullable=False), + sa.Column('description', sa.String(), nullable=True), + sa.Column('secret', sa.String(), nullable=False), + sa.Column('client_id', sa.Uuid(), nullable=True), + sa.Column('invalidated', sa.Boolean(), nullable=False), + sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=False), + sa.Column('updated_at', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True), + sa.ForeignKeyConstraint(['client_id'], ['client.id'], ondelete='CASCADE'), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + """Downgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('client_secret') + op.drop_table('client_access_policy') + op.drop_table('client') + op.drop_table('audit_log') + op.drop_table('api_client') + # ### end Alembic commands ### diff --git a/packages/sshecret-backend/migrations/versions/37329d9b5437_update_apiclient.py b/packages/sshecret-backend/migrations/versions/37329d9b5437_update_apiclient.py new file mode 100644 index 0000000..5efe34d --- /dev/null +++ b/packages/sshecret-backend/migrations/versions/37329d9b5437_update_apiclient.py @@ -0,0 +1,34 @@ +"""Update apiclient + +Revision ID: 37329d9b5437 +Revises: 06af53cdf350 +Create Date: 2025-05-06 08:53:45.774225 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '37329d9b5437' +down_revision: Union[str, None] = '06af53cdf350' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Upgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('api_client', sa.Column('updated_at', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True)) + op.drop_column('api_client', 'read_write') + # ### end Alembic commands ### + + +def downgrade() -> None: + """Downgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('api_client', sa.Column('read_write', sa.BOOLEAN(), nullable=False)) + op.drop_column('api_client', 'updated_at') + # ### end Alembic commands ###