Skip to main content

Zou

Zou is the database of the CGWire ecosystem.

It allows us to store the production data for movies including sequences, shots, assets, users, file templates, custom entities...

Configuration

zou-deploy

zou-deploy is the repository that hold scripts to automatically fill the Zou database with users, projects and other entities.

It relies on .csv and JSON configuration files to fill the database.

File tree

Each path of the pipeline is defined by a JSON configuration that describes how a path for a certain entity should be built.

An example is for published files:

{
"output": {
"mountpoint": "P:",
"root": "",
"folder_path": {
"shot": "<Project>/shots/<Sequence>/<Shot>/<TaskType>_<Name>/publish/v<Version>/<OutputType>",
"asset": "<Project>/assets/<AssetType>/<Asset>/<TaskType>_<Name>/publish/v<Version>/<OutputType>",
"sequence": "<Project>/sequences/<Sequence>/<TaskType>_<Name>/publish/v<Version>/<OutputType>",
"scene": "<Project>/scenes/<Sequence>/<Scene>/<TaskType>_<Name>/publish/v<Version>/<OutputType>",
"rushes": "<Project>/rushes/<Resolution>/<Sequence>/<Shot>",
"style": "lowercase"
},
"file_name": {
"shot": "<Project>_<Sequence>_<Shot>_<TaskType>_<Name>_publish_v<Version>",
"asset": "<Project>_<AssetType>_<Asset>_<TaskType>_<Name>_publish_v<Version>",
"sequence": "<Project>_<Sequence>_<TaskType>_<Name>_publish_v<Version>",
"scene": "<Project>_<Sequence>_<Scene>_<TaskType>_<Name>_publish_v<Version>",
"style": "lowercase"
}
}
}
tip

See the documentation about file trees to see which entities you can use.

caution

Make sure to add a nas field in the data field of a project. This will contain the NAS where the project is located. (this is added in zou-deploy)

For example:

{
"id": "4142bd7f-d92a-44f0-a5e8-7968b2ed6532",
"name": "MACULA",
"data": "{\"nas\": \"ana\"}"
}

It is used when rendering on the render farm.

Direct network access to files

If you want to put a project on a network drive and access the files directly, change the mountpoint key in the file template to //server/... like:

{
"working": {
"mountpoint": "//marvin/WIP/PIPELINE",
"root": ""
// ...
}
}

(example: file_tree_marvin.json for FranceTV special project)

API

REST

Zou has a REST API available at http://kitsu.prod.silex.artfx.fr/api/ (for example).

See the available routes in the documentation.

GraphQL

Because we forked Zou, we added a GraphQL API using graphene-python. It is very useful for front-end data fetching since you can query what you want.

Use the /api/graphql url to get an intergrated GraphiQL editor:

Otherwise you can use the great GraphQL IDE called Altair client.

info

Note that the GraphQL API is for data fetching only for now. Support for mutations could be added in the future.