Proto commits in dekart-xyz/dekart

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:1e89639
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

feat: Enhance Postgres connection handling and validation - Introduced PostgresSSLMode constants for better readability. - Added PostgresKeywordDSN function to properly quote DSN parameters. - Implemented BuildPostgresKeywordDSN to construct DSN with SSL mode and host resolution for cloud environments. - Added NormalizePostgresSSLMode to enforce SSL requirements based on environment. - Implemented ResolvePostgresHostForCloud to ensure only public addresses are used in cloud. - Updated ValidateReqConnection to validate Postgres host and SSL mode. - Enhanced TestConnection to provide detailed error messages for Postgres connection issues. - Modified PGStorage to support dynamic DSN generation based on connection settings. - Updated UserStorage to handle Postgres connections correctly in cloud scenarios. - Added tests for Postgres connection validation and DSN generation.

Commit:4dd16b5
Author:Vladi Bilonenko

Add viewport parameters support for report snapshots - Introduced zoom, latitude, and longitude parameters to the CreateReportSnapshot API. - Updated snapshot generation logic to include viewport parameters in the snapshot URLs. - Added validation for viewport parameters to ensure they fall within acceptable ranges. - Enhanced unit tests to cover new viewport parameter functionality and validation.

Commit:29b6a54
Author:Vladi Bilonenko

Refactor report creation and publishing logic - Removed workspace plan type checks from ServeReportAnalytics to simplify access control. - Updated callCreateReportTool to return a structured response when report limit is reached. - Removed public report limit checks from PublishReport, allowing for more flexible report publishing. - Introduced transaction handling in CreateReport to ensure atomicity during report creation. - Enhanced report limit checks with transaction locking to prevent race conditions. - Removed redundant test cases related to report creation gate checks. - Simplified user addition logic in UpdateWorkspaceUser by removing unnecessary checks for personal workspaces.

Commit:ecde112
Author:Vladi Bilonenko

feat: Implement runtime license checks and workspace write permissions - Added runtime license state management to the server, allowing for read-only mode based on license expiration. - Introduced `requireWorkspaceWrite` and `requireReportWorkspaceWrite` functions to enforce write permissions based on workspace state. - Updated various server methods to check for workspace write permissions before performing actions. - Enhanced license validation to allow expired keys under specific conditions. - Added tests for workspace write permission checks and license expiration scenarios. - Refactored workspace handling to include read-only state and reason for read-only status.

Commit:a2979da
Author:Vladi Bilonenko

Revert "Revert changes since 2c9e5cc except migration" This reverts commit 09ad512b06b1cca223776a1ed8cc8a46226a09dd.

Commit:09ad512
Author:Vladi Bilonenko

Revert changes since 2c9e5cc except migration

Commit:7b4765c
Author:Vladi Bilonenko

feat: implement no-config snapshot flow and update related API responses

Commit:33d33e3
Author:Vladi Bilonenko

feat: PostgreSQL connection UX - Added validation for PostgreSQL connection parameters in ValidateReqConnection. - Implemented cloud environment checks to disable user-defined PostgreSQL connections. - Updated connection retrieval methods to include PostgreSQL fields. - Enhanced CreateConnection and UpdateConnection methods to handle PostgreSQL credentials. - Introduced TestConnection method for PostgreSQL to verify credentials. - Modified user storage logic to handle PostgreSQL connections with local file fallback. - Added sanitization for secret fields in connection responses. - Updated job creation and execution logic to support PostgreSQL jobs.

Commit:13dae7c
Author:Vladi Bilonenko

no-config: local-first defaults, storage backup unification, and token injection cleanup

Commit:31740c5
Author:Vladi Bilonenko

Add dataset_id to query job responses - Updated SQL queries in getQueryJob and getDatasetsQueryJobs functions to include dataset_id. - Modified rowsToQueryJobs function to scan and assign dataset_id to QueryJob struct.

Commit:d9c9dc3
Author:Vladi Bilonenko

Enhance job queries with connection type and add tests - Updated SQL queries in job.go to include connection type from the datasets table. - Modified the rowsToQueryJobs function to handle the new connection type field. - Introduced a new function, resultExtensionByConnectionType, to determine the file extension based on the connection type. - Added unit tests for resultExtensionByConnectionType to ensure correct behavior for different connection types.

Commit:b1d0cce
Author:Vladi Bilonenko

Add queries to GetReportProperties response - Updated the callGetReportPropertiesTool function to include queries in the response. - Modified the description of the get_report_properties tool to reflect the inclusion of queries.

Commit:7639d11
Author:Vladi Bilonenko

Add check_job_status tool to MCP server - Implemented the check_job_status tool to retrieve the current status of a job using job_id. - Added necessary input validation and error handling for the new tool. - Updated MCP tool definitions to include check_job_status with appropriate metadata. - Enhanced unit tests to cover the new check_job_status functionality, including authentication and argument validation.

Commit:6381b8d
Author:Vladi Bilonenko

feat: add asynchronous query execution with run_query tool - Implemented callRunQueryTool to handle asynchronous query execution requests. - Updated callMCPTool to dispatch run_query requests to the new handler. - Added run_query tool definition with appropriate input schema and guidance. - Modified runQuery method to return a QueryJob object upon execution. - Enhanced error handling for invalid arguments in run_query requests. - Updated tests to cover new run_query functionality and validate input requirements.

Commit:928248b
Author:Vladi Bilonenko

Implement dry-run functionality for BigQuery queries and enforce permission checks - Added a dryRunQuery method to validate SQL queries for BigQuery connections. - Integrated dry-run validation in the callUpdateQueryTool method to check query validity before execution. - Enforced user authentication and report write permissions prior to executing queries. - Enhanced error handling for unsupported connections and empty query texts.

Commit:0ac9a6a
Author:Vladi Bilonenko

feat: add UpdateQuery method to gRPC service - Introduced UpdateQuery method in dekart_grpc.pb.go for updating existing queries. - Implemented UpdateQuery handler in the server to update query text without executing jobs. - Added callUpdateQueryTool in mcp.go to handle update query requests. - Updated mcpToolDefinitions to include update_query tool with appropriate input schema. - Enhanced unit tests to cover UpdateQuery functionality and validate input arguments. - Refactored query.go to encapsulate query text update logic in a dedicated method.

Commit:9bdcbe5
Author:Vladi Bilonenko

feat: add create_query tool and associated functionality - Implemented the `create_query` tool in MCP, allowing the creation of query metadata for a specified dataset and connection. - Added a new method `callCreateQueryTool` to handle the creation of queries, including argument validation and response marshaling. - Updated MCP tool definitions to include `create_query` with appropriate input schema and usage guidance. - Enhanced the `CreateQuery` method to return the `QueryId` upon successful creation and handle race conditions by checking for existing queries. - Added unit tests for the `create_query` tool to ensure proper dispatching and argument validation.

Commit:9835586
Author:Vladi Bilonenko

feat: enhance report creation response with company workspace limits - Added fields to CreateReportResponse in proto to indicate if report creation was blocked due to freemium plan limits, the number of workspaces of the same company, and the owners of those workspaces. - Updated TypeScript definitions and JavaScript implementations to accommodate new fields in CreateReportResponse. - Modified UpgradeModal to display a message when the report creation limit is reached, showing the number of existing workspaces. - Enhanced report creation logic to check for workspace limits and trigger the upgrade modal if limits are reached. - Implemented a new report gate logic to evaluate workspace limits based on company email domains and existing workspaces. - Added tests for the new report gate logic and email domain validation functions. Co-authored-by: Copilot <copilot@github.com>

Commit:4376692
Author:Vladi Bilonenko

feat: add readme management tools and update report properties retrieval - Implemented `add_report_readme`, `update_report_readme`, and `remove_report_readme` tools in MCP for managing report readme markdown. - Added `get_report_properties` tool to retrieve report metadata and associated datasets. - Updated `callMCPTool` to handle new readme management and report properties tools. - Enhanced input validation and error handling for readme operations. - Updated tool definitions to include new functionalities and usage descriptions. - Added unit tests for new tools to ensure proper schema validation.

Commit:2c54dff
Author:Vladi Bilonenko

feat: add ReplaceFile method to Dekart service - Introduced ReplaceFile method in the Dekart gRPC service, allowing users to create a new file entry while keeping the old file untouched. - Implemented server-side logic for ReplaceFile, including validation of dataset ID and handling of database operations. - Updated MCP tool definitions to include replace_file functionality, with appropriate input schema and usage guidelines. - Added unit tests to ensure the new replace_file tool is correctly defined and validated.

Commit:ac8d511
Author:Vladi Bilonenko

feat(mcp): add tools for updating report title, map config, and dataset name - Implemented `callUpdateReportTitleTool` to update report titles while preserving existing configurations. - Implemented `callUpdateReportMapConfigTool` to update map configurations for reports. - Implemented `callUpdateDatasetNameTool` to update dataset names by dataset ID. - Updated `mcpToolDefinitions` to include new tools with appropriate input schemas. - Added tests to ensure new tools are correctly defined and handle unknown tool requests. fix(snapshot): increase default snapshot timeout to 240 seconds

Commit:4ead217
Author:Vladi Bilonenko

feat: add CreateReportSnapshot RPC and related functionality - Implemented CreateReportSnapshot method in the Dekart gRPC service. - Added snapshot handling logic in the server, including token issuance and validation. - Introduced Browserless integration for rendering report snapshots. - Enhanced user claims to support snapshot token and report ID. - Updated workspace context management to accommodate snapshot-specific claims. - Added new HTTP endpoint for serving report snapshots. - Implemented in-memory token management for short-lived snapshot tokens. - Updated CORS configuration to allow snapshot-related origins.

Commit:b97fbd8
Author:Vladi Bilonenko

feat: add new MCP tools and endpoints for dataset and file management - Implemented new HTTP endpoints for creating datasets and files. - Added MCP tools for creating reports, datasets, and files. - Enhanced dataset insertion to return dataset ID. - Introduced file handling logic to manage existing dataset files. - Created a new MCP upload session management with start, complete, and abort functionalities. - Added JSON schema definitions for MCP tools and requests. - Removed deprecated report JSON handling code. - Added unit tests for MCP error handling and schema generation.

Commit:d378f86
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Add token update functionality and ping user streams on device authorization and revocation - Implemented GetTokenUpdate function to retrieve the latest token update timestamp for a user in a workspace. - Updated AuthorizeDevice and RevokeDeviceToken methods to ping user streams after authorization and revocation. - Enhanced sendUserStreamResponse to include token update information in the response.

Commit:f1c87c5
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Add ListDeviceTokens and RevokeDeviceToken methods to gRPC service - Implemented ListDeviceTokens to retrieve active device tokens for a workspace. - Implemented RevokeDeviceToken to revoke a specific device token by ID. - Added corresponding methods in the DekartClient and DekartServer interfaces. - Created new deviceauth package for handling device token logic. - Updated database queries to support token listing and revocation.

Commit:ccfa22e
Author:Vladi Bilonenko

File upload proto

Commit:06b6d09
Author:Vladi Bilonenko

feat: implement device authorization session management - Add protojson utility functions for encoding and decoding protobuf messages as JSON. - Create deviceauth package for managing device authorization sessions, including session states, token issuance, and lifecycle events. - Implement HTTP helpers for retrieving base URLs and generating device IDs. - Introduce telemetry tracking for device authorization events in cloud mode. - Develop JWT issuer for signing device authorization tokens with configurable key material and TTL. - Add tests for device authorization session management and JWT issuance. - Refactor license token issuance to utilize the new JWT key parsing functions.

Commit:1d956fc
Author:Vladi Bilonenko

Implement version check feature and UI banner - Added a new endpoint for version checking in the server, allowing clients to verify if a newer version is available. - Introduced a `NewVersion` component in the client to display a banner when a new release is detected, enhancing user awareness of updates. - Updated environment variables to support version check configuration. - Created a Cypress test for the version banner functionality to ensure proper display under specified conditions. - Enhanced the tracking of version check events for analytics purposes.

Commit:c604cab
Author:Vladi Bilonenko

Dekart Comminity Edition Mode - Introduced offline JWT license verification for premium and community plans, enhancing licensing capabilities. - Added new documentation for the JWT license implementation plan and offline license key handling. - Updated `.gitignore` to exclude sensitive license files. - Modified proto files to include new plan types: `TYPE_COMMUNITY` and `TYPE_PREMIUM`. - Implemented changes in the client and server code to support the new licensing model and ensure compatibility with existing features.

Commit:405464f
Author:Vladi Bilonenko

Add OIDC support for JWT header authentication - Introduced new environment variables for OIDC configuration in .env.example. - Updated docker-compose.yml to include Keycloak and oauth2-proxy services for OIDC support. - Enhanced Makefile with new commands for OIDC setup. - Added documentation for OIDC integration with Keycloak via reverse proxy. - Implemented JWT verification and claims validation in the server code. - Added tests for OIDC header authentication and JWT handling. - Updated client-side logic to accommodate OIDC-related changes.

Commit:e318611
Author:Vladi Bilonenko

Fixing dataset deletion - Created migration scripts to remove the `dataset_id` column from the `query_jobs` table in both SQL and SQLite. - Updated the `QueryJob` protocol buffer definition to eliminate the `dataset_id` field. - Adjusted relevant queries and data handling in the server code to reflect the removal of `dataset_id`, ensuring compatibility with the updated schema.

Commit:16aaadc
Author:Vladi Bilonenko

Move previews to storage - Created migration scripts to remove the `map_preview_data_uri` column and add a new `resource_id` column in the `map_previews` table for both SQL and SQLite. - Updated the `GetEnvResponse` protocol buffer to include a new variable `TYPE_STORE_MAP_PREVIEW`. - Modified the `SaveMapPreview` function to handle saving map previews using the new `resource_id`, including base64 data decoding and storage. - Adjusted the `ServeMapPreview` function to retrieve map previews from public storage based on the new `resource_id`, ensuring proper handling of missing or invalid previews. - Enhanced the `GetEnv` function to expose the `storeMapPreview` environment variable, indicating whether map preview storage is enabled.

Commit:3dfdd51
Author:Vladi Bilonenko

Add connection types to Report List - Introduced a new repeated field `connection_types` in the Report message to store unique connection types used by datasets. - Updated the TypeScript and JavaScript definitions for the Report class to include methods for managing the connection types list. - Modified the report.proto file to define the `connection_types` field. - Enhanced the server logic to retrieve and assign connection types when fetching report lists, ensuring accurate data representation. - Adjusted related components to accommodate the new connection types functionality.

Commit:30e705e
Author:Vladi Bilonenko

Add hasMapPreview to Report - Introduced a new boolean field `hasMapPreview` in the Report message to indicate the presence of a map preview. - Updated the Report class in TypeScript and JavaScript to include getter and setter methods for the new field. - Modified the report.proto file to define the `has_map_preview` field. - Enhanced the report retrieval logic in the server to populate the `hasMapPreview` field based on the existence of associated map previews. - Adjusted the SaveMapPreview functionality to accommodate the new field and updated related components accordingly.

Commit:ed2d7e8
Author:Vladi Bilonenko

Add SaveMapPreview functionality to Dekart service - Introduced SaveMapPreviewRequest and SaveMapPreviewResponse message types in the protobuf definition. - Implemented SaveMapPreview RPC method in the Dekart service to handle saving and updating map previews for reports. - Enhanced the DekartClient to include a saveMapPreview method for client-side interaction. - Updated the Dekart class to expose the new SaveMapPreview method. - Added necessary error handling and validation in the server implementation to ensure robust functionality.

Commit:f4c50c8
Author:Vladi Bilonenko

Implement switching to workspace - Introduced a `planType` field to the `Workspace` message in the protobuf definition, enabling better management of workspace plans. - Updated the TypeScript `Workspace` class to include getter and setter methods for the new `planType` field. - Modified the JavaScript implementation to serialize and deserialize the `planType` field correctly. - Enhanced the server-side logic to fetch and return the plan type associated with workspaces. - Adjusted the `getUserWorkspaces` method to include plan type in the response, improving workspace data handling.

Commit:ebb9be9
Author:Vladi Bilonenko

Add role field to Workspace and update related methods - Introduced a `role` field to the `Workspace` message in the protobuf definition, allowing for user role management within workspaces. - Updated the `Workspace` class in TypeScript to include getter and setter methods for the new `role` field. - Modified the JavaScript implementation to serialize and deserialize the `role` field correctly. - Enhanced the server-side logic to fetch and return user roles associated with workspaces. - Adjusted the `getUserWorkspaces` method to include user roles in the response, improving workspace data handling.

Commit:0cca6bc
Author:Vladi Bilonenko

Enhance GetUserStreamResponse with user workspaces support - Added `userWorkspaces` field to the `GetUserStreamResponse` message in the protobuf definition, allowing for a list of user workspaces to be included in the response. - Implemented methods for managing user workspaces in the server, including fetching user workspaces from the database. - Updated the `sendUserStreamResponse` method to include the user workspaces in the response sent to clients. - Modified the `WorkspaceSelector` component to utilize the new user workspaces data, improving workspace management in the UI.

Commit:ff9f863
Author:Vladi Bilonenko

Enhance report snapshot functionality with trigger type support - Added `trigger_type` field to the `report_snapshots` table to categorize snapshot creation events. - Updated SQL migrations to include the new field and ensure proper indexing. - Modified server methods to pass the appropriate trigger type during snapshot creation, improving traceability of changes. - Enhanced protobuf definitions to support the new trigger type enumeration, allowing for better integration with client-side logic. - Updated `MapChangeHistoryModal` to display snapshot trigger types, improving user experience by providing context for changes.

Commit:b14d2f1
Author:Vladi Bilonenko

Add RestoreReportSnapshot functionality to Dekart service - Introduced `RestoreReportSnapshot` RPC method in the Dekart service to handle restoring report snapshots. - Added corresponding request and response message types in the protobuf definitions. - Implemented client-side methods for invoking the `RestoreReportSnapshot` service. - Updated server logic to create report snapshots during relevant operations, enhancing snapshot management. - Refactored existing dataset snapshot logic to streamline report snapshot creation and improve code clarity.

Commit:3b78e5f
Author:Vladi Bilonenko

Refactor report version retrieval to support snapshot fetching - Replaced `GetReportVersion` with `GetSnapshots` in the Dekart service to enhance clarity and functionality. - Updated related protobuf definitions and server methods to handle the new `GetSnapshotsRequest` and `GetSnapshotsResponse`. - Implemented logic to fetch report and dataset snapshots, ensuring proper validation and error handling. - Adjusted SQL queries to retrieve snapshots ordered by creation date, improving data retrieval efficiency.

Commit:fc0b1a9
Author:Vladi Bilonenko

Enhance report and dataset snapshot functionality with author tracking - Updated the `report_snapshots` and `dataset_snapshots` tables to replace `changed_by` with `author_email` for better clarity on user modifications. - Modified SQL migrations to reflect the new schema and ensure existing data is correctly populated with author information. - Enhanced server methods to utilize the new `author_email` field during snapshot creation, improving traceability of changes. - Introduced new protobuf definitions for `GetReportVersionRequest` and `GetReportVersionResponse` to support fetching report and dataset snapshots with author details.

Commit:ff072de
Author:Vladi Bilonenko

Add versioning support to reports with new snapshots and related database changes - Introduced a `version_id` column in the `reports` table to track report versions. - Created `report_snapshots` and `dataset_snapshots` tables to store user-editable content and complete dataset states for each report version. - Added indexes for efficient querying of version-related data. - Updated protobuf definitions to include `version_id` in the `Report` message structure, ensuring compatibility with the new versioning system.

Commit:bef7056
Author:Vladi Bilonenko

Add dataset_id to QueryJob and update related SQL migrations - Introduced a new column `dataset_id` in the `query_jobs` table with a foreign key constraint referencing the `datasets` table. - Backfilled `dataset_id` based on existing relationships between `query_jobs` and `datasets`. - Updated the `QueryJob` protobuf definition and generated code to include `dataset_id`. - Modified relevant server methods to handle the new `dataset_id` field in query job retrieval and processing.

Commit:8f7a40b
Author:Vladi Bilonenko

Add server time to GetEnvResponse and update related components - Added `serverTime` field to the `GetEnvResponse` message in the proto files to provide the server's current time in seconds. - Updated the JavaScript and TypeScript definitions to include the new `serverTime` field, ensuring compatibility with the client-side code. - Modified the `setEnv` action to accept and store the `serverTime` from the environment response. - Enhanced the report update logic to utilize the new server time for determining report freshness and auto-refresh behavior. - Adjusted the `AutoRefreshSettings` component to reflect the changes in the environment state management. - Updated the Go server implementation to return the current server time in the `GetEnvResponse`.

Commit:23fecb5
Author:Vladi Bilonenko

Add SetAutoRefreshIntervalSeconds functionality to Dekart service - Implemented the SetAutoRefreshIntervalSeconds RPC method in the Dekart service to allow users to set the auto-refresh interval for reports. - Added corresponding request and response message types in the proto files. - Updated the report model to include the auto-refresh interval and modified the database to support this feature. - Integrated the new functionality into the client-side AutoRefreshSettings component, enabling users to adjust settings directly from the UI. - Enhanced the report header to reflect the current auto-refresh status.

Commit:fae58e2
Author:Vladi Bilonenko

Add expired field to Subscription model and update related components - Introduced an `expired` boolean field in the Subscription model to indicate subscription status. - Updated the proto definitions and generated files to reflect the new field. - Modified the WorkspaceReadOnlyBanner component to conditionally render based on the subscription's expired status. - Enhanced the user state management in the workspace reducer to track subscription expiration. - Updated the server logic to set the expired status based on trial end dates.

Commit:8295f2e
Author:Vladi Bilonenko

Add trial support to subscription management - Introduced a new column `trial_ends_at` in the `subscription_log` table to track trial end timestamps. - Created an index on `subscription_log` for efficient lookups based on `workspace_id`, `plan_type`, and `trial_ends_at`. - Updated the `getSubscription` method to handle trial subscriptions, returning the appropriate cancellation timestamp when the plan type is `TYPE_TRIAL`.

Commit:fd9a96c
Author:Vladi Bilonenko

Add TYPE_IS_SNOWPARK to GetEnvResponse and update related components - Introduced TYPE_IS_SNOWPARK to the GetEnvResponse variable types in proto files. - Updated the DekartMenu, Header, ShareButton, and server code to utilize the new isSnowpark state for conditional rendering and logic. - Ensured consistent handling of the isSnowpark state across the client and server components for improved functionality.

Commit:21a30f6
Author:Vladi Bilonenko

Add tracking event functionality and database integration - Introduced a new TrackEvent RPC in the Dekart service to handle tracking events. - Implemented TrackEventRequest and TrackEventResponse message types in the proto definitions. - Created a new database table for storing tracking events, including email, event name, and event data. - Enhanced the server-side logic to store tracking events only for authorized users in the cloud environment. - Integrated tracking functionality in the client-side code to dispatch events to the server, improving analytics capabilities.

Commit:fea7ad6
Author:Vladi Bilonenko

Add 'canRefresh' property to Report class and update related functionality - Introduced a new boolean property 'canRefresh' in the Report class to determine if a report can be refreshed. - Updated the Report serialization and deserialization methods to handle the new property. - Modified the ReportHeaderButtons component to conditionally render the refresh button based on the 'canRefresh' state. - Adjusted server-side logic to enforce permissions based on the 'canRefresh' property, ensuring only authorized users can refresh reports. - Updated the proto definitions and related Go files to reflect the new property and its usage.

Commit:76800fd
Author:Vladi Bilonenko

Implement file size limit checks and enhance upload functionality - Added support for maximum file upload size configuration using the DEKART_MAX_FILE_UPLOAD_SIZE environment variable. - Integrated the go-humanize library to parse file size limits in various formats. - Updated the file upload handler to validate file sizes against the configured limit, returning appropriate error messages when exceeded. - Enhanced the File component to display the maximum file size limit to users during uploads.

Commit:187bbfb
Author:Vladi Bilonenko

Add public maps limit check to PublishReportResponse - Introduced `publicMapsLimitReached` field in `PublishReportResponse` to indicate if the user has reached their freemium plan limit for public maps. - Updated the `PublishReport` method to check the number of existing public reports for users on a freemium plan and block publishing if the limit is exceeded. - Enhanced client-side logic to handle the new response field and provide appropriate feedback to users attempting to publish more maps than allowed.

The documentation is generated from this commit.

Commit:e861abd
Author:Vladi Bilonenko

Add track_viewers functionality to reports - Introduced a new column `track_viewers` in the `reports` table to enable tracking of report views. - Added `SetTrackViewers` RPC method to manage the tracking state for reports. - Updated report retrieval logic to include the `track_viewers` field. - Enhanced report analytics to conditionally update view counts based on the `track_viewers` setting. - Updated related protobuf definitions and service methods to support the new functionality.

Commit:77463ed
Author:Vladi Bilonenko

Enhance connection handling and file upload functionality - Updated connection handling to support different data sources (USER, SNOWFLAKE, ATHENA, PG, BQ, CH) with appropriate connection types and names. - Improved default connection retrieval logic to ensure proper handling of the "default" connection ID. - Added error handling for missing connections in the UploadFile method. - Modified CreateFile method to include connection ID in the dataset update query, ensuring correct association of files with connections. - Added DEKART_CLOUD environment variable to the GetEnv response for better configuration visibility. - Adjusted bucket configuration to remove the empty string case for GCS, ensuring clarity in storage backend selection.

Commit:a3cb95f
Author:Vladi Bilonenko

add GetWherobotsConnectionHint

Commit:818cea2
Author:Vladi Bilonenko

Wherobot Integration

Commit:a0dc431
Author:Vladi Bilonenko

feat: direct access by email

Commit:a6229e0
Author:Vladi Bilonenko

Cloud merge oss

Commit:4884fb7
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Fix map reloads when edit

Commit:d5f3014
Author:Vladi Bilonenko

New Dataset PanelUpdate dataset panel

Commit:0f9a488
Author:Vladi Bilonenko

Add snowflake_key support to connections and update related components

Commit:b89f1a2
Author:Vladi Bilonenko

Merge OSS to Cloud

Commit:6f898a1
Author:Vladi Bilonenko

Add analytics reporting feature with database updates and UI enhancements

Commit:87c8b97
Author:Vladi Bilonenko

Merge remote-tracking branch 'cloud/main' into premium-merge-cloud

Commit:0425a50
Author:Vladi Bilonenko

Add readme functionality with markdown support and UI integration

Commit:d023f43
Author:Vladi Bilonenko

Add allow_export functionality to reports with UI toggle and backend support

Commit:25cc154
Author:Vladi Bilonenko

BigQuery Service Account Keys

Commit:8843b0b
Author:Vladi Bilonenko

Report Fork Onboarding

Commit:d9257db
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Query Parameters, Auto Save and Autocomplete

Commit:11f64f2
Author:Vladi Bilonenko

Rename PREMIUM plan type to SELF_HOSTED and update related references across the codebase

Commit:2b8e437
Author:Vladi Bilonenko

SQLite user workspaces

Commit:bd636d6
Author:Vladi Bilonenko

Migration backward compatibility, default workspaces

Commit:8c53108
Author:Vladi Bilonenko

Add isPlayground and isDefaultWorkspace fields to GetUserStreamResponse

Commit:698fbd6
Author:Vladi Bilonenko

Merge remote-tracking branch 'cloud/main' into premium-merge-cloud-changes-533cfa7

Commit:2d0472d
Author:Vladi Bilonenko

New planes per user

Commit:33fba84
Author:Vladi Bilonenko

User roles

Commit:88be89d
Author:Vladi Bilonenko

Refactor code to add new environment variable for disabling version check

Commit:a19dfe0
Author:Vladi Bilonenko

Merge remote-tracking branch 'premium/main'

Commit:58dcd36
Author:Vladi Bilonenko

Backport cloud features

Commit:c681ff0
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Invite user who already have workspace

Commit:771151d
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Snowflake support

Commit:7f285a0
Author:Vladi Bilonenko

Publish maps

Commit:112d684
Author:Vladi Bilonenko

isSharable field in Report to mitigate BigQuery result storage access issue

Commit:43b7850
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Move isPlayground state to session level

Commit:ab17a43
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Validate connection object in CreateConnection endpoint

Commit:85a994f
Author:Vladi Bilonenko

Update connection creation to include required fields

Commit:c863c64
Author:Vladi Bilonenko

Merge remote-tracking branch 'oss/main' into cloud-merge-oss

Commit:8491335
Author:Vladi Bilonenko

Make GCP storage bucket optional and autocomplete project list

Commit:6a2d127
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Add login hint for Google OAuth

Commit:aac0d5c
Author:Vladi Bilonenko

Add login hint for Google OAuth

Commit:d539a61
Author:Vladi Bilonenko

Cloud Playground

Commit:968329e
Author:Vladi Bilonenko

Merge remote-tracking branch 'oss/main' into cloud-delay-scope-request-2

Commit:03d36f2
Author:Vladi Bilonenko

Grant sensitive scopes

Commit:0617255
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Merge branch 'release-0.16' into update-to-0.16

Commit:a07277e
Author:Vladi Bilonenko

Sample Query

Commit:6c58e72
Author:Vladi Bilonenko

DEKART_UX_NOT_FOUND_ERROR_INFO_HTML

Commit:9c25c23
Author:Vladi Bilonenko

Add optional ACCESS_ERROR_INFO

Commit:8430f56
Author:Vladi Bilonenko
Committer:Vladi Bilonenko

Allow edit reports

Commit:784b376
Author:Vladi Bilonenko

Limit number of users