Skip to content

docs(go): an rc.3 changelog section and clearer JSON query docs - #1500

Merged
coderdan merged 2 commits into
nextfrom
docs/go-rc3-json-docs
Nov 2, 2026
Merged

coderdan merged 2 commits into
nextfrom
docs/go-rc3-json-docs

Conversation

@coderdan

@coderdan coderdan commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Gets the Go module's docs ready for the v0.1.0-rc.3 release, whose headline is the new encrypted JSON queries: testing several members of one array element, and filtering with a jsonpath predicate the way PostgreSQL's jsonb_path_match does.

The main fix is a wrong instruction. The SDK guide told readers to pass nil as the variables when a predicate has none. A nil value binds as SQL NULL, so the query silently matches no rows. The guide now says to pass an empty map, which the generated doc comments and the stashgen reference already said.

The changelog also gets a dated rc.3 section, so someone upgrading from rc.2 can see what changed and what they need to do.

Changes

languages/golang/CHANGELOG.md

  • A ## [0.1.0-rc.3] - 2026-11-02 section holding only what landed after the rc.2 tag. Everything earlier moves under a dated ## [0.1.0-rc.2] - 2026-10-26 heading, with a note that rc.1 and rc.2 never had sections of their own.
  • An "Upgrading from rc.2" note. The new queries need SQL types and functions (eql_v4.query_json_predicate, eql_v4.json_tree_match, …) that the rc.2 EQL bundle does not have. Re-running the installer keeps columns and data, but it starts with DROP SCHEMA eql_v4 CASCADE, which drops indexes built on eql_v4 functions, so those must be re-created.
  • Three fixes since rc.2 that had no entry (336a9e80e, 346614f08, fcd1cbb49). Cipher.Seal now refuses an unknown key it used to drop silently; that one can surface as a new error for callers.

languages/golang/encrypt/README.md (the SDK guide)

  • Fixes the nil vars instruction.
  • Splits the new JSON material out of one long section into subheadings: "Test several members of one array element" and "Filter with a jsonpath predicate (jsonb_path_match)".
  • Adds a "Choosing a JSON query" table: which method to use for which question, and which ones use an index.
  • Fixes the error wording: an ordering at a path the field does not order is ErrTerm, not ErrEncoding.
  • Lists the five cases where results differ from plaintext jsonb_path_match as bullets rather than one sentence.

languages/golang/cmd/stashgen/README.md: rewrites the hardest sentence about nil vars so it reads plainly.

languages/golang/encrypt/doc.go: adds the empty-map rule to the package doc that pkg.go.dev shows.

Verification

  • Checked the nil vars behaviour against the code: JSONMatch in encrypt/gensupport/json.go returns an empty operand for a nil value.
  • Checked that the rc.2 tag's EQL sources contain none of the new types or functions (git grep at languages/golang/v0.1.0-rc.2), so the upgrade note is needed.
  • Checked that the installer drops the schema with CASCADE (packages/eql/src/v3/schema.sql), and that the EQL README describes the same index re-creation.
  • Checked that the only moves in the changelog were the four entries added since rc.2, from git diff languages/golang/v0.1.0-rc.2 -- languages/golang/CHANGELOG.md.
  • gofmt -l is clean on doc.go. Docs-only change: no Go tests were run.
  • No changeset: the Go module is released by release-golang.yml, not Changesets, and skills/ is not touched.

Related

Refs #1442, #1443

Review notes

  • Start with the "Upgrading from rc.2" note at the top of the changelog: it is the one users will act on.
  • The rc.2 part of the changelog still has two ### Added headings. That predates this PR, and I left the old text as it was.
  • After this merges, the release is gh workflow run release-golang.yml -f version=0.1.0-rc.3 --ref next.

The Go changelog has had only an Unreleased section since before rc.1,
so nothing told an rc.2 user what rc.3 changes. It now has a dated rc.3
section holding only what landed after the rc.2 tag, and the rest under
a dated rc.2 heading.

The rc.3 section adds an upgrade note: the new JSON queries need SQL
types and functions the rc.2 EQL bundle does not have, and re-running
the installer drops indexes built on eql_v4 functions, which must be
re-created. It also lists three fixes since rc.2 that had no entry:
Cipher.Seal refusing an unknown key beside an omitted null=sql field,
Limit.FetchOr capping its page at the largest SQL LIMIT, and a refused
guest request wiping its bearer token.

The SDK guide told readers to pass nil vars to Match when a predicate
has no variables. A nil vars binds as SQL NULL and matches no row, so
following the guide returned nothing, with no error. It now says to
pass an empty map, as the generated doc comments and the stashgen
reference already did; the package doc says so too.

The guide's JSON section gains subheadings for the element match and
the jsonpath predicate, so a search for jsonb_path_match lands on it,
and a table saying which JSON query to use and which engage an index.
@changeset-bot

changeset-bot Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 935060b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI; Enforced overrides: Organization
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: dbbbf40e-ebb1-419e-889c-78072da0eb19

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review

@coderdan
coderdan marked this pull request as ready for review November 2, 2026 11:27
@coderdan
coderdan requested a review from a team as a code owner November 2, 2026 11:27
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-02T11:29:00.353026Z f827c33 Draft marked ready
🔒 Security Review ✅ Completed 2026-11-02T11:29:35.352403Z f827c33 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f827c337d8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread languages/golang/CHANGELOG.md Resolved

@cipherstash-agent cipherstash-agent left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review attestation

Reviewed f827c33 · posted from Claude Code · model claude-sonnet-5-5 · effort medium
Sources: code-review · unknown model
Skills: code-review, review-cross-check, review-post

Findings (1): 1 minor — 1 inline, 0 below.

Four further observations (CASCADE drop scope in the upgrade note, Fixed vs Breaking classification, release date before tag, nil-vars wording repeated in four places) could not be confirmed as defects and are not posted.


Generated by Claude Code

Comment thread languages/golang/CHANGELOG.md Resolved
The rc.3 upgrade note told readers to re-create indexes after
re-installing EQL v4, but not that the installer drops eql_v4 and
eql_v4_internal with CASCADE and issues no GRANT. A deployment whose
application connects as a non-owner role would rebuild its indexes and
still fail every query with "permission denied for schema eql_v4". The
note now lists re-granting first, pointing at EQL's permissions
reference, then the indexes.

Also drops a doubled blank line under the rc.3 Added heading.
@coderdan
coderdan merged commit 929451b into next Nov 2, 2026
37 checks passed
@coderdan
coderdan deleted the docs/go-rc3-json-docs branch November 2, 2026 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants