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
Amend ADR-0007 for operator queries, and add the guest's query, verify and target_limit exports #1188
ADR-0007 says a binding reaches the engine through a plan lowered from data. ADR-0009 makes the operator, not the index, the thing a query names, and gives probabilistic terms verify and target_limit. ADR-0009's appendix B sketches what then crosses the binding.
Problem
The data grammar a binding lowers names a field and, for a query, picks the term by the field's EQL type. It has no operator and no operator input, and no export can verify a decrypted value or size a fetch. Without them the Go SDK cannot offer per-operator queries, and a language SDK would have to reimplement the tokenizer to verify, which is the "lives twice" cost ADR-0007 accepts only for an encoder.
Proposal
Amend ADR-0007 with the query side, after ADR-0009 is accepted: the operator and its input in the data grammar, the term and its query domain back, and verify and target_limit as engine exports.
A guest export that derives a query term from a plan, a field, an operator name and its input. It refuses an operator the field's type does not answer, with the same shape of error as a mistyped field.
A batched verify export: one term and a page of decrypted values in, one boolean per value out.
A target_limit export: a term, want and the statistics in, the limit out.
The engine catalog reports, per EQL type, the operators it answers and the fidelity of each, so a generator can ask before the program runs.
Tests on the Rust side, and Go tests through the guest that hold the exports to the Rust results.
Activity
feat(stack-encrypt): let a binding query a plan field by operator, an…
feat(golang): export se_query_term, se_verify and se_target_limit so …
docs(stack-encrypt): amend ADR-0007 for queries named by operator, pr…
feat(stack-encrypt): let a binding query a plan field by operator, an…
feat(golang): export se_query_term, se_verify and se_target_limit so …
docs(stack-encrypt): amend ADR-0007 for queries named by operator, pr…
feat(stack-encrypt): let a binding query a plan field by operator, an…
feat(golang): export se_query_term, se_verify and se_target_limit so …
docs(stack-encrypt): amend ADR-0007 for queries named by operator, pr…
feat(stack-encrypt): let a binding query a plan field by operator, an…
feat(golang): export se_query_term, se_verify and se_target_limit so …
docs(stack-encrypt): amend ADR-0007 for queries named by operator, pr…
feat(stack-encrypt): let a binding query a plan field by operator, an…
feat(golang): export se_query_term, se_verify and se_target_limit so …
docs(stack-encrypt): amend ADR-0007 for queries named by operator, pr…
feat(stack-encrypt): let a binding query a plan field by operator, an…
feat(golang): export se_query_term, se_verify and se_target_limit so …
docs(stack-encrypt): amend ADR-0007 for queries named by operator, pr…
feat(stack-encrypt): let a binding query a plan field by operator, an…
feat(golang): export se_query_term, se_verify and se_target_limit so …
docs(stack-encrypt): amend ADR-0007 for queries named by operator, pr…
feat(stack-encrypt): let a binding query a plan field by operator, an…
feat(golang): export se_query_term, se_verify and se_target_limit so …
docs(stack-encrypt): amend ADR-0007 for queries named by operator, pr…
coderdan commentedon Oct 17, 2026
Staged: done in
nextby #1214 and #1215. This stays open untilnextmerges intomain, which closes it.