Version Packages#1318
Open
github-actions[bot] wants to merge 2 commits into
Open
Conversation
f198134 to
0bebbdd
Compare
f5139e1 to
65443c3
Compare
51d980a to
9d6378d
Compare
fa653e4 to
f16d305
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
owox@0.28.0
Minor Changes
c110f35: # Skip disconnected fields in AI Helper sample-data query
Fix AI Helper alias/description generation failing with
Unrecognized name: <field>when a data mart's Output Schema contains a field marked Disconnected ("Field is not connected to the data source"). The 30-row sample query no longer selects disconnected fields — they exist in the schema but not in the underlying table/view, so the storage rejected the whole query — and the sample fetch is skipped entirely when no connected fields remain. Hidden-for-reporting fields are intentionally kept, since the AI may still generate an alias or description for them.13cae25: # Customize CORS allowed headers via environment variable
Added
CORS_ALLOWED_HEADERSenvironment variable support to customize the allowed HTTP headers for API CORS configurations.ffd8ef8: # Reliable incremental sync after partial connector run
Previously, if a connector run failed partway through multiple accounts, the incremental date checkpoint could advance past data that was never fully fetched — causing those dates to be silently skipped on the next run. Now the checkpoint is written only after all accounts complete successfully, so a failed run always retries from the correct starting point. This affects MicrosoftAds, CriteoAds, GoogleAds, RedditAds, and XAds connectors.
25b43f6: # Criteo placement, category, and transaction reporting
The Criteo connector now supports three new endpoints — placements, placement categories,
and transactions — alongside the existing campaign statistics, plus extra statistics
dimensions such as device, OS, and channel. You can also choose the reporting currency
instead of always getting USD. Previously only campaign-level statistics were available;
now you can break performance down by where ads ran and pull individual attributed orders.
8b20d18: # Add output controls for Databricks data marts
Add report-level output controls (filters, slices, sort, limit) for Databricks data
marts. Filter values are inlined as escaped SQL literals (Spark-correct backslash + quote
escaping); substring matchers use
contains/startswith/endswithand regex usesRLIKEso user%/_stay literal; date/time comparisons are cast to the column type.Works for the web app and the Google Sheets extension.
f69f0b3: # Escape table and column identifiers in AI Helper sample-data SQL
Fix AI Helper metadata generation (and the
SAMPLE_TABLE_DATAAI tool) failing withSyntax error: Expected end of input but got "-"for data marts whose fully qualified table name contains dashes (for examplemy-project.dataset.my-table-name). The sample-data SQL now escapes the table reference and column names per storage type via a newIdentifierEscaperFacade, following the existing TypeResolver + Facade pattern and reusing the per-storage identifier escaping utilities.113ef2e: # Fail fast on disconnected report columns and output controls
Fail fast with a clear error when a report references columns that can no longer be resolved against the data mart schema or its joined data marts setup (for example, after a joined data mart alias was renamed, a relationship was removed, a field disappeared from the schema or was hidden for reporting, or a joined field was hidden in the joined data marts setup). Previously such orphaned references leaked into the generated blended SQL as main data mart columns and failed in the storage with a cryptic "Unrecognized name" error — and selecting a field hidden in the blend setup silently dropped it from the final SELECT while report headers still promised it; now the report run and SQL preview reject them upfront, listing the offending columns. Filter, sort, and slice references to disconnected or hidden fields are rejected by the output-controls validation as well.
The report column picker now also surfaces stale selected columns, filters, and slices in a "Disconnected columns" block at the top of the list (styled like the existing no-access block), so selected stale columns can be unchecked and stale filter/slice rules can be removed to make the report runnable again. Sort-only stale references stay in the Output Controls menu, where stale filters, slices, and sorts are highlighted in red. The Output Controls button now shows the controls count and switches the badge to red when any output control references a disconnected field. Rule popups on disconnected and no-access rows now share one view-and-remove layout that lists the existing filter and slice rules without add or edit controls.
39b4254: # Invalidate a user's other sessions on password reset and change
After a successful password change or reset, the user's other active sessions
are now revoked while the session performing the change is preserved. The
exposed Better Auth
/change-passwordendpoint always revokes other sessions(clients can no longer skip it), and a password reset revokes the user's other
Better Auth sessions.
1d2e04e: # Reliable OAuth sign-in for ad platform connectors
Previously, signing in to connectors that use OAuth (such as Microsoft Ads, TikTok, LinkedIn, and Google Ads) could end with a "Not Found" error right after authorizing with the provider, because the connector's callback page was routed to the backend instead of the web app. Now these callback pages load correctly and the sign-in flow completes, so the connector gets connected as expected. This affects both self-hosted and cloud deployments.
19fbef7: # Readable field names and search in report Output Controls
The Filters, Slices, and Sort pickers in a report's Output Controls now show the
business-readable field name (its alias, or the column's leaf name), with the joined
data mart name as a muted second line for blended fields, instead of only the raw
nested column identifier. Hovering a field reveals its full path as a tree. Each picker
is now searchable — start typing to filter the list by the readable name, the data mart
name, or the technical field name. Long nested field names no longer overflow the
sidebar, and the section info tooltips stay within view in narrow sidebars.
ed6aa41: # Quick run button for reports
Added a quick run button directly in the reports table, allowing you to start a report with a single click — no need to open the menu. A brief undo window appears after clicking, giving you a moment to cancel before the run begins.
090dc0d: # Surface validation errors hidden in collapsed form sections
Improved form validation UX so submitting a form opens collapsed sections that contain invalid fields and focuses the first validation error.
dad37e4: # Run History shows the executed SQL for report runs
Report runs now record the exact SQL that ran — with output controls (filters, sorting,
limit) applied and filter parameter values inlined as literals, matching the generated-SQL
preview — and surface it in Run History as a dedicated Executed SQL block.
Previously the run only stored the raw Data Mart query, so the recorded SQL did not reflect
the parameters used at run time. This covers report exports to Google Sheets, Email, Slack,
Google Chat, and Microsoft Teams, as well as Looker Studio. The block appears only when the
run actually applied output controls or blended SQL.
bbe8e34: # Drag-and-drop support for service account JSON inputs
Added drag-and-drop support for service account JSON files on credentials textareas. Users can now drop their credential files directly to populate the field, with JSON validation, file size limits, and user-friendly error feedback.
4858830: # Show validation error when Google OAuth connection is missing
Added validation checks and UI feedback to display an error when a Google OAuth connection is required but missing.
2a2efa1: # Add output controls for Snowflake data marts
Add report-level output controls (filters, slices, sort, limit) for Snowflake data marts. Filter values are inlined as escaped SQL literals (Snowflake-correct backslash + quote escaping); substring matchers use CONTAINS/STARTSWITH/ENDSWITH (not LIKE) so user
%/_stay literal, and regex usesREGEXP_INSTR(...) > 0for partial matching; date/time comparisons are CAST to the column type. Works for the web app and the Google Sheets extension.ec2fd8b: # Clearer reconnect prompt when Google Storage access expires
Previously, when a storage's Google authorization expired, connector runs would start and then fail with a confusing authentication error, and other actions showed raw "Failed to refresh OAuth tokens" text. Now expired authorization is detected before a run starts and surfaced as a clear "Reconnect Storage" prompt, and the storage health indicator updates automatically when access is lost. This helps users quickly understand they need to reconnect the storage instead of troubleshooting opaque failures.
780edac: # UX improvements in SwitchProjectMenu
Improved the project switcher menu UX: limited menu item heights, added search input logic, scroll-into-view fixes, Enter key selection on empty active states, state resets when closing, and accessibility support.
ec2a825: Set default table filter operator to
isfor fields supporting bothcontainsandis. Reset the operator when switching filter fields to ensure the new default takes effect.e6e9296: # Unified column identifiers for output control filters
Slice (pre-join) filters now reference a column by the same fully qualified identifier as
regular output filters — for example
category_details__item_event_count— instead of a rawcolumn name plus a separate
aliasPath. This makes every filter, slice, and sort refer to acolumn the same way across the API and the Web/Extension report editor. Existing saved reports
are migrated automatically, so no manual changes are needed.
Patch Changes
@owox/backend@0.28.0
Patch Changes
@owox/ctl@0.28.0
Patch Changes
@owox/idp-better-auth@0.28.0
Patch Changes
@owox/idp-owox-better-auth@0.28.0
Patch Changes
@owox/idp-protocol@0.28.0
Patch Changes
@owox/web@0.28.0
@owox/api-client@0.28.0
@owox/connectors@0.28.0
@owox/internal-helpers@0.28.0
@owox/test-utils@7.0.0
Patch Changes