Features

Loom provides a comprehensive set of features for managing digital media assets and their associated metadata.

Assets

An asset is the central entity in Loom. It represents a digital media file (image, video, audio, document) together with its extracted metadata.

Key capabilities:

  • Create, read, update, delete (CRUD) via REST API

  • Lookup by UUID or SHA-512 hash

  • Binary upload/download (original file)

  • Bulk create and bulk update

  • Tagging

  • Reactions (like, dislike, custom reactions)

  • Comments and annotations

  • Linked components (asset parts / variants)

  • Linked locations (multiple storage locations per file)

  • Embedding storage (vector embeddings for similarity search)

Asset Pools

Asset pools are logical groupings of assets, typically corresponding to a physical storage location (folder, bucket, NAS share). They are used to scope Cortex processing runs and asset import operations.

Libraries

Libraries provide a higher-level organizational layer above asset pools. A library can span multiple pools and is the primary unit for user-visible browsing.

Collections

Collections are curated, user-defined sets of assets (similar to playlists or albums). An asset can appear in multiple collections.

Users

User management is built into Loom.

  • Create, update, delete users

  • Assign users to groups

  • Set per-user passwords

  • Per-user token management

Groups

Groups aggregate users and are the unit on which roles are assigned.

Roles

Loom uses role-based access control (RBAC).

  • Create named roles (e.g. viewer, editor, admin)

  • Assign roles to groups

  • Roles carry permissions for each resource type

Permissions

Permissions control what actions a role can perform on each resource (create, read, update, delete). They can be set at the global level or scoped to specific libraries or collections.

Tags

Tags are free-text labels that can be attached to assets.

  • Create and manage a global tag vocabulary

  • Add or remove tags from individual assets

  • Filter assets by one or more tags via the API

Pipelines

Pipelines define the processing workflows that Cortex executes on assets.

  • Define a pipeline with a name, description, priority, and enabled flag

  • Pipelines are stored in Loom and loaded by Cortex at startup

  • Each pipeline maps to a directed node graph (see Pipeline Mechanism)

  • Pipeline execution results are tracked and surfaced as real-time WebSocket events

Webhooks

Webhooks allow Loom to push event notifications to external HTTP endpoints when entities are created, updated, or deleted.

Tasks

Tasks represent asynchronous background operations (e.g. bulk ingestion). They can be monitored via the REST API.

API Keys (Tokens)

Long-lived API keys can be created for service accounts or CI/CD integrations. They are functionally equivalent to JWT tokens.

Blacklists

Assets or hashes can be blacklisted to prevent them from being re-ingested or surfaced in search results.

Spaces

Spaces are top-level organisational units that group libraries, collections and users. They allow multi-tenant deployments within a single Loom instance.

Search and Similarity

Loom integrates with search backends (Elasticsearch, Lucene, Qdrant) to provide:

  • Full-text search over extracted metadata

  • Vector similarity search using stored embeddings (e.g. face embeddings, video fingerprints)