@pmoses-s1/sentinelone-mcp 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,60 @@
1
+ # Changelog
2
+
3
+ ## 1.2.0 — 2026-06-11
4
+
5
+ ### Added
6
+ - **`hec_ingest` tool** — raw-log/event ingestion into the Singularity Data Lake via the HEC (HTTP Event Collector) endpoint (`/services/collector/raw` and `/services/collector/event`). Supports `parser` (-> `?sourcetype=`), custom `fields` (query params), **required** `scope` (S1-Scope header), gzip compression, and `isParsed` (-> `?isParsed=true`, indexes already-structured JSON with no SDL parser). Replaces the removed `sdl_upload_logs`. Validated live across the full HEC matrix (both endpoints, gzip on/off, parser field extraction, multi-line, batched, reserved-field handling, scope enforcement, isParsed). Grounded in the S-26.1 HEC docs (p.4723-4726).
7
+
8
+ ### Removed
9
+ - **`sdl_upload_logs` tool** plus the underlying SDL `uploadLogs`/`addEvents` library functions and `SDL_LOG_WRITE_KEY` plumbing. SDL raw-log ingestion moves to the HEC path (`hec_ingest`). The `sentinelone-sdl-api` skill is now query + configuration only; the `sentinelone-sdl-log-parser` validation loop uses HEC ingest.
10
+
11
+ ### Changed
12
+ - Tool count unchanged at 26 (removed `sdl_upload_logs`, added `hec_ingest`).
13
+ - Skill docs corrected: scheduled detection rules bind the Target Asset via `entityMappings` ("Entity column mapping"); the full scheduled-rule option set (UI <-> API) is catalogued in `sentinelone-powerquery/references/detection-rules.md`.
14
+
15
+
16
+ ## 1.1.0 — 2026-05-28 (rebuilt 2026-05-31)
17
+
18
+ ### Fixed (rebuild)
19
+ - **`s1_api_get` now auto-injects `isLegacy=false` for `/cloud-detection/rules` listings.** Without `isLegacy=false` the S1 API silently omits `queryType="scheduled"` PowerQuery rules from the response — no error, no warning, the response just lies by omission. The handler now guards against this when the caller forgets, and the tool description loudly flags the requirement. This eliminates the "I see zero scheduled detections" failure mode that was producing wrong verdicts when listing Custom Detection rules. Same `1.1.0` version per the rebuild request.
20
+
21
+ ### Added
22
+ - **Streamable HTTP transport.** New `--transport http` mode (default stays `stdio`). Single-endpoint POST `/mcp` per the MCP 2024-11-05 spec, plus `/healthz` for load balancer probes. Implementation is pure `node:http`, no new dependencies.
23
+ - **Per-user bearer token auth.** New `MCP_BEARER_TOKENS_FILE` env var pointing at a `{ "<name>": "<token>" }` JSON file gives each team member a stable name in audit logs and supports rotation. SIGHUP reloads tokens without dropping connections. `MCP_BEARER_TOKENS` env var (comma-separated raw tokens) is a fallback for small or quick-test setups.
24
+ - **Audit logging.** Every authenticated HTTP request emits `[audit] <ts> | <name> | <method> | <param-summary> | <status>` to stderr; systemd captures it via journald.
25
+ - **`S1_CREDS_FILE` credential resolver.** Highest-priority explicit path for credentials, useful for VM deployments and secret-store integrations (Vault, Doppler, 1Password Connect, sealed-secrets).
26
+ - **Deploy artifacts** under `deploy/`:
27
+ - `install.sh` — one-shot installer for Mac and Linux. `--user` mode for individuals, `--server` mode for Linux VMs (creates `mcp` system user, generates an initial bearer token, installs systemd unit, starts the service).
28
+ - `systemd/sentinelone-mcp.service` — hardened unit with `NoNewPrivileges`, `ProtectSystem=strict`, `MemoryDenyWriteExecute`, SIGHUP-as-reload.
29
+ - `caddy/Caddyfile.example` — TLS reverse proxy template with bearer header gate and streaming-friendly flush.
30
+ - `README.md` — full topology guide (single-user local, single-user HTTP, team VM-hosted) with day-2 operations.
31
+ - **Test suite.** Three new files under `tests/`, runnable via `npm test`:
32
+ - `smoke.test.mjs` — source-of-truth tool inventory (26 tools by name).
33
+ - `stdio-transport.test.mjs` — JSON-RPC round trip via spawned stdio process.
34
+ - `http-transport.test.mjs` — HTTP transport end-to-end, bearer auth happy/sad paths.
35
+ - **README auto-regenerator** at `scripts/regen-readme-tools-table.mjs`. `npm run regen:readme` keeps the README table in sync with `ALL_TOOLS`. `npm run regen:readme -- --check` fails when stale (suitable for CI).
36
+
37
+ ### Fixed
38
+ - **README tool table.** Previous count was 19; actual is 26. Auto-generated now.
39
+ - **Header comment in `index.js`.** Previously said 21; updated to 26.
40
+ - **`purple_ai_query`** removed from the documentation. The tool itself was removed 2026-05-03 because the underlying API requires a browser-session `teamToken` that service-account API tokens never obtain. The README, `index.js`, and `docs/mcp-tools.md` no longer reference it.
41
+ - **`uam_set_status` documentation.** Doc previously said valid status values include `CLOSED`. The source enum is `NEW`, `IN_PROGRESS`, `RESOLVED`; doc now matches.
42
+
43
+ ### Changed
44
+ - **Refactored** dispatch out of `index.js` into `lib/server-core.js` so both transports use one code path. `lib/stdio-transport.js` is the extracted stdio loop; `lib/http-transport.js` is new.
45
+ - **package.json**:
46
+ - `version` 1.0.0 → 1.1.0
47
+ - new scripts: `start:http`, `test`, `regen:readme`
48
+ - new files included in the npm tarball: `deploy/`, `scripts/`, `CHANGELOG.md`
49
+
50
+ ### Compatibility
51
+ - Default invocation is unchanged: `npx -y @pmoses-s1/sentinelone-mcp` still produces a stdio MCP server with identical behavior to 1.0.0.
52
+ - Existing `claude_desktop_config.json` and `.mcp.json` configs work without modification.
53
+ - The 26 tools, 2 resources, and 2 prompts are unchanged from the late-1.0.0 line; only the documentation now matches reality.
54
+
55
+ ## 1.0.0 — 2026-05-07
56
+
57
+ Initial public release.
58
+ - 19 tools across PowerQuery, S1 Mgmt REST, UAM, SDL API, Hyperautomation.
59
+ - stdio transport only.
60
+ - Credentials via env vars or auto-discovered `credentials.json`.