This is a boilerplate git repository for creating new ayon addons.
All addons must have server code which is located in server
subfolder. Server side addon definition is entrypoint for each addon. Can define settings, frontend, custom endpoints, etc. Root by default contains create_package.py
which is a helper script that prepares package structure for server. The script may be modified or expanded by needs of addon (e.g. when frontend needs to be build first). File with version.py
is kept at the root and is copied to server and client code with script -> The reason is to make sure both parts contain same version.
Default base of server addon is __init__.py
file in root of repository which define addon for server. Most of addons have settings that's why settings.py
is by default in the structure. Settings can be changed to folder/module when more than one file is needed.
Addons may have their frontend. By default, server looks into /frontend/dist
for index.html
and addon have to have specified scopes where the frontend should be showed (check documentation of frontend_scopes
on server addon implementation for more information).
Root of addon may contain subfolder private
where can be added files that are accessible via ayon server. Url schema is {server url}/addons/{addon name}/{addon_version}/private/*
. By default it is place where client zip file is created (during package creation). The endpoint requires authorized user.
Public files works the same as private files but does not require authorized user. Subfolder name is public
. Url schema is {server url}/addons/{addon name}/{addon_version}/public/*
. Endpoint is helpful for images/icons or other static content.
Addons that have code for desktop client application should create subfolder client
where a client content is located. It is expected the directory has only one file or folder in it which is named the way how should be imported on a client side (e.g. ayon_core
).
├─ server
│ ├─ __init__.py
│ └─ settings.py
│
├─ frontend
│ └─ dist
│ └─ index.html
│
├─ public
│ └─ my_icon.png
│
├─ private
│ └─ kittens.png
│
├─ client
│ ├─ ayon_core
│ │ ├─ pipeline
│ │ ├─ lib
│ │ └─ ...
│ └─ pyproject.toml
│
├─ create_package.py
├─ LICENSE
├─ package.py
└─ README.md