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
Stack Encrypt refuses the JSON index in a data plan, so the Go SDK cannot seal a json_tree document #1349
The Go SDK runs the Rust engine inside a WebAssembly guest. Go never encrypts anything itself. It describes each field in a data plan (the field's name, its type and its index), and the engine does the work. This is ADR-0007 and design principle G1, and it is why every language produces the same bytes.
Problem
The engine refuses the JSON index in a data plan. IndexSpec::Json parses, and it then fails with Reason::JsonIndexPending, "the JSON index has no data-plan form yet" (packages/stack-encrypt/src/dynamic/kind.rs, dynamic/mod.rs). Only typed Rust can seal a json_tree document today. Go, and any future language SDK, cannot.
Proposal
Admit IndexSpec::Json, with its options (sealed_root, ordered paths), in the data plan.
Add a json source kind whose value is JSON text.
The engine parses it with serde_json, so number handling (2 == 2.0) and key handling stay in Rust.
It then seals the value through the same layout the typed path uses.
Opening returns JSON text.
Teach the guest's EQL target resolver the family, so the json_tree types become producible.
Tests:
A parity test: the same document gives the same terms through the data plan as through typed Rust, and each path opens what the other sealed.
Activity
feat(eql,stack-encrypt): name the v4 JSON document type JsonSearch, a…
docs(eql,stack-encrypt): record the v3 names the v4 JSON document takes
feat(eql,stack-encrypt): name the v4 JSON document type JsonSearch, a…
docs(eql,stack-encrypt): record the v3 names the v4 JSON document takes