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 aworkflow object with the following structure:
definition field contains asset-level overrides to the workflow:
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
| Prop | Admin | Asset Override | Description |
|---|---|---|---|
showApprovalToggles | true | true | Show Graphics/Offline approval checkboxes |
readOnly | false | true | When true, phase structure/metadata is read-only (access lists remain editable) |
phaseAccessHelperText | null | ”Leave empty to inherit…” | Helper text for access lists |
WorkflowAccessList
Reusable component for managing groups/users access entries with DNG and usage permissions.Files Changed
API
api/models/Assets.php- Added workflow schema fieldsapi/models/Workflows.php- New model for workflow definitionsapi/controllers/Workflows.php- New controller for workflow CRUDapi/extensions/security/permission/Workflow.php- Workflow permissionsapi/extensions/security/permission/Asset.php- Workflow-based asset filteringapi/config/routes.php- Added workflows resource
UI
ui/3x/pages/asset/edit-asset.js- Workflow tab integrationui/3x/modules/components/asset/edit-asset/asset-edit-workflow.js- Asset workflow editing componentui/3x/modules/components/workflow/workflow-structure-editor.js- Shared workflow editor componentui/3x/modules/components/workflow/access-control/- Access control componentsui/3x/modules/components/admin/workflow-form/- Admin workflow formui/3x/modules/components/global/asset-icon-flags/index.js- Display workflow phaseui/3x/modules/components/global/contact-picker/index.js- Added disabled prop supportui/3x/modules/services/workflow-service.js- Workflow API serviceui/3x/pages/admin/- Admin panel workflow managementui/3x/constants/admin.js- Admin workflow constants
Tests
ui/3x/tests/unit/services/workflow-service.spec.js- Workflow service testsui/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