Policy in the Portal
Write your organization's Levee policy in the Vediram Portal and deliver it to every connected computer
If your computers are connected to Vediram Cloud, you write Levee policy once in the Vediram Portal and every signed-in Levee user receives it within minutes. The Portal gives you a form for each section and produces the same policy you could write by hand in policy.json. For the underlying model, read How Policy Works first.
What do I need before I start?
- Your computers must be connected to Vediram Cloud. See Connecting to Vediram Cloud.
- You need the admin role in your Vediram organization. The Policies page is visible only to users who can edit policy.
- Users on each computer must be signed in to Vediram Cloud in the Levee app (Settings > Vediram Cloud > Sign in). Policy is downloaded with the signed-in user's identity.
Roles
| Role | Can do |
|---|---|
| admin | View and edit policies, manage users, manage the organization, view and export audit data, manage model catalogs and assignments |
| viewer | Use Levee and view the observability dashboard. Cannot edit policy or export audit data. |
Open the policy editor
- Sign in to the Vediram Portal.
- Go to AI agents > Policies.
- Select an existing policy and choose Edit, or choose New policy.
Each policy has an Overview page and one page per section. Save each section with Save before moving to the next.
Which policy is in force?
The policy you last created or saved. Your organization has one active policy for Levee, and saving any policy makes it the active one for the whole organization. Every signed-in Levee user receives it at their next sync.
Keep this in mind when you experiment: saving a draft makes it live. To test a change on one computer first, apply the cloud-format document locally with levee policy sync --file (see How Policy Works) on a computer that is not signed in to Vediram Cloud.
Section reference
General
| Field | What it controls |
|---|---|
| Name | A display name for the policy. Shown to users in the Levee app as Policy "<name>" applied. |
| Targets | Which Vediram products the policy applies to. Include levee. |
| Egress default | The default web access decision: deny (recommended) or allow. |
| Allowed hosts | Host names the agent may reach over HTTPS (port 443). Enter bare host names such as learn.microsoft.com. Use the HTTP section for wildcards, other ports, method filters or TLS inspection. |
| Forward audit telemetry to the cloud | Off by default. When on, computers send their audit events to Vediram Cloud so they appear under AI agents > Observability. The local audit trail is kept either way. |
Container & Runtime
| Field | policy.json key | Notes |
|---|---|---|
| Memory limit (MB) | container.memoryLimitMb | Default 4096. Applies when a project starts. |
| Environment variables | container.environmentVariables | Extra variables set in every sandbox. Never put secrets here. |
| Base image | container.baseImage | The sandbox image the computers download. Leave empty to use the image that matches the installed Levee version. See Container Settings. |
| Default agent tool | container.defaultAgentTool | For example claude-code or codex-cli. When set, users cannot change their preferred agent. |
| Provisioning enabled | runtimeProvisioning.enabled | Whether Levee downloads the sandbox image automatically. |
| Ring | runtimeProvisioning.ring | stable or preview. |
| Default flavor | runtimeProvisioning.defaultFlavor | base. |
| Disk headroom (bytes) | runtimeProvisioning.diskHeadroomBytes | Free space that must remain after download. Default 20 GiB. |
| Download timeout (s) | runtimeProvisioning.downloadTimeoutSeconds | Default 1800. |
| Max retries | runtimeProvisioning.maxRetries | Default 3. |
| Manifest base URL | runtimeProvisioning.manifestBaseUrl | Change only to point at an internal mirror. See Container Runtime. |
See Container Settings for details.
HTTP
Per-site web access rules. Each rule has:
| Field | Meaning |
|---|---|
| Domain | example.com or *.example.com |
| Ports | Default 443 |
| Action | Allow or Deny |
| Methods | Leave empty for all methods, or pick specific ones (for example GET and HEAD for read-only access) |
| Inspect | Turn on TLS inspection for this host |
The Default toggle sets the decision for sites no rule matches. These rules are combined with the Allowed hosts list from the General section; a rule for a host overrides a simple allowed-hosts entry for the same host.
The Portal offers the Allow and Deny actions. Rules that pause a request for the user's approval (the escalate action) are available when you write policy.json directly. See Web Access.
ODBC
Database access. Default applies to any data source not listed. Add data source creates a rule with Alias (the name the agent sees), Host DSN (the data source on the computer), Allowed verbs, Denied verbs, table allow and deny lists, Max rows / query and Query timeout (s). Dangerous patterns are query fragments that are always blocked; the list starts with safe defaults. See Database Access.
Search
| Field | Meaning |
|---|---|
| Default provider | brave, linkup or tavily |
| Allowed providers | Must include the default provider |
| Max queries / session | Default 50 |
| Max query length | Default 256 characters |
| Prohibited terms | Regular expressions that block a query |
| Approval mode | Choose per-query |
| Decision timeout (s) | How long a query waits for the user's decision. Default 120. |
| Provider keys | The name of the environment variable on each computer that holds the provider's API key. Never the key itself. |
See Web Search.
Microsoft 365 (Preview)
Rules for Word, Excel, PowerPoint and Outlook operations: the app, the files the rule covers, the operations allowed, scopes (ranges, write limits, search folders, draft recipients, result and calendar limits) and whether the user must approve. See Microsoft 365.
Fields Levee does not use
Current Levee versions ignore the Connectors and SMB sections, and the UI and approval settings in General. Values you enter there have no effect on Levee computers.
How do computers receive policy?
The Levee app fetches the active policy every 5 minutes while it runs, and the computer keeps its current policy whenever the download fails. In detail:
- The app checks for a new policy at launch, when it reconnects to the Levee service, every 5 minutes while it runs, and when the user clicks Sync now in Settings.
- The app shows the outcome in Settings under Vediram Cloud:
Policy "<name>" applied,Policy up to date, or an error. - Only changed policies are downloaded; an unchanged policy costs a single small request.
- If the computer is offline, the user is signed out, or the download fails, the computer keeps the policy it already has. A policy is never half-applied.
- The downloaded policy is merged into the computer's
policy.jsonusing the rules in How Policy Works. Web access always comes from the cloud policy.
A computer whose user never signs in to Vediram Cloud keeps its local
policy.json. For computers that must never depend on a user signing in (shared or offline machines), deploypolicy.jsonas a file instead.
Model access through the Vediram LLM Gateway
If your organization uses the Vediram LLM Gateway, the models each user may use, and their budgets, are managed in the Portal under AI agents > LLM Catalogs and LLM Assignments. The computer-side settings that route the agent to the gateway are described in Model Access.
Checking delivery
On a computer:
levee policy show
In the Levee app, Settings > Vediram Cloud shows the name of the last policy applied. The service also records every reload in the audit trail as a policy reload event.