Jets
A Jet is an application or a set of applications that can be managed independently on a server. It is not tied to any specific technology.
In Cetmix Tower, you define what can run using Jet Templates; a Jet is a concrete instance of that template on a given Server.
Examples of what a Jet can represent:
- An app running directly on the host
- A Docker/LXC container or a Kubernetes pod
- A set of containers running a set of apps that form a service
- An entire virtual machine, e.g. a Proxmox VM
- A single database in a database server
- Virtually anything that can be managed separately...
How to
Main concepts
- Template-based: Every Jet is created from a Jet Template, which defines its lifecycle (states, actions, flight plans, waypoints, dependencies). The template cannot be changed after creation.
- State and actions: A Jet has a current state (e.g. stopped, running). You change state by running actions, which can execute Flight Plans.
- Configuration: Jets are configured using variables (with fallback: Jet → Jet Template → Server → Global) and files .
- Waypoints: Waypoints let you save and restore a Jet's state and configuration. They can serve as a backup or a snapshot to return to later.
- Dependencies: A Jet can require other Jets (of certain templates) to be in specific states. Tower can create or reuse Jets automatically to satisfy those dependencies via Jet Requests.
- Transfer and clone: Jets can be transferred between servers. A Jet can be cloned on the same server or on another server (when the template allows it).
- Execution: On a Jet you can run Commands and Flight Plans, and view command logs and plan logs.
Feature availability
Jets is a new feature that may be currently available only for some Odoo versions.
Not available for your Odoo version yet? Contact us!
Access Rules
Note
Users can create Jets from the wizard if added in "Users" of the related template.
| Group | Action | Condition |
|---|---|---|
| User | R | User is added to "Users" and user is added to "Users" in the related Server |
| Manager | R | User is added to "Users" or "Managers" and user is added to "Users" or "Managers" in the related Server |
| Manager | CRU | User is added to "Managers" and user is added to "Users" or "Managers" in the related Server |
| Manager | CRUD | User is added to "Managers" and the record is created by the user and user is added to "Users" or "Managers" in the related Server |
| Root | CRUD | Any record |
Info
CRUD stands for Create, Read, Update, Delete.
Jet Configuration
Jets are located under the Cetmix Tower > Jets > Jets menu.
Important
Field and tab visibility depend on the user's Access Level. Some tabs (e.g. Dependencies, Access, Waypoints, Scheduled Tasks) are only available to users with Manager and Root access levels.
Main Form
On the main form you set the Jet name, tags, linked Jet Template and Server, current state, URL (e.g. to the app interface), and partner. Use the Command and Flight Plan header buttons to run Commands and Flight Plans. The States and Actions tab shows available actions and (for managers) available states so you can trigger transitions.
Important
The Jet Template assigned to a Jet cannot be changed after creation.
Configuration
Configuration Variables for this Jet. Resolution order: Jet → Jet Template → Server → Global. Used when rendering Commands and Files on this Jet.
Variable Access Level
By default, the Access Level of the variable value is set to that of the Variable.
It is possible to change the Access Level only to a higher level.
Waypoints
Waypoints created for this Jet. Waypoints save and restore the Jet's state and configuration (backup/snapshot).
See the waypoint lifecycle documentation for detailed information on how to manage Jet waypoints.
Metadata
Developer mode
The Metadata tab is visible only in developer mode.
Jets have a metadata field: a JSON object for custom key-value data (versions, paths, flags, etc.). The field is read-only in the UI. Set or update it from Python code commands, Odoo automation, or the API using jet.update_metadata({...}) (merges with existing keys) or jet.write({"metadata": {...}}) (replaces the dict). Read it in commands or conditions via jet.metadata. Waypoints also have metadata; waypoint metadata is exposed in variables as tower.jet.waypoint.<key> when resolving in a jet context.
Dependencies
Depends on: other Jets this Jet requires (from the template's dependency definition). Serves dependencies: Jets that depend on this one.
Use Open to jump to the related Jets.
Access Roles
Access Roles: Users and Managers who can access or modify this Jet. Inherited from the template when the Jet is created; can be overridden per Jet.
Jet Logs
Server Logs linked to this Jet (e.g. to fetch application logs via a Command or File). Use Open on a log to open its full form.
Scheduled Tasks
Scheduled tasks linked to this Jet. They run Commands or Flight Plans on a schedule. Tasks are usually assigned from the Jet Template when the Jet is created.
Buttons
| Button | Description |
|---|---|
| Command | Run a Command on this Jet (hidden while an action is running). |
| Flight Plan | Run a Flight Plan on this Jet. |
| Command Logs | Command logs for this Jet. |
| Flight Plan Logs | Flight Plan logs for this Jet. |
| Files | Files linked to this Jet. |








