Skip to main content

Asset Workflow Feature

Overview

This feature allows assets to have customizable workflows associated with them. Workflows enable assets to have statuses that reflect their stage of completeness, ordering permissions, and access controls.

Data Structure

Asset Workflow State

Assets now have a workflow object with the following structure:
The definition field contains asset-level overrides to the workflow:
When editing an asset’s workflow, the form is pre-populated with workflow defaults. The saved definition fully replaces workflow defaults for access control (empty arrays mean “everyone has access”).

Workflow Definition

Workflows are stored as separate entities with the following schema:

Features

Admin Panel - Workflow Management

  • Create, edit, duplicate, and delete workflows
  • Configure workflow phases with names, descriptions, and allowed transitions
  • Set up access controls per phase (groups and users)
  • Configure DNG (Dialogue/Narration/Graphics) permissions per access entry
  • Configure usage permissions per access entry

Asset Edit Modal - Workflow Tab

  • Select workflow to associate with asset
  • Select current workflow phase
  • Override approval requirements (Graphics/Offline) at asset level
  • Configure per-asset access control overrides per phase
  • Phase structure (key, name, description, transitions) inherited from workflow definition (read-only)

Asset Display

  • Workflow phase displayed as a tag in asset icon flags

Access Control

  • Workflow-based access filtering on assets
  • Per-phase access restrictions based on groups and users
  • Asset-level definition overrides take precedence over workflow defaults

Shared Components

WorkflowStructureEditor

A reusable component (ui/3x/modules/components/workflow/workflow-structure-editor.js) used by both:
  • Admin Workflow Form - Full editing capabilities
  • Asset Edit Workflow Tab - Override mode (access controls only)
  • Future: Project Workflow Settings - Project-level overrides
Configuration props:

WorkflowAccessList

Reusable component for managing groups/users access entries with DNG and usage permissions.

Files Changed

API

  • api/models/Assets.php - Added workflow schema fields
  • api/models/Workflows.php - New model for workflow definitions
  • api/controllers/Workflows.php - New controller for workflow CRUD
  • api/extensions/security/permission/Workflow.php - Workflow permissions
  • api/extensions/security/permission/Asset.php - Workflow-based asset filtering
  • api/config/routes.php - Added workflows resource

UI

  • ui/3x/pages/asset/edit-asset.js - Workflow tab integration
  • ui/3x/modules/components/asset/edit-asset/asset-edit-workflow.js - Asset workflow editing component
  • ui/3x/modules/components/workflow/workflow-structure-editor.js - Shared workflow editor component
  • ui/3x/modules/components/workflow/access-control/ - Access control components
  • ui/3x/modules/components/admin/workflow-form/ - Admin workflow form
  • ui/3x/modules/components/global/asset-icon-flags/index.js - Display workflow phase
  • ui/3x/modules/components/global/contact-picker/index.js - Added disabled prop support
  • ui/3x/modules/services/workflow-service.js - Workflow API service
  • ui/3x/pages/admin/ - Admin panel workflow management
  • ui/3x/constants/admin.js - Admin workflow constants

Tests

  • ui/3x/tests/unit/services/workflow-service.spec.js - Workflow service tests
  • ui/3x/tests/unit/components/global/asset-icon-flags.spec.js - Updated with workflow phase tests

TODO

  • Workflow phase transition validation
  • Workflow assignment at project level (with override support)
  • Bulk workflow operations
  • Workflow history/audit log