diff --git a/config/permissions/pending_requests.json b/config/permissions/pending_requests.json index 2fa92ff..41b43a3 100644 --- a/config/permissions/pending_requests.json +++ b/config/permissions/pending_requests.json @@ -570,5 +570,27 @@ "framework.command.execute" ], "timestamp": 36524.109265649 + }, + "870510a6": { + "plugin_name": "example_plugin", + "permissions": [ + "plugin.example.read", + "plugin.example.write", + "plugin.example.execute", + "framework.event.subscribe", + "framework.command.execute" + ], + "timestamp": 36655.276166328 + }, + "42d38ced": { + "plugin_name": "sentinel", + "permissions": [ + "plugin.sentinel.read", + "plugin.sentinel.write", + "plugin.network.access", + "framework.event.subscribe", + "framework.command.execute" + ], + "timestamp": 36655.279458412 } } \ No newline at end of file diff --git a/config/plugins/commands.yaml b/config/plugins/commands.yaml index 052d2ec..1a3a280 100644 --- a/config/plugins/commands.yaml +++ b/config/plugins/commands.yaml @@ -101,7 +101,7 @@ commands: permissions: - framework.command.test source: internal -last_updated: 36524.082908878 +last_updated: 36655.235712682 plugin_commands: example_plugin: echo: *id001 diff --git a/config/services/network_routes.yaml b/config/services/network_routes.yaml index 2fb9d45..14a596f 100644 --- a/config/services/network_routes.yaml +++ b/config/services/network_routes.yaml @@ -1,5 +1,5 @@ http_port: 4200 -last_updated: 36524.106284503 +last_updated: 36655.277279818 plugin_routes: example_plugin: - methods: diff --git a/plugins/sentinel/__init__.py b/plugins/sentinel/__init__.py index c458605..da2b9df 100644 --- a/plugins/sentinel/__init__.py +++ b/plugins/sentinel/__init__.py @@ -103,6 +103,7 @@ class Plugin(PluginWebMixin): "enabled": n.get("enabled", True), "online": c.get("online", False), "system": c.get("system", {}), + "platform": c.get("platform", {}), "last_seen": c.get("last_seen", 0), "error": c.get("error", ""), }) @@ -186,6 +187,7 @@ class Plugin(PluginWebMixin): _NODE_CACHE[node.get("id", "")] = { "online": online, "system": sys_info or {}, + "platform": (sys_info or {}).get("platform", {}), "last_seen": time.time(), "error": err if not online else "", } @@ -225,6 +227,7 @@ class Plugin(PluginWebMixin): "enabled": n.get("enabled", True), "online": c.get("online", False), "system": c.get("system", {}), + "platform": c.get("platform", {}), "last_seen": c.get("last_seen", 0), "error": c.get("error", ""), }) diff --git a/plugins/sentinel/dashboard.html b/plugins/sentinel/dashboard.html index e531788..5b527c3 100644 --- a/plugins/sentinel/dashboard.html +++ b/plugins/sentinel/dashboard.html @@ -47,7 +47,8 @@ .node-card.offline { border-left:3px solid var(--error, #f44336); opacity:.7 } .node-card.flash { animation:card-flash .6s ease-out } @keyframes card-flash { 0%{background:var(--md-sys-color-surface-container-highest)} 100%{background:var(--md-sys-color-surface-container)} } - .node-name { font-weight:600; font-size:1rem; margin-bottom:4px } + .node-name { font-weight:600; font-size:1rem; margin-bottom:2px } + .node-sys { font-size:.75rem; color:var(--text-dim); margin-bottom:4px } .node-url { font-size:.75rem; color:var(--text-dim); margin-bottom:8px; word-break:break-all } .node-notes { font-size:.75rem; color:var(--text-dim); font-style:italic; margin-bottom:8px } .metric-row { display:flex; gap:12px; margin-bottom:8px } @@ -135,8 +136,11 @@ card = document.createElement('div'); card.className = 'node-card ' + (n.online ? 'online' : 'offline'); card.setAttribute('data-id', id); + var plat = n.platform || {}; + var sysInfo = (plat.system||'') + (plat.release ? ' ' + plat.release : '') + (plat.machine ? ' | ' + plat.machine : ''); card.innerHTML = '