"""Add spawned_by, scope, expires_at to musehub_identities for ephemeral agent keys. Revision ID: 0017 Revises: 0016 """ from __future__ import annotations import sqlalchemy as sa from alembic import op revision = "0017" down_revision = "0016" branch_labels = None depends_on = None def upgrade() -> None: op.add_column("musehub_identities", sa.Column("spawned_by", sa.String(64), nullable=True)) op.add_column("musehub_identities", sa.Column("scope", sa.JSON, nullable=True)) op.add_column("musehub_identities", sa.Column( "expires_at", sa.DateTime(timezone=True), nullable=True )) op.create_index("ix_musehub_identities_spawned_by", "musehub_identities", ["spawned_by"]) op.create_index("ix_musehub_identities_expires_at", "musehub_identities", ["expires_at"]) def downgrade() -> None: op.drop_index("ix_musehub_identities_expires_at", table_name="musehub_identities") op.drop_index("ix_musehub_identities_spawned_by", table_name="musehub_identities") op.drop_column("musehub_identities", "expires_at") op.drop_column("musehub_identities", "scope") op.drop_column("musehub_identities", "spawned_by")