diff --git a/agentos/src/App.tsx b/agentos/src/App.tsx
index d9e3354..8d3bccb 100644
--- a/agentos/src/App.tsx
+++ b/agentos/src/App.tsx
@@ -1,4 +1,4 @@
-import { Home as HomeIcon, Activity, Shield, Boxes, FlaskConical } from "lucide-react";
+import { Home as HomeIcon, Activity, Shield, Boxes, FlaskConical, Settings as SettingsIcon } from "lucide-react";
import { NavLink, Navigate, Outlet, Route, Routes, useLocation, useNavigate } from "react-router-dom";
import { HomePage } from "./components/HomePage.tsx";
import { PoliciesPage } from "./components/PoliciesPage.tsx";
@@ -6,6 +6,7 @@ import { EvalsPage } from "./components/EvalsPage.tsx";
import { ObservabilityTab } from "./components/observability/ObservabilityTab.tsx";
import { RegistryPage } from "./components/RegistryPage.tsx";
import { AgentDashboard } from "./components/AgentDashboard.tsx";
+import { SettingsPage } from "./components/SettingsPage.tsx";
import { Separator } from "./components/ui/separator.tsx";
import { useAgents } from "./context/AgentsContext.tsx";
import { cn } from "./lib/cn.ts";
@@ -20,6 +21,7 @@ export default function App() {
-
-
+ Your agent operations at a glance
+ {(me?.groups ?? []).length > 0 && (
+
+ {me!.groups.map((g) => (
+
Describe the task. Your agents will handle it.
+ {/* Quick actions */} +
- Session lasts 7 days · cookie-based · cleared with{" "}
- /api/logout
+ Secured by Okta via Keycloak · session cookie set after sign-in
{p.rego_content}
@@ -510,17 +536,19 @@ function RegoPoliciesModal({
)}
+ The agent is visible to this group; only you (or an admin) can edit or delete it. +
+No settings are available for your role.
+ )} + +
+ Keys the ComputerAgent server accepts as Bearer tokens. Pass one to the SDK via{" "}
+ harness_token= or the{" "}
+ COMPUTERAGENT_HARNESS_TOKEN env var. Keys are stored hashed and shown only once.
+
+ You hold no roles to grant. Ask an admin, or sign in with a role assigned. +
+ ) : ( ++ Permissions come from the selected roles. The group scopes what the key can see (ownership). +
++ Groups and membership are managed in Okta / Keycloak — this view is read-only. A user's{" "} + group (team) and roles (capability) are independent, so one group can contain members with + different roles. To create or change groups, use the Keycloak console. +
+ +view-realm). Set{" "}
+ KEYCLOAK_ADMIN_CLIENT_ID/SECRET and enable its service account in
+ Keycloak.
+ + Roles map a Keycloak role name (assigned via Okta group membership) to a set of permissions. Okta decides{" "} + who has a role; this screen decides what the role can do. A new Okta group needs its + permissions defined here once. +
+ + {/* Create */} +