Skip to content

Commit

Permalink
Merge branch 'main' into OP-7397_effect_categories
Browse files Browse the repository at this point in the history
  • Loading branch information
jakubjezek001 authored Jan 23, 2024
2 parents e8f58d9 + 40c1b95 commit 20ef7de
Show file tree
Hide file tree
Showing 126 changed files with 464 additions and 300 deletions.
63 changes: 63 additions & 0 deletions website/docs/addon_applications_admin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
id: addon_applications_admin
title: Applications and Tools
sidebar_label: Applications addon settings
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';


## Applications

In this section you can manage what Applications are available to your studio, locations of their executables, and their additional environments. In AYON context, each application that is integrated is also called a `Host` and these two terms will be used interchangeably in the documentation.

Each Host is made of two levels.
1. **Application group** - This is the main name of the application and you can define extra environments that are applicable to all versions of the given application. For example any extra Maya scripts that are not
version dependent, can be added to `Maya` environment here.
2. **Application versions** - Here you can define executables (per platform) for each supported version of
the DCC and any default arguments (`--nukex` for instance). You can also further extend its environment.

![settings_applications](assets/settings/applications_01.png)

### Environments

Please keep in mind that the environments are not additive by default, so if you are extending variables like
`PYTHONPATH`, or `PATH` make sure that you add themselves to the end of the list.

For instance:

```json
{
"PYTHONPATH": [
"my/path/to/python/scripts",
"{PYTHONPATH}"
]
}
```

### Adding versions

It is possible to add new version for any supported application. There are two ways of doing it.

1. **Add new executable** to an existing application version. This is a good way if you have multiple fully compatible versions of your DCC across the studio. Nuke is a typical example where multiple artists might have different `v#` releases of the same minor Nuke release. For example `12.2v3` and `12.3v6`. When you add both to `12.2` Nuke executables they will be treated the same in AYON and the system will automatically pick the first that it finds on an artist machine when launching. Their order is also the order of their priority when choosing which version to run if multiple are present.
![settings_applications](assets/settings/settings_addapplication.gif)

2. **Add version** in case you want this version to be selectable individually. This is typically used for bigger releases that might not be fully compatible with previous versions. Keep in mind that if you add the latest version of an Application that is not yet part of the official AYON release, you might run into problems with integration. We test all the new software versions for compatibility and most often, smaller or bigger updates to AYON code are necessary to keep everything running.
![settings_applications](assets/settings/settings_addappversion.gif)

## Tools

A tool in AYON is anything that needs to be selectively added to your DCC applications. Most often these are plugins, modules, extensions or similar depending on what your package happens to call it.

AYON comes with some major CG renderers pre-configured as an example, but these and any others will need to be changed to match your particular environment.

Their environment settings are split to two levels just like applications to allow more flexibility when setting them up.

In the image before you can see that we set most of the environment variables in the general MTOA level, and only specify the version variable in the individual versions below. Because all environments within pype setting will resolve any cross references, this is enough to get a fully dynamic plugin loading as far as your folder structure where you store the plugins is nicely organized.


In this example MTOA will automatically set the `MAYA_VERSION`(which is set by Maya Application environment) and `MTOA_VERSION` into the `MTOA` variable. We then use the `MTOA` to set all the other variables needed for it to function within Maya.
![tools](assets/settings/tools_01.png)

All the tools defined in here can then be assigned to projects. You can also change the tools versions on any project level all the way down to individual asset or shot overrides. So it is possible to upgrade you render plugin for a single shot, while not risking the incompatibilities on the rest of the project.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
id: project_settings_core
title: Core
sidebar_label: Core
id: addon_core_settings
title: Core addon settings
sidebar_label: Core addon settings
---

import ReactMarkdown from "react-markdown";
Expand All @@ -14,11 +14,31 @@ import versions from '@site/docs/assets/json/Ayon_addons_version.json'
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Project settings can have project specific values. Each new project is using studio values defined in **studio settings** but these values can be modified or overridden per project.


## General

Settings applicable to the full studio.

![core_settings](assets/core_settings.png)

Refer to Settings related to [Working with settings](../admin_settings) for more details.
### Studio Name
Full name of the studio (can be used as variable on some places)

### Studio Code
Studio acronym or a short code (can be used as variable on some places)

### Global environment variables
Globally applied environment variables that will be appended to any AYON process in the studio.

### Disk mapping
- Platform dependent configuration for mapping of virtual disk(s) on an artist's AYON machines before OP starts up.
- Uses `subst` command, if configured volume character in `Destination` field already exists, no re-mapping is done for that character(volume).

:::info
Project settings can have project specific values. Each new project is using studio values defined in **studio settings** but these values can be modified or overridden per project. Refer to Settings related to [Working with settings](admin_settings) for more details.
:::


## Tools
### Creator
Expand Down Expand Up @@ -138,18 +158,19 @@ Publish plugins used across all integrations.

A couple of settings make use of tags to customize the output.

| Tag Name | Description |
| ----------- | ----------- |
| `Add burnins` | Adds burnins with the `ExtractBurnin` plugin. |
| `Create review` | Creates a review from the output with the [`ExtractReview`](#extract-review) plugin. |
| `Add review to Ftrack` | Uploads the review to Ftrack. |
| `Add review to Shotgrid` | Uploads the review to Shotgrid. |
| `Add review to Kitsu` | Uploads the review to Kitsu. |
| `Delete output` | Deletes the output once its been processed by `ExtractBurnin` and [`ExtractReview`](#extract-review). |
| `Add slate frame` | Adds the slate frame. |
| `Skip handle frames` | If handles are present in the publish context, they will be ignored. |
| `Output as image sequence` | Outputs as an image sequence |
| `Do not add audio` | Skip any audio found in the publish context |
| Tag value to be used | Tag Name | Description |
| ----------- | ----------- | ----------- |
| burnin | `Add burnins` | Adds burnins with the `ExtractBurnin` plugin. |
| review | `Create review` | Creates a review from the output with the [`ExtractReview`](#extract-review) plugin. |
| ftrackreview | `Add review to Ftrack` | Uploads the review to Ftrack. |
| shotgridreview | `Add review to Shotgrid` | Uploads the review to Shotgrid. |
| kitsureview | `Add review to Kitsu` | Uploads the review to Kitsu. |
| syncsketchreview | `Add review to SyncSketch` | Uploads the review to SyncSketch. |
| delete | `Delete output` | Deletes the output once its been processed by `ExtractBurnin` and [`ExtractReview`](#extract-review). |
| slate-frame | `Add slate frame` | Adds the slate frame. |
| no-handles | `Skip handle frames` | If handles are present in the publish context, they will be ignored. |
| sequence | `Output as image sequence` | Outputs as an image sequence |
| no-audio | `Do not add audio` | Skip any audio found in the publish context |

### Extract OIIO Transcode
OIIOTools transcoder plugin with configurable output presets. Any incoming representation with `colorspaceData` is convertible to single or multiple representations with different target colorspaces or display and viewer names found in linked **config.ocio** file.
Expand Down
9 changes: 9 additions & 0 deletions website/docs/addon_nuke_admin.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,3 +83,12 @@ raw json.
## Gizmo Menu
You can add your custom toolbar menu into Nuke by setting your gizmo path and extending definitions in **Nuke -> Gizmo Menu**.
![Custom menu definition](assets/nuke-admin_gizmomenu.png)

## Creator Plugins

### Exposed Knobs
`ayon+settings://nuke/create/CreateWriteRender/exposed_knobs`

This list links knobs from the write node inside, to the publish group. The name of the knobs can be found when hovering over the knob, in the tooltip in bold.

![](assets/nuke-knob_name.png)
4 changes: 2 additions & 2 deletions website/docs/addon_nuke_artist.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,13 +184,13 @@ More about [workfiles](artist_tools_workfiles).

- **Open Workfile**

- You can [configure](project_settings/project_settings_nuke.md#create-first-workfile) Nuke to automatically open the last version, or create a file on startup.
- You can [configure](addon_nuke_admin.md#create-first-workfile) Nuke to automatically open the last version, or create a file on startup.
- ***Studio Settings* → Studio settings → [select Core] → Tools → Open last workfile on launch**
- ***Projects Settings*[select project][select Core] → Tools → Open last workfile on launch**

- **Nuke Color Settings**

- [Color setting](project_settings/project_settings_nuke.md) for Nuke can be found in:
- [Color setting](admin_colorspace.md#configuration-of-host-settings) for Nuke can be found in:
- ***Studio Settings* → Studio settings → [select Nuke] → Color Management (imageio)**
- ***Projects Settings*[select project][select Nuke] → Color Management (imageio)**
:::
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
id: project_settings_tray_publisher
id: addon_traypublisher_admin
title: Tray Publisher
sidebar_label: Tray Publisher
---
Expand All @@ -16,17 +16,16 @@ import TabItem from '@theme/TabItem';

Project settings can have project specific values. Each new project is using studio values defined in **studio settings** but these values can be modified or overridden per project.

![nuke_settings](assets/tray_publisher_settings.png)

Refer to Settings related to [Working with settings](../admin_settings) for more details.
Refer to Settings related to [Working with settings](admin_settings) for more details.

## Creator Plugins

Contains list of implemented families to show in middle menu in Tray Publisher. Each plugin must contain:

- **Family**
- **Product type**
- **Label**
- **Icon**
- **Extensions**

![example of creator plugin](assets/tray_publisher_creators.png)
![example of simple creator plugin](assets/admin_traypublisher_settings_simple.png)
![example of complex creator plugin](assets/admin_traypublisher_settings_simple_extensions.png)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
id: admin_server_installation
title: Installing Ayon server
sidebar_label: Server installation
id: admin_server_deployment
title: Server deployment
sidebar_label: Server deployment
---

import Tabs from '@theme/Tabs';
Expand Down Expand Up @@ -32,12 +32,13 @@ import TabItem from '@theme/TabItem';

1. Clone [ayon-docker repository](https://github.com/ynput/ayon-docker) to your local machine.
2. Tweak the `docker-compose.yml` file according to your requirements.
3. You may use the `.env` file to set environment variables (for example, for SSO configuration).
3. You may use the `.env` file to set environment variables.
4. Install addons to the `addons` directory.
5. Modify the default settings in the `settings/template.json` file (see provisioning page).
6. Run the stack using `docker compose up -d`
7. Run `make setup`
8. Once the setup is complete, navigate to [http://localhost:5000/](http://localhost:5000/) in your web browser and log in as `admin/admin`.
8. Once the setup is complete, navigate to [http://localhost:5000/](http://localhost:5000/)
9. If you haven't used `template.json` file to create a user, you will be prompted to create one now.

</ReactMarkdown>
</TabItem>
Expand All @@ -48,7 +49,7 @@ import TabItem from '@theme/TabItem';

1. Clone [ayon-docker repository](https://github.com/ynput/ayon-docker) to your local machine.
2. Tweak the `docker-compose.yml` file according to your requirements.
3. You may use the `.env` file to set environment variables (for example, for SSO configuration).
3. You may use the `.env` file to set environment variables.
4. Comment-out or delete the `- "/etc/localtime:/etc/localtime:ro"` line from the `docker-compose.yml` file.
5. Install addons to the `addons` directory.
6. Modify the default settings in the `settings/template.json` file (see provisioning page).
Expand All @@ -64,7 +65,7 @@ import TabItem from '@theme/TabItem';

1. Clone [ayon-docker repository](https://github.com/ynput/ayon-docker) to your local machine.
2. Tweak the `docker-compose.yml` file according to your requirements.
3. You may use the `.env` file to set environment variables (for example, for SSO configuration).
3. You may use the `.env` file to set environment variables.
4. Install addons to the `addons` directory.
5. Modify the default settings in the `settings/template.json` file (see provisioning page).
6. Run the stack using `docker compose up -d`
Expand All @@ -84,4 +85,4 @@ If you are using our official docker images and docker compose for AYON server d
```shell
docker pull ynput/ayon:latest #replace with corresponding image version if you don't want latest
docker compose up -d --build
```
```
67 changes: 12 additions & 55 deletions website/docs/admin_server_provisioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,50 +38,9 @@ settings/
The `template.json` file contains a dictionary with several optional keys that allow you to
customize various aspects of your Ayon server. The available keys are:

- `addons`
- `settings`
- `secrets`
- `users`
- `roles`

### Addons

The `addons` key allows you to specify the production versions of addons that should be enabled on your Ayon server. The value of this key is a dictionary containing the addon names as keys and their respective version numbers as values.

Example:

```json
"addons": {
"ftrack": "1.0.0",
"example": "1.0.0"
}
```

In this example, two addons, `ftrack` and `example`, will be enabled with version `1.0.0`.

### Settings

The `settings` key is used to specify particular settings for an addon.
It is possible to configure multiple versions of each addon using this key.
The value of this key is a dictionary containing the addon names as keys,
and another dictionary as values with the addon version number as the key
and the settings for that version as the value.

Example:

```json
"settings": {
"ftrack": {
"1.0.0": {
"server_url": "https://example.ftrack.com"
}
}
}
```

In this example, the `ftrack` addon's version `1.0.0` is configured with a custom `server_url` setting.
Multiple versions of the same addon can be configured by adding additional
version numbers with their respective settings within the addon dictionary.
- `accessGroups`

### Secrets

Expand All @@ -101,13 +60,13 @@ In this example, a `secret_api_key` is stored within the `secrets` key.
This secret can be accessed by the server and addons, but will not be exposed to the users.


## Roles
## Access groups

User roles define the level of access and permissions a user has within a project.
User access groups define the level of access and permissions a user has within a project.
Each role allows whitelisting certain rights to perform specific actions,
such as reading, creating, updating, and deleting project resources.

If not provided, default roles "artist", "viewer" and "editor" are created.
If not provided, default access groups "artist", "viewer" and "editor" are created.

### Role definition example

Expand All @@ -116,7 +75,7 @@ This role grants users the ability to read and update subfolders,
but only if the user has tasks assigned on a parent folder.

```json
"roles" : [
"accessGroups" : [
{
"name": "artist",
"data": {
Expand Down Expand Up @@ -211,29 +170,27 @@ Represents the user's password. This field is required for authentication purpos
Contains the API key associated with service users.
This key is used when a service interacting with the server through the API.

#### `defaultRoles` (array of strings)
#### `defaultAccessGroups` (array of strings)

Lists the roles assigned to the user on new projects.
These roles determine the user's privileges and access levels within a project.
Lists the access groups assigned to the user on new projects.
These access groups determine the user's privileges and access levels within a project.

Example:

```json
"defaultRoles": ["artist"]
"defaultAccessGroups": ["artist"]
```

#### `roles`
#### `accessGroups`

Lists the roles assigned to the user on particular projects.
Lists the access groups assigned to the user on particular projects.

Example:

```json
"roles": {
"accessGroups": {
"example_project1": ["artist"],
"example_project2": ["artist", "viewer"]
}
```



7 changes: 0 additions & 7 deletions website/docs/admin_server_services.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,6 @@ worker:
- "AYON_SERVER_URL=https://ayon.example.com"
```
:::important Server URL
Make sure to use an IP address that is accessible from the host machine for the `AYON_SERVER_URL` environment variable,
as services are spawned outside the Docker stack and cannot use the Docker DNS resolver.
:::


Troubleshooting
---------------
Expand Down Expand Up @@ -95,4 +89,3 @@ docker stop <container_id>

Since the containers are started with the `--remove` flag, they will be automatically removed once they are stopped.


2 changes: 1 addition & 1 deletion website/docs/admin_settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_label: Working with settings
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

AYON stores all of its settings and configuration in the mongo database. To make the configuration as easy as possible we provide a robust GUI where you can access and change everything that is configurable
AYON stores all of its settings and configuration in the database. To make the configuration as easy as possible we provide a robust GUI where you can access and change everything that is configurable

**Settings** GUI can be started from the tray menu *Admin -> Studio Settings*.

Expand Down
Loading

0 comments on commit 20ef7de

Please sign in to comment.