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)
46 lines
2.1 KiB
XML
46 lines
2.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data>
|
|
<!-- ─── Top-level menu ─────────────────────────────────────────── -->
|
|
<menuitem id="menu_compositor_root"
|
|
name="1B OS"
|
|
web_icon="one_os_compositor,static/img/icon.png"
|
|
sequence="60"/>
|
|
|
|
<!-- ─── Compositor → Open Shell ──────────────────────────────── -->
|
|
<menuitem id="menu_compositor_shell"
|
|
name="Open Compositor"
|
|
parent="menu_compositor_root"
|
|
action="action_compositor_shell"
|
|
sequence="10"/>
|
|
|
|
<!-- ─── Compositor → Apps ────────────────────────────────────── -->
|
|
<menuitem id="menu_compositor_apps"
|
|
name="Apps"
|
|
parent="menu_compositor_root"
|
|
action="action_compositor_app"
|
|
sequence="20"/>
|
|
|
|
<!-- ─── Compositor → Sessions ────────────────────────────────── -->
|
|
<menuitem id="menu_compositor_sessions"
|
|
name="Sessions"
|
|
parent="menu_compositor_root"
|
|
action="action_compositor_session"
|
|
sequence="30"/>
|
|
|
|
<!-- ─── Compositor → Audit Log ───────────────────────────────── -->
|
|
<menuitem id="menu_compositor_audit_log"
|
|
name="Audit Log"
|
|
parent="menu_compositor_root"
|
|
action="action_compositor_audit_log"
|
|
sequence="40"/>
|
|
|
|
<!-- ─── Compositor → Configuration ───────────────────────────── -->
|
|
<menuitem id="menu_compositor_config"
|
|
name="Configuration"
|
|
parent="menu_compositor_root"
|
|
groups="one_os_compositor.compositor_group_manager"
|
|
sequence="99"/>
|
|
</data>
|
|
</odoo>
|