Skip to content

Cloud, security, data & runtime tools

Cloud advisory, security ops, project intelligence, reporting, backups, data retention, runtime config, and verifiable intent.

This page documents the Revka tools that advise on cloud and security work, turn project data into reports, manage backups and data retention, change runtime configuration on the fly, and verify commerce-gated intent: cloud_ops, cloud_patterns, security_ops, the vulnerability scan parser, project_intel, report_template, backup, data_management, model_routing_config, model_switch, proxy_config, workspace, and vi_verify. Most are opt-in and config-gated — the tool only registers when you enable it in config.toml — and several are deliberately read-only advisory tools that analyze input without touching cloud resources, files, or money.

Use this page when you need the exact actions a tool accepts and the config keys that enable it. For the broader catalog see Tools overview. The config keys here are also covered in Config: provider, agent & routing and Config: gateway, memory, security & platform. Runtime-config tools mirror the config you would otherwise edit by hand — see the Configuration overview.

cloud_ops is a read-only cloud transformation advisory tool. It reviews infrastructure-as-code plans, assesses migration paths, analyzes costs, and checks an architecture against the AWS / Azure / GCP Well-Architected Framework pillars. It never creates or modifies cloud resources — it only returns analysis of the text you pass in.

[cloud_ops]
enabled = true
actionPurpose
review_iacReview an IaC plan (e.g. a Terraform plan)
assess_migrationAssess a migration path for a workload
cost_analysisAnalyze billing / cost data
architecture_reviewReview an architecture against Well-Architected pillars

Fields: input (string, required) — the IaC plan text, architecture description, or billing data; cloud (optional) — aws, azure, or gcp.

{ "action": "review_iac", "input": "<terraform plan text>", "cloud": "aws" }

cloud_patterns is a cloud pattern library. Given a workload description it suggests applicable cloud-native architectural patterns (containerization, serverless, database modernization, and so on). It registers alongside cloud_ops under the same cloud_ops.enabled = true gate.

Fields: workload (string, required) — the workload description; cloud (optional) — target provider.

{ "workload": "legacy monolithic Java ERP system, 500 users, needs 99.9% uptime" }

security_ops is the operations tool for managed cybersecurity services (MCSS). It triages alerts, runs playbooks, parses vulnerability output, generates reports, lists playbooks, and reports alert metrics.

[security_ops]
enabled = true
actionPurposeKey fields
triage_alertTriage a security alertalert (object: type, severity, source, description)
run_playbookRun a response playbook stepplaybook, step (0-based index)
parse_vulnerabilityParse raw scan output into findingsscan_output
generate_reportGenerate a security reportreport_type
list_playbooksList available playbooks
alert_statsReturn alert metrics
{ "action": "triage_alert", "alert": { "type": "brute_force", "severity": "high", "source": "firewall" } }

The vulnerability scan parser (used by security_ops’s parse_vulnerability action) reads scan output from Nessus, Qualys, and generic CVSS JSON formats and turns it into structured findings. It computes an effective priority score that adjusts the raw CVSS for context — +2.0 when the asset is internet-facing and +1.0 when it is production — capped at 10.0.

Each Finding carries cvss_score (0–10), internet_facing (bool), and production (bool, default true). CVSS scores map to severity buckets:

SeverityCVSS
critical≥ 9.0
high≥ 7.0
medium≥ 4.0
low> 0.0
informational0

project_intel is a read-only project delivery intelligence tool. It generates status reports, detects delivery risks, drafts client updates, summarizes sprints, and estimates effort from project data you supply.

[project_intel]
enabled = true
default_language = "en"
risk_sensitivity = "medium" # low | medium | high
actionPurpose
status_reportGenerate a delivery status report
risk_detectionDetect delivery risks
client_updateDraft a client-facing update
sprint_summarySummarize a sprint
effort_estimateEstimate remaining effort

Fields: data (object) — the project data to analyze; language (optional) — output language, defaulting to project_intel.default_language. risk_sensitivity controls how aggressively risk_detection flags issues.

{ "action": "risk_detection", "data": { "tasks": [], "deadline": "2026-07-01" } }

report_template renders a named report template with your variables substituted. It registers alongside project_intel (same project_intel.enabled = true gate).

Fields: template (required), variables (object), language (optional, default en — one of en, de, fr, it).

templateRenders
weekly_statusWeekly status report
sprint_reviewSprint review
risk_registerRisk register
milestone_reportMilestone report
{ "template": "weekly_status", "variables": { "team": "Backend", "week": "2026-W24" }, "language": "en" }

backup creates, lists, verifies, and restores workspace backups.

[backup]
enabled = true # default
# include_dirs = [...] # directories captured in each backup
# max_keep = ... # retention: keep the N most recent backups
commandPurpose
createCreate a new backup
listList existing backups
verifyVerify a backup’s integrity (needs name)
restoreRestore a named backup (needs name)

max_keep enforces retention — older backups beyond the limit are pruned. include_dirs controls which workspace directories are captured.

{ "command": "restore", "name": "backup-20260601" }

data_management reports storage statistics and purges aged workspace data (logs, session history, results). It is disabled by default and gated on data_retention.

[data_retention]
enabled = true
# retention_days = ...
commandPurpose
statsShow storage statistics
listList retained data
purgeDelete data older than older_than_days
{ "command": "purge", "older_than_days": 90 }

These tools change live runtime settings without restarting the daemon. They are the agent-facing counterpart to editing config.toml directly.

model_switch switches the AI model for the current conversation immediately.

actionPurpose
getShow the current provider/model
list_providersList available providers
list_modelsList models for a provider
setSwitch to provider + model now
{ "action": "set", "provider": "anthropic", "model": "claude-opus-4-5" }

model_routing_config manages the default model, scenario-based routes, classification rules, and delegate sub-agent profiles at runtime. It is always registered. Where model_switch changes the active model for one conversation, model_routing_config edits the persistent routing rules that map hint names to provider/model pairs (the [[model_routes]] config) and the delegate agent profiles.

actionPurpose
getRead the current routing config
set_defaultSet the default provider + model
add_routeAdd a named model route
remove_routeRemove a route
list_routesList configured routes
add_delegateAdd a delegate sub-agent profile
remove_delegateRemove a delegate profile
{ "action": "set_default", "provider": "openrouter", "model": "anthropic/claude-opus-4-5" }

For how routes and classification rules feed the agent loop, see Config: provider, agent & routing and Routing, reliability & tuning.

proxy_config manages Revka’s outbound proxy across three scopes — revka (Revka’s internal HTTP clients only), services (selected service keys/selectors), and environment (also exports process-wide HTTP_PROXY / HTTPS_PROXY / ALL_PROXY / NO_PROXY). It mirrors the [proxy] config section.

ScopeAffectsExports env vars
revkaRevka internal HTTP clientsNo
servicesOnly selected service keys/selectorsNo
environmentRuntime and process environmentYes

Actions: get, set, list_services, apply_env, disable, clear_env. Allowed proxy URL schemes are http, https, socks5, and socks5h. When scope = "services" you must supply a non-empty services list (concrete keys like provider.openai, tool.http_request, channel.telegram, or selectors like provider.*).

{ "action": "set", "enabled": true, "scope": "revka", "http_proxy": "http://127.0.0.1:7890", "https_proxy": "http://127.0.0.1:7890", "no_proxy": ["localhost", "127.0.0.1"] }

See Network deployment, Raspberry Pi & proxy for the deployment context.

For proxied or air-gapped networks, use this copy-paste sequence. Inspect first, discover valid keys, apply, verify, and roll back if behavior is wrong.

1. Inspect and discover.

{ "action": "get" }
{ "action": "list_services" }

Mode A — proxy only Revka internals (no process env exports):

{ "action": "set", "enabled": true, "scope": "revka", "http_proxy": "http://127.0.0.1:7890", "https_proxy": "http://127.0.0.1:7890", "no_proxy": ["localhost", "127.0.0.1"] }
{ "action": "get" }

Mode B — proxy only specific services:

{ "action": "set", "enabled": true, "scope": "services", "services": ["provider.openai", "tool.http_request", "channel.telegram"], "all_proxy": "socks5h://127.0.0.1:1080", "no_proxy": ["localhost", "127.0.0.1", ".internal"] }
{ "action": "get" }

Mode C — proxy the whole process environment (exports env vars):

{ "action": "set", "enabled": true, "scope": "environment", "http_proxy": "http://127.0.0.1:7890", "https_proxy": "http://127.0.0.1:7890", "no_proxy": "localhost,127.0.0.1,.internal" }
{ "action": "apply_env" }
{ "action": "get" }

Rollback patterns:

{ "action": "disable" } // disable proxy (safe default)
{ "action": "disable", "clear_env": true } // disable and force-clear exported env vars
{ "action": "clear_env" } // keep proxy enabled, clear env exports only

If a services-scope change fails with proxy.scope='services' requires a non-empty proxy.services list, set at least one concrete key or selector. If the proxy does not apply as expected, re-run {"action":"list_services"} to verify names, then {"action":"get"} to inspect the runtime_proxy and environment snapshot.

workspace manages multi-client workspace isolation. Each workspace provides separate memory, audit trail, secrets, and tool restrictions — the multi-tenant feature used by consulting and operator deployments.

[workspace]
enabled = true
workspaces_dir = "~/.revka/workspaces"
actionPurpose
listList workspaces
createCreate a workspace (needs name)
switchSwitch the active workspace (needs name)
infoShow a workspace’s details (needs name)
exportExport a workspace’s profile (credentials redacted)

Switching changes the active config, including which memory namespace, audit namespace, and credential profile are in effect.

{ "action": "switch", "name": "client-acme" }

For the isolation model and per-profile fields, see Config: gateway, memory, security & platform.

vi_verify verifies a Verifiable Intent credential chain — Revka’s SD-JWT mechanism for gating commerce actions. It checks the cryptographic binding between credential layers and evaluates the constraints a user attached to a mandate (allowed merchants, amount ranges, budget caps, recurrence, and so on).

[verifiable_intent]
enabled = false
strictness = "strict" # strict | permissive
operationPurpose
verify_bindingCheck the sd_hash binding between credential layers
evaluate_constraintsValidate constraints against fulfillment data

Fields: credential (object) — the credential chain; fulfillment (object) — fulfillment data for evaluate_constraints. strictness controls how strictly chain-verification errors are reported.

{ "operation": "verify_binding", "credential": { } }

For the full Verifiable Intent specification, mandate modes, and constraint types, see Verifiable Intent (commerce gating).