Skip to content

Class tigrbl_kms.orm.key_version.KeyVersion

tigrbl_kms.orm.key_version.KeyVersion

Bases: Base, BulkCapable, Replaceable

id class-attribute instance-attribute

id = acol(
    storage=S(
        type_=PgUUID(as_uuid=True),
        primary_key=True,
        default=uuid4,
    ),
    field=F(py_type=UUID),
    io=IO(out_verbs=("read", "list")),
)

key_id class-attribute instance-attribute

key_id = acol(
    storage=S(
        type_=PgUUID(as_uuid=True),
        fk=ForeignKeySpec(
            target="keys.id", on_delete="CASCADE"
        ),
        nullable=False,
        index=True,
    ),
    field=F(py_type=UUID, required_in=("create",)),
    io=IO(
        in_verbs=("create",),
        out_verbs=("read", "list"),
        filter_ops=("eq",),
    ),
)

version class-attribute instance-attribute

version = acol(
    storage=S(type_=Integer, nullable=False),
    field=F(py_type=int, required_in=("create",)),
    io=IO(
        in_verbs=("create",),
        out_verbs=("read", "list"),
        sortable=True,
    ),
)

status class-attribute instance-attribute

status = acol(
    storage=S(
        type_=SAEnum(
            "active",
            name="VersionStatus",
            native_enum=True,
            validate_strings=True,
            create_constraint=True,
        ),
        nullable=False,
    ),
    field=F(py_type=str, required_in=("create",)),
    io=IO(in_verbs=("create",), out_verbs=("read", "list")),
)

public_material class-attribute instance-attribute

public_material = acol(
    storage=S(type_=LargeBinary, nullable=True),
    io=paired(
        _pair_material,
        alias="public_material_b64",
        verbs=("create", "update"),
    ),
)

key class-attribute instance-attribute

key = relationship(
    "Key", back_populates="versions", lazy="joined"
)

metadata class-attribute instance-attribute

metadata = MetaData(
    naming_convention={
        "pk": "pk_%(table_name)s",
        "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
        "ix": "ix_%(table_name)s_%(column_0_name)s",
        "uq": "uq_%(table_name)s_%(column_0_name)s",
        "ck": "ck_%(table_name)s_%(column_0_name)s_%(constraint_type)s",
    }
)