Skip to content

Version Packages#1114

Merged
Obolrus merged 2 commits into
mainfrom
changeset-release/main
Apr 16, 2026
Merged

Version Packages#1114
Obolrus merged 2 commits into
mainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 6, 2026

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 Stats to your Fields configuration to see how your campaigns perform across countries, broken down by impressions, clicks, cost, and conversions. Add Geo Target Constants alongside it to get country names and codes instead of raw IDs. The two tables are designed to be joined in BigQuery on country_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.

    • Data Mart has separate Technical Owner and Business Owner, editable on the Overview tab.
    • Storage, Destination, and Report each have an Owners list, editable in the configuration sheet and saved together with the entity.
    • Creator is auto-assigned as owner when a new entity is created.
    • Owners column is displayed in Storage, Destination, and Report list tables.
    • Filter by owner is available in Data Marts, Storages, and Destinations lists.
    • "Not assigned" state is shown when an entity has no owners.
  • 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_country node. It tracks impressions, clicks, and other metrics per country for each promoted tweet.

    To get human-readable country names, use the companion targeting_locations node — a reference table that maps X Ads location IDs to country names and ISO codes. Run it once, then join with stats_by_country on the country field.

Patch Changes

  • @owox/internal-helpers@0.23.0
  • @owox/idp-protocol@0.23.0
  • @owox/idp-better-auth@0.23.0
  • @owox/idp-owox-better-auth@0.23.0
  • @owox/backend@0.23.0
  • @owox/web@0.23.0

@owox/backend@0.23.0

Patch Changes

  • @owox/internal-helpers@0.23.0
  • @owox/idp-protocol@0.23.0
  • @owox/connectors@0.23.0

@owox/idp-better-auth@0.23.0

Patch Changes

  • @owox/internal-helpers@0.23.0
  • @owox/idp-protocol@0.23.0

@owox/idp-owox-better-auth@0.23.0

Patch Changes

  • @owox/internal-helpers@0.23.0
  • @owox/idp-protocol@0.23.0

@owox/idp-protocol@0.23.0

Patch Changes

  • @owox/internal-helpers@0.23.0

@owox/web@0.23.0

@owox/connectors@0.23.0

@owox/internal-helpers@0.23.0

@owox/test-utils@2.0.0

Patch Changes

  • @owox/idp-protocol@0.23.0

@github-actions github-actions Bot force-pushed the changeset-release/main branch 25 times, most recently from bad6d7a to 3a335dd Compare April 13, 2026 09:39
@github-actions github-actions Bot force-pushed the changeset-release/main branch 5 times, most recently from 2691579 to 45e420e Compare April 16, 2026 10:34
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 25acc51 to 68c4934 Compare April 16, 2026 11:15
@Obolrus Obolrus merged commit 9ea437c into main Apr 16, 2026
@Obolrus Obolrus deleted the changeset-release/main branch April 16, 2026 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant