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
{{ message }}
Repository navigation
Commit 5c10f87
Browse filesBrowse the repository at this point in the historyBrowse files
docs: cover ZDR, key rotation and actionable errors
Bring the prose in line with v1.2.0: the six capabilities, the rotation
matrix (402/401/403/429), the actionable error table, the ZDR opt-in, the
new architectural modules and the troubleshooting entries for 402,
MODEL_NOT_IN_PLAN, a dead key in a pool and ZDR not being on. Validated
versions refreshed to OpenCode 2.2.0 and Command Code CLI 1.88.0.
Copy file name to clipboardExpand all lines: SECURITY.es.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,7 +56,9 @@ Reglas de diseno que existen por este modelo de amenazas:
56
56
| --- | --- |
57
57
| Las credenciales se adjuntan solo tras una coincidencia exacta de hostname | la coincidencia por substring es trivialmente explotable (`api.commandcode.ai.evil.com`, coincidencias por path, query strings) |
58
58
|`COMMANDCODE_ALLOWED_HOSTS` es la unica allow-list | un opt-in explicito y auditable en lugar de una coincidencia difusa |
59
-
| Una cabecera `authorization` existente nunca se sobrescribe | una credencial provista por el llamador no debe reemplazarse en silencio |
59
+
| En modo key unica nunca se sobrescribe una cabecera `authorization` existente | una credencial del cliente no debe reemplazarse en silencio |
60
+
| En modo rotacion el plugin es dueno de `authorization` en el host estricto de Command Code | la key que inyecto el host puede ser la que acaba de devolver 402; el pool es un opt-in explicito |
61
+
|`x-cmd-zdr` se elimina salvo que `CMD_ZDR=1`| una politica de retencion de datos no debe activarse por accidente |
60
62
| Los logs nunca registran la key, la cabecera `authorization` ni los cuerpos de request | los archivos `commandcode-*.log` son texto plano en disco |
61
63
| El sanitizador nunca reescribe campos distintos de `messages`| limita el radio de impacto de una modificacion de payload en vuelo |
62
64
| Todos los hooks son fail-open | un atacante no debe poder desactivar los requests de modelo induciendo un error del plugin |
Copy file name to clipboardExpand all lines: SECURITY.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,9 @@ Design rules that exist because of this threat model:
54
54
| --- | --- |
55
55
| Credentials are attached only after an exact hostname match | substring matching is trivially exploitable (`api.commandcode.ai.evil.com`, path-based matches, query strings) |
56
56
|`COMMANDCODE_ALLOWED_HOSTS` is the only allow-list | an explicit, auditable opt-in instead of a fuzzy match |
57
-
| An existing `authorization` header in never overwritten | a caller-provided credential must not be silently replaced |
57
+
| In single-key mode an existing `authorization` header is never overwritten | a caller-provided credential must not be silently replaced |
58
+
| In rotation mode the plugin owns `authorization` on the strict Command Code host | the key the host injected may be the one that just returned 402; the pool is an explicit opt-in |
59
+
|`x-cmd-zdr` is stripped unless `CMD_ZDR=1`| a data-retention policy must not be enabled by accident |
58
60
| Logs never record the key, the `authorization` header or request bodies |`commandcode-*.log` files are plain text on disk |
59
61
| The sanitizer never rewrites fields other than `messages`| limits the blast radius of an in-flight payload modification |
60
62
| Every hook is fail-open | an attacker must not be able to disable model requests by inducing a plugin error |
0 commit comments