Loom provides a comprehensive set of features for managing digital media assets and their associated metadata. Each section below links to the reference page that covers the feature in depth.
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)
Read more: REST API — Assets · Java Client — Assets · Loom UI — Assets
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.
Read more: Filesystem Source Node · Pipeline Mechanism · Command Line — pool list
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.
Read more: REST API — Libraries · Loom UI — Library
Collections
Collections are curated, user-defined sets of assets (similar to playlists or albums). An asset can appear in multiple collections.
Read more: REST API — Collections
Users
User management is built into Loom.
-
Create, update, delete users
-
Assign users to groups
-
Set per-user passwords
-
Per-user token management
Read more: REST API — Users · Authentication · Loom UI — Administration
Groups
Groups aggregate users and are the unit on which roles are assigned.
Read more: REST API — Groups · Java Client — Users, Groups and Roles
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
Read more: REST API — Roles · Loom UI — Permissions (ACL matrix)
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.
Read more: Loom UI — Administration · Command Line — access listings
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
Read more: REST API — Tags · Java Client — Tags · Loom UI — Tags
Pipelines
Pipelines define the media processing workflows.
-
Define a pipeline with a name, description, priority, and enabled flag
-
Pipelines are authored in the UI and stored on Loom with immutable versioning
-
Runs are executed by Loom’s engine, which delegates node tasks to registered Cortex workers (see Pipeline Mechanism)
-
Pipeline execution results are tracked and surfaced as real-time WebSocket events
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.
Read more: Authentication — API Keys · Loom UI — API Keys
Blacklists
Assets or hashes can be blacklisted to prevent them from being re-ingested or surfaced in search results.
Read more: Hashing Node · Filter Nodes · Loom UI — Blacklist
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)
Read more: Fingerprint Node · Face Description Node · Deduplication Node · GraphQL API