Skip to content

v0.5.0: DataCanvas staging goes opt-in and byte-bounded

Choose a tag to compare

@cyanheads cyanheads released this 26 Jul 23:29
v0.5.0
eed71ae

DataCanvas staging goes opt-in and byte-bounded

Breaking: a canvas-backed search tool no longer drains its full matched
set by default. Staging now requires stage=true or a canvas_id — omit
both and the call costs one upstream request, same as canvas disabled.

  • Opt-in staging replaces the unconditional drain that pulled up to
    25,000 rows regardless of the caller's limit, timing out (178s
    locally, 502 on the hosted deployment) against large-record endpoints
    (#30)
  • The drain is now byte-budgeted (~16 MB) instead of row-unconditional,
    and the inline page serves the caller's limit/skip identically staged
    or not — fixing an empty-preview false negative on oversized records
    (#31) and skip disagreeing between staged and unstaged modes (#32)
  • openfda_dataframe_query maps canvas SQL errors onto its declared
    invalid_query/missing_table contract instead of leaking internal
    registerTable()/drop() API names, and discloses the 10,000-row query
    cap with a continuation query (#28, #29)
  • Internal: format-utils helpers consolidated across all eight staging
    tools; the framework's spillover() helper is no longer used in favor
    of a direct canvas drain

CHANGELOG v0.5.0