You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: first-time user DX — guided hints, friendly errors, "did you mean?"
- Friendly error when no kubeconfig found: links to quickstart guide
instead of scary "Internal error: Invalid kube-config file"
- "Did you mean?" suggestions when commands are mistyped
(e.g. `logs` → `services:logs`, `scale` → `ps:scale`)
- Next steps hints after apps:create, deploy, and services:expose:on
guiding users through the full create → deploy → access flow
- Log streaming Ctrl+C hint on its own line for visibility
- SECURITY.md: full security architecture (secrets, RBAC, local storage)
- README: added DigitalOcean, services:connect/expose:on in quickstart
- Release workflow: native ARM64 runner replaces slow QEMU build
- Test resilience: tighter polling, join timeouts, monkeypatch env vars
- Bump to v0.2.0
Copy file name to clipboardExpand all lines: SECURITY.md
+68-11Lines changed: 68 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,19 +16,76 @@ Include:
16
16
17
17
You'll receive a response within 72 hours.
18
18
19
-
## Scope
19
+
## Security architecture
20
20
21
-
Kuberoku is a CLI/SDK that talks to the Kubernetes API. It does not run server-side components. Security concerns include:
21
+
Kuberoku is a **client-side only** tool. There are no server-side components, no daemons, no webhooks, and no admission controllers installed on your cluster. The CLI talks directly to the Kubernetes API using your existing kubeconfig credentials.
22
22
23
-
- Secret value leakage in CLI output, logs, or crash reports
24
-
- Command injection via user-supplied app names, config values, or arguments
25
-
- Unsafe handling of kubeconfig credentials
26
-
- Dependency vulnerabilities
23
+
### What is stored locally
27
24
28
-
## What Kuberoku does NOT protect
25
+
| Location | Contents |
26
+
|---|---|
27
+
|`~/.kube/config`| Standard kubeconfig (not managed by Kuberoku) |
**That's it.** Kuberoku does not store credentials, tokens, secrets, or sensitive data on disk. It delegates all authentication to your kubeconfig and the Kubernetes client library.
33
32
34
-
See `docs/NORTHSTAR.txt` Section 1 for the full security model.
33
+
### How secrets are handled
34
+
35
+
-**Config vars** set with `config:set --secret` are stored as [Kubernetes Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) using `stringData` (not base64-encoded `data`).
36
+
- Secrets are **never written to local disk**, logs, or crash reports.
37
+
- Secret values are **masked in CLI output** — only key names are shown.
38
+
- Addon credentials (database passwords, etc.) are stored in K8s Secrets and injected into pods via environment variables.
39
+
-**Secrets at rest encryption** is your cluster's responsibility (`EncryptionConfiguration`). Kuberoku uses whatever protection your cluster provides.
40
+
41
+
### Network posture
42
+
43
+
-**Outbound only**: CLI → Kubernetes API server (HTTPS). No inbound connections.
44
+
- No telemetry, analytics, or phone-home behavior.
45
+
- Plugin install/search talks to PyPI (HTTPS) — only when explicitly invoked.
46
+
47
+
### RBAC permissions
48
+
49
+
Kuberoku follows least-privilege. Run `kuberoku clusters:doctor` to audit your permissions, or `clusters:doctor --fix` to generate minimal Role/RoleBinding YAML.
0 commit comments