Skip to content

Changelog

  • 2932470: # Better Auth: Primary Admin Setup & Password Reset

    • Primary admin auto-creation: Configure IDP_BETTER_AUTH_PRIMARY_ADMIN_EMAIL to automatically create or manage primary admin on server startup
    • Password reset UI: Admins can reset user passwords through Admin Dashboard (/auth/dashboard) with automatic magic link generation
    • Enhanced documentation: Added comprehensive user management guide at /docs/getting-started/setup-guide/members-management/better-auth.md

    Features:

    • Auto-creates admin if doesn’t exist (generates magic link in logs)
    • Generates new magic link if admin exists without password
    • Password reset button for existing users with passwords
    • Magic link generation for users without passwords

    New Environment Variables:

    • IDP_BETTER_AUTH_PRIMARY_ADMIN_EMAIL – Email for automatic primary admin creation
  • 518cfe1: # refactor: rename Bing Ads to Microsoft Ads and update documentation, images, and references

  • 29f72ea: # Enhance DataMartCreateForm with New Storage Creation

    • Updated storage selection to allow creating new storage directly from the form.
    • Refined CreateDataMartPage styling for better visual consistency.
  • 099befb: # fix: allow deleting a datamart within a project if it was created by another user

  • 25ab28e: # fix: a user with the viewer role is not allowed to modify objects in the application with ipd = better-auth

  • edb4478: ✨ Google Tag Manager integration

    • 🚀 Added Google Tag Manager support across the web app. Enable by setting GOOGLE_TAG_MANAGER_CONTAINER_ID in your environment. This allows non‑technical teams to ship marketing/analytics tags without deployments.

    Why this matters

    • 📊 Faster iteration on analytics and marketing experiments (no code release required for common changes).
  • 19c21a1: # ⚠️ Breaking Change: LinkedIn Authentication Update

    What changed: LinkedIn connectors now require 3 credentials instead of 1 Access Token: Client ID, Client Secret, and Refresh Token.

    What you need to do:

    1. Go to LinkedIn Developer Portal → your app → Auth tab
    2. Copy these 3 values:
      • Client ID (top of Auth page)
      • Client Secret (top of Auth page)
      • Refresh Token (generate via OAuth 2.0 tools)

    How to update:

    1. Go to your OWOX Data Marts
    2. Find your LinkedIn connector configuration
    3. Enter the 3 new credentials instead of the old Access Token:
      • Client ID
      • Client Secret
      • Refresh Token
  • b41b62d: # Logging System Architecture Refactor

    • Refactored logging architecture: Extracted Pino logger creation from LoggerFactory into a provider-agnostic architecture while maintaining backward compatibility
    • Simplified configuration: Removed environment presets from LoggerConfig, now only LogLevel controls logging behavior
    • Environment variables update:
      • Changed from LOG_LEVELS (comma-separated) to LOG_LEVEL (threshold-based)
      • Updated .env.example with clear documentation
    • Enhanced TypeORM integration: Improved CustomDataSourceLogger with proper parameter usage and context formatting

    Breaking Changes:

    • LOG_LEVELS environment variable renamed to LOG_LEVEL
    • Removed environment field from LoggerConfig interface

    Migration:

    • Replace LOG_LEVELS=log,warn,error with LOG_LEVEL=info (threshold-based) or app will use default info level
    • Remove environment parameter from LoggerFactory calls
  • 8a1ef12: # Secure MySQL connections (TLS/SSL)

    • New, simple way to enable encrypted MySQL connections via environment variables:
      • Backend (NestJS/TypeORM): DB_SSL
      • Identity provider (Better Auth): IDP_BETTER_AUTH_MYSQL_SSL

    Learn more

  • 32cd6c9: # Revamp NotFound Page and Improve Mobile Layout

    • Redesigned 404 page with a new foreground card and animated background tunnel effect.
    • Updated styles for improved responsiveness and visual appeal.
    • Added icons and navigation button to guide users.
    • Improved mobile layout and updated SidebarTrigger icon for consistency.
  • e19073a: # Refactor OpenHolidays connector according to common architecture and fix bugs

  • 90a8711: # Simplified MySQL configuration in the idp-better-auth

    • idp-better-auth uses the DB_* environment variables unless IDP_BETTER_AUTH_MYSQL_* is specified.
  • fc17562: # Enhance Error Handling and Notifications

    • Enhanced API error handling and notifications across components.
    • Updated Toaster component styles for improved clarity and consistency.
    • Other UI improvements
  • af2e412: # Updated Google BigQuery & Google Sheets authentication

    • Switched to JWT-based auth client (google-auth-library).
    • Removed deprecated credential paths and warnings.
    • Improved reliability of loads/queries.
    • No action required — existing service account JSON keys continue to work.
  • 58e2ead: # Updated Looker Studio data destination

    • Clarify PUBLIC_ORIGIN: base public URL of the application (scheme + host [+ optional port]).
      • Examples: http://localhost:3000, https://data-marts.example.com
      • Default: http://localhost:${PORT}
      • In production, set this to your actual deployment URL.
    • Introduce LOOKER_STUDIO_DESTINATION_ORIGIN: public origin used to generate the deployment URL for the Looker Studio destination.
      • If empty, it falls back to PUBLIC_ORIGIN.
      • Example: https://looker.example.com

    Heads up

    • When retrieving the current JSON config for a Looker Studio Data Destination, the deploymentUrl field is now generated from LOOKER_STUDIO_DESTINATION_ORIGIN (fallback: PUBLIC_ORIGIN). If you previously set deploymentUrl manually during creation, it is now populated from the environment variable values.

    Learn more

  • @owox/internal-helpers@0.8.0
  • @owox/idp-protocol@0.8.0
  • @owox/idp-better-auth@0.8.0
  • @owox/idp-owox@0.8.0
  • @owox/backend@0.8.0
  • @owox/web@0.8.0
  • 7d83d7c: # Add configurable timeout middleware for long-running operations

    • Increase server timeout from 2 minutes to 3 minutes (180s) to prevent timeout errors
    • Add operation-specific timeout middleware for data mart operations:
      • SQL editing operations: 3 minutes timeout
      • Schema operations: 3 minutes timeout
      • Publishing operations: 3 minutes timeout
      • All other operations: 30 seconds timeout (default)
    • Update frontend timeout configuration for specific operations to 3 minutes
    • Prevent race conditions in timeout middleware by ensuring only one timeout per request
    • Add proper cleanup and error handling in timeout middleware

    This change fixes timeout issues for long-running operations like SQL editing, schema refresh, and data mart publishing while maintaining reasonable timeouts for other operations.

  • 342e534: # Switch between projects in the Cloud edition on app.owox.com ✨

    You can now quickly switch between your projects right from the sidebar menu. This makes it easier to:

    • Move between workspaces without signing out
    • Keep your context while browsing different projects
    • Access project-specific data and settings faster

    No setup required — just open the project switcher and choose the project you need.

  • Fixes

    • Fixed indefinite “Running” status for Report Runs
    • Fixed indefinite “Running” status for Connector Runs caused by app shutdown
      (added graceful shutdown for Connector Runner)
    • Fixed MySQL adapter compatibility with idp-better-auth
    • Fixed unexpected session logout for Cloud edition (idp-owox)
    • Fixed the error of multiple connector launches at the same time
  • 78b8972: # Clarifies LinkedIn Pages import steps, adds new images, and improves error handling and API logging

    • Updated GETTING_STARTED.md for LinkedIn Pages with clearer import options and detailed instructions for using Organization URN.
    • Added new images to the documentation to improve user guidance and onboarding.
    • Enhanced error handling in the LinkedIn Pages source code for more robust integration.
    • Improved logging of API responses to assist with debugging and troubleshooting.
  • e6af151: # Refactor BankOfCanada connector according to common architecture and fix bugs

  • 4b487c8: # Refactor GitHub connector according to common architecture and fix bugs

  • ea803b2: # Refactor: enhance Reddit Ads connector reporting logic with new field definitions

  • @owox/backend@0.7.0
  • @owox/idp-protocol@0.7.0
  • @owox/idp-better-auth@0.7.0
  • @owox/idp-owox@0.7.0
  • @owox/internal-helpers@0.7.0
  • @owox/web@0.7.0
  • 2bbf7ba: # Initial release of Better Auth IDP provider with comprehensive authentication features

    • Added web-based admin dashboard for user management
    • Implemented hierarchical role-based access control (admin/editor/viewer) with invitation permissions
    • Created magic link authentication system with encrypted role passing and auto-name generation
    • Added comprehensive environment variable configuration with SQLite and MySQL database support
  • 22762cd: Add project ID in URL routing

    • Update routing structure to support project-based navigation
    • Add project-scoped routing with /ui/:projectId URL structure
    • Extract hardcoded /ui prefix to configurable VITE_APP_PATH_PREFIX environment variable
    • Update all navigation links to use project-scoped routes
    • Add proper route parameters validation in DataMartDetailsPage
  • c5e95be: # Fix undefined values in BigQuery Storage and cleanup Facebook fields

    • Fixed undefined values being stored as “undefined” strings instead of NULL in BigQuery Storage
    • Removed non-working fields from Facebook Marketing adAccountInsightsFields schema
  • 78ea317: # Fix Facebook referral_id field causing whitelist error

    • Removed referral_id field from Facebook Marketing schema that was causing whitelist validation errors
  • 83c178c: # Optimize logging and fix security issues

    • Reduced log noise in BigQuery storage
    • Fixed credentials exposure in Sources logs
    • Added progress tracking and explicit time series flags to Facebook connector
  • f154ad9: # Split LinkedIn dateRange fields and hardcode field limits

    • Replace single dateRange field with separate dateRangeStart and dateRangeEnd fields for better data granularity
    • Remove MaxFieldsPerRequest param and hardcode the value
  • 0f2add4: # Standardize Facebook Marketing table names with facebookads prefix

    • Update all destinationName values in FacebookMarketingFieldsSchema to include facebookads prefix
  • Updated dependencies [4749749]
    • @owox/idp-owox@0.6.0
    • @owox/backend@0.6.0
    • @owox/idp-protocol@0.6.0
    • @owox/idp-better-auth@0.6.0
    • @owox/web@0.6.0
  • d129eb0: # Triggers and reports columns available in the Data Marts list

    • Added columns for the number of triggers and reports to the Data Marts list
  • 6335c25: # Fixed BingAds report data export and added proper field mapping

    • Fixed data export issues in BingAds reports by separating into two report types with proper field schemas
    • Fixed issue where values were being saved with quotes in database
  • 2f2d4bf: # Add manual backfill functionality for data mart connectors

    • Added support for manual connector runs with custom payload parameters
  • 0f590bb: # Connector Target step: editable dataset/database and table

    • Added editable dataset/database and table fields with sensible defaults
    • Defaults come from sanitized destination name: dataset/database ${sanitizedDestinationName}_owox, table ${sanitizedDestinationName}
    • Inline validation: required, only allowed characters, accessible error state
    • Helper text shows full path: {dataset}.{table}
  • db3a03a: # Show Individual Destination Cards in Destination Tab

    The Destination tab now displays a separate card for each specific destination in the project. Each card shows only the reports belonging to that destination, making it easier to find and manage reports at a glance.

  • 863ad3e: # Enhanced Output Schema Formatting

    The Output Schema has received a major upgrade to improve control over data readability in Destinations.

    • Added support for column header descriptions as cell notes in the Google Sheets Destination, so you can define metrics everyone is aligned on
    • Implemented automatic formatting for BigQuery and Athena timestamp fields
    • Introduced the ability to control the order of fields delivered from Data Mart to Destination via simple drag & drop in the Output Schema
  • aac5411: # Update API version and refactor insights data fetching logic

    • Updated the Facebook Graph API base URL to use version 23.0 directly in the code, removing the configurable ApiBaseUrl parameter.
    • Refactored the insights data fetching logic to pass the API base URL explicitly to helper methods.
    • Modified _fetchInsightsData and_buildInsightsUrl to accept and use the API base URL as a parameter.
    • Removed the unsupported activity_recency field from adAccountInsightsFields.
    • Improved code clarity and maintainability by simplifying how the API URL is constructed and used throughout the Facebook Marketing source integration.
  • b6cdb5a: # TypeORM Entity Migration Mechanism

    • Introduced an automatic migration system for TypeORM entities.
    • Ensures database schema stays up-to-date with entity definitions.
    • Runs migrations automatically on application startup—no manual steps required.
    • Prevents data loss and supports seamless schema evolution.
  • 66a6c38: # Improving credentials management security for Data Storage and Data Destination

    • API no longer returns credential secrets to the UI.
    • Credential secrets are no longer displayed in the UI.
    • Credentials are only updated if explicitly changed.
    • Added a link to manage Google Cloud Platform service accounts.
  • 6f772ee: # Added Looker Studio Connector support

  • e4e59f0: # Remove unsupported fields

    • Removed the following unsupported or deprecated fields from adAccountInsightsFields in the Facebook Marketing API reference:
      • age_targeting
      • estimated_ad_recall_rate_lower_bound
      • estimated_ad_recall_rate_upper_bound
      • estimated_ad_recallers_lower_bound
      • estimated_ad_recallers_upper_bound
      • gender_targeting
      • labels
      • location
    • Cleaned up the field definitions to avoid including unsupported fields for Facebook API v19.0 and above.
    • Improved maintainability and reduced the risk of API errors related to invalid fields.
  • f351f63: # Hover Cards in Triggers List — Now Smarter and More Visual

    The Triggers list just got a big usability boost! Hover over any Report Run or Connector Run to instantly see key details — no extra clicks needed.

    • For Reports: name, last edit, run history, and 1-click access to Google Sheets.
    • For Connectors: source name, field count, run history, and direct Google BigQuery or AWS Athena link.

    Check status, spot issues, and jump to your data faster than ever — all right from the Triggers list.

  • 6e76c87: # Implement column visibility and sorting persistence

    Previously, user interface configurations such as selected columns in tables and accordion states were reset upon every page refresh. This change ensures that the system now remembers these chosen states at the browser level for:

    • Data Marts list
    • Storages list
    • Data Marts details (Destinations, Triggers, and Reports lists).
  • db0732e: # Connector-Based Data Mart UX improvements

    • Used connector-based data mart for data mart setup right destination name in Target Setup step.
    • Added in connector-based data mart inline validation for target dataset/database name in Target Setup step with accessible error state.
    • Enabled double-click on a connector card to select and advance to the next step.
    • Added field sorting controls in Fields Selection step:
      • A–Z, Z–A, and Original order
      • Unique key fields always appear at the top across all sorting modes
    • Minor UI polish: sort icon with dropdown next to search input; helpful link to open an issue from fields step.
    • Added helpful link to open an issue from nodes step.
  • 229c7a1: # Updated connector configuration step

    • Added type to date fields.
    • Moved field descriptions to tooltips.
    • Used field labels as titles instead of field names.
  • @owox/backend@0.5.0
  • @owox/idp-protocol@0.5.0
  • ac64efd: # Add Data Mart Connector Icons

    Enhance data-mart with connetors:

    • add connector icons
    • can cancel connector run
    • add connector documentation link
  • ae26689: # Fixed unexpected behaviour

    • 404 error after reloading page
    • error with crashing the react app
    • error with publishing connector-based data mart
  • 09aaade: # Add data mart run history feature that allows users to view and track execution history of their data marts

    This feature provides

    • New “Run History” tab in the data mart details view
    • Comprehensive run history display with pagination support
    • Real-time tracking of data mart execution status and results
    • Load more functionality for viewing extensive run history
    • Integration with existing data mart context and state management

    Additional improvements include:

    • Ability to edit source fields in already published connector-based data marts
    • Enhanced connector runner with better config handling for non-string values
    • Improved AWS Athena storage with optimized query execution and DDL handling
    • UI refinements including conditional chevron display in list item cards
    • Cleanup of unused connector-related code from data storage features

    This enhancement improves monitoring capabilities and gives users better visibility into their data mart execution patterns and performance.

  • ca4062c: # Add data mart schema management feature that allows users to view, edit, and manage the structure of their data marts

    This feature provides:

    • Visual schema editor for both BigQuery and Athena data marts
    • Ability to add, remove, and reorder fields in the schema
    • Support for defining field types, modes, and other properties
    • Schema validation to ensure compatibility with the underlying data storage
    • Ability to actualize schema from the data source to keep it in sync

    This enhancement gives users more control over their data mart structure and improves the data modeling experience.

  • 2b6e73d: # ✨ Add SQL validation for Data Marts

    Enhance your data mart experience with real-time SQL validation:

    • 🚀 Instant feedback on SQL query validity
    • ❌ Clear error messages when something goes wrong
    • 📊 Estimated data volume for successful queries
    • ⏱️ Automatic validation as you type

    This feature helps you write correct SQL queries with confidence, reducing errors and saving time when working with your data marts.

  • 6d97d91: # UX/UI Improvements

    Add Planned Data Storages with “Coming Soon” Status

    • Snowflake
    • Databricks
    • AWS Redshift
    • Azure Synapse

    UI Updates: Triggers Table and Reports Table

    • Minor UI updates to the Triggers Table
    • UI improvements to the Reports Table for consistency

    More Friendly and Consistent Forms

    We’ve improved the interface to make working with forms in OWOX Data Marts more intuitive and user-friendly.

    • Unified form layout. All forms — for Triggers, Reports, Storage, and Destinations — now share a consistent design. This makes it easier to navigate and work with confidence.
    • Helpful hints where you need them. Tooltips and inline descriptions have been added next to form fields, so you can better understand what’s expected without second-guessing.
    • Improved tooltip styling. Tooltips now feature a more noticeable background, making important information easier to spot.
    • Faster editing. You can now enter edit mode in the Storage and Destinations tables with a single click on a row — no need to hunt for buttons.
    • Warnings before leaving with unsaved changes. If you make changes to a Storage or Destination and try to leave without saving, you’ll see a confirmation dialog — helping prevent accidental data loss.

    Refined Data Mart Page: Layout, Menu, and Texts

    • Updated the layout of the Connector block
    • Polished the dropdown menu on the Data Mart page

    Redesigned “Create Data Mart” Page

    • The form on the Create Data Mart page has been updated for visual consistency and a better user experience.

    Extra Visual and Text Tweaks

    • We’ve also made a few small improvements to the UI and copy to make everything feel more polished and cohesive.
  • @owox/backend@0.4.0
  • 543f30d: # ⏰ Time Triggers: Schedule Your Reports and Connectors

    We’re excited to introduce Time Triggers - a powerful new feature that allows you to schedule your reports and connectors to run automatically at specified times!

    • Save Time: Automate routine data refreshes without manual intervention
    • 🔄 Stay Updated: Keep your data fresh with regular scheduled updates
    • 📊 Consistent Reporting: Ensure your reports are generated on a reliable schedule
    • 🌐 Timezone Support: Schedule based on your local timezone or any timezone you need
    • 🔧 Flexible Scheduling Options: Choose from daily, weekly, monthly, or interval-based schedules
    • Daily: Run your reports or connectors at the same time every day
    • Weekly: Select specific days of the week for execution
    • Monthly: Schedule runs on specific days of the month
    • Interval: Set up recurring runs at regular intervals

    Now you can set up your data workflows to run exactly when you need them, ensuring your dashboards and reports always contain the most up-to-date information without manual intervention.

  • @owox/backend@0.3.0
  • 71294b2: 2 July 2025 demo
  • @owox/backend@0.2.0