---
title: 'Asset Approval'
url: 'https://doc.brix.ch/celum_extensions/asset_approval'
markdown: 'https://doc.brix.ch/celum_extensions/asset_approval.md'
lang: en
date: '2026-10-26'
description: 'Technical documentation for the CELUM Extension "Asset Approval" – Software developed by brix'
taxonomy:
  category:
    - docs
---

[](#) 

  [ Welcome ](https://doc.brix.ch/)     [ CELUM Extensions ](https://doc.brix.ch/celum_extensions)      Asset Approval    

# Asset Approval

![Advanced-UI](https://img.shields.io/static/v1?label=UI&message=Advanced&color=lightgrey)![NOVA-UI](https://img.shields.io/static/v1?label=UI&message=NOVA&color=blue)

The "Asset Approval" plugin is a workflow to approve assets if they are moved to a specific node or node of a specific nodetype. For this workflow, a special info field with the approval status must be defined. Also it needs an approval node where the asset will be moved to wait for the approval.

#### Table of Contents

- [Steps](#steps)
- [Properties](#properties)
- [Screenshots](#screenshots)
- [Compatibility Matrix](#compatibility-matrix)
- [Release Notes](#release-notes)

## Steps

- On asset added event: The added asset will be verified, if it is already approved and if the node is a public node.
- If the asset must be approved, it will be directly moved to the approval folder.
- In the approval folder, a specified user group can approve or deny the asset.
- If the asset will be denied, it will be deleted from the approval folder and the status set to rejected.
- If the asset will be approved, the asset will be moved back to the public folder and the status will be set to approved.
- On version updated the workflow will also be triggered if the asset is in a public node. The asset will also change the status and be moved to the approval node.

## Properties

To be configured in {home}/appserver/conf/custom.properties

##### assetApproval.license

> type: String, **required: yes**, default: -

The license key for the plugin (product: assetApproval), provided by *brix*.

##### assetApproval.approvalUserGroupIds

> type: numbers, **required: yes**, default: -

With userGroupIds, groups will be defined which can approve or deny assets in the approval node.

e.g. `12,73,32`

##### assetApproval.approvalNodeId

> type: long, **required: yes**, default: -

With the approvalNodeId, the node will be defined where the assets will be moved to approve or deny them.

e.g. `1000`

##### assetApproval.publicNodeIds

> type: long, required: no, default: -

The publicNodeIds define which nodes are public. On these nodes the approval workflow will be started.

e.g. `12,73,32`

##### assetApproval.statusInfoFieldId

> type: Long, **required: yes**, default: -

The statusInfoFieldId defines which info field will be taken to save the status of the approval workflow.

e.g. `128`

The info field must have following syntax. 1 -> new, 2 -> pending, 3 -> released, 4 -> denied

```xml
<dropdown id="?" name="Approval">
            <label messageKey="infofield.approval"/>
            <options>
                <option index="1">
                    <label messageKey="infofield.approval.new"/>
                </option>
                <option index="2">
                    <label messageKey="infofield.approval.pending"/>
                </option>
                <option index="3">
                    <label messageKey="infofield.approval.released"/>
                </option>
                <option index="4">
                    <label messageKey="infofield.approval.denied"/>
                </option>
            </options>
            <default>1</default>
        </dropdown>
```

##### assetApproval.assetTypesToApprove

> type: Long, **required: yes**, default: -

The assetTypesToApprove defines which types of Asset have to go through the workflow, assets of other types will be ignored (except when a \*AlwaysToApprove property matches).

e.g. `1234,5678`

##### assetApproval.fileCategoryAlwaysToApprove

> type: String, required: no, default: -

The fileCategoryAlwaysToApprove defines a file category which always has to be approved (regardless of asset type or parent nodes).

e.g. `VIDEO`

##### assetApproval.parentNodesAlwaysToApprove

> type: List of Long, required: no, default: -

The parentNodesAlwaysToApprove defines parent nodes that always trigger an approval (regardless of asset- and file type)

e.g. `VIDEO`

##### assetApproval.nodeTypeId

> type: Long, required: no, default: -

The nodeTypeId defines a node type, nodes with this nodeType will all be handled as a public node.

e.g. `109`

## Screenshots

![Node structure](https://doc.brix.ch/user/pages/01.celum_extensions/14.asset_approval/ApprovalNodes.PNG)

![Approve Assets](https://doc.brix.ch/user/pages/01.celum_extensions/14.asset_approval/ApproveAsset.PNG)

![Status Infofield](https://doc.brix.ch/user/pages/01.celum_extensions/14.asset_approval/StatusInfoField.PNG)

## Compatibility Matrix

| assetApproval | CELUM (min. version) |
|---|---|
| 1.0 - 1.1 | 5.12.4 |
| 1.2 - 1.3.0 | 5.13.1 |
| 1.3.1 - 1.5.0 | 5.13.3 (tested up to 6.8) |
| 1.7.0 | 6.20 |

| Nova Plugin | CELUM (min. version) |
|---|---|
| 1.0.1 | 6.9.3 |
| 1.0.2 | 6.11.0 |

## Release Notes

#### 1.0

> Released 2017-09-29

Initial Version

#### 1.1

> Released 2017-10-11

Added NodeTypeId option

#### 1.2

> Released 2017-10-13

Added fileCategories option

#### 1.3

> Released 2019-01-25

Added license.

#### 1.4

> Released 2019-08-23

Fixed status being set when not necessary

#### 1.5

> Released 2021-01-06

Made the status values configurable

#### 1.6

> Released 2021-10-13

Nova compatibility

#### 1.7

> Released 2025-02-24

Compatibility with CELUM 6.20

 [ ](https://doc.brix.ch/celum_extensions/duplicate_check/duplicate_check) [](https://doc.brix.ch/celum_extensions/remove_from_node)

---

## Navigation

- Parent: [CELUM Extensions](https://doc.brix.ch/celum_extensions.md)
- Previous: [Duplicate Check & Sync](https://doc.brix.ch/celum_extensions/duplicate_check.md)
- Next: [Remove from Node](https://doc.brix.ch/celum_extensions/remove_from_node.md)
