{
  "file": "F13-bash.md",
  "bullet": "Auth (`F13.auth`).",
  "ids": [
    "F13.auth"
  ],
  "line": 121,
  "script": "control-agent-server api POST /api/bash/execute_bash_command --auth none \\\n  --json '{\"command\": \"echo QA_F13_NOAUTH\"}' --expect 401 --save F13.auth/execute-no-key\ncontrol-agent-server api POST /api/bash/start_bash_command --auth bad \\\n  --json '{\"command\": \"echo QA_F13_NOAUTH\"}' --expect 401\ncontrol-agent-server api GET /api/bash/bash_events/search --auth bad --expect 401\ncontrol-agent-server api GET /api/bash/bash_events/00000000000000000000000000000000 --auth none --expect 401\ncontrol-agent-server api GET /api/bash/bash_events/ --auth none --json '[]' --expect 401\ncontrol-agent-server api POST /api/bash/bash_commands/00000000000000000000000000000000/stop --auth none --expect 401\ncontrol-agent-server api DELETE /api/bash/bash_events --auth bad --expect 401\ncontrol-agent-server api POST \"<redacted:session-cookie>/$CID/bash/start_bash_command\" --auth none \\\n  --json '{\"command\": \"echo QA_F13_NOAUTH\"}' --expect 401\ncontrol-agent-server api POST \"<redacted:session-cookie>/$CID/bash/execute_bash_command\" --auth bad \\\n  --json '{\"command\": \"echo QA_F13_NOAUTH\"}' --expect 401\ncontrol-agent-server api GET \"<redacted:session-cookie>/$CID/bash/bash_events/search\" --auth none --expect 401\ncontrol-agent-server api GET \"<redacted:session-cookie>/$CID/bash/bash_events/00000000000000000000000000000000\" --auth bad --expect 401\ncontrol-agent-server api GET \"<redacted:session-cookie>/$CID/bash/bash_events/\" --auth none --json '[]' --expect 401\ncontrol-agent-server api POST \"<redacted:session-cookie>/$CID/bash/bash_commands/00000000000000000000000000000000/stop\" --auth none --expect 401\ncontrol-agent-server api DELETE \"<redacted:session-cookie>/$CID/bash/bash_events\" --auth none --expect 401\ncontrol-agent-server ws listen /sockets/bash-events --auth bad --send '{\"command\": \"echo QA_F13_NOAUTH\"}' \\\n  --duration 5 --expect-close 4001 --save F13.auth/ws-bad-key\ncontrol-agent-server api GET /api/bash/bash_events/search --query kind__eq=BashCommand \\\n  --check items not-contains QA_F13_NOAUTH --save F13.auth/nothing-ran\ncontrol-agent-server api GET \"<redacted:session-cookie>/$CID/bash/bash_events/search\" --check items len-eq 0\n",
  "exit_code": 0,
  "elapsed_ms": 5687,
  "failed_line": null,
  "failed_command": null,
  "stdout": "{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/bash/execute_bash_command\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": {\n      \"command\": \"echo QA_F13_NOAUTH\"\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 65,\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-021707-182d-map-f13/evidence/F13.auth/execute-no-key.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/bash/start_bash_command\",\n    \"query\": [],\n    \"auth\": \"bad\",\n    \"body\": {\n      \"command\": \"echo QA_F13_NOAUTH\"\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 74\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/bash/bash_events/search\",\n    \"query\": [],\n    \"auth\": \"bad\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 44\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/bash/bash_events/00000000000000000000000000000000\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 65\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/bash/bash_events/\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": [],\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 43\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"/api/bash/bash_commands/00000000000000000000000000000000/stop\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 65\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"DELETE\",\n    \"path\": \"/api/bash/bash_events\",\n    \"query\": [],\n    \"auth\": \"bad\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 68\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"<redacted:session-cookie>/3c1b7548-f8bb-4a4d-9bb2-1b88e7da357d/bash/start_bash_command\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": {\n      \"command\": \"echo QA_F13_NOAUTH\"\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 44\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"<redacted:session-cookie>/3c1b7548-f8bb-4a4d-9bb2-1b88e7da357d/bash/execute_bash_command\",\n    \"query\": [],\n    \"auth\": \"bad\",\n    \"body\": {\n      \"command\": \"echo QA_F13_NOAUTH\"\n    },\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 65\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/3c1b7548-f8bb-4a4d-9bb2-1b88e7da357d/bash/bash_events/search\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 66\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/3c1b7548-f8bb-4a4d-9bb2-1b88e7da357d/bash/bash_events/00000000000000000000000000000000\",\n    \"query\": [],\n    \"auth\": \"bad\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 62\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/3c1b7548-f8bb-4a4d-9bb2-1b88e7da357d/bash/bash_events/\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": [],\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 43\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"<redacted:session-cookie>/3c1b7548-f8bb-4a4d-9bb2-1b88e7da357d/bash/bash_commands/00000000000000000000000000000000/stop\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 50\n}\n{\n  \"ok\": true,\n  \"status\": 401,\n  \"request\": {\n    \"method\": \"DELETE\",\n    \"path\": \"<redacted:session-cookie>/3c1b7548-f8bb-4a4d-9bb2-1b88e7da357d/bash/bash_events\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 401,\n    \"headers\": {\n      \"content-length\": \"25\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Unauthorized\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 55\n}\n{\n  \"ok\": true,\n  \"path\": \"/sockets/bash-events\",\n  \"opened\": true,\n  \"frames\": 0,\n  \"kinds\": {},\n  \"stopped\": \"closed\",\n  \"close\": {\n    \"code\": 4001,\n    \"reason\": \"Authentication failed\"\n  },\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-021707-182d-map-f13/evidence/F13.auth/ws-bad-key.json\",\n  \"first_frames\": []\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/bash/bash_events/search\",\n    \"query\": [\n      [\n        \"kind__eq\",\n        \"BashCommand\"\n      ]\n    ],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"32\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"items\": [],\n      \"next_page_id\": null\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 44,\n  \"checks\": [\n    {\n      \"check\": \"items not-contains QA_F13_NOAUTH\",\n      \"ok\": true,\n      \"actual\": \"[]\"\n    }\n  ],\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-021707-182d-map-f13/evidence/F13.auth/nothing-ran.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/3c1b7548-f8bb-4a4d-9bb2-1b88e7da357d/bash/bash_events/search\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"32\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"items\": [],\n      \"next_page_id\": null\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 41,\n  \"checks\": [\n    {\n      \"check\": \"items len-eq 0\",\n      \"ok\": true,\n      \"actual\": \"[]\"\n    }\n  ]\n}\n",
  "stderr": ""
}
