Skip to content

Releases: nh4ttruong/secobserve-mcp

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 08:42

What's Changed

  • docs(agents): state the versioning promise that starts at 1.0.0 by @nh4ttruong in #52

Full Changelog: v0.9.0...v1.0.0

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 08:26

What's Changed

  • feat(prompts): add quick-report, two tables for a product, a group or the estate by @nh4ttruong in #49
  • fix(release): drop registryBaseUrl from the OCI package and move its tag by @nh4ttruong in #50
  • fix(release): satisfy every precondition the registry applies to an OCI package by @nh4ttruong in #51

Full Changelog: v0.8.0...v0.9.0

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 05:26

What's Changed

  • fix(tools-workflows): tell a job that never ran from one that just ran by @nh4ttruong in #43
  • feat(tools-workflows): make a scan timeout answerable instead of a dead end by @nh4ttruong in #44

Full Changelog: v0.6.1...v0.7.0

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 21 Sep 05:03

What's Changed

  • chore: remove the evaluation suite and the integration job by @nh4ttruong in #42

Full Changelog: v0.6.0...v0.6.1

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 04:05

What's Changed

  • feat(audit): record one line per tool call on stderr by @nh4ttruong in #38
  • feat(auth): accept Bearer so a gateway can forward the caller's OIDC token by @nh4ttruong in #36
  • test(auth): cover stateful HTTP and pin the provisional SDK hook by @nh4ttruong in #37
  • test(registry): pin the hand-written catalogue to a real backend schema by @nh4ttruong in #39
  • feat(app): refuse to start when the SDK stops running the middleware by @nh4ttruong in #40
  • ci(evals): answer evaluation.xml against a real SecObserve by @nh4ttruong in #41

Full Changelog: v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 18:18

Upgrading — this release is breaking for HTTP deployments

--transport http now refuses to start when the credential comes from the environment. Until 0.4.0 that configuration served every caller as one SecObserve identity on a port the server does not authenticate, so the observation log recorded one actor for everybody and four-eyes approval was the same person twice.

Two ways forward.

Recommended — each caller reaches SecObserve as themselves. Put an authenticating gateway in front and have it set X-SecObserve-Token per request, carrying the scheme and the value exactly as Authorization takes them:

X-SecObserve-Token: APIToken <the caller's own token>
X-SecObserve-Token: JWT <the caller's own token>

The server uses that credential for the call in flight, falls back to the environment when the header is absent, and refuses the call outright when the header is malformed rather than quietly acting as the service account. The header is not an identity assertion — the server must be reachable only from the gateway. deploy/ ships a NetworkPolicy for that and will not render one that allows everything.

Or accept one shared identity, read-only:

secobserve-mcp --transport http --host 0.0.0.0 --port 8931 --shared-identity

The flag forces read-only for the process, because a read under a shared token leaks at most what that token could already see while a write puts the wrong actor into SecObserve permanently.

For the container, pass the whole line. Arguments to docker run replace CMD, they do not append, so docker run <image> --shared-identity starts stdio and serves nothing on the port:

docker run -e SECOBSERVE_BASE_URL=... -e SECOBSERVE_API_TOKEN=... -p 8931:8931 \
  ghcr.io/nh4ttruong/secobserve-mcp:0.5.0 \
  --transport http --host 0.0.0.0 --shared-identity

stdio is unaffected. One process, one user, their own token, writes included — no flag, no change.

Also in this release

The image now has a writable WORKDIR. Both SECOBSERVE_IMPORT_DIR and SECOBSERVE_EXPORT_DIR default to the working directory, which was /: exports could not be written, and the upload confinement that stops an instruction planted in a scan report pushing an arbitrary local file into SecObserve had the whole container filesystem as its root. Set both explicitly if you depended on the old default.

Kubernetes manifests and a small Helm chart are in deploy/.

What's Changed

  • feat(cli)!: refuse http on a shared environment credential by @nh4ttruong in #31
  • feat(deploy): add Kubernetes manifests and a Helm chart by @nh4ttruong in #32
  • fix(build): give the image a writable working directory by @nh4ttruong in #33
  • feat(config): take the credential from the request when one is there by @nh4ttruong in #34
  • fix(client): stop blaming an env var the operator never set by @nh4ttruong in #35

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 17:33

What's Changed

  • docs: drop CHANGELOG.md in favour of the GitHub release notes by @nh4ttruong in #19
  • docs(agents): record the versioning policy the changelog used to carry by @nh4ttruong in #20
  • docs(agents): record the SecObserve metrics contract by @nh4ttruong in #21
  • docs: add a security policy by @nh4ttruong in #22
  • fix(release): re-lock on version bump and catch drift in CI by @nh4ttruong in #23
  • fix(tools-workflows): refuse an unknown product_id and time the staleness guard by @nh4ttruong in #24
  • docs(agents): cut volatile state and record the rule that keeps it out by @nh4ttruong in #25
  • fix(prompts): count the change feed from total instead of paging it by @nh4ttruong in #26
  • fix(formatting): cap the size of a list result and re-anchor the next page by @nh4ttruong in #27
  • feat(cli): emit a self-updating invocation and report a stale or shadowed install by @nh4ttruong in #28
  • fix(tools-crud): refuse a list on a filter that takes one value by @nh4ttruong in #29
  • fix(prompts): give the standing reports a fixed shape and stop the caveats leaking by @nh4ttruong in #30

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 16:07

What's Changed

  • docs: add CONTRIBUTING.md by @nh4ttruong in #13
  • feat(registry): add the metrics resource so its exports are reachable by @nh4ttruong in #14
  • fix(tools-workflows): flag stale metrics instead of returning zeros by @nh4ttruong in #15
  • feat(tools-workflows): add a delta kind to the metrics tool by @nh4ttruong in #16
  • feat(prompts): add triage and reporting prompts by @nh4ttruong in #17
  • build(release): add a release script that stops before pushing by @nh4ttruong in #18

Full Changelog: v0.2.2...v0.3.0

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 19 Sep 12:46

What's Changed

  • fix(tools): describe the flat arguments in every tool docstring by @nh4ttruong in #11
  • test(evals): extend the evaluation suite to 26 questions by @nh4ttruong in #12

Full Changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 19 Sep 12:40

What's Changed

Full Changelog: v0.2.0...v0.2.1