Skip to content

angee.storage.signals

Storage-owned signals and receivers.

REBAC needs no signal work here: every storage relation is field-backed or const-backed in permissions.zed, so the engine derives them from the rows at check time and stores no tuples. What remains is the addon's own extension point (file_finalized) and the per-user Trash smart folder.

file_finalized

Sent (on commit) when a File flips to READY.

Receives sender (the concrete file model), instance, and actor. Rendition, virus-scan, extraction, and indexing addons subscribe here.

connect

python
def connect() -> None

Wire the per-user Trash smart folder to user creation.

create_trash_folder

python
def create_trash_folder(sender: type[Model],
                        instance: Model,
                        created: bool,
                        raw: bool = False,
                        **kwargs: Any) -> None

Ensure each user owns exactly one Trash smart folder.

Released under the AGPL-3.0 License.