@malloy-publisher/server 0.0.382-dev → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.docker.md +145 -20
- package/README.md +65 -12
- package/dist/app/api-doc.html +5 -0
- package/dist/app/api-doc.yaml +3929 -534
- package/dist/app/assets/EnvironmentPage-CHq5BF4l.js +1 -0
- package/dist/app/assets/HomePage-CIp-pJCa.js +1 -0
- package/dist/app/assets/LightMode-mHHPjEeA.js +1 -0
- package/dist/app/assets/MainPage-CylxO5Yu.js +2 -0
- package/dist/app/assets/MaterializationsPage-a0vjqxib.js +1 -0
- package/dist/app/assets/ModelPage-Cz-MrSZQ.js +1 -0
- package/dist/app/assets/PackagePage-Cdg5D7AN.js +1 -0
- package/dist/app/assets/RouteError-B5SIyn6G.js +1 -0
- package/dist/app/assets/ThemeEditorPage-B62rRc-y.js +1 -0
- package/dist/app/assets/WorkbookPage-45cG1Gx6.js +1 -0
- package/dist/app/assets/{core-CjeTkq8O.es-BqRc6yhC.js → core-DyU47reh.es-DY9b3WjS.js} +1 -1
- package/dist/app/assets/github-dark-DenFmJkN.es-DHJKELXO.js +1 -0
- package/dist/app/assets/index-5eLCcNmP.css +1 -0
- package/dist/app/assets/index-C5ClsnS7.js +1774 -0
- package/dist/app/assets/index-DF9tVqwN.js +1 -0
- package/dist/app/assets/index-DSoCUF-f.js +2725 -0
- package/dist/app/assets/index-DgVRz2wm.js +2 -0
- package/dist/app/assets/index-P-pF8nU5.js +632 -0
- package/dist/app/assets/index-w_0OQJgZ.js +23 -0
- package/dist/app/index.html +8 -4
- package/dist/cpufeatures-1yrn0vtw.node +0 -0
- package/dist/default-publisher.config.json +23 -0
- package/dist/{instrumentation.js → instrumentation.mjs} +10631 -10573
- package/dist/package_load_worker.mjs +15219 -0
- package/dist/runtime/publisher.js +331 -0
- package/dist/{server.js → server.mjs} +141276 -74705
- package/dist/sshcrypto-vd2k5hq9.node +0 -0
- package/package.json +41 -28
- package/publisher.config.example.bigquery.json +33 -0
- package/publisher.config.example.duckdb.json +23 -0
- package/.eslintrc.json +0 -44
- package/.prettierignore +0 -1
- package/.prettierrc +0 -4
- package/build.ts +0 -38
- package/dist/app/assets/HomePage-Dn3E4CuB.js +0 -1
- package/dist/app/assets/MainPage-BzB3yoqi.js +0 -2
- package/dist/app/assets/ModelPage-C9O_sAXT.js +0 -1
- package/dist/app/assets/PackagePage-DcxKEjBX.js +0 -1
- package/dist/app/assets/ProjectPage-BDj307rF.js +0 -1
- package/dist/app/assets/RouteError-DAShbVCG.js +0 -1
- package/dist/app/assets/WorkbookPage-Cs_XYEaB.js +0 -1
- package/dist/app/assets/index-15BOvhp0.js +0 -456
- package/dist/app/assets/index-Bb2jqquW.js +0 -676
- package/dist/app/assets/index-CMlGQMcl.css +0 -1
- package/dist/app/assets/index-D68X76-7.js +0 -1276
- package/dist/app/assets/index.umd-DGBekgSu.js +0 -1145
- package/dxt/malloy_bridge.py +0 -354
- package/dxt/manifest.json +0 -22
- package/eslint.config.mjs +0 -76
- package/k6-tests/README.md +0 -144
- package/k6-tests/bun.lock +0 -797
- package/k6-tests/load-test/load-test-crud-connections.ts +0 -263
- package/k6-tests/load-test/load-test-crud-packages.ts +0 -461
- package/k6-tests/load-test/load-test-crud-projects.ts +0 -160
- package/k6-tests/load-test/load-test-crud.ts +0 -142
- package/k6-tests/load-test/load-test.ts +0 -784
- package/k6-tests/package.json +0 -27
- package/k6-tests/scripts/run-with-otel.sh +0 -50
- package/k6-tests/smoke-test/smoke-test.ts +0 -158
- package/k6-tests/tsconfig.json +0 -29
- package/k6-tests/utils/client_factory.ts +0 -128
- package/k6-tests/utils/common.ts +0 -489
- package/k6-tests/utils/logger.ts +0 -62
- package/k6-tests/utils/types.d.ts +0 -35
- package/malloy_mcp.dxt +0 -0
- package/publisher.config.json +0 -33
- package/src/config.spec.ts +0 -850
- package/src/config.ts +0 -305
- package/src/constants.ts +0 -10
- package/src/controller/compile.controller.ts +0 -35
- package/src/controller/connection.controller.ts +0 -515
- package/src/controller/database.controller.ts +0 -21
- package/src/controller/manifest.controller.ts +0 -29
- package/src/controller/materialization.controller.ts +0 -125
- package/src/controller/model.controller.ts +0 -107
- package/src/controller/package.controller.ts +0 -182
- package/src/controller/query.controller.ts +0 -60
- package/src/controller/watch-mode.controller.ts +0 -98
- package/src/data_styles.ts +0 -71
- package/src/dto/connection.dto.spec.ts +0 -131
- package/src/dto/connection.dto.ts +0 -174
- package/src/dto/index.ts +0 -2
- package/src/dto/package.dto.spec.ts +0 -42
- package/src/dto/package.dto.ts +0 -12
- package/src/dto/validate.spec.ts +0 -76
- package/src/dto/validate.ts +0 -31
- package/src/errors.ts +0 -116
- package/src/health.ts +0 -189
- package/src/instrumentation.ts +0 -148
- package/src/logger.ts +0 -154
- package/src/mcp/error_messages.ts +0 -199
- package/src/mcp/handler_utils.ts +0 -239
- package/src/mcp/mcp_constants.ts +0 -22
- package/src/mcp/prompts/handlers.ts +0 -84
- package/src/mcp/prompts/index.ts +0 -11
- package/src/mcp/prompts/prompt_definitions.ts +0 -160
- package/src/mcp/prompts/prompt_service.ts +0 -67
- package/src/mcp/prompts/utils.ts +0 -62
- package/src/mcp/resource_metadata.ts +0 -47
- package/src/mcp/resources/model_resource.ts +0 -153
- package/src/mcp/resources/notebook_resource.ts +0 -137
- package/src/mcp/resources/package_resource.ts +0 -370
- package/src/mcp/resources/project_resource.ts +0 -184
- package/src/mcp/resources/query_resource.ts +0 -117
- package/src/mcp/resources/source_resource.ts +0 -141
- package/src/mcp/resources/view_resource.ts +0 -136
- package/src/mcp/server.ts +0 -62
- package/src/mcp/tools/discovery_tools.ts +0 -258
- package/src/mcp/tools/execute_query_tool.ts +0 -265
- package/src/server.ts +0 -1195
- package/src/service/connection.spec.ts +0 -1331
- package/src/service/connection.ts +0 -1511
- package/src/service/connection_service.spec.ts +0 -641
- package/src/service/connection_service.ts +0 -181
- package/src/service/db_utils.spec.ts +0 -714
- package/src/service/db_utils.ts +0 -1227
- package/src/service/filter.spec.ts +0 -447
- package/src/service/filter.ts +0 -337
- package/src/service/filter_integration.spec.ts +0 -825
- package/src/service/gcs_s3_utils.ts +0 -427
- package/src/service/manifest_service.spec.ts +0 -201
- package/src/service/manifest_service.ts +0 -106
- package/src/service/materialization_service.spec.ts +0 -648
- package/src/service/materialization_service.ts +0 -929
- package/src/service/materialized_table_gc.spec.ts +0 -383
- package/src/service/materialized_table_gc.ts +0 -279
- package/src/service/model.spec.ts +0 -257
- package/src/service/model.ts +0 -1069
- package/src/service/package.spec.ts +0 -236
- package/src/service/package.ts +0 -463
- package/src/service/project.ts +0 -681
- package/src/service/project_compile.spec.ts +0 -197
- package/src/service/project_store.spec.ts +0 -859
- package/src/service/project_store.ts +0 -1531
- package/src/service/quoting.ts +0 -41
- package/src/service/resolve_project.ts +0 -13
- package/src/storage/BaseRepository.ts +0 -31
- package/src/storage/DatabaseInterface.ts +0 -180
- package/src/storage/StorageManager.mock.ts +0 -59
- package/src/storage/StorageManager.ts +0 -210
- package/src/storage/duckdb/ConnectionRepository.ts +0 -141
- package/src/storage/duckdb/DuckDBConnection.ts +0 -177
- package/src/storage/duckdb/DuckDBManifestStore.ts +0 -70
- package/src/storage/duckdb/DuckDBRepository.ts +0 -224
- package/src/storage/duckdb/ManifestRepository.ts +0 -119
- package/src/storage/duckdb/MaterializationRepository.ts +0 -249
- package/src/storage/duckdb/PackageRepository.ts +0 -135
- package/src/storage/duckdb/ProjectRepository.ts +0 -148
- package/src/storage/duckdb/manifest_store.spec.ts +0 -133
- package/src/storage/duckdb/schema.ts +0 -147
- package/src/storage/ducklake/DuckLakeManifestStore.ts +0 -146
- package/src/utils.ts +0 -13
- package/tests/fixtures/persist-test/data/orders.csv +0 -5
- package/tests/fixtures/persist-test/persist_test.malloy +0 -11
- package/tests/fixtures/persist-test/publisher.json +0 -5
- package/tests/fixtures/publisher.config.json +0 -15
- package/tests/harness/e2e.ts +0 -96
- package/tests/harness/mcp_test_setup.ts +0 -344
- package/tests/harness/mocks.ts +0 -37
- package/tests/harness/rest_e2e.ts +0 -68
- package/tests/harness/uris.ts +0 -31
- package/tests/integration/materialization/materialization_lifecycle.integration.spec.ts +0 -470
- package/tests/integration/mcp/mcp_execute_query_tool.integration.spec.ts +0 -434
- package/tests/integration/mcp/mcp_resource.integration.spec.ts +0 -663
- package/tests/integration/mcp/mcp_transport.integration.spec.ts +0 -122
- package/tests/integration/mcp/setup.spec.ts +0 -5
- package/tests/unit/duckdb/attached_databases.test.ts +0 -1132
- package/tests/unit/ducklake/ducklake.test.ts +0 -950
- package/tests/unit/mcp/prompt_definitions.test.ts +0 -102
- package/tests/unit/mcp/prompt_happy.test.ts +0 -51
- package/tsconfig.json +0 -32
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { sleep } from "k6";
|
|
2
|
-
import { validateServerIsUpAndInitialized } from "../utils/common.ts";
|
|
3
|
-
import {
|
|
4
|
-
loadTestConnections,
|
|
5
|
-
setup as setupConnections,
|
|
6
|
-
teardown as teardownConnections,
|
|
7
|
-
} from "./load-test-crud-connections.ts";
|
|
8
|
-
import {
|
|
9
|
-
loadTestPackages,
|
|
10
|
-
setup as setupPackages,
|
|
11
|
-
teardown as teardownPackages,
|
|
12
|
-
} from "./load-test-crud-packages.ts";
|
|
13
|
-
import { loadTestProjects } from "./load-test-crud-projects.ts";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Combined setup data structure for all test suites
|
|
17
|
-
*/
|
|
18
|
-
type CombinedSetupData = {
|
|
19
|
-
connections: { projectName: string };
|
|
20
|
-
packages: { projectName: string; bigqueryConnectionName: string | null };
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Load Test - Testing CRUD operations under normal load
|
|
25
|
-
*
|
|
26
|
-
* This test combines all three CRUD test suites:
|
|
27
|
-
* 1. Projects CRUD (each iteration)
|
|
28
|
-
* 2. Connections CRUD (setup project once, cleanup at end)
|
|
29
|
-
* 3. Packages CRUD (setup project + bigquery connection once, cleanup at end)
|
|
30
|
-
*
|
|
31
|
-
* Default configuration:
|
|
32
|
-
* - Stages with ramp-up to 150 VUs
|
|
33
|
-
* - 95th percentile response time < 1.5s
|
|
34
|
-
* - Error rate < 2%
|
|
35
|
-
*
|
|
36
|
-
* Main test function - receives setup data from k6 when setup() is present
|
|
37
|
-
*/
|
|
38
|
-
function runTest(data?: CombinedSetupData) {
|
|
39
|
-
// ========================================================================
|
|
40
|
-
// 1. CRUD Projects (each iteration)
|
|
41
|
-
// ========================================================================
|
|
42
|
-
loadTestProjects.run();
|
|
43
|
-
|
|
44
|
-
sleep(0.1);
|
|
45
|
-
|
|
46
|
-
// ========================================================================
|
|
47
|
-
// 2. CRUD Connections (reuse project from setup)
|
|
48
|
-
// ========================================================================
|
|
49
|
-
if (data && data.connections && data.connections.projectName) {
|
|
50
|
-
// Extract the run function and call it with data
|
|
51
|
-
// Type assertion needed because TestPreset interface doesn't reflect setup data parameter
|
|
52
|
-
(loadTestConnections.run as (data: { projectName: string }) => void)(
|
|
53
|
-
data.connections,
|
|
54
|
-
);
|
|
55
|
-
} else {
|
|
56
|
-
console.error(
|
|
57
|
-
"Connections setup data not available, skipping connections test",
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
sleep(0.1);
|
|
62
|
-
|
|
63
|
-
// ========================================================================
|
|
64
|
-
// 3. CRUD Packages (reuse project and connection from setup)
|
|
65
|
-
// ========================================================================
|
|
66
|
-
if (data && data.packages && data.packages.projectName) {
|
|
67
|
-
// Extract the run function and call it with data
|
|
68
|
-
// Type assertion needed because TestPreset interface doesn't reflect setup data parameter
|
|
69
|
-
(
|
|
70
|
-
loadTestPackages.run as (data: {
|
|
71
|
-
projectName: string;
|
|
72
|
-
bigqueryConnectionName: string | null;
|
|
73
|
-
}) => void
|
|
74
|
-
)(data.packages);
|
|
75
|
-
} else {
|
|
76
|
-
console.error(
|
|
77
|
-
"Packages setup data not available, skipping packages test",
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
sleep(0.1);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export const loadTest: TestPreset = {
|
|
85
|
-
defaultOptions: {
|
|
86
|
-
stages: [
|
|
87
|
-
{ duration: "1m", target: 20 }, // warm-up
|
|
88
|
-
{ duration: "2m", target: 50 }, // load
|
|
89
|
-
{ duration: "5m", target: 100 }, // sustained load
|
|
90
|
-
{ duration: "2m", target: 150 }, // near saturation
|
|
91
|
-
{ duration: "1m", target: 0 }, // ramp down
|
|
92
|
-
],
|
|
93
|
-
thresholds: {
|
|
94
|
-
http_req_duration: ["p(90)<1000", "p(95)<1500", "p(99)<2500"],
|
|
95
|
-
http_req_waiting: ["p(95)<1200"],
|
|
96
|
-
http_req_failed: ["rate<0.01"],
|
|
97
|
-
checks: ["rate>0.99"],
|
|
98
|
-
dropped_iterations: ["count==0"],
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
run: runTest as () => void,
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Combined setup function - runs once before all VUs
|
|
106
|
-
* Sets up projects and connections for connections and packages tests
|
|
107
|
-
*/
|
|
108
|
-
export function setup(): CombinedSetupData {
|
|
109
|
-
// Validate server is up and initialized before proceeding
|
|
110
|
-
validateServerIsUpAndInitialized();
|
|
111
|
-
|
|
112
|
-
console.log("Setting up test infrastructure...");
|
|
113
|
-
|
|
114
|
-
const connectionsData = setupConnections();
|
|
115
|
-
const packagesData = setupPackages();
|
|
116
|
-
|
|
117
|
-
return {
|
|
118
|
-
connections: connectionsData,
|
|
119
|
-
packages: packagesData,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Combined teardown function - runs once after all VUs
|
|
125
|
-
* Cleans up all resources created in setup
|
|
126
|
-
*/
|
|
127
|
-
export function teardown(data: CombinedSetupData) {
|
|
128
|
-
console.log("Tearing down test infrastructure...");
|
|
129
|
-
|
|
130
|
-
if (data) {
|
|
131
|
-
if (data.connections) {
|
|
132
|
-
teardownConnections(data.connections);
|
|
133
|
-
}
|
|
134
|
-
if (data.packages) {
|
|
135
|
-
teardownPackages(data.packages);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export const options = loadTest.defaultOptions;
|
|
141
|
-
// k6 will pass setup data to the default export function when setup() is present
|
|
142
|
-
export default runTest;
|