Includes:
- compositor.app, compositor.session, compositor.session.app, compositor.audit.log models
- /web/compositor/{token,apps,launch,audit} HTTP controllers with JWT (HS256)
- CompositorService OWL service (reusable via useService('compositor'))
- CompositorCanvas OWL component (reusable canvas wrapper)
- Security: compositor_group_user, compositor_group_manager groups + ir.access.csv rules
- 5 demo apps pre-loaded (gnome-calculator, xterm, gtk4-demo, glxgears, featherpad)
- Audit log capturing JWT issuance + app launch events
- Stub mode: launching apps returns a stub SurfaceHandle when proxy isn't connected
- Tested against Odoo 20 + PostgreSQL 17
Author: 1bspace.com
Parent company: 1B Global
License: Proprietary (1B Space internal use)
73 lines
3.5 KiB
XML
73 lines
3.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data noupdate="1">
|
|
<!-- A few common Linux apps pre-loaded for dev/testing.
|
|
These will only launch if the binary exists on the proxy host. -->
|
|
|
|
<record id="compositor_app_xterm" model="compositor.app">
|
|
<field name="name">XTerm</field>
|
|
<field name="app_id">xterm</field>
|
|
<field name="executable">/usr/bin/xterm</field>
|
|
<field name="description">Standard X11 terminal emulator. Requires XWayland.</field>
|
|
<field name="memory_limit_mb">256</field>
|
|
<field name="cpu_quota_percent">100</field>
|
|
<field name="tasks_max">64</field>
|
|
<field name="sandbox_network">False</field>
|
|
<field name="sandbox_gpu">False</field>
|
|
<field name="color">#000000</field>
|
|
</record>
|
|
|
|
<record id="compositor_app_gnome_calculator" model="compositor.app">
|
|
<field name="name">GNOME Calculator</field>
|
|
<field name="app_id">gnome-calculator</field>
|
|
<field name="executable">/usr/bin/gnome-calculator</field>
|
|
<field name="description">Standard GNOME calculator. Wayland-native.</field>
|
|
<field name="memory_limit_mb">256</field>
|
|
<field name="cpu_quota_percent">100</field>
|
|
<field name="tasks_max">64</field>
|
|
<field name="sandbox_network">False</field>
|
|
<field name="sandbox_gpu">True</field>
|
|
<field name="color">#3584e4</field>
|
|
</record>
|
|
|
|
<record id="compositor_app_gtk4_demo" model="compositor.app">
|
|
<field name="name">GTK4 Demo</field>
|
|
<field name="app_id">gtk4-demo</field>
|
|
<field name="executable">/usr/bin/gtk4-demo</field>
|
|
<field name="description">GTK4 widget demo. Wayland-native. Good for testing GL + alpha.</field>
|
|
<field name="memory_limit_mb">512</field>
|
|
<field name="cpu_quota_percent">200</field>
|
|
<field name="tasks_max">128</field>
|
|
<field name="sandbox_network">False</field>
|
|
<field name="sandbox_gpu">True</field>
|
|
<field name="color">#6f42c1</field>
|
|
</record>
|
|
|
|
<record id="compositor_app_glxgears" model="compositor.app">
|
|
<field name="name">GLX Gears</field>
|
|
<field name="app_id">glxgears</field>
|
|
<field name="executable">/usr/bin/glxgears</field>
|
|
<field name="description">Mesa GL demo. Tests GPU rendering + DMA-BUF path. Requires XWayland.</field>
|
|
<field name="memory_limit_mb">256</field>
|
|
<field name="cpu_quota_percent">200</field>
|
|
<field name="tasks_max">64</field>
|
|
<field name="sandbox_network">False</field>
|
|
<field name="sandbox_gpu">True</field>
|
|
<field name="color">#ff6b35</field>
|
|
</record>
|
|
|
|
<record id="compositor_app_featherpad" model="compositor.app">
|
|
<field name="name">FeatherPad</field>
|
|
<field name="app_id">featherpad</field>
|
|
<field name="executable">/usr/bin/featherpad</field>
|
|
<field name="description">Lightweight Qt text editor. Wayland-native.</field>
|
|
<field name="memory_limit_mb">256</field>
|
|
<field name="cpu_quota_percent">100</field>
|
|
<field name="tasks_max">64</field>
|
|
<field name="sandbox_network">False</field>
|
|
<field name="sandbox_gpu">True</field>
|
|
<field name="color">#28a745</field>
|
|
</record>
|
|
</data>
|
|
</odoo>
|