---
# System prepended metadata

title: Anuvu OMS Product Manual

---

---
title: 'Anuvu OMS Product Manual'
---

![](https://hackmd.io/_uploads/BJuqVvla5.png)

# Anuvu OMS Product Manual
Version: **1.0**
Last updated: **May 2023**
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
**Copyright and Subject to Contract Information** 

The information contained in this document is the proprietary and exclusive property of TMT Insights Group, LLC (“TMT”), except as otherwise indicated. No part of this document, in whole or in part, may be reproduced, stored, transmitted, or used for any purposes without the prior written permission of TMT. This document is not legally binding and does not constitute an offer upon which a binding contract can be formed. All terms and conditions of services to be provided by TMT shall be set forth in a separate agreement executed by all parties.


---
<br>

# Table of Contents

[TOC]

# Introduction

Welcome to the OMS Product Documentation! Our goal is to provide you with a comprehensive and user-friendly product documentation to help OMS users unlock the full potential of our powerful software. 

To ensure that you have a seamless and productive experience, we have meticulously organized this documentation around user journeys (**Administrator Guide** and **Customer User Guide**), tailored to various roles and tasks.

From initial setup and onboarding to advanced feature utilization, our product documentation caters to a range of user needs and expertise levels. Whether you are a beginner exploring our software for the first time or an experienced user looking to optimize your workflow, our user journey-based documentation is here to support your success.

The OMS Product Documentation also contains OMS resources such **Concepts**, **API reference**, user interface terminologies, naming and file conventions used in the platform (**Glossary and References**).  

# What is OMS?

The **Order Management System (OMS)** is a **media management platform** that controls, monitors, and surfaces media fulfillment data. The OMS enables users to monitor the health of their business, analyze processes, and provide actionable insight via interactive and customizable visualizations.

Integrated with third-party apps such as SDVI Rally, the OMS combines an **order management system** with **extensible task management queues** so that users have a unified view of supply chain data that leverages each core component/integration.

## Logging in

You can access A&E OMS via the following browsers:

**Fully supported:** All the latest stable versions of the following browsers:

>**Note**: A stable version means the browser version has been tested as thoroughly as possible and is as reliable as it was made for. It does not have all the new features of a beta release nor it does not have the latest fixes for browser issues.

* [Chrome](https://www.google.com/chrome/)
* [Safari](https://www.apple.com/safari/)
* [Microsoft Edge](https://www.microsoft.com/en-us/edge)

**Limited support:**
* [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/)

Access to the Anuvu OMS is enabled via Okta. Provide your organization email (A) and (B) password to log in to Okta.

![](https://hackmd.io/_uploads/Skul61Er3.png)

All Anuvu users that have single sign-on authorization enabled and access requested should be able to view the OMS app in their Anuvu Okta apps list.

![](https://hackmd.io/_uploads/HkBAv_7Qi.png)

# Navigating OMS

The following are actionable elements you will be seeing throughout the OMS.

## Switch to Light or Dark mode

To switch between light and dark mode:

Go to **Settings > Appearance** to change your OMS theme:

![](https://hackmd.io/_uploads/SkVQSXKH3.png)

![](https://hackmd.io/_uploads/B1V7rQYBn.png)


The OMS then switches to display in dark mode.

## Use Filters and Saved Searches 

Filters and Saved Searches allow you to search and refine the search results of a particular OMS interface. 

Using a Filter depends on your use case:

1. On the **Orders** interface, the **Status: All** filter is selected by default. Click and select the filter according to **Status**, **Platform**, and **Cycle Date**:

    ![](https://hackmd.io/_uploads/S1Xg-AcCc.png)

2. To find all Orders with a Processing status, click **Status: All**, then either scroll down to the status type or enter "Processing" in the search field.

    ![](https://hackmd.io/_uploads/Ske2bRc09.png)

    OMS will then display all Processing Orders as shown below:

    ![](https://hackmd.io/_uploads/SksKB7trn.png)

3. To use more than one filter, click on any field. In this example, we have selected three (3) Status filters, namely **Awaiting Submit**, **Awaiting Assets**, and **Awaiting Input**.
    
    ![](https://hackmd.io/_uploads/H1chHQKrh.png)

4. To save your search filter details, click **Save Search**, and provide a name for your new saved search, as shown below:

    ![](https://hackmd.io/_uploads/ByY2GA905.png)

    ![](https://hackmd.io/_uploads/HkQkQA5R9.png)

4. Click **Save** when done. A toast notification appears on the upper right side of the platform to confirm that the search filter has been saved.

    ![](https://hackmd.io/_uploads/rytlNRq05.png)

5. To use a Saved Search, click the dropdown beside **Saved Searches**, and click the saved filter. 

    ![](https://hackmd.io/_uploads/ryCjnA5Cq.png)

6. To edit the name of a Saved Search, hover on the saved search filter and click the Edit icon:

    ![](https://hackmd.io/_uploads/rJGGeyjAc.png)
    
    You can only edit the label name of your Saved Search. Once you made the changes, click Submit to save the changes.
    
    ![](https://hackmd.io/_uploads/BkIeUQHgj.png)

7. To delete a Saved Search,  hover on your selected Saved Search and click the Delete icon:

    ![](https://hackmd.io/_uploads/BkRilkj05.png)
    
    > **Note**: You can undo this action by immediately clicking **Undo** on the toast notification.
    > ![](https://hackmd.io/_uploads/rye_Hmrxj.png)
    
8. If you wish to update the filters or search keywords of a Saved Search, you need to use it first from the dropdown, and then enter additional filters (e.g. entering a search word or clicking on a filter).

    In this example, we selected the **wonder woman** filter.

    ![](https://hackmd.io/_uploads/r1UXvQHxi.png)

    We then entered **wonder woman 1984** in search and got a very detailed set of results. To save the now updated filter, click **Save Changes to "Wonder Woman"**.
    
    ![](https://hackmd.io/_uploads/ryERLQSeo.png)

    This means that the **"Wonder Woman"** filter will now display all Orders that fall under the keywords **"Wonder Woman 1984"**. 
    > **Note**: You cannot use or apply more than one Saved Search like in Step 3.

## Refresh content

Clicking the Refresh content icon allows you to retrieve the latest data. 

![](https://hackmd.io/_uploads/HkZLmxES2.png)

## Column Toggle

To enable or disable specific columns displayed in your results, click on the **Toggle columns** icon:

![](https://hackmd.io/_uploads/Hy8wM1sC9.png)

A list of the available columns is displayed. To disable a column, click on any field to remove the removed from your results. Fields that are disabled will appear in gray.

![](https://hackmd.io/_uploads/rJMdfyjRc.png)

![](https://hackmd.io/_uploads/B1G-Vyo09.png)

To enable columns into your results, click any of the grayed out fields or **Reset to Defaults** to enable all fields:

![](https://hackmd.io/_uploads/rk8O4koAq.png)

## Customer Profiles

Customer Profiles provide a way to templatize what would be repetitive specification fields at Order Placement. 

![](https://hackmd.io/_uploads/rJIzcCue2.png)

Provide the following specifications to complete your new Customer Profile:

A. **Profile name** - User entered string text to describe the profile.
> **Note**: A Profile is an admin created template that pre-populates all required component deliverables for the specified Customer; this profile defines the workflow and technical spec that will be processing for the Job.

B. **Customer** - Customer for which the profile was created.

C. **Workflow** - The applicable preset or grouping of presets as it has been created and defined in SDVI that the Order will run against.

D. **Components** - Component specs for the Order (Media, Audio, and Subtitle)

E. **Email Notification** - Delivery notification template, which is, by default, to send to the user who is managing the Order.

## The Dashboard

The OMS platform is comprised of four (4) main user interfaces:

* **Dashboard**
* **Orders**
* **Task Management**
* **File Manager**

The **Dashboard** is the default or main interface upon login.

The OMS **Dashboard** provides a high-level visualization of content orders and deliverables by **Cycle**. Users can view order and delivery performance, click into actionable items for orders in specific states, and download daily and weekly reports.

![](https://hackmd.io/_uploads/B1k_8mFB3.png)

![](https://hackmd.io/_uploads/rJsiIQFr2.png)

### Cycle Range

Upon initial login to the OMS, the filter dropdown defaults on **All Cycles**. A **Cycle** means one calendar month. 

To change this to a specific cycle, click on the dropdown arrow and select the month you would like to view Dashboard data for.

![](https://hackmd.io/_uploads/HJ4y2Tr3c.png)

### Order Status Counts 

The Dashboard displays a counter that indicate the number of Orders according to the following statuses:

![](https://hackmd.io/_uploads/rkw4g0H25.png)

* **Awaiting Submit**: All pending Orders that are still expecting source assets for deliverable creation. 
* **Not workable**: Orders in this state are awaiting assets to be worked on.
* **Processing**: All Orders are in a status of `Processing`.
* **Awaiting delivery**: All Orders are in a ready for delivery state. 
* **Media delivered**: All Orders have completed edit or delivery. 

To view all orders for a specific state, click on the associated status. 

>**Note**: All orders are derived and aggregated from BeBanjo statuses. Refer to the [BeBanjo developer documentation](https://developers.bebanjo.com/) for more information about third-party app integrations. 

### Open Orders Status 

The **Open Orders Status** provides users with a visualization of orders in the various states. Hovering over a state in the pie chart will display the percentage of orders in that state.

![](https://hackmd.io/_uploads/H1L6gRBhq.png)

### On-Time Delivery 

The **On-Time Delivery** graph displays a comparison of deliveries over the past 6 months:

![](https://hackmd.io/_uploads/HyQVS0rn5.png)

### Media Delivery 

**Media Delivery** is available when a Cycle is selected. It displays the percentage of the total media that has been delivered for the selected Cycle. It also displays the percentage delivered. 

![](https://hackmd.io/_uploads/rySsrRr2q.png)

### Daily Reports

**Daily Reports** displays downloadable Order Reports on the Dashboard every 6 hours for both the current cycle and the next month’s cycle. Reports are updated with the latest file for the current and new cycle every 6 hours throughout the day at the following intervals:

* 6AM PST
* 12PM PST
* 6PM PST
* 12AM PST

To download a report, hover over the report and select it to download. The cloud icon with the down arrow will display indicating that selecting it will download the report:

![](https://hackmd.io/_uploads/BJOC4ccA9.png)

Once the report has been downloaded, a checkmark icon will appear next to the downloaded report:

![](https://hackmd.io/_uploads/Hk3SHq5R5.png)

To re-download the same report, simply hover over the report you would like to re-download and re-select the row:

![](https://hackmd.io/_uploads/ry3ZIq5C5.png)

## Orders

The **Orders** interface displays a high-level view of all Orders and their Order details. It also provides the ability to view all related Jobs at a high level within an Order and download the information as a business intelligence report.

![](https://hackmd.io/_uploads/B1zekEKSn.png)

![](https://hackmd.io/_uploads/ByRY4ZNS3.png)

Orders can be filtered in order or according to:
* **Status**
* **Platform**
* **Distributor**; and
* **Cycle Date**

> **Notes**:
> * **Platform** pertains to the actual end-to-end system (content delivery network) the content on the Order is going to be on.
> Example: `Air Belgium >PAC EX3` means the content on the Order to be fulfilled is going to be delivered on Air Belgium via its in-flight entertainment and connectivity systems devices (EX3).
> * **Distributor** pertains to content distributor. It can be a film or content production studio, content rights owner or an entity that has the right licenses to disseminate content to large and targeted audiences. 

### Titles

A **Title** is a media asset or a visual data file that goes through the OMS workflow process processed according to the fulfillment and delivery specifications listed in an Order. 

![](https://hackmd.io/_uploads/B1PlBWVH2.png)

A Title card consists of the following information:

![](https://hackmd.io/_uploads/H1tvPXKS3.png)

A. Content title
B. Order fulfillment and delivery information

Under the **Assets** tab, you have the following details:

C. Title banner - usually a visual representation of the media content. It also includes details such as content type, media genre, running time, and a playable video preview or player.
D. Sources - Assets needed to be processed for content delivery
E. Deliverables - fulfillment requirements
F. Order status - a visual guide towards Order delivery and fulfillment

Under **Title Overview** tab, a Title may have the following information:

![](https://hackmd.io/_uploads/HkvgoXYHh.png))

* Synopsis
* Rightsline ID
* EIDR
* Original Voice Language
* Country of Origin

## Task Management

**Task Management** allows you to view specific types of Tasks comprised to complete an Order. It has the following sub-interfaces:

* **Pending Asset Tasks**
* **Compliance Queue**
* **Processing Exceptions**
* **Manual Delivery Task**s

### Pending Assets Tasks
    
The **Pending Assets** task queue enables users to manage open BeBanjo orders that are awaiting assets. Users can self-assign workflow tasks within the queue for assets, browse and view all missing assets, and link missing assets to files thereby triggering an auto-rename of the file according to pre-defined file naming rules.
    
![](https://hackmd.io/_uploads/HkYPJtfyo.jpg)

All **Pending Assets** should be listed in this queue with the following details:
    
![](https://hackmd.io/_uploads/B1vOUWVS3.png)

![](https://hackmd.io/_uploads/r1BePpB3q.png)

### Compliance Queue

The Compliance Queue enables users to view a list of compliance Orders that need to be screened for approval in the compliance process. 
    
![](https://hackmd.io/_uploads/B1pOyFfJs.jpg)

![](https://hackmd.io/_uploads/ryUpLZNH2.png)

### Processing Exceptions

The **Processing Exceptions** queue enables users with the ability to view all Orders that are in a completed state of **Media Fulfilled** and a pending state of **Media Prepared**.

![](https://hackmd.io/_uploads/SyL3yFzyj.jpg)
    
![](https://hackmd.io/_uploads/HyHlvb4rn.png)

### Manual Delivery Tasks

The Manual Delivery Tasks queue gives users the ability to close out non-automated BeBanjo Orders via manual delivery. Users can view a filtered list of Orders by platform and trigger a manual delivery via the OMS to SDVI.
    
![](https://hackmd.io/_uploads/rySpkFM1o.jpg)
    
![](https://hackmd.io/_uploads/HJlNVwbNS3.png)

## File Manager

**File Manager** is a user-friendly interface for users to manage content files without needing to gain access to direct storage (e.g. Amazon Web Services (AWS) S3 bucket).

![](https://hackmd.io/_uploads/HJQCCXFSh.png)

![](https://hackmd.io/_uploads/SJ9sDW4Bh.png)

### Transfer Queue

The **Transfer Queue** is a valuable tool for managing and organizing file transfers, ensuring that critical or time-sensitive files are transferred efficiently and effectively, and optimizing the overall order management process.

![](https://hackmd.io/_uploads/B1sOMalW3.png)

# Administrator User Guide

The Administrator User Guide contains the essentials about using OMS as a new Administrator. This user guide contains the following guidance:

* How to manage user roles and permissions
* How to create and manage Orders 
* How to manage Tasks
* How to manage files using File Manager

## Manage user roles and permissions

>**Note**: The following information is for OMS users with OrgAdmin or administrator permissions. You may skip this section if this is not applicable to your role.

OMS is developed with four (4) pre-created sample user groups in mind, with the user group definition based on the assigned permissions per OMS feature:

### Table: User roles and permissions

>**Note**: Use the scroll bar at the bottom of the table to review per row.

| Feature | Permission Type | Description |OrgAdmin|OrgViewer|TaskViewer|File Manager|Compliance View|
| --- | --- | --- | --- | --- | --- | --- | --- |
| **Dashboard** | Read  | Able to view Dashboard  | &#x2714; | &#x2714; | &#x2714; | &#x274c; | &#x274c; |
| **Orders**  | Read  | Able to view Orders only <br> (No Order placement or editing of Order information)  | &#x2714; | &#x2714; | &#x274c; | &#x274c; | &#x2714; |
|   | Write  | Able to view Orders and edit Order information, <br> Able to create Orders (Order Placement) | &#x2714; | &#x274c; | &#x274c; | &#x274c; | &#x2714; |
| **Compliance Tasks**  | Read  | Able to view Compliance Tasks along with ther respective Notes only  | &#x2714; | &#x2714; | &#x2714; | &#x274c; | &#x274c; |
|   | Write  | Able to view and edit Compliance Tasks (Assign Tasks, move statuses, add Notes)  | &#x2714; | &#x274c; | &#x274c; | &#x274c; | &#x274c; |
| **All Tasks**  | Read  | Able to view Tasks along with their respective Notes only  | &#x2714; | &#x2714; | &#x2714; | &#x274c; | &#x274c; |
|  | Write  | Able to view and Edit Tasks (Assign Tasks, move statuses, add Notes)  | &#x2714; | &#x2714; | &#x274c; | &#x274c; | &#x274c; |
| **File Manager**  | Read  | Able to browse the File Manager and view the Transfer Queue only  | &#x2714; | &#x2714; | &#x274c; | &#x2714; | &#x274c; |
|   | Write  | Able to browse, copy and move files, create new folders, and able to view the Transfer Queue  | &#x2714; | &#x2714; | &#x274c; | &#x2714; | &#x274c; |
| **Profiles**  | Read  | Able to view the Profiles only  | &#x2714; | &#x2714; | &#x274c; | &#x274c; | &#x274c; |
|   | Write  | Able to view, edit Profiles, and create new Profiles  | &#x2714; | &#x274c; | &#x274c; | &#x274c; | &#x274c; |
| **OpenDash**  | Read  | Able to view OpenDash Manual Delivery Tasks, Processing Exceptions only  | &#x2714; | &#x2714; | &#x2714; | &#x274c; | &#x274c; |
|   | Write  | Able to view, edit OpenDash Manual Delivery Tasks, Processing Exceptions only | &#x2714; | &#x274c; | &#x274c; | &#x274c; | &#x274c; |

### Table: Permission descriptions for sample user groups

>**Note**: Use the scroll bar at the bottom of the table to review per row.

| Name | Description | Permission Code |
| ---- | ----------- | --------------- |
|global_permission \| opendash Read Manual Delivery Tasks   |Can see the manual delivery tasks and call the list endpoint|`opendash.read_manual_delivery_tasks`|
|global_permission \| opendash Read Process Exceptions Tasks|Can see the process exceptions and call the list process exceptions endpoints|`opendash.read_process_exceptions_tasks`|
|global_permission \| opendash Write Manual Delivery Tasks |Can update Manual delivery tasks|`opendash.write_manual_delivery_tasks`|
|global_permission \| opendash Write Process Exceptions Tasks|Can update Process Exception tasks|`opendash.write_process_exceptions_tasks`|
|global_permission \| orders Read Compliance Tasks|Can read Compliance tasks|`opendash.read_compliance_tasks`|
|global_permission \| orders Write Compliance Tasks|Can update Compliance tasks|`opendash.write_compliance_tasks`|
|global_permission \ Can read Jobs|Can hit the Jobs list endpoint|`read_jobs`|
|global_permission \| Can read Order Job Assets|Can read Pending Assets|`read_order_job_assets`|
|global_permission \| Can read Orders|Can read Orders endpoint|`read_orders`|
|global_permission \| Can read Profiles|Can read (Customer) Profiles endpoint|`read_profiles`|
|global_permission \| Can read Tasks|can read all OMS Tasks|`read_tasks` (not used yet)|
|global_permission \| Can view Dashboard|Can view Dashboard data|`view_dashboard`|
|global_permission | Can view File Manager*|`view_filemanager`|
|oms_core_vfs \| file origin \| file_origin.1.all_actions| Can do all actions for the file origin '1', where 1 is `AWS dcsc-prod-library`|`file_origin.1.all_actions`|
|oms_core_vfs \| file origin \| file_origin.1.list_file| Can list files at file origin '1'|`file_origin.1.list_files`|
|oms_core_vfs \| file origin \| file_origin.1.read_files| Can read files at file origin '1' (media info and playback)|`file_origin.1.read_files`|
|oms_core_vfs \| file origin \| file_origin.1.write_files| Can write files to file origin '1'|`file_origin.1.write_files`|
|oms_core_vfs \| file origin \| file_origin.2.all_actions| Can do all actions for the file origin '2', where 2 is Qumulo Root|`file_origin.2.all_actions`|
|oms_core_vfs \| file origin \| file_origin.2.list_files | Can list files at file origin '2'|`file_origin.2.list_files`|
|oms_core_vfs \| file origin \| file_origin.2.read_files| Can read files at file origin '2' (media info and playback)|`file_origin.2.read_files`|
|oms_core_vfs \| file origin \| file_origin.2.write_files | Can write files to file origin '2'|`file_origin.2.read_files`|
|global_permission \| Can Write Jobs|Can update Jobs |`write_jobs`|
|global_permission \| Can Write Order Job Assets|Can update Pending Assets status or assignment|`write_order_job_assets`|
|global_permission \| Can Write Orders|Can update Orders data|`write_orders`|
|global_permission \| Can Write Tasks |Can update OMS Tasks|`write_tasks` (not used yet)|
|global_permission \| `oms_core.base_inventory` Can Download Title Inventory|Can download Title inventory| |
|global_permission \| `oms_core.base_inventory` Can Read Title Inventory|Can read Title inventory|
|global_permission \| `oms_core.base_inventory` Can Read Titles|Can read Titles||
|global_permission \| `oms_core.base_inventory` Can View Title Inventory|Can view Title inventory||
|global_permission \| `oms_core.base_inventory` Can View Titles|Can view Titles||
|global_permission \| `oms_core.base_inventory` Can Write Title Inventory|Can write Title inventory||
|global_permission \| 'oms_core.base_inventory' Can Write Titles|Can write Titles||

>\* Administrator must then also specify the *fileorigin.x* for which the user should be granted access to. 

### Access Django Admin UI

Django UI is an admin interface to help you manage users user groups, roles, and permissions for OMS.

Through the Django UI admin interface, administrators can  create more user groups, update existing user groups, and manage user roles and permissions when applicable.

To access Django Admin UI:

1. Log in to your Anuvu Okta account using your credentials.
2. On the Okta Dashboard, find and click the OMS app:

    ![](https://hackmd.io/_uploads/HkBAv_7Qi.png)
    
3. Go to the Admin Django UI by adding `admin/` to the OMS address (so it should read as https://oms-dev.anuvu.com/admin/)
    
3. You are then directed to Home by default.
    
    The Home interface offers quick links to perform **Site Administration** tasks (A) and displays the latest site administration tasks done (Recent actions)(B).
    
    ![](https://hackmd.io/_uploads/B1rRaHJGi.png)
    
    ![](https://hackmd.io/_uploads/SyWoRNyGs.png)

The Django Admin UI allows authorized users to perform User Group management tasks, including:
* View an existing group
* Edit an existing group
* Add new group
* Add existing user to a group

### View an existing user group

1. From Home, navigate to **Authentication and Authorization** and click **Groups**.

    ![](https://hackmd.io/_uploads/SJjzABkfj.png)

2. Select an existing group to view the assigned permissions.

    In the example below, selecting the OrgAdmin user group will allow you to view assigned permissions to the user group.

    ![](https://hackmd.io/_uploads/H1AYASkGj.png)
    
    ![](https://hackmd.io/_uploads/HkDqRHkGj.png)
    
You can also use these steps to:
* Edit the name of the user group*
* Add a new permission
* Remove a permission
* Delete a user group

### Edit an existing group

1. From Home, navigate to **Authentication and Authorization** and click **Groups**.

    You can also select **Change**.
    
    ![](https://hackmd.io/_uploads/HJM1XL1Gj.png)

2. Select an existing group to view the assigned permissions.

3. To add a permission, navigate to **Available permissions**, select a line item, then click the left arrow to add it to the **Chosen permissions** list of the user group.

    ![](https://hackmd.io/_uploads/B11DlLJzj.png)

4. To remove a permission, navigate to the **Chosen**, select a line item, then click the left arrow to remove it list.

    ![](https://hackmd.io/_uploads/Hydne8yMj.png)

5. To add more than one permission, hold down CTRL or CMD then click as many line items as you want, or use **Choose All** or **Remove All**.

    ![](https://hackmd.io/_uploads/S1myz81fs.png)
    
    ![](https://hackmd.io/_uploads/rkHBGU1Gj.png)

6. Click **Save** to save all changes or Save and continue editing to save your user group update.

### Add a new group

1. From Home, navigate to **Authentication and Authorization** and select the Add group icon.

    ![](https://hackmd.io/_uploads/H1K9zIyGi.png)

2. Enter the name of the group you are creating in the Name field

    ![](https://hackmd.io/_uploads/BknHQ81Mi.png)

3. Select the permissions you'd like for this group to inherit. Navigate to **Available permissions**, select a line item, then click the left arrow to add it to the **Chosen permissions** list of the user group.

    ![](https://hackmd.io/_uploads/B11DlLJzj.png)

4. Click **Save** to save all changes or Save and continue editing to save your new user group entry.

### Add an existing user to a group

>**Note**: You can also use these steps to update User personal info, permission types, add or remove user permissions, and view User action history.

1. From Home, scroll down and navigate to the **OMS_CORE_IAM** section, and select **Platform users**.

    ![](https://hackmd.io/_uploads/rJRlr81Mi.png)

2. In the Search field, enter the user's email address or name, and click **Search**.

    ![](https://hackmd.io/_uploads/SymuSUkGj.png)

3. Click on the user that is returned to go into the **Change platform user** interface.

    In the example below, we will click user Rizza.StaAna@globaleagle.com

    ![](https://hackmd.io/_uploads/rJJRrUJzi.png)

4. Scroll down and navigate to the Permissions section. 

5. In **Groups**, locate the new group you like to add for the selected user using the Search field or by clicking on any of the groups under the user group list:

    ![](https://hackmd.io/_uploads/SJOC8I1Gs.png)


    >**Note**: If a user is already assigned to an existing group, remove that group and then add the new group you'd like them to belong to.

6. Click **Save** at the bottom of the page to save all changes.

### Edit admin user privileges

> **Note**: This can only be done by an OMS user with Admin privileges.

1. Follow Steps 1-4 in **Add an existing user to a group**.

2. In Permissions, you can check off either:
    * Staff status, which will grant specific access to different areas within the Django Admin UI, or

    ![](https://hackmd.io/_uploads/B1C-kKmXj.png)

    * Superuser status: which will grant access to everything on the left-hand navigation as shown below

    ![](https://hackmd.io/_uploads/Syz0et7Qj.png)


## Deploy OMS Version

You may use [AWS Elastic Beanstalk Command Line Interface (EB CLI) ](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html) to deploy versions of your OMS between environments.

1. Clone the OMS Github repository to your local.
2. Run a `git pull` to get the latest build. When you pull the OMS repo, make sure to pull submodules also.
3. Navigate to the folder location of the `build.py` file.
4. Run `build.py` to make a new version
5. Download, install, and configure your [AWS Elastic Beanstalk Command Line Interface (EB CLI)](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html) environment.
6. Deploy with the following command:
    
    ```eb deploy --version <version generated in 1 or select a previous version>```
    
    For example:
    
    ```eb deploy --version v1.1.58-pg```
    
7. To promote from one environment to another, you can just deploy to a different environment.

    To change the environment use, `eb use <env_name>` and deploy again, or via the web EB UI.

    ![](https://hackmd.io/_uploads/BJhUmkl8o.png)

    ![](https://hackmd.io/_uploads/H14wmke8j.png)

    ![](https://hackmd.io/_uploads/B1oDQJgUi.png)

## Manage Orders 

### Create Orders

All Orders are created in BeBanjo. Essentially, it is a two-step process:

1. Go to Movida and schedule a new entry. Make sure that you provide all impertinent metadata:

![](https://hackmd.io/_uploads/rkJAhb4Hh.png)

2. Send your new entry to Sequence. Sequence gathers all metadata entered in Movida in order to place the Order.

![](https://hackmd.io/_uploads/Sk51pZEHn.png)

For more information, refer to the following documentation:
* [BeBanjo Help Center](https://help-centre.bebanjo.com/)
* [What is Movida?](https://help-centre.bebanjo.com/user-guides/what-is-movida)
* [What is Sequence?](https://help-centre.bebanjo.com/user-guides/what-is-sequence)
* [Managing Metadata](https://help-centre.bebanjo.com/user-guides/how-to-manage-metadata)

### Creating Titles in Rightsline

> **Note**: The following steps require access to the Anuvu Rightsline platform. Refer to your release manager regarding access and securing roles/permissions to the Anuvu Rightsline platform. 

The OMS is integrated with Rightsline in managing Inventory titles and title hierarchies. Refer to the [Rightsline documentation](https://rightsline.zendesk.com/hc/en-us/articles/4418208476955-New-to-Rightsline-) for more information about using Rightsline as a first-time user.

For title hierarchy management, Anuvu users have the ability to create using the Rightsline platform:

* new entities, whether they are a company or a human, as **Contacts**, and;
* new titles and title hierarchies (e.g. version, series, episode) as **Catalog** items. 

Refer to the following Help Center article for more information: [Contacts and Catalogs](https://rightsline.zendesk.com/hc/en-us/articles/4416560697499-Modules)

#### Logging in

1. After securing access and user permissions from your release manager, go to [https://app.rightsline.com/](https://app.rightsline.com/). 
2. Type in your user credentials (email address and password). 
3. You will be prompted to the Rightsline dashboard. The main menu is located on the left side.

**My Recent Activity** provides quick links to any newly created items. 

![](https://hackmd.io/_uploads/r1I86w6R9.png)

#### Create a new studio or brand

> **Note**: Creating a studio or brand contact in Rightsline is a way of capturing entities in order to provide more context in creating a title. The difference between these two contacts will be made clearer later when you create a title. 

To create a new studio or brand: 

1. On the Rightsline platform, click **Contacts**. 

    ![](https://hackmd.io/_uploads/HJQpTP6Aq.png)

2. Click the green plus sign located on the upper right side of the platform, then select the contact type.

    ![](https://hackmd.io/_uploads/SJm7Av6Rc.png)

    * Select **Studio** when creating a studio or brand entity. 
    * Select **Talent** when creating a human entity (e.g. actor, designer, editor). 
    * Select **User** when creating a third-party user entity outside of a studio or brand. 
    * **Person** is a default contact type and is not used in any Rightsline-OMS operations. 

3. Provide the required and applicable fields for the selected entity.

    ![](https://hackmd.io/_uploads/S1Y_RwaC9.png)

> **Note**: If you are creating a new Contact for the very first time and do not have the rest of the Studio or Brand details, you can simply provide the name of the Contact and come back to the saved Contact to edit and fill in the rest of the details later.

4. Click **Create**. 

The new Contact is saved in the database, and is assigned a dedicated ID.

![](https://hackmd.io/_uploads/BJqbyua05.png)

#### Create a new Title

To create a new Title: 

1. From the side navigation bar, click **Catalog**. 

    ![](https://hackmd.io/_uploads/Bk9wJupR5.png)

2. Click the green plus sign located on the upper right side of the platform and select the **Catalog** type. 

    ![](https://hackmd.io/_uploads/S1aMeua09.png)

> **Note**: The hierarchy of video content are, from top to bottom: 
> * Series, Season 
> * Feature, Episode, Sizzle Reel 
> * Version 

3. On **Create a New Record**, provide the required fields. In the example below, we selected `International Trailer` and `Looney Toons Back in Action` in the required fields for a Feature. 

    ![](https://hackmd.io/_uploads/r11eZOT09.png) 

4. Some Catalog Items require an **Associate Contacts to the New Record**. Provide the **Studio** and **Brand** fields by typing the name or clicking the plus sign on the right to select from existing contacts, and then click **Apply**.

    ![](https://hackmd.io/_uploads/HJAufOpRc.png)
    
    ![](https://hackmd.io/_uploads/H1g5GOTA9.png)

    > **Note**: This action is only applicable to higher hierarchical Title items only (Series and Season). For lower hierarchical Title items, you need to associate a Licensor from the list of Contacts to complete the Title creation process. 

5. Click **Continue** to auto-create Child Items. 

> **Note**: If you do not or fail to create a brand for higher hierarchical items, a brand is auto-created of the same name. 

6. Create Hierarchical Catalog Items of the Title and then click **Done**.

This step will be different depending on the selected higher hierarchical item. 

For example, this is the hierarchical catalog items for a Feature or a Sizzle Reel: 

![](https://hackmd.io/_uploads/rkrM7daR5.png)

7. Click **Done** to save and create the new title.

## Manage Tasks

**Task Management** allows OMS users to manage operational workflows that require human intervention or action. OMS users can assign or self-assign tasks in the workflow that relates to missing assets, compliance screening, processing exceptions that require next steps, and manual delivery tasks. 

To navigate to the Task Management queue, click on **Task Management** in the navigation bar. From there, you can navigate to the specific task queues that you need to complete in order to move the order (and the associated Orders) to completion: 

1. Pending Assets Tasks
2. Compliance Queue
3. Processing Exemptions
4. Manual Delivery Tasks 

### Manage Pending Assets Tasks

To access **Pending Assets Tasks**, click on the Task Management dropdown and select **Pending Assets Tasks**:

![](https://hackmd.io/_uploads/Hk4j9wzks.jpg)

![](https://hackmd.io/_uploads/S1SGgNKrn.png)

#### Task States 

The asset task queue enables users to assign workflow tasks for all missing assets that are awaiting scheduling. All assets displayed include their respective Distributor, associated Title, Aging status, and Due Date. All assets track to the following status workflow tasks:

![](https://hackmd.io/_uploads/SJ3rl4tS3.png)

* **Research**: Beginning (defaulted) state for the missing asset; all assets will remain in this state within the task queue until it is manually updated to a different state
* **Found**: Asset has been found; this status should trigger the next user in the workflow to move the file
* **Moving**: Asset is being moved from on-prem to S3
* **Awaiting Media Prep**: Asset has completed the move from on-prem to S3 and is now awaiting media prep
* **Awaiting Ingest**: Media prep completed and awaiting ingest
* **In Media Prep**: Asset is currently being media prepped
* **Ingesting**: Asset is currently being systemically renamed and moved. Note that this status is systemically set; users are not able to select and assign in the workflow
* **Needs Acquisition**: User has looked for the asset on-prem but was not able to locate the asset; will need acquisition from distributor or vendor
* **Ordered Distributor**: User has ordered the asset; request for asset has been made to distributor 
* **Ordered Vendor**: User has ordered the asset; request for asset has been made to vendor 
* **Localization**: In queue for localization workflow/process
* **Compliance**: In queue for compliance workflow/process
* **Edit**: In queue for editing workflow/process
* **Audio**: In queue for audio workflow/process
* **Not Available**: Asset has been deemed not available by distributor
* **Incoming**: Files have arrived in the Incoming S3 bucket
* **Ingested**: Asset has been successfully ingested. Note that this status is systemically set; users are not able to select and assign in the workflow
* **Failed Ingesting**: Asset failed to ingest. Note that this status is systemically set; users are not able to select and assign in the workflow
* **Validating Files**: Assets that are pending BeBanjo acknowledgement of ingest completion 
* **Complete**: Asset has completed the workflow. After files have completed ingestion and are successfully registered, the asset will systemically be removed from the task queue. Note that this status is systemically set; users are not able to select and assign in the workflow

#### Display Orders with selected Order status

When you view **Pending Assets**, all Orders in **Research** status are displayed by default. 

To view Orders with a different workflow status, click on the status filter and select the Order status you’d like to view the results for:

![](https://hackmd.io/_uploads/B1LZ3DMJs.jpg)

#### Display Orders for Media Acquisition

To view all Orders that are for Media Acquisition, click the **Media Acquisition** filter as shown below. It will display which assets are for a specific platform:

![](https://hackmd.io/_uploads/SJyteEFS3.png)

If you click on the **ETA** filter, all Orders for Media Acquisition are displayed according to the latest estimated time of arrival (ETA).

![](https://hackmd.io/_uploads/HynseEKH2.png)

#### Set new/edit current ETA date

> **Note**: Authorized users can only update the ETA date of an Order so long as it is in the **Ordered Distributor** or **Ordered Vendor** statuses only.

1. Hover on the ETA section of a specific Order until a pencil icon appears. 

    ![](https://hackmd.io/_uploads/HklOQZSgs.png)

2. Click on the icon and type in the ETA date in the MM/DD/YYYY format (e.g. 8/19/2022).

    ![](https://hackmd.io/_uploads/ByTyr-Bxo.png)

3. Enter your date to automatically save the new ETA date.

#### Assign Pending Tasks

To pick up a task and assign it to yourself or any Anuvu OMS user, click on the overflow button at the end of the asset row, then click **Assign to Me**, as shown in the example below.

![](https://hackmd.io/_uploads/rJyu6vMJs.jpg)

The **Research** task on this asset is now assigned and displays the user’s username:

![](https://hackmd.io/_uploads/BJU9pPGyo.jpg)

To unassign a workflow task, click on the overflow menu then select **Unassign**.

>**Note**: If the task is already assigned to a user, other users will not be able to assign the task to themselves.

#### Update Order status

To move the workflow status of an Order to the next corresponding status, click the dropdown and select the next workflow. In the following example, the user updates the Order's workflow status from **Research** to **Found**.

![](https://hackmd.io/_uploads/H1-CADMko.jpg)

In doing so, the task is then unassigned from the current user and now shows as **Unassigned**.

![](https://hackmd.io/_uploads/HyV7JOMyi.jpg)

The age, status, and assigned columns then update in real-time. 

>**Note**: Tasks do not need to follow a certain order in the workflow (e.g. A status of **Awaiting Media Prep** may be selected after the “Needs Acquisition” status).

#### Link assets

Assets in **Awaiting Ingest** status enable users to link (associate) a missing asset to an asset within a specific storage location. 

![](https://hackmd.io/_uploads/HyllZdMko.jpg)

>**Note**: All other task workflow states will not have the **Link Asset** enabled and are grayed out/un-selectable.

To link a missing asset:

1. select the overflow menu and click Link Asset:

    ![](https://hackmd.io/_uploads/Hyf4-dMko.jpg)

2. The **Link Asset** modal pops up. At the top of the modal, the selected asset is displayed in addition to a view into the S3 Library bucket that the user can browse to select the new asset to link to: 
    
    ![](https://hackmd.io/_uploads/SJicZOMJi.jpg)

3. Once the associated asset is selected from the bucket, a confirmation is displayed verifying that the two assets selected need to be linked. 

4. **Click Link Asset** to continue

    ![](https://hackmd.io/_uploads/BkY0Z_G1j.jpg)

5. Once the asset has been successfully linked, a toast notification will appear at the upper-right corner.

    ![](https://hackmd.io/_uploads/HJQf-NYBn.png)

6. Once the asset has been linked, the status will systemically update to **Ingesting**. This indicates the following few backend processes are underway:

    * Asset association
    * File renaming: file will be renamed according to SDVI file naming conventions per Distributor

>**Note**: Files that go in the RAW and ARCHIVE folders are assets that no longer need to be renamed as the system will auto rename via this process.

Once the above process begins, the missing asset is then systemically updated between the following statuses:

* **Ingesting**: the file is being associated and renamed
* **Ingested**: the file has been ingested
* **Validating Files**: the OMS is awaiting acknowledgment from BeBanjo that ingestion has completed
* **Completed**: the file has completed ingestion
* **Failed Ingesting**: there was an issue when attempting to ingest

In the following example, the linked asset has systemically updated to **Validating Files**:

![](https://hackmd.io/_uploads/rklOb4tH3.png)

#### View Task History

To view task history, click the overflow menu and select View History:

![](https://hackmd.io/_uploads/ry6pXOf1j.jpg)

A modal displays the history of the selected task. Users would be able to identify when the task was updated, who updated it, and from what states it moved from:

![](https://hackmd.io/_uploads/HyVG4uzkj.jpg)

### Manage Compliance Queue

To access the **Compliance Queue**, click on the Task Management dropdown and select **Compliance Queue**:

![](https://hackmd.io/_uploads/BkmL0df1j.jpg)

The compliance queue results are now displayed:

![](https://hackmd.io/_uploads/BJXnxKMyi.jpg)

#### Activate the screening workflow

To kick off the screening workflow:

1. Click on the arrow icon in the Screening column. 

    ![](https://hackmd.io/_uploads/rJBM-tMJo.jpg)
    >**Note**: If it’s not selectable, then the asset has already been screened and is waiting for the next workflow:

> **Notice**: The following screenshots are SDVI interfaces in the testing/staging environment. As such, the SDVI interface may be different in the production environment.

2. Once selected, the SDVI compliance workflow gateway is opened:

    ![](https://hackmd.io/_uploads/H15q-FG1s.jpg)

3. If the compliance screening task that you’ve selected is not in your **My Tasks** queue, navigate to the **Unassigned Tasks** tab where you should see a list of tasks to be assigned and screened:

    ![](https://hackmd.io/_uploads/H13rztzJs.jpg)

4. Select **Take and Activate** to self-assign this to your SDVI task queue:

    ![](https://hackmd.io/_uploads/S1MsMKfks.jpg)

5. Once completed, navigate back to the **My Tasks** queue. The recently assigned compliance screening task is now added to the compliance screening task queue list:

    ![](https://hackmd.io/_uploads/H1vGXFf1i.jpg)

6. Choose the asset you’d like to screen by selecting it from your **My Tasks** queue. Once selected, the Detail and Screening Player widgets are then loaded with the asset information and be ready for you to screen via the Screening Player:

    ![](https://hackmd.io/_uploads/HkqLmYM1j.jpg)

7. Select the **Accurate.Video Validate** button to open the asset in the Accurate Player for screening:

    ![](https://hackmd.io/_uploads/HyXsmKGJo.jpg)

8. The Accurate Player is then opened in a separate tab of your existing browser:

    ![](https://hackmd.io/_uploads/SyU0mtG1s.jpg)

#### Using the Accurate.Video Player

The Accurate.Video Player is a web browser-based, frame-accurate, professional video, audio and subtitle player framework.

You can perform the following functions on Accurate.Video Player:

* Play: Use the player controls to screen (pause, scrub backwards/forwards) the asset
* Drag and Drop Marker(s): Drag the bar to add separate start/in and end/out markers in conjunction with step 3, below
* Select the dropdown to pick status

![](https://hackmd.io/_uploads/HkjFBtf1i.jpg)

For more information about using Accurate Player, visit the [Accurate.Video product documentation](https://docs.accurate.video/).

### Manage Processing Exceptions tasks

To access the **Processing Exceptions** queue, click on the Task Management dropdown and select **Processing Exceptions**:

![](https://hackmd.io/_uploads/Bk8O8FGko.jpg)

The **Processing Exceptions** queue is then displayed:

![](https://hackmd.io/_uploads/ry-oItzys.jpg)

#### Create a JIRA ticket

The OMS has a JIRA ticket integration that allows users to create new tickets for tasks in the **Processing Exceptions** queue. This allows you to flag certain tickets and achieve visibility.

1. Click the **JIRA #** field along the task item as shown below:

    ![](https://hackmd.io/_uploads/BkygcKM1o.jpg)

2. Enter a number for your new JIRA ticket. 

3. Press Enter to save or select the checkmark icon. 

A toast notification will appear in the upper-right corner indicating the ticket was systemically created on the Jira board:

![](https://hackmd.io/_uploads/rJWRb4tBh.png)

#### Edit a JIRA ticket

You can only edit the JIRA ticket. If you need to enter or edit more details on your JIRA ticket, you would have to do it in the JIRA app itself.

To edit the Jira ticket number, click the pencil icon next to the ticket number:

![](https://hackmd.io/_uploads/H17QfVKH3.png)

### Manage Manual Delivery Tasks

To access **Manual Delivery Tasks**, click on the Task Management dropdown and then select **Manual Delivery Tasks**:

![](https://hackmd.io/_uploads/SJuMhKzJi.jpg)

By default, the **Manual Delivery Tasks** queue will display Orders in the **Awaiting Delivery** state:

![](https://hackmd.io/_uploads/BykUntGJs.jpg)

#### View Manual Delivery Tasks by status

To view all Orders in a **Delivering** or **Delivered** state, select the **Status** filter and update to the status you’d like to view:

![](https://hackmd.io/_uploads/HJjThtzko.jpg)

#### View all assets in a Manual Delivery task

To view all assets in an Order needing manual delivery, click on the **>** symbol to expand the row:

![](https://hackmd.io/_uploads/HJ-FaYfki.jpg)

Any associated assets are made visible and grouped accordingly:

![](https://hackmd.io/_uploads/S1bcTtzyo.jpg)

#### Manually trigger a delivery 

To manually trigger a delivery Order:

1. Click on the overflow menu for the delivery task and select **Mark as Delivered**:

    ![](https://hackmd.io/_uploads/rkvmCtf1o.jpg)

    A toast notification will appear in the upper-right corner to indicate that the user has triggered a manual delivery of the asset(s):

    ![](https://hackmd.io/_uploads/ByCPMEFB3.png)

2. The OMS will then trigger a delivery via SDVI and update the line-item task to the **Delivering** status:

    ![](https://hackmd.io/_uploads/Skvq0tGyo.jpg)

3. Once the task has completed delivery, the status will update to **Delivered**:

    ![](https://hackmd.io/_uploads/By5TRtzki.jpg)

## Manage files using File Manager

The **File Manager** enables users to browse Anuvu’s storage locations, view files, and perform transfers between locations. 
 
To navigate to the File Manager, click on the **File Manager** in the nav: 

![](https://hackmd.io/_uploads/HJQCCXFSh.png)

The Amazon S3 Prod location will now be displayed as default: 

![](https://hackmd.io/_uploads/ryEw1cG1j.jpg)

### Browse and Navigate File Manager 

Users can find the file they would like to copy or move by clicking into the folder. 

In this example, we click into the `brett__test` folder. Note that because we haven’t selected a file, the **File Queue** and Copy/Move actions are grayed out in the upper right corner:

![](https://hackmd.io/_uploads/H1mnJ9G1s.jpg)

The deeper the sub-folders, the folder path gets shortened to `…/`. Click it to access and navigate to a previous folder path. 

![](https://hackmd.io/_uploads/rknAk5GJo.jpg)

A horizontal scroll will also appear at the bottom of the file manager module so that the user can scroll left and right to view the file path as well:

![](https://hackmd.io/_uploads/BkXme9fyi.jpg)

### Create a folder within a location 

To create a new folder within a location: 

1. Click on the new folder icon. 

    ![](https://hackmd.io/_uploads/ByXBecM1j.jpg)

2. A text field appears for the user to enter the name of the new folder. Enter the name of the folder, then hit enter to create the new folder in the selected destination folder: 

    ![](https://hackmd.io/_uploads/SJqLe5f1s.jpg)

3. The new folder now appears in the selected destination folder. 

    ![](https://hackmd.io/_uploads/ryzdeqf1i.jpg)

> **Note**: If the newly created folder is not showing up, click the Refresh button to refresh the file explorer. 

### Transfer files

#### Adding to File Queue

There are two ways to add a file to the File Queue:

1. Once a file is selected, it is then added to the **File Queue** clipboard and the copy/move actions are then highlighted and actionable. 

    In this example, note that the first file is displayed in the **File Queue** clipboard.

    ![](https://hackmd.io/_uploads/Skxx-qzks.jpg)

2. Navigate to the file intended and click on the **Add to File Queue** icon at the end of the row:

    ![](https://hackmd.io/_uploads/BJyHW9M1o.jpg)

    Note that the File Queue clipboard now displays the file that was just added:

    ![](https://hackmd.io/_uploads/Hktvb5zJi.jpg)

#### Remove file(s) from File Queue

There are two options to remove the file from the File Queue clipboard:

1. Select the **x** next to the file or **CLEAR ALL** from the **File Queue** clipboard to remove all files:

    ![](https://hackmd.io/_uploads/B1nff5zko.jpg)

2. Select the **Remove from File Queue** icon on the file:

    ![](https://hackmd.io/_uploads/Hyjvf5f1j.jpg)

#### Performing a transfer

To copy or move a file to a new location:

1. Navigate to the desired folder to transfer the file to by clicking into the new folder location. 

    In this example, the **bigger/** folder within the original **bretttest/** folder is selected:

    ![](https://hackmd.io/_uploads/BJX_Q9M1j.jpg)

2. Select the **Copy** button:

    ![](https://hackmd.io/_uploads/H1sjX9M1o.jpg)

3. To move the file to this new location, select the **Move** button:

    ![](https://hackmd.io/_uploads/BkIJE9Gyi.jpg)

    A toast notification in the upper right corner is displayed indicating that the file is being copied or moved to the new location. In this example, the file is being copied to the ‘bigger’ folder.
    
    The file will also appear in the destination folder with an indication that the file is “being copied/moved here”):
    
    ![](https://hackmd.io/_uploads/ryPXN5Mki.jpg)

#### Check file transfer status 

To view the status of a file/s: 

1. Click the refresh button to display the updated status of the file in that location: 

    ![](https://hackmd.io/_uploads/S1zL4cGki.jpg)

2. Once the file transfer is completed successfully, it will be displayed in the new location:

    ![](https://hackmd.io/_uploads/rJthVqfJj.jpg)

3. To view all transfers in progress, click on the **Transfer Queue** button:

    ![](https://hackmd.io/_uploads/B1klH5Myi.jpg)

    A fly-out of the **Transfer Queue** pops out to display all transfers and their current status:
    
    ![](https://hackmd.io/_uploads/B18QHqfyj.jpg)

The **Transfer Queue** has the following columns: 

* **Created Date**: Displays the file transfer in UTC time
* **Action**: Displays the type of transfer, copy or move 
* **Filename**: Displays the name of the file that was transferred 
* **Source**: Displays the root source storage location 
* **Destination**: Displays the root destination storage location 
* **Status**: Displays the status of the file, 
* **Progress**: Displays the transfer progress with the following indicators 
    * ![](https://hackmd.io/_uploads/B12jrqfkj.jpg) indicates in progress with percentage complete 
    * ![](https://hackmd.io/_uploads/SkZRS5Mki.jpg) indicates a successful transfer 
    * ![](https://hackmd.io/_uploads/HyPgU9fyi.jpg) indicates a failed transfer 

#### View source and destination folder paths of your file transfer

To view the source and destination folder paths of your transfer, find the row displaying your transfer and click on the greater than sign, **>** to expand: 

![](https://hackmd.io/_uploads/Hyp4I9GJi.jpg)

The source folder path and the destination folder path are then displayed:

![](https://hackmd.io/_uploads/r14_L5G1j.jpg)

To view an updated list of file transfers, click the refresh button to update the **Transfer Queue** page:

![](https://hackmd.io/_uploads/HJQa85GJi.jpg)

#### View media info 

To view a file’s media info: 

1. On the selected file row, click on the **MediaInfo** icon. 

    ![](https://hackmd.io/_uploads/S1pgDqM1i.jpg)

2. If the **MediaInfo** was not previously requested, the following modal will display indicating that it has been requested:

    ![](https://hackmd.io/_uploads/Skf1O5z1i.jpg)
    >**Note**: The request for **MediaInfo** typically takes less than 5 minutes to generate.

3. Click **Refresh** to display the file’s MediaInfo or if you’ve closed the modal, then click the **MediaInfo** icon on the row again:

    ![](https://hackmd.io/_uploads/BJo4d5Myi.jpg)

#### Use File Playback or Preview

To view a preview or play back a video file:

1. Navigate to the specific video file you’d like to playback, then click on the **Play** icon displayed on the row of the file:

    ![](https://hackmd.io/_uploads/Bkif59GJi.jpg)

2. The video preview modal then appears. If the file is being rendered for the first time, a 10 second placeholder video is displayed while the file is being rendered in real-time:

    ![](https://hackmd.io/_uploads/ryYY99G1i.jpg)

3. The video file may start playing for a few seconds. You may also see a buffering/loading icon as it continues to grab segments of the video to render in real-time:

    ![](https://hackmd.io/_uploads/r1h0c5z1o.jpg)

4. Once the file has enough segments that it has rendered, playback will then jump forward in real-time to where it has enough segments to play back:

    ![](https://hackmd.io/_uploads/B1qZj5fyo.jpg)

5. Once the file has completed transcoding, the playback modal will allow you to play the file back from the beginning, as well as provide you with the ability to scrub forwards and backwards through the asset:
    ![](https://hackmd.io/_uploads/Bkarsqfki.jpg)
    > **Note**: Video preview currently only works `.mp4` and `.mov` video files.

# API Reference

## Overview

The [OMS API](https://oms.anuvu.com/api/) is built on a Django REST framework, and serves as an API for users to extend media managament functionality of the OMS.

The OMS API docs is written directly into the OMS source code as annotations and published as a Swagger doc. To access the Swagger doc, go to [OMS API Documentation](https://oms.anuvu.com/api/docs/ ).

## Authentication

Authentication to the API is performed via HTTP Basic Auth. Provide your API key as the basic auth username value. If you do not include a key, the OMS API returns an invalid request error, and an authentication error if the key is incorrect or outdated.

To add an API key:
1. Make sure you have already signed in on your Okta account.
2. Secure your API key.
3. Go to [OMS API Documentation](https://oms.anuvu.com/explore/api/docs/), locate and click **Authorize** as shown below:

    ![](https://hackmd.io/_uploads/rJQ0n9cpo.png)
    
4. Enter the API key in the `Value` textbox.

    ![](https://hackmd.io/_uploads/B1ZeCcqTi.png)

5. Click **Authorize** to save.

## Data availability

Data availability varies by API object and your user permissions. 

## Errors

OMS uses standard HTTP response codes to show if an API request was successful or unsuccessful. 

Success is generally indicated by codes in the 2xx range. 

Codes in the 4xx range signify errors that weren't successful based on the information available (e.g., a required parameter was omitted, a charge failed, etc.). 

Codes in the 5xx range usually indicate an internal server error, but these are rare.


| Error message | Description |
| -------- | -------- |
| `200 OK`      | The API request is successful.     |
| `401 Authentication credentials were not provided.`      | The API request is not successful as you have not provided an API key and/or is not authorized to perform such call.      |
| `404 Not found`    | The URL you used in your request doesn’t exist on the API server, or origin server.  |
| `500 Internal server error`     | Internal server error.     |

## API resources and endpoints

The Swagger docs currently is organized according to version. However, you can take note of the following URL resources to call your API:

`/admin/api/` - API calls using admin API endpoints will require administrator access and/or provide an authenticated token as either a query parameter or in the request header.

`/api/v1/` - APIs that are supported in a specific group and version, in this case, version 1.

The following resource collections (`/api/v1/(API resource)/`) available in the OMS API are:

* `auth` - Authorization API endpoints
* `common` - API endpoints use to manage passthroughs to app constants and other services. Some logic may need to be run based on the service.
* `core` - Core API endpoints, including endpoints to feature functionalities
* `grunt` - Task API endpoints
* `inventory` - Catalogue API endpoints
* `passthrough`/`opendash` - Passthrough Open Dashboard API endpoints
* `vfs` - Virtual File System (VFS) API endpoints

## OMS Version States

Later versions of the API will have users perform API calls on new endpoints to existing resource collections.

For example, the `core` API resource in Version 2 (`/api/v2/core/`) now has the following additional endpoints that can allow users to create and submit a draft Order :

* `/v2/core/orders/create/` - Create a new Order
* `/v2/core/orders/{id}/` - Get or update an Order
* `/v2/core/orders/{id}/submit` - Create a new client Order

## Objects

Django follows the model view template (MVT) pattern. The view holds the logic that acts on the incoming HTTP requests.

![](https://hackmd.io/_uploads/HyrgXj5Ts.png)
 
## API Calls

You can perform developer-centric API calls with the following in mind:

* POST is used to create things, like encodes and subtitles.
* PUT is used to modify or change parameters for existing things.
* DELETE is used to remove things.
* GET is used to fetch information about things and is the opposite of PUT.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Refer to the [OMS API Documentation](https://oms.anuvu.com/explore/api/docs/) for applicable HTTPS methods on A&E API endpoints.

To test out an API call, select an endpoint, and click **Try It Out**:

![](https://hackmd.io/_uploads/ByVcvrrJn.png)

Configure your parameters before clicking on the Execute button.

![](https://hackmd.io/_uploads/SJqmOBr13.png)

## Creating new API endpoints

You can create new API endpoints on an existing API built on a Django REST framework. Django REST framework makes it easy to create new endpoints by defining new views and serializers.

To create a new endpoint, you can follow these general steps:

1. Define a new view: Create a new view that will handle the request for the new endpoint. You can define this view by subclassing the appropriate DRF view, such as APIView, GenericAPIView, or one of the viewsets.

2. Define a new URL: Define a new URL pattern that maps to the new view. This can be done in your urls.py file, where you can add a new URL pattern that points to the view created in step 1.

3. Define a new serializer: If your new endpoint requires input data, you may need to define a new serializer to validate and parse the data. This can be done by subclassing the Serializer class provided by DRF.

4. Write the business logic: Write the logic for your new endpoint. This may involve fetching data from a database, processing input data, or performing other actions.

5. Once you have completed these steps, your new endpoint should be available for use. You can test it using a tool like curl or a web client like Postman.

## Updating the API doc

The OMS GitHub repo already houses both OMS source code and Swagger docs.

Authorized users may clone the repository and update the API docs using a text editor (ex. Visual Code studio).

Authorized users need to push-commit changes to the OMS core repo. 

> **Note**: There might be an extra step to create a new API docs build without triggering the OMS build process.

# Glossary and References

## General OMS Definitions

| Term | Definition | 
| -------- | -------- |
| OMS     | Operational Management System (OMS) is a media management platform that organizes, monitors, and surfaces media fulfillment data from various integrated systems into a single unified view. The platform enables users to monitor the health of their business, analyze processes, and provide actionable insight via an interactive and customizable UI.     |
| Dashboard | A high-level view of orders and deliveries, filterable by specific statuses by month. Enables users to perform further in-depth investigation by actioning off orders in a specific status, viewing on time delivery trends, and downloading custom created reports (if available). |
| Orders     | Enables users to request (and, to some extent, customize) deliverables and associate them to a Title.      |
| Task Management     | Enables users with the ability to manage steps that require human intervention/action in any part of the workflow process.     |
| File Manager | Provides users an interface to browse, inspect, and transfer files among storage locations.  |
| Color indicators*     | Color indicators will display on statuses, sources, and status timelines as a quick visual representation to the user on the current state.| 

## Color indicators

The following color indicators used in OMS include:

| Color/Indicator | Description |
| -------- | -------- |
| Yellow | Order is in an in-progress state. | 
| Gray | Components (I.e. assets) not yet available to start task. |
| Green | Completed |
| Red | Failed|

The following color indicators used in the task timeline (found in an Order's Title card):
| Color/Indicator* | Description |
| -------- | -------- |
| Solid green | Completed. |
| Outlined green | In progress. |
| Outlined gray | Not started |

## OMS Workflow Terms

| Term | Description |
| -------- | -------- | 
| Orders | Enables users to request (and, to some extent, customize) deliverables and associate them to a Title.  | 
| Title | A composition of the content item or unit expected to be delivered in the Order. |
| Tasks |Machine-driven (SDVI) or user-driven actions needed to be taken into action in order to move an Order to completion.| 

## OMS Interface Terms

### Dashboard

| Field             | Definition                                                                          |
| ----------------- | ----------------------------------------------------------------------------------- |
| Awaiting Assets   | All pending Orders that are still expecting source assets for deliverable creation. |
| Not workable      | Orders in this state are awaiting assets to be worked on.                           |
| Processing        | Orders in this state are being processed for delivery.                              |
| Awaiting Delivery | All Orders in a ready for delivery state.                                           |
| Delivered         | All Orders that have completed edit or delivery.                                    |

### Orders List View

| Field       | Definition                                                                                                                                                                                    |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Order ID    | Systemically generated GUID of an Order.                                                                                                                                                      |
| Description | User entered (string) text that describes the order.                                                                                                                                          |
| Platform    | The actual end-to-end system (content delivery network) the content on the Order is going to be on.                                                                                           |
| Distributor | The content distributor. It can be a film or content production studio, content rights owner or an entity that has the right licenses to disseminate content to large and targeted audiences. |
| Version ID  | The version release identification code.                                                                                                                                                      |
| Created     | The date the Order is created.                                                                                                                                                                |
| Due Date    | The estimated date of delivery.                                                                                                                                                               |
| Cycle Date  | The calendar month the Order is expected to be delivered and fulfilled.                                                                                                                       |
| Status      | The stages through which your tasks progress.                                                                                                                                                 |
| Sources     | The assets required to fulfill the Order.                                                                                                                                                     |

### Orders - Title Card

| Field                | Definition                                                                                                                                                                                    |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Order ID             | A systemically generated GUID of an Order.                                                                                                                                                    |
| PO Number            | The purchase order number.                                                                                                                                                                    |
| Version ID           | The version release identification code.                                                                                                                                                      |
| Platform             | The actual end-to-end system (content delivery network) the content on the Order is going to be on.                                                                                           |
| Distributor          | The content distributor. It can be a film or content production studio, content rights owner or an entity that has the right licenses to disseminate content to large and targeted audiences. |
| Due Date             | The estimated date of delivery.                                                                                                                                                               |
| Cycle Date           | The calendar month the Order is expected to be delivered and fulfilled.                                                                                                                       |
| License Window (UTC) | The period where content is protected.                                                                                                                                                        |
| Updated at           | The date the Order item is last updated in the workflow.                                                                                                                                      |

### Task Management – Pending Assets Tasks 

| Field       | Definition                                                                                                                                                                                    |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Due Date    | The estimated date of delivery.                                                                                                                                                               |
| Age         | The task age or how long task has been worked.                                                                                                                                                |
| Title Name  | The label name of content.                                                                                                                                                                    |
| Resolution  | The video quality.                                                                                                                                                                            |
| Asset Name  | The label name of the asset.                                                                                                                                                                  |
| Platform    | The actual end-to-end system (content delivery network) the content on the Order is going to be on.                                                                                           |
| Distributor | The content distributor. It can be a film or content production studio, content rights owner or an entity that has the right licenses to disseminate content to large and targeted audiences. |
| Status      | The stages through which your tasks progress.                                                                                                                                                 |
| ETA         | Estimated time of arrival.                                                                                                                                                                    |
| Assignee    | The OMS user assigned to manage Task.                                                                                                                                                         |

### Task Management – Compliance Queue 

| Field           | Definition                                                  |
| --------------- | ----------------------------------------------------------- |
| Order #         | Systemically generated GUID assigned to a specific Order.   |
| Title Name      | The label name of content.                                  |
| Airline         | The airline system the assets are going to be delivered to. |
| Created         | Date and time the Order is due.                             |
| Status          | The stages through which your tasks progress.               |
| Status Duration | Duration (number of hours) the task is in a specific state. |
| Screening       | An active link to a playable asset.                         |

### Task Management: Processing Exceptions 

| Field               | Definition                                                                                          |
| ------------------- | --------------------------------------------------------------------------------------------------- |
| Due Date            | The estimated date of delivery.                                                                     |
| Media fulfilled     | The period of time media content is fulfilled                                                       |
| JIRA                | The JIRA ticket                                                                                     |
| Title Name          | The label name of content.                                                                          |
| Version             | The asset version.                                                                                  |
| Platform            | The actual end-to-end system (content delivery network) the content on the Order is going to be on. |
| Compliance Required | Check icon ``🗸`` for Yes; <br>`X` icon for No.                                                      |

### Task Management – Manual Delivery Tasks 

| Field              | Definition                                                                                          |
| ------------------ | --------------------------------------------------------------------------------------------------- |
| Due Date           | The estimated date of delivery.                                                                     |
| Title Name         | The label name of content.                                                                          |
| Resolution         | The video quality.                                                                                  |
| Version            | The asset version.                                                                                  |
| Platform           | The actual end-to-end system (content delivery network) the content on the Order is going to be on. |
| Media filename     | The actual filename of the asset media in S3.                                                       |
| Subtitle filenames | The actual filename(s) of the subtitle media in S3.                                                 |
| Status             | The stages through which your tasks progress.                                                       |
| Assignee           | The OMS user assigned to manage Task.                                                               |





