Version Packages#1114
Merged
Merged
Conversation
bad6d7a to
3a335dd
Compare
2691579 to
45e420e
Compare
Obolrus
approved these changes
Apr 16, 2026
25acc51 to
68c4934
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.23.0
Minor Changes
11c0c77: # Add availability model and activate owner-based access control
Introduced explicit availability settings for DataMarts (Available for reporting / Available for maintenance), Storages (Available for use / Available for maintenance), and Destinations (Available for use / Available for maintenance). Ownership now affects access: owners have direct access to their entities regardless of availability state, while non-owners see only available entities. Implemented table-driven AccessDecisionService that evaluates entity type, role, ownership status, availability state, and action for every single-entity operation. Enforced access checks on all endpoints including direct URL access, sub-operations (SQL dry run, validate definition, run history), and report creation. Existing entities default to fully available for backward compatibility; new entities default to not available (secure by default).
11c0c77: # Extend role definitions and activate report ownership
Reinterpreted existing project roles without changing stored identifiers: Viewer becomes Business User with self-service reporting capabilities, Editor becomes Technical User with full technical maintenance access. Activated Report ownership — Business Users can now create, edit, delete, and run their own Reports and manage Report Triggers, while Technical Users retain project-wide Report management. Business Users can also create, edit, and delete Destinations. Implemented ineffective owner logic: if a Report owner loses access to the DataMart or Destination, they become read-only until access is restored.
0f07594: # Auto-select the only storage when creating a Data Mart
When creating a Data Mart, if your project has only one storage, that storage is now selected for you automatically. New users no longer need to hunt for the right option in the dropdown or take an extra step before they can submit—especially helpful on small projects where a single storage is the obvious choice.
126280a: # Fix empty error text for invalid storage status
When storage access validation fails and the backend response doesn't include an error message, the UI now shows "Access validation failed" instead of rendering a blank space next to the warning icon.
15390c6: # Save Facebook ads data progressively to prevent loss on API failures
Previously, if the Facebook API returned an error mid-fetch, all already-downloaded
records were lost. Now data is saved to BigQuery page by page, so a failure only
affects the remaining pages — not the entire dataset.
870de85: # Add geographic performance reports to Google Ads connector
You can now import geographic performance data from Google Ads. Add
Geo Statsto your Fields configuration to see how your campaigns perform across countries, broken down by impressions, clicks, cost, and conversions. AddGeo Target Constantsalongside it to get country names and codes instead of raw IDs. The two tables are designed to be joined in BigQuery oncountry_criterion_id.5d9c896: # Clearer error when Google Sheet access is denied
When access validation fails due to missing sharing permissions, the error now clearly states that the account used for authentication doesn't have access to the sheet and tells users exactly what to do: share the spreadsheet with it and grant Editor permission — instead of showing the raw Google API error "The caller does not have permission".
832bb73: # Add error boundaries to gracefully handle unexpected application crashes
Replace the default React "Unexpected Application Error" screen with user-friendly fallback UI. When a page crashes, users now see a styled error page with options to navigate home or reload — instead of raw technical stack traces. The sidebar stays visible for in-layout errors, so users can navigate away without a full page reload.
004b9a5: # Invite teammates directly from setup screens
Add contextual “Invite teammates” helper blocks to setup and empty state screens.
This allows users to quickly invite teammates when they need help, improving onboarding and reducing friction.
Includes reusable component with responsive layout and optional documentation link.
d8b82e5: # Ownership Foundations
Ownership is now explicit and visible across all major entities. This is the first stage of the Permissions Model Evolution — ownership is informational only and does not affect access control.
a848ac4: # Fix Storage column sorting on the Data Marts page
Fixed an issue where sorting by the Storage column produced incorrect alphabetical order. Storages with custom names could appear interleaved instead of being sorted alphabetically by their visible name.
4033235: # X Ads: Country Breakdown for Ad Stats
You can now load daily ad stats broken down by country using the new
stats_by_countrynode. It tracks impressions, clicks, and other metrics per country for each promoted tweet.To get human-readable country names, use the companion
targeting_locationsnode — a reference table that maps X Ads location IDs to country names and ISO codes. Run it once, then join withstats_by_countryon thecountryfield.Patch Changes
@owox/backend@0.23.0
Patch Changes
@owox/idp-better-auth@0.23.0
Patch Changes
@owox/idp-owox-better-auth@0.23.0
Patch Changes
@owox/idp-protocol@0.23.0
Patch Changes
@owox/web@0.23.0
@owox/connectors@0.23.0
@owox/internal-helpers@0.23.0
@owox/test-utils@2.0.0
Patch Changes