mirror of https://github.com/buster-so/buster.git
fix lint build and tests
This commit is contained in:
parent
189dedd32e
commit
0e89b502ea
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env node
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import * as fs from 'node:fs';
|
||||
import * as path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { sql } from 'drizzle-orm';
|
||||
import { getTableName } from 'drizzle-orm';
|
||||
import { getTableConfig } from 'drizzle-orm/pg-core';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env node
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import * as fs from 'node:fs';
|
||||
import * as path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { eq, sql } from 'drizzle-orm';
|
||||
import { getTableName } from 'drizzle-orm';
|
||||
import { db } from '../src/connection';
|
||||
|
@ -17,7 +17,7 @@ function getAllTables(): Record<string, any> {
|
|||
for (const [key, value] of Object.entries(schema)) {
|
||||
if (value && typeof value === 'object' && Symbol.for('drizzle:IsDrizzleTable') in value) {
|
||||
try {
|
||||
const tableName = getTableName(value);
|
||||
const _tableName = getTableName(value);
|
||||
tables[key] = value;
|
||||
} catch {
|
||||
// Not a table, skip
|
||||
|
@ -203,9 +203,9 @@ async function seed() {
|
|||
const seedData: Record<string, any[]> = {};
|
||||
|
||||
// Load auth data from files (but we'll use hardcoded instead)
|
||||
const authUsers = await loadJsonFile(path.join(dataDir, 'auth.users.json'));
|
||||
const authIdentities = await loadJsonFile(path.join(dataDir, 'auth.identities.json'));
|
||||
const vaultSecrets = await loadJsonFile(path.join(dataDir, 'vault.secrets.json'));
|
||||
const _authUsers = await loadJsonFile(path.join(dataDir, 'auth.users.json'));
|
||||
const _authIdentities = await loadJsonFile(path.join(dataDir, 'auth.identities.json'));
|
||||
const _vaultSecrets = await loadJsonFile(path.join(dataDir, 'vault.secrets.json'));
|
||||
|
||||
// Load public schema data
|
||||
for (const tableName of tableOrder) {
|
||||
|
@ -220,7 +220,7 @@ async function seed() {
|
|||
console.log('=== Upserting seed data (no deletion needed) ===\n');
|
||||
|
||||
// Generate auth users for all public users in the seed data
|
||||
const publicUsers = seedData['users'] || [];
|
||||
const publicUsers = seedData.users || [];
|
||||
const authUsers = publicUsers.map(generateAuthUser);
|
||||
const authIdentities = publicUsers.map(generateAuthIdentity);
|
||||
|
||||
|
@ -294,7 +294,7 @@ async function seed() {
|
|||
}
|
||||
|
||||
// After all data is inserted, create vault secrets for data sources
|
||||
const dataSources = seedData['dataSources'] || [];
|
||||
const dataSources = seedData.dataSources || [];
|
||||
if (dataSources.length > 0) {
|
||||
console.log('\n=== Creating vault secrets for data sources ===\n');
|
||||
for (const dataSource of dataSources) {
|
||||
|
@ -307,7 +307,7 @@ async function seed() {
|
|||
DELETE FROM vault.secrets WHERE name = ${dataSource.id}
|
||||
`);
|
||||
console.log(`Deleted existing vault secret for ${dataSource.name}`);
|
||||
} catch (deleteError) {
|
||||
} catch (_deleteError) {
|
||||
// It's fine if the delete fails, it might not exist
|
||||
}
|
||||
|
||||
|
@ -323,11 +323,13 @@ async function seed() {
|
|||
|
||||
if (secretId) {
|
||||
// Update the data source with the new secret ID
|
||||
console.log(`Updating data source ${dataSource.name} with new secret ID: ${secretId}`);
|
||||
console.log(
|
||||
`Updating data source ${dataSource.name} with new secret ID: ${secretId}`
|
||||
);
|
||||
await tx
|
||||
.update(tables['dataSources'])
|
||||
.update(tables.dataSources)
|
||||
.set({ secretId: secretId })
|
||||
.where(eq(tables['dataSources'].id, dataSource.id));
|
||||
.where(eq(tables.dataSources.id, dataSource.id));
|
||||
console.log(`Successfully linked vault secret to data source ${dataSource.name}`);
|
||||
}
|
||||
} catch (vaultError: any) {
|
||||
|
@ -343,8 +345,8 @@ async function seed() {
|
|||
|
||||
// Show summary
|
||||
console.log('\nSummary:');
|
||||
const publicUserCount = (seedData['users'] || []).length;
|
||||
const dataSourceCount = (seedData['dataSources'] || []).length;
|
||||
const publicUserCount = (seedData.users || []).length;
|
||||
const dataSourceCount = (seedData.dataSources || []).length;
|
||||
const totalRecords =
|
||||
Object.values(seedData).reduce((sum, data) => sum + data.length, 0) + publicUserCount * 2; // x2 for auth users + identities
|
||||
console.log(`Total records upserted: ${totalRecords}`);
|
||||
|
@ -381,7 +383,7 @@ if (isDryRun) {
|
|||
console.log('Seed operation plan:\n');
|
||||
console.log('Tables will be seeded in this order:');
|
||||
|
||||
if (metadata && metadata.tables) {
|
||||
if (metadata?.tables) {
|
||||
metadata.tables.forEach((table: any, index: number) => {
|
||||
const deps =
|
||||
table.dependencies?.length > 0 ? ` (depends on: ${table.dependencies.join(', ')})` : '';
|
||||
|
|
|
@ -15,17 +15,12 @@
|
|||
{
|
||||
"name": "apiKeys",
|
||||
"recordCount": 1,
|
||||
"dependencies": [
|
||||
"organizations",
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["organizations", "users"]
|
||||
},
|
||||
{
|
||||
"name": "assetPermissions",
|
||||
"recordCount": 6,
|
||||
"dependencies": [
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["users"]
|
||||
},
|
||||
{
|
||||
"name": "assetSearch",
|
||||
|
@ -35,134 +30,87 @@
|
|||
{
|
||||
"name": "chats",
|
||||
"recordCount": 3,
|
||||
"dependencies": [
|
||||
"organizations",
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["organizations", "users"]
|
||||
},
|
||||
{
|
||||
"name": "dataSources",
|
||||
"recordCount": 1,
|
||||
"dependencies": [
|
||||
"organizations",
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["organizations", "users"]
|
||||
},
|
||||
{
|
||||
"name": "datasetGroups",
|
||||
"recordCount": 2,
|
||||
"dependencies": [
|
||||
"organizations"
|
||||
]
|
||||
"dependencies": ["organizations"]
|
||||
},
|
||||
{
|
||||
"name": "datasetGroupsPermissions",
|
||||
"recordCount": 1,
|
||||
"dependencies": [
|
||||
"datasetGroups",
|
||||
"organizations"
|
||||
]
|
||||
"dependencies": ["datasetGroups", "organizations"]
|
||||
},
|
||||
{
|
||||
"name": "datasets",
|
||||
"recordCount": 102,
|
||||
"dependencies": [
|
||||
"dataSources",
|
||||
"organizations",
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["dataSources", "organizations", "users"]
|
||||
},
|
||||
{
|
||||
"name": "datasetPermissions",
|
||||
"recordCount": 4,
|
||||
"dependencies": [
|
||||
"organizations",
|
||||
"datasets"
|
||||
]
|
||||
"dependencies": ["organizations", "datasets"]
|
||||
},
|
||||
{
|
||||
"name": "datasetsToDatasetGroups",
|
||||
"recordCount": 18,
|
||||
"dependencies": [
|
||||
"datasets",
|
||||
"datasetGroups"
|
||||
]
|
||||
"dependencies": ["datasets", "datasetGroups"]
|
||||
},
|
||||
{
|
||||
"name": "permissionGroups",
|
||||
"recordCount": 3,
|
||||
"dependencies": [
|
||||
"organizations",
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["organizations", "users"]
|
||||
},
|
||||
{
|
||||
"name": "docs",
|
||||
"recordCount": 1,
|
||||
"dependencies": [
|
||||
"organizations"
|
||||
]
|
||||
"dependencies": ["organizations"]
|
||||
},
|
||||
{
|
||||
"name": "messages",
|
||||
"recordCount": 3,
|
||||
"dependencies": [
|
||||
"chats",
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["chats", "users"]
|
||||
},
|
||||
{
|
||||
"name": "messagesToFiles",
|
||||
"recordCount": 2,
|
||||
"dependencies": [
|
||||
"messages"
|
||||
]
|
||||
"dependencies": ["messages"]
|
||||
},
|
||||
{
|
||||
"name": "metricFiles",
|
||||
"recordCount": 2,
|
||||
"dependencies": [
|
||||
"users",
|
||||
"dataSources"
|
||||
]
|
||||
"dependencies": ["users", "dataSources"]
|
||||
},
|
||||
{
|
||||
"name": "permissionGroupsToIdentities",
|
||||
"recordCount": 5,
|
||||
"dependencies": [
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["users"]
|
||||
},
|
||||
{
|
||||
"name": "teams",
|
||||
"recordCount": 2,
|
||||
"dependencies": [
|
||||
"organizations",
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["organizations", "users"]
|
||||
},
|
||||
{
|
||||
"name": "teamsToUsers",
|
||||
"recordCount": 2,
|
||||
"dependencies": [
|
||||
"teams",
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["teams", "users"]
|
||||
},
|
||||
{
|
||||
"name": "textSearch",
|
||||
"recordCount": 58,
|
||||
"dependencies": [
|
||||
"organizations"
|
||||
]
|
||||
"dependencies": ["organizations"]
|
||||
},
|
||||
{
|
||||
"name": "usersToOrganizations",
|
||||
"recordCount": 6,
|
||||
"dependencies": [
|
||||
"organizations",
|
||||
"users"
|
||||
]
|
||||
"dependencies": ["organizations", "users"]
|
||||
}
|
||||
],
|
||||
"tableOrder": [
|
||||
|
@ -206,140 +154,43 @@
|
|||
"usersToOrganizations"
|
||||
],
|
||||
"dependencies": {
|
||||
"apiKeys": [
|
||||
"organizations",
|
||||
"users"
|
||||
],
|
||||
"assetPermissions": [
|
||||
"users"
|
||||
],
|
||||
"apiKeys": ["organizations", "users"],
|
||||
"assetPermissions": ["users"],
|
||||
"assetSearch": [],
|
||||
"chats": [
|
||||
"organizations",
|
||||
"users"
|
||||
],
|
||||
"collections": [
|
||||
"organizations",
|
||||
"users"
|
||||
],
|
||||
"collectionsToAssets": [
|
||||
"users"
|
||||
],
|
||||
"dashboardFiles": [
|
||||
"users"
|
||||
],
|
||||
"dataSources": [
|
||||
"organizations",
|
||||
"users"
|
||||
],
|
||||
"datasetGroups": [
|
||||
"organizations"
|
||||
],
|
||||
"datasetGroupsPermissions": [
|
||||
"datasetGroups",
|
||||
"organizations"
|
||||
],
|
||||
"datasetPermissions": [
|
||||
"organizations",
|
||||
"datasets"
|
||||
],
|
||||
"datasets": [
|
||||
"dataSources",
|
||||
"organizations",
|
||||
"users"
|
||||
],
|
||||
"datasetsToDatasetGroups": [
|
||||
"datasets",
|
||||
"datasetGroups"
|
||||
],
|
||||
"datasetsToPermissionGroups": [
|
||||
"datasets",
|
||||
"permissionGroups"
|
||||
],
|
||||
"docs": [
|
||||
"organizations"
|
||||
],
|
||||
"githubIntegrations": [
|
||||
"organizations",
|
||||
"users"
|
||||
],
|
||||
"messages": [
|
||||
"chats",
|
||||
"users"
|
||||
],
|
||||
"messagesToFiles": [
|
||||
"messages"
|
||||
],
|
||||
"messagesToSlackMessages": [
|
||||
"messages",
|
||||
"slackMessageTracking"
|
||||
],
|
||||
"metricFiles": [
|
||||
"users",
|
||||
"dataSources"
|
||||
],
|
||||
"metricFilesToDashboardFiles": [
|
||||
"metricFiles",
|
||||
"dashboardFiles",
|
||||
"users"
|
||||
],
|
||||
"metricFilesToDatasets": [
|
||||
"metricFiles",
|
||||
"datasets"
|
||||
],
|
||||
"metricFilesToReportFiles": [
|
||||
"metricFiles",
|
||||
"reportFiles",
|
||||
"users"
|
||||
],
|
||||
"chats": ["organizations", "users"],
|
||||
"collections": ["organizations", "users"],
|
||||
"collectionsToAssets": ["users"],
|
||||
"dashboardFiles": ["users"],
|
||||
"dataSources": ["organizations", "users"],
|
||||
"datasetGroups": ["organizations"],
|
||||
"datasetGroupsPermissions": ["datasetGroups", "organizations"],
|
||||
"datasetPermissions": ["organizations", "datasets"],
|
||||
"datasets": ["dataSources", "organizations", "users"],
|
||||
"datasetsToDatasetGroups": ["datasets", "datasetGroups"],
|
||||
"datasetsToPermissionGroups": ["datasets", "permissionGroups"],
|
||||
"docs": ["organizations"],
|
||||
"githubIntegrations": ["organizations", "users"],
|
||||
"messages": ["chats", "users"],
|
||||
"messagesToFiles": ["messages"],
|
||||
"messagesToSlackMessages": ["messages", "slackMessageTracking"],
|
||||
"metricFiles": ["users", "dataSources"],
|
||||
"metricFilesToDashboardFiles": ["metricFiles", "dashboardFiles", "users"],
|
||||
"metricFilesToDatasets": ["metricFiles", "datasets"],
|
||||
"metricFilesToReportFiles": ["metricFiles", "reportFiles", "users"],
|
||||
"organizations": [],
|
||||
"permissionGroups": [
|
||||
"organizations",
|
||||
"users"
|
||||
],
|
||||
"permissionGroupsToIdentities": [
|
||||
"users"
|
||||
],
|
||||
"permissionGroupsToUsers": [
|
||||
"permissionGroups",
|
||||
"users"
|
||||
],
|
||||
"reportFiles": [
|
||||
"users",
|
||||
"organizations"
|
||||
],
|
||||
"s3Integrations": [
|
||||
"organizations"
|
||||
],
|
||||
"shortcuts": [
|
||||
"users",
|
||||
"organizations"
|
||||
],
|
||||
"slackIntegrations": [
|
||||
"organizations",
|
||||
"users"
|
||||
],
|
||||
"slackMessageTracking": [
|
||||
"slackIntegrations"
|
||||
],
|
||||
"teams": [
|
||||
"organizations",
|
||||
"users"
|
||||
],
|
||||
"teamsToUsers": [
|
||||
"teams",
|
||||
"users"
|
||||
],
|
||||
"textSearch": [
|
||||
"organizations"
|
||||
],
|
||||
"userFavorites": [
|
||||
"users"
|
||||
],
|
||||
"permissionGroups": ["organizations", "users"],
|
||||
"permissionGroupsToIdentities": ["users"],
|
||||
"permissionGroupsToUsers": ["permissionGroups", "users"],
|
||||
"reportFiles": ["users", "organizations"],
|
||||
"s3Integrations": ["organizations"],
|
||||
"shortcuts": ["users", "organizations"],
|
||||
"slackIntegrations": ["organizations", "users"],
|
||||
"slackMessageTracking": ["slackIntegrations"],
|
||||
"teams": ["organizations", "users"],
|
||||
"teamsToUsers": ["teams", "users"],
|
||||
"textSearch": ["organizations"],
|
||||
"userFavorites": ["users"],
|
||||
"users": [],
|
||||
"usersToOrganizations": [
|
||||
"organizations",
|
||||
"users"
|
||||
]
|
||||
"usersToOrganizations": ["organizations", "users"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,4 +8,4 @@
|
|||
"updatedAt": "2025-05-02 17:10:27.198987+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -71,4 +71,4 @@
|
|||
"createdBy": "c2dd64cd-f7f3-4884-bc91-d46ae431901e",
|
||||
"updatedBy": "c2dd64cd-f7f3-4884-bc91-d46ae431901e"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -19,4 +19,4 @@
|
|||
"updatedAt": "2025-09-19 21:07:58.851+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -65,4 +65,4 @@
|
|||
"workspaceSharingEnabledBy": null,
|
||||
"workspaceSharingEnabledAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -14,4 +14,4 @@
|
|||
"deletedAt": null,
|
||||
"env": "dev"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -15,4 +15,4 @@
|
|||
"updatedAt": "2025-05-02 17:31:47.553654+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -9,4 +9,4 @@
|
|||
"updatedAt": "2025-05-02 17:30:40.667471+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -39,4 +39,4 @@
|
|||
"updatedAt": "2025-05-02 17:31:27.509024+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -2243,4 +2243,4 @@
|
|||
"ymlFile": "name: product_profitability_index\ndescription: >\n Product-level profitability summary that blends net sales revenue, production\n cost, and warranty-related activity into a single view per product. Use this\n model to compare products on profitability %, identify items with\n thin/negative margins, and spot potential quality risk via warranty repairs.\n Revenue is sourced from sales order line totals (net of line-level discounts).\n Cost is estimated using product.standardCost multiplied by sold quantities;\n this does not reflect historical cost changes. Warranty activity is\n approximated from work orders with a non-null scrap reason, treated as\n warranty repairs.\ndata_source_name: adventure_works\ndatabase: postgres\nschema: ont_ont\ndimensions:\n - name: product_name\n description: >\n Human-readable product name from the product dimension. Helpful for\n ranking and reporting; pair with productid to avoid ambiguity. Names\n include size/color variants (e.g., \"HL Road Frame - Red, 62\").\n type: character varying\n searchable: true\nmeasures:\n - name: productid\n description: >\n Unique product identifier. Use for joining to product-level models. Not a\n true aggregate; avoid summing. When aggregating across products, prefer\n COUNT(DISTINCT productid).\n type: integer\n - name: total_revenue\n description: >\n Net sales revenue aggregated from sales_order_detail.lineTotal for the\n product. lineTotal reflects UnitPrice * OrderQty * (1 -\n UnitPriceDiscount). Does not explicitly adjust for returns, freight, or\n taxes.\n type: numeric\n - name: total_cost\n description: >\n Estimated production cost: SUM(orderQty * product.standardCost). Uses\n current standardCost at the product level, not historical cost records;\n may over/understate true historical margins when costs changed over time.\n type: numeric\n - name: warranty_repair_count\n description: >\n Count of warranty-related work orders, proxied as work_orders with\n scrapReasonID IS NOT NULL for the product. Interpreted as warranty\n repairs/returns; verify this proxy matches business meaning.\n type: bigint\n - name: warranty_cost\n description: >\n Total cost attributed to warranty repairs from\n work_order_routing.actualCost joined to work orders flagged as warranty\n (scrapReasonID IS NOT NULL).\n type: numeric\n - name: metric_profitabilityindex\n description: >\n Profitability percentage: (total_revenue - total_cost - warranty_cost) /\n NULLIF(total_revenue, 0) * 100. Returns NULL when total_revenue is 0.\n Values can be negative when costs exceed revenue.\n type: numeric\n - name: metric_productriskfactor\n description: >\n Warranty incidence rate: (warranty_repair_count / order_count) * 100 based\n on distinct sales orders associated with the product. In current data this\n is often 0; increases as warranty activity is recorded.\n type: bigint\nmetrics: []\nfilters:\n - name: positive_profitability\n expr: metric_profitabilityindex > 0\n description: Filter to include only products with positive profitability percentage.\n args: []\n - name: has_warranty_activity\n expr: warranty_repair_count > 0\n description: Filter to include products with one or more warranty repairs.\n args: []\nrelationships:\n - name: product\n source_col: productid\n ref_col: productid\n type: left\n cardinality: one-to-one\n description: >\n Join to product details for attributes like category, model, and\n size/color. One row here per product present in sales; coverage may be\n <100% of all products.\n - name: sales_order_detail\n source_col: productid\n ref_col: productid\n type: left\n cardinality: one-to-many\n description: >\n Underlying sales lines contributing to revenue. Join on product; expect\n many detail rows per product.\n - name: work_order\n source_col: productid\n ref_col: productid\n type: left\n cardinality: one-to-many\n description: >\n Work orders used to approximate warranty repairs (scrapReasonID IS NOT\n NULL). Many work orders can relate to a single product.\nclarifications:\n - >-\n Confirm scrapReasonID != NULL as a proxy for warranty-related repairs vs.\n other scrap.\n - >-\n Is using product.standardCost (current) acceptable, or should historical\n cost (e.g., product_cost_history) be used?\n - Should revenue be adjusted for returns, freight, or taxes beyond lineTotal?\n - >-\n Column names appear lowercase in the materialized model; confirm naming\n convention for metrics (SQL uses mixed case).\n",
|
||||
"databaseIdentifier": "postgres"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -125,4 +125,4 @@
|
|||
"updatedAt": "2025-05-02 17:31:47.777041+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -9,4 +9,4 @@
|
|||
"updatedAt": "2025-09-19 19:50:55.567+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -43,9 +43,7 @@
|
|||
},
|
||||
"title": "Broke down your request",
|
||||
"status": "completed",
|
||||
"file_ids": [
|
||||
"todos-1758311476502-hd3fotv7z1m"
|
||||
],
|
||||
"file_ids": ["todos-1758311476502-hd3fotv7z1m"],
|
||||
"secondary_title": "3.9 seconds"
|
||||
},
|
||||
{
|
||||
|
@ -73,9 +71,7 @@
|
|||
},
|
||||
"title": "Ran 2 validation queries",
|
||||
"status": "completed",
|
||||
"file_ids": [
|
||||
"sql-toolu_01Q5bAwXiG9nGmMN9D1gJtzm"
|
||||
],
|
||||
"file_ids": ["sql-toolu_01Q5bAwXiG9nGmMN9D1gJtzm"],
|
||||
"secondary_title": "2.5 seconds"
|
||||
},
|
||||
{
|
||||
|
@ -103,9 +99,7 @@
|
|||
},
|
||||
"title": "Ran 2 validation queries, 1 failed",
|
||||
"status": "failed",
|
||||
"file_ids": [
|
||||
"sql-toolu_01NFn7mND7tK8UQg16cH27uq"
|
||||
],
|
||||
"file_ids": ["sql-toolu_01NFn7mND7tK8UQg16cH27uq"],
|
||||
"secondary_title": "4.5 seconds"
|
||||
},
|
||||
{
|
||||
|
@ -133,9 +127,7 @@
|
|||
},
|
||||
"title": "Ran 1 validation query",
|
||||
"status": "completed",
|
||||
"file_ids": [
|
||||
"sql-toolu_01SkTSCXsVqEbwAZhgYit3r6"
|
||||
],
|
||||
"file_ids": ["sql-toolu_01SkTSCXsVqEbwAZhgYit3r6"],
|
||||
"secondary_title": "3.0 seconds"
|
||||
},
|
||||
{
|
||||
|
@ -163,9 +155,7 @@
|
|||
},
|
||||
"title": "Created 1 metric_file",
|
||||
"status": "completed",
|
||||
"file_ids": [
|
||||
"8005c5dd-b5fe-4378-b6e4-781167a66faa"
|
||||
],
|
||||
"file_ids": ["8005c5dd-b5fe-4378-b6e4-781167a66faa"],
|
||||
"secondary_title": "8.5 seconds"
|
||||
}
|
||||
],
|
||||
|
@ -522,9 +512,7 @@
|
|||
},
|
||||
"title": "Broke down your request",
|
||||
"status": "completed",
|
||||
"file_ids": [
|
||||
"todos-1758316028374-sy337pwvhj"
|
||||
],
|
||||
"file_ids": ["todos-1758316028374-sy337pwvhj"],
|
||||
"secondary_title": "2.6 seconds"
|
||||
},
|
||||
{
|
||||
|
@ -552,9 +540,7 @@
|
|||
},
|
||||
"title": "Ran 3 validation queries",
|
||||
"status": "completed",
|
||||
"file_ids": [
|
||||
"sql-toolu_01WovP2oMwhW6UWFD7TM8mNL"
|
||||
],
|
||||
"file_ids": ["sql-toolu_01WovP2oMwhW6UWFD7TM8mNL"],
|
||||
"secondary_title": "2.2 seconds"
|
||||
},
|
||||
{
|
||||
|
@ -582,9 +568,7 @@
|
|||
},
|
||||
"title": "Created 1 metric_file",
|
||||
"status": "completed",
|
||||
"file_ids": [
|
||||
"c76d39e5-c1b0-4882-ba99-f3b96039c7c7"
|
||||
],
|
||||
"file_ids": ["c76d39e5-c1b0-4882-ba99-f3b96039c7c7"],
|
||||
"secondary_title": "5.5 seconds"
|
||||
}
|
||||
],
|
||||
|
@ -828,9 +812,7 @@
|
|||
},
|
||||
"title": "Broke down your request",
|
||||
"status": "completed",
|
||||
"file_ids": [
|
||||
"todos-1758315939202-jbd1dtn9t5"
|
||||
],
|
||||
"file_ids": ["todos-1758315939202-jbd1dtn9t5"],
|
||||
"secondary_title": "2.5 seconds"
|
||||
},
|
||||
{
|
||||
|
@ -858,9 +840,7 @@
|
|||
},
|
||||
"title": "Generated 3 validation queries",
|
||||
"status": "completed",
|
||||
"file_ids": [
|
||||
"sql-toolu_01BgQm1j8ggahsvqpRZgEKaY"
|
||||
]
|
||||
"file_ids": ["sql-toolu_01BgQm1j8ggahsvqpRZgEKaY"]
|
||||
},
|
||||
{
|
||||
"id": "toolu_01S5QUiwN6uy2RNg1MAiwgKR",
|
||||
|
@ -887,9 +867,7 @@
|
|||
},
|
||||
"title": "Failed to create 1 metric_file",
|
||||
"status": "failed",
|
||||
"file_ids": [
|
||||
"6e7ed83e-0232-498c-9657-1147c21163ec"
|
||||
],
|
||||
"file_ids": ["6e7ed83e-0232-498c-9657-1147c21163ec"],
|
||||
"secondary_title": "5.1 seconds"
|
||||
},
|
||||
{
|
||||
|
@ -909,9 +887,7 @@
|
|||
},
|
||||
"title": "Failed to create 1 metric_file",
|
||||
"status": "failed",
|
||||
"file_ids": [
|
||||
"337ecb09-377a-4179-a0cd-7f98ba16d172"
|
||||
],
|
||||
"file_ids": ["337ecb09-377a-4179-a0cd-7f98ba16d172"],
|
||||
"secondary_title": "1.8 seconds"
|
||||
}
|
||||
],
|
||||
|
@ -1114,4 +1090,4 @@
|
|||
"triggerRunId": "run_cmfrbwsgtg9ca3bn04tytxphu",
|
||||
"metadata": {}
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -19,4 +19,4 @@
|
|||
"isDuplicate": false,
|
||||
"versionNumber": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -64,10 +64,7 @@
|
|||
},
|
||||
"disableTooltip": false,
|
||||
"metricColumnId": "metric_clv_all_time",
|
||||
"scatterDotSize": [
|
||||
3,
|
||||
15
|
||||
],
|
||||
"scatterDotSize": [3, 15],
|
||||
"xAxisAxisTitle": null,
|
||||
"yAxisAxisTitle": null,
|
||||
"yAxisScaleType": "linear",
|
||||
|
@ -238,10 +235,7 @@
|
|||
},
|
||||
"disableTooltip": false,
|
||||
"metricColumnId": "metric_clv_all_time",
|
||||
"scatterDotSize": [
|
||||
3,
|
||||
15
|
||||
],
|
||||
"scatterDotSize": [3, 15],
|
||||
"xAxisAxisTitle": null,
|
||||
"yAxisAxisTitle": null,
|
||||
"yAxisScaleType": "linear",
|
||||
|
@ -438,10 +432,7 @@
|
|||
},
|
||||
"disableTooltip": false,
|
||||
"metricColumnId": "total_customers",
|
||||
"scatterDotSize": [
|
||||
3,
|
||||
15
|
||||
],
|
||||
"scatterDotSize": [3, 15],
|
||||
"xAxisAxisTitle": null,
|
||||
"yAxisAxisTitle": null,
|
||||
"yAxisScaleType": "linear",
|
||||
|
@ -570,10 +561,7 @@
|
|||
},
|
||||
"disableTooltip": false,
|
||||
"metricColumnId": "total_customers",
|
||||
"scatterDotSize": [
|
||||
3,
|
||||
15
|
||||
],
|
||||
"scatterDotSize": [3, 15],
|
||||
"xAxisAxisTitle": null,
|
||||
"yAxisAxisTitle": null,
|
||||
"yAxisScaleType": "linear",
|
||||
|
@ -655,4 +643,4 @@
|
|||
"workspaceSharingEnabledBy": null,
|
||||
"workspaceSharingEnabledAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -16,4 +16,4 @@
|
|||
"selectedDictionaryPalette": null
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -29,4 +29,4 @@
|
|||
"updatedAt": "2025-05-02 17:31:27.491938+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -49,4 +49,4 @@
|
|||
"createdBy": "c2dd64cd-f7f3-4884-bc91-d46ae431901e",
|
||||
"updatedBy": "c2dd64cd-f7f3-4884-bc91-d46ae431901e"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -27,4 +27,4 @@
|
|||
"updatedAt": "2024-11-05 15:41:13.962106+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -15,4 +15,4 @@
|
|||
"updatedAt": "2024-11-05 15:41:13.964458+00",
|
||||
"deletedAt": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -579,4 +579,4 @@
|
|||
"updatedAt": "2025-05-02 17:51:56.002869+00",
|
||||
"deletedAt": "2025-09-19 19:27:25.236433+00"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -251,4 +251,4 @@
|
|||
"personalizationConfig": {},
|
||||
"lastUsedShortcuts": []
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -101,4 +101,4 @@
|
|||
"deletedBy": null,
|
||||
"status": "active"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -19535,7 +19535,7 @@ snapshots:
|
|||
magic-string: 0.30.17
|
||||
sirv: 3.0.1
|
||||
tinyrainbow: 2.0.0
|
||||
vitest: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@24.3.1)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(lightningcss@1.30.1)(msw@2.11.2(@types/node@24.3.1)(typescript@5.9.2))(sass@1.92.1)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)
|
||||
vitest: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@24.3.1)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(jiti@2.5.1)(jsdom@26.1.0)(lightningcss@1.30.1)(msw@2.11.2(@types/node@24.3.1)(typescript@5.9.2))(sass@1.92.1)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)
|
||||
ws: 8.18.3
|
||||
optionalDependencies:
|
||||
playwright: 1.55.0
|
||||
|
@ -19560,7 +19560,7 @@ snapshots:
|
|||
std-env: 3.9.0
|
||||
test-exclude: 7.0.1
|
||||
tinyrainbow: 2.0.0
|
||||
vitest: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@24.3.1)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(lightningcss@1.30.1)(msw@2.11.2(@types/node@24.3.1)(typescript@5.9.2))(sass@1.92.1)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)
|
||||
vitest: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@24.3.1)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(jiti@2.5.1)(jsdom@26.1.0)(lightningcss@1.30.1)(msw@2.11.2(@types/node@24.3.1)(typescript@5.9.2))(sass@1.92.1)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)
|
||||
optionalDependencies:
|
||||
'@vitest/browser': 3.2.4(msw@2.11.2(@types/node@24.3.1)(typescript@5.9.2))(playwright@1.55.0)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.92.1)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)
|
||||
transitivePeerDependencies:
|
||||
|
|
Loading…
Reference in New Issue