mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-15 04:18:44 +00:00
feat(cli): split env visibility for credentials
This commit is contained in:
1 parent
2bb736cf18
commit
3294fccbad
24 files changed
+944
-272
No files matched your search
@@ -372,6 +372,13 @@ Custom tools are shell-based tools defined at runtime via the HTTP API — no re
|
||||
| `env` | no | Encrypted environment variables injected at runtime |
|
||||
| `enabled` | no | Toggle without deleting (default true) |
|
||||
|
||||
Credentialed CLI env entries support two API/UI kinds:
|
||||
|
||||
- `sensitive` (default): encrypted at rest, masked in normal API responses, replace-only in UI, and flattened only at credential injection time.
|
||||
- `value`: encrypted at rest but visible to authorized admins in API/UI for non-secret settings such as public URLs, domains, limits, regions, and feature flags.
|
||||
|
||||
Legacy env JSON like `{"TOKEN":"..."}` is still accepted and treated as `sensitive`.
|
||||
|
||||
**Execution:** Template placeholders are rendered with shell-escaped argument values, then run via `sh -c`. The same deny-pattern check as the `exec` tool applies — no reverse shells, no `curl | sh`, etc.
|
||||
|
||||
**Scope:**
|
||||
|
||||
@@ -221,11 +221,14 @@ AES-256-GCM encryption for secrets stored in PostgreSQL. Key provided via `GOCLA
|
||||
| LLM provider API keys | `llm_providers` | `api_key` |
|
||||
| MCP server API keys | `mcp_servers` | `api_key` |
|
||||
| Custom tool env vars | `custom_tools` | `env` |
|
||||
| Credentialed CLI env vars | `secure_cli_binaries`, `secure_cli_agent_grants`, `secure_cli_user_credentials` | `encrypted_env` |
|
||||
|
||||
**Format**: `"aes-gcm:" + base64(12-byte nonce + ciphertext + GCM tag)`
|
||||
|
||||
Backward compatible: values without the `aes-gcm:` prefix are returned as plaintext (for migration from unencrypted data).
|
||||
|
||||
Credentialed CLI env entries have a separate visibility kind inside the encrypted JSON blob when `GOCLAW_ENCRYPTION_KEY` is configured. `sensitive` entries are masked in normal API/UI responses and never returned raw except through the explicit audited grant reveal flow. `value` entries use the same at-rest storage path but are returned to authorized admins for operational review.
|
||||
|
||||
---
|
||||
|
||||
## 4. Rate Limiting -- Gateway + Tool
|
||||
|
||||
@@ -6,6 +6,23 @@ Significant changes, features, and fixes in reverse chronological order.
|
||||
|
||||
## 2026-05-24
|
||||
|
||||
### CLI environment variable visibility
|
||||
|
||||
**Features**
|
||||
|
||||
- Added `sensitive` and `value` kinds for secure CLI environment variables across binary defaults, agent grant overrides, and user overrides.
|
||||
- Plain value entries are visible to authorized admins for operational config review, while sensitive entries remain masked and replace-only.
|
||||
|
||||
**Fixes**
|
||||
|
||||
- Stopped per-user credential reads from returning legacy sensitive env values raw.
|
||||
- Kept legacy `{"KEY":"value"}` env blobs backward-compatible by treating them as sensitive.
|
||||
|
||||
**Tests**
|
||||
|
||||
- Added backend regression coverage for env kind parsing, sanitized API responses, runtime flattening, and invalid kind rejection.
|
||||
- Verified Web UI build after adding env-kind controls and warnings.
|
||||
|
||||
### Command keyword allowlist
|
||||
|
||||
**Features**
|
||||
|
||||
Reference in new issue
Block a user