Repository navigation
refactor(sdk)!: restructure query builder + command naming to match new API routes #199
Description
Activity
- addedenhancementNew feature or requestNew feature or requestarea/queryStructured query AST, SQL builderStructured query AST, SQL builderarea/sdkTypeScript SDK (clients/ts/)TypeScript SDK (clients/ts/)breaking-changeBreaking change to public API, CLI, or configBreaking change to public API, CLI, or config
on Jun 2, 2026 - addedarea/apiHTTP handlers, routing, middlewareHTTP handlers, routing, middleware
on Jun 2, 2026 - addedarea/observabilityMetrics, logs, traces, health, profilingMetrics, logs, traces, health, profiling
on Jun 2, 2026 - added a parent issue
on Jun 2, 2026 - added a commit that references this issue
on Jun 2, 2026 - removedarea/observabilityMetrics, logs, traces, health, profilingMetrics, logs, traces, health, profiling
on Jun 3, 2026 SDK ergonomics input from nas-observability dogfooding (jfwoods, 2026-05-05) — two friction points worth folding into the query-builder restructure:
liveQuerydiscoverability — it lives onQueryBuilder(.select().liveQuery(...)), not onTableRef, but live-streaming is the most common reason users reach for.from(table). Consider aTableRef.liveQuery(...)shorthand, or at least document the chain in theTableRefdocstring.Databaseconstraint friendliness —DB extends Record<string, Record<string, unknown>>rejects the naturalinterface MyDB { table: MyRow }(no index signature), forcing a manual[t: string]: Record<string, unknown>. Either relax to a structural shape explicit-key interfaces satisfy, or document the workaround prominently.
- added a commit that references this issue
on Jun 5, 2026 Triage note — one constraint to carry into this restructure: #483 is an open, present-tense contract defect in the current builder.
selectAll()preserves previously selected columns andselect()preserves theselectAllstate, soselect('page').selectAll()silently changes the projection andselectAll().count()reaches the server and 400s. The docs already claim these are mutually exclusive.#483 was considered for folding into this issue and kept discrete — it's live today, and this restructure has no timeline. But whichever lands first, the other has to agree: if this restructure ships before #483 is fixed, the new builder needs to enforce (or explicitly document) that exclusivity rather than inherit the current ambiguity.
Related: #483.
Triage note from the pm-triage routine, 2026-08-25.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsBacklog
Restructure the structured builder and rename commands/functions to match the newly changed API routes and simplify the surface.
Breaking — coordinate a CHANGELOG entry + migration note.
Acceptance
breaking-changeentryPart of #194