@malloy-publisher/server 0.0.235 → 0.0.237
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/dist/app/api-doc.yaml +83 -27
- package/dist/app/assets/{EnvironmentPage-BsAnavYN.js → EnvironmentPage-DaP6CpgK.js} +1 -1
- package/dist/app/assets/{HomePage-CADE138j.js → HomePage-C9yNw3iu.js} +1 -1
- package/dist/app/assets/{LightMode-Cfh7KzN8.js → LightMode-Be4-G-dX.js} +1 -1
- package/dist/app/assets/{MainPage-CO3pRlnV.js → MainPage-J_rU2SgI.js} +2 -2
- package/dist/app/assets/{MaterializationsPage-p9YjkRXZ.js → MaterializationsPage-DHgPI4MO.js} +1 -1
- package/dist/app/assets/ModelPage-BzXfjTu5.js +1 -0
- package/dist/app/assets/{PackagePage-e4kN75YR.js → PackagePage-ByoSTLJ4.js} +1 -1
- package/dist/app/assets/RouteError-CrSeKN2r.js +1 -0
- package/dist/app/assets/{ThemeEditorPage-CciagFTq.js → ThemeEditorPage-Btxnmhtk.js} +1 -1
- package/dist/app/assets/{WorkbookPage-DNWmkCXa.js → WorkbookPage-D6JLPnWO.js} +1 -1
- package/dist/app/assets/{core-Rj_4rRnA.es-BZyvITuO.js → core-BSRgt1mG.es-Bc_D2Lq4.js} +1 -1
- package/dist/app/assets/{index-CH2AcDzc.js → index-BRijWj6K.js} +15 -15
- package/dist/app/assets/{index-DQa463gC.js → index-BX4D94xw.js} +1 -1
- package/dist/app/assets/{index-VBbcc8s6.js → index-Cvy0xtb7.js} +1 -1
- package/dist/app/assets/{index-DQpV7MyA.js → index-DMAhIJNC.js} +1 -1
- package/dist/app/index.html +1 -1
- package/dist/package_load_worker.mjs +59 -20
- package/dist/server.mjs +1342 -616
- package/package.json +8 -2
- package/.eslintrc.json +0 -44
- package/.prettierignore +0 -1
- package/.prettierrc +0 -4
- package/build.ts +0 -97
- package/dist/app/assets/ModelPage-C1OSTv-x.js +0 -1
- package/dist/app/assets/RouteError-CzbfOkng.js +0 -1
- 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.example.bigquery.json +0 -33
- package/publisher.config.example.duckdb.json +0 -23
- package/publisher.config.json +0 -23
- package/scripts/bake-duckdb-extensions.js +0 -110
- package/src/config.spec.ts +0 -1535
- package/src/config.theme.spec.ts +0 -178
- package/src/config.ts +0 -1142
- package/src/constants.ts +0 -105
- package/src/controller/compile.controller.ts +0 -40
- package/src/controller/connection.controller.spec.ts +0 -849
- package/src/controller/connection.controller.ts +0 -901
- package/src/controller/database.controller.ts +0 -24
- package/src/controller/materialization.controller.spec.ts +0 -293
- package/src/controller/materialization.controller.ts +0 -319
- package/src/controller/model.controller.ts +0 -164
- package/src/controller/package.controller.spec.ts +0 -273
- package/src/controller/package.controller.ts +0 -306
- package/src/controller/query.controller.ts +0 -152
- package/src/controller/theme.controller.ts +0 -83
- package/src/controller/watch-mode.controller.ts +0 -243
- package/src/data_styles.ts +0 -71
- package/src/default-publisher.config.json +0 -23
- package/src/ducklake_version.spec.ts +0 -163
- package/src/ducklake_version.ts +0 -153
- package/src/errors.spec.ts +0 -119
- package/src/errors.ts +0 -237
- package/src/filter_deprecation.spec.ts +0 -64
- package/src/filter_deprecation.ts +0 -42
- package/src/health.spec.ts +0 -123
- package/src/health.ts +0 -233
- package/src/heap_check.spec.ts +0 -144
- package/src/heap_check.ts +0 -144
- package/src/instrumentation.ts +0 -214
- package/src/json_utils.spec.ts +0 -51
- package/src/json_utils.ts +0 -33
- package/src/logger.spec.ts +0 -210
- package/src/logger.ts +0 -251
- package/src/malloy_pin_prereqs.spec.ts +0 -25
- package/src/materialization_metrics.spec.ts +0 -169
- package/src/materialization_metrics.ts +0 -346
- package/src/mcp/error_messages.spec.ts +0 -35
- package/src/mcp/error_messages.ts +0 -183
- package/src/mcp/handler_utils.spec.ts +0 -108
- package/src/mcp/handler_utils.ts +0 -251
- package/src/mcp/mcp_constants.ts +0 -6
- package/src/mcp/query_envelope.spec.ts +0 -229
- package/src/mcp/query_envelope.ts +0 -240
- package/src/mcp/server.protocol.spec.ts +0 -250
- package/src/mcp/server.ts +0 -87
- package/src/mcp/skills/build_skills_bundle.spec.ts +0 -51
- package/src/mcp/skills/build_skills_bundle.ts +0 -176
- package/src/mcp/skills/skills_bundle.json +0 -1
- package/src/mcp/skills/skills_bundle.spec.ts +0 -171
- package/src/mcp/tool_response.spec.ts +0 -108
- package/src/mcp/tool_response.ts +0 -138
- package/src/mcp/tools/compile_tool.spec.ts +0 -315
- package/src/mcp/tools/compile_tool.ts +0 -208
- package/src/mcp/tools/docs_search/build_docs_index.ts +0 -132
- package/src/mcp/tools/docs_search/malloy_docs_index.json +0 -1
- package/src/mcp/tools/docs_search_tool.spec.ts +0 -32
- package/src/mcp/tools/docs_search_tool.ts +0 -128
- package/src/mcp/tools/embedding_index.spec.ts +0 -1236
- package/src/mcp/tools/embedding_index.ts +0 -808
- package/src/mcp/tools/execute_query_tool.spec.ts +0 -294
- package/src/mcp/tools/execute_query_tool.ts +0 -316
- package/src/mcp/tools/get_context_eval.ts +0 -275
- package/src/mcp/tools/get_context_tool.spec.ts +0 -592
- package/src/mcp/tools/get_context_tool.ts +0 -585
- package/src/mcp/tools/reload_package_tool.spec.ts +0 -232
- package/src/mcp/tools/reload_package_tool.ts +0 -132
- package/src/mcp_config.spec.ts +0 -919
- package/src/mcp_config.ts +0 -425
- package/src/oom_guards.integration.spec.ts +0 -269
- package/src/package_load/package_load_pool.spec.ts +0 -252
- package/src/package_load/package_load_pool.ts +0 -931
- package/src/package_load/package_load_worker.ts +0 -1034
- package/src/package_load/protocol.ts +0 -364
- package/src/package_load/rpc_wait_accountant.spec.ts +0 -109
- package/src/package_load/rpc_wait_accountant.ts +0 -76
- package/src/package_load_metrics.spec.ts +0 -114
- package/src/package_load_metrics.ts +0 -127
- package/src/path_safety.spec.ts +0 -158
- package/src/path_safety.ts +0 -146
- package/src/pg_helpers.spec.ts +0 -223
- package/src/pg_helpers.ts +0 -52
- package/src/query_cap_metrics.spec.ts +0 -89
- package/src/query_cap_metrics.ts +0 -116
- package/src/query_concurrency.spec.ts +0 -247
- package/src/query_concurrency.ts +0 -237
- package/src/query_metadata_metrics.ts +0 -49
- package/src/query_param_utils.ts +0 -29
- package/src/query_timeout.spec.ts +0 -224
- package/src/query_timeout.ts +0 -179
- package/src/runtime/publisher.js +0 -328
- package/src/server-old.ts +0 -988
- package/src/server.ts +0 -2059
- package/src/service/annotations.spec.ts +0 -118
- package/src/service/annotations.ts +0 -91
- package/src/service/authorize.spec.ts +0 -154
- package/src/service/authorize.ts +0 -498
- package/src/service/authorize_integration.spec.ts +0 -2041
- package/src/service/build_plan.spec.ts +0 -685
- package/src/service/build_plan.ts +0 -797
- package/src/service/compile_authorize.spec.ts +0 -85
- package/src/service/compile_fragment_techniques.spec.ts +0 -156
- package/src/service/connection.spec.ts +0 -2360
- package/src/service/connection.ts +0 -2187
- package/src/service/connection_config.spec.ts +0 -734
- package/src/service/connection_config.ts +0 -899
- package/src/service/connection_federation.spec.ts +0 -184
- package/src/service/connection_fingerprint.spec.ts +0 -102
- package/src/service/connection_service.spec.ts +0 -711
- package/src/service/connection_service.ts +0 -291
- package/src/service/cron_evaluator.spec.ts +0 -79
- package/src/service/cron_evaluator.ts +0 -105
- package/src/service/db_utils.spec.ts +0 -1085
- package/src/service/db_utils.ts +0 -1502
- package/src/service/duckdb_instance_isolation.spec.ts +0 -137
- package/src/service/ducklake_lazy_attach.spec.ts +0 -110
- package/src/service/embedding_provider.spec.ts +0 -329
- package/src/service/embedding_provider.ts +0 -236
- package/src/service/environment.ts +0 -2191
- package/src/service/environment_admission.spec.ts +0 -344
- package/src/service/environment_compile.spec.ts +0 -197
- package/src/service/environment_store.spec.ts +0 -2274
- package/src/service/environment_store.ts +0 -2434
- package/src/service/environment_store_anchoring.spec.ts +0 -107
- package/src/service/environment_store_clone.spec.ts +0 -350
- package/src/service/explore_visibility.spec.ts +0 -434
- package/src/service/exports_probe.spec.ts +0 -107
- package/src/service/extension_fetch_policy.spec.ts +0 -256
- package/src/service/filter.spec.ts +0 -458
- package/src/service/filter.ts +0 -341
- package/src/service/filter_bypass.spec.ts +0 -418
- package/src/service/filter_integration.spec.ts +0 -1004
- package/src/service/freshness.spec.ts +0 -183
- package/src/service/freshness.ts +0 -112
- package/src/service/gcs_s3_utils.ts +0 -427
- package/src/service/given.ts +0 -105
- package/src/service/givens_integration.spec.ts +0 -219
- package/src/service/manifest_loader.spec.ts +0 -189
- package/src/service/manifest_loader.ts +0 -156
- package/src/service/materialization_build_session.spec.ts +0 -435
- package/src/service/materialization_build_session.ts +0 -681
- package/src/service/materialization_config_validation.spec.ts +0 -99
- package/src/service/materialization_config_validation.ts +0 -120
- package/src/service/materialization_eligibility.spec.ts +0 -158
- package/src/service/materialization_eligibility.ts +0 -305
- package/src/service/materialization_schedule_surface.spec.ts +0 -256
- package/src/service/materialization_scheduler.spec.ts +0 -289
- package/src/service/materialization_scheduler.ts +0 -304
- package/src/service/materialization_serve_transform.spec.ts +0 -1003
- package/src/service/materialization_serve_transform.ts +0 -779
- package/src/service/materialization_service.spec.ts +0 -2373
- package/src/service/materialization_service.ts +0 -2342
- package/src/service/materialization_test_fixtures.ts +0 -249
- package/src/service/model.spec.ts +0 -1157
- package/src/service/model.ts +0 -3370
- package/src/service/model_limits.spec.ts +0 -209
- package/src/service/model_limits.ts +0 -131
- package/src/service/model_storage_serve.spec.ts +0 -193
- package/src/service/model_storage_serve_joins.spec.ts +0 -193
- package/src/service/package.spec.ts +0 -612
- package/src/service/package.ts +0 -1799
- package/src/service/package_manifest.spec.ts +0 -230
- package/src/service/package_manifest.ts +0 -241
- package/src/service/package_memory_governor.spec.ts +0 -173
- package/src/service/package_memory_governor.ts +0 -233
- package/src/service/package_quote_bound_tables.spec.ts +0 -171
- package/src/service/package_race.spec.ts +0 -208
- package/src/service/package_reload_safety.spec.ts +0 -193
- package/src/service/package_rollback.spec.ts +0 -190
- package/src/service/package_worker_path.spec.ts +0 -645
- package/src/service/path_injection.spec.ts +0 -39
- package/src/service/persist_annotation_validation.spec.ts +0 -89
- package/src/service/persist_annotation_validation.ts +0 -59
- package/src/service/persistence_policy.spec.ts +0 -374
- package/src/service/proxy.spec.ts +0 -414
- package/src/service/proxy.ts +0 -248
- package/src/service/query_boundary.spec.ts +0 -470
- package/src/service/query_metadata.spec.ts +0 -408
- package/src/service/query_metadata.ts +0 -492
- package/src/service/query_metadata_identity.spec.ts +0 -149
- package/src/service/query_text.spec.ts +0 -79
- package/src/service/query_text.ts +0 -43
- package/src/service/quoting.spec.ts +0 -135
- package/src/service/quoting.ts +0 -78
- package/src/service/resolve_environment.ts +0 -15
- package/src/service/restricted_mode.spec.ts +0 -299
- package/src/service/source_extraction.ts +0 -225
- package/src/service/theme_store.ts +0 -199
- package/src/storage/DatabaseInterface.ts +0 -198
- package/src/storage/StorageManager.ts +0 -113
- package/src/storage/duckdb/ConnectionRepository.ts +0 -143
- package/src/storage/duckdb/DuckDBConnection.ts +0 -123
- package/src/storage/duckdb/DuckDBRepository.ts +0 -208
- package/src/storage/duckdb/EnvironmentRepository.ts +0 -148
- package/src/storage/duckdb/MaterializationRepository.spec.ts +0 -191
- package/src/storage/duckdb/MaterializationRepository.ts +0 -336
- package/src/storage/duckdb/PackageRepository.ts +0 -135
- package/src/storage/duckdb/schema.ts +0 -229
- package/src/stream_helpers.spec.ts +0 -280
- package/src/stream_helpers.ts +0 -162
- package/src/telemetry.ts +0 -20
- package/src/test_helpers/metrics_harness.ts +0 -166
- package/src/theme_key_parity.spec.ts +0 -57
- package/src/utils.ts +0 -29
- package/tests/fixtures/authorize-compile/model.malloy +0 -9
- package/tests/fixtures/authorize-compile/publisher.json +0 -4
- package/tests/fixtures/html-pages-nopublic/model.malloy +0 -1
- package/tests/fixtures/html-pages-nopublic/publisher.json +0 -5
- package/tests/fixtures/html-pages-test/data.csv +0 -3
- package/tests/fixtures/html-pages-test/public/assets/app.css +0 -3
- package/tests/fixtures/html-pages-test/public/barehtml.html +0 -4
- package/tests/fixtures/html-pages-test/public/bodymeta.html +0 -8
- package/tests/fixtures/html-pages-test/public/data.json +0 -1
- package/tests/fixtures/html-pages-test/public/fitcomment.html +0 -11
- package/tests/fixtures/html-pages-test/public/index.html +0 -9
- package/tests/fixtures/html-pages-test/public/nohead.html +0 -8
- package/tests/fixtures/html-pages-test/public/notfit.html +0 -13
- package/tests/fixtures/html-pages-test/public/slides.html +0 -12
- package/tests/fixtures/html-pages-test/public/sub/page2.html +0 -9
- package/tests/fixtures/html-pages-test/public/unterminated.html +0 -10
- package/tests/fixtures/html-pages-test/publisher.json +0 -5
- package/tests/fixtures/html-pages-test/report.malloy +0 -1
- package/tests/fixtures/persist-multi-level/data/orders.csv +0 -5
- package/tests/fixtures/persist-multi-level/multi_level.malloy +0 -18
- package/tests/fixtures/persist-multi-level/publisher.json +0 -5
- package/tests/fixtures/persist-schedule-test/data/orders.csv +0 -5
- package/tests/fixtures/persist-schedule-test/persist_schedule_test.malloy +0 -11
- package/tests/fixtures/persist-schedule-test/publisher.json +0 -7
- package/tests/fixtures/persist-schedule-warn-test/data/orders.csv +0 -5
- package/tests/fixtures/persist-schedule-warn-test/persist_warn_test.malloy +0 -11
- package/tests/fixtures/persist-schedule-warn-test/publisher.json +0 -6
- 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/fixtures/query-givens/data/orders.csv +0 -7
- package/tests/fixtures/query-givens/model.malloy +0 -34
- package/tests/fixtures/query-givens/publisher.json +0 -5
- package/tests/fixtures/xlsx/database.xlsx +0 -0
- package/tests/harness/mcp_test_setup.ts +0 -332
- package/tests/harness/rest_e2e.ts +0 -68
- package/tests/integration/authorize/compile_authorize_http.integration.spec.ts +0 -92
- package/tests/integration/concurrent_package/concurrent_package.integration.spec.ts +0 -280
- package/tests/integration/duckdb_storage/duckdb_storage.integration.spec.ts +0 -138
- package/tests/integration/first_boot/readiness_line.integration.spec.ts +0 -177
- package/tests/integration/html_pages/html_pages.integration.spec.ts +0 -440
- package/tests/integration/legacy_routes/legacy_routes.integration.spec.ts +0 -259
- package/tests/integration/materialization/environment_list.integration.spec.ts +0 -133
- package/tests/integration/materialization/freshness_gate.integration.spec.ts +0 -292
- package/tests/integration/materialization/manifest_binding.integration.spec.ts +0 -430
- package/tests/integration/materialization/materialization_lifecycle.integration.spec.ts +0 -441
- package/tests/integration/materialization/orchestrated_rebind.integration.spec.ts +0 -150
- package/tests/integration/materialization/reference_manifest.integration.spec.ts +0 -251
- package/tests/integration/materialization/schedule_edit.integration.spec.ts +0 -126
- package/tests/integration/materialization/scheduler.integration.spec.ts +0 -200
- package/tests/integration/materialization/scheduler_recovery.integration.spec.ts +0 -172
- package/tests/integration/materialization/scheduler_transitions.integration.spec.ts +0 -256
- package/tests/integration/materialization/scheduler_wiring.integration.spec.ts +0 -143
- package/tests/integration/mcp/mcp_execute_query_tool.integration.spec.ts +0 -438
- package/tests/integration/mcp/mcp_get_context_semantic.integration.spec.ts +0 -235
- package/tests/integration/mcp/mcp_transport.integration.spec.ts +0 -98
- package/tests/integration/query_givens/query_givens.integration.spec.ts +0 -146
- package/tests/integration/query_givens/query_givens_authorize.integration.spec.ts +0 -121
- package/tests/integration/sdk_givens/sdk_givens.integration.spec.ts +0 -110
- package/tests/integration/watch-mode/watch_mode.integration.spec.ts +0 -421
- package/tests/unit/controller/theme.controller.spec.ts +0 -141
- package/tests/unit/duckdb/attached_databases.test.ts +0 -1243
- package/tests/unit/duckdb/duckdb_connection.test.ts +0 -181
- package/tests/unit/duckdb/legacy_schema_migration.test.ts +0 -197
- package/tests/unit/duckdb/repositories.test.ts +0 -208
- package/tests/unit/ducklake/ducklake.test.ts +0 -952
- package/tests/unit/service/theme_store.spec.ts +0 -139
- package/tsconfig.json +0 -32
package/src/constants.ts
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import os from "os";
|
|
2
|
-
export const API_PREFIX = "/api/v0";
|
|
3
|
-
export const README_NAME = "README.md";
|
|
4
|
-
export const PUBLISHER_CONFIG_NAME = "publisher.config.json";
|
|
5
|
-
export const PACKAGE_MANIFEST_NAME = "publisher.json";
|
|
6
|
-
export const MODEL_FILE_SUFFIX = ".malloy";
|
|
7
|
-
export const NOTEBOOK_FILE_SUFFIX = ".malloynb";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Normalize a package-relative model path so author-written `explores`
|
|
11
|
-
* entries compare equal to the paths produced by `listPackageFiles`
|
|
12
|
-
* (forward slashes, no leading "./"). Shared by every input channel — the
|
|
13
|
-
* worker's on-disk parse and the API publish/update path — so a manifest
|
|
14
|
-
* behaves the same whether it's loaded from disk or written via the API.
|
|
15
|
-
*/
|
|
16
|
-
export function normalizeModelPath(p: string): string {
|
|
17
|
-
return p.replace(/\\/g, "/").replace(/^\.\//, "");
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Default row cap applied to Malloy model queries (the `runnable.run`
|
|
22
|
-
* path used by `getQueryResults` and notebook cell execution) when
|
|
23
|
-
* the user's query doesn't carry its own `LIMIT`. Override at startup
|
|
24
|
-
* via `PUBLISHER_DEFAULT_QUERY_ROW_LIMIT`.
|
|
25
|
-
*
|
|
26
|
-
* This is *the default*, not a hard ceiling. A Malloy query that
|
|
27
|
-
* carries `LIMIT 50000` overrides this. The hard ceiling is
|
|
28
|
-
* {@link DEFAULT_MAX_QUERY_ROWS} (env-tuned via
|
|
29
|
-
* `PUBLISHER_MAX_QUERY_ROWS`), which the model-query path now also
|
|
30
|
-
* enforces — preventing a user `LIMIT 10000000` from blowing up the
|
|
31
|
-
* process.
|
|
32
|
-
*
|
|
33
|
-
* Tuned conservatively (1000) because notebook UIs typically render
|
|
34
|
-
* tabular previews; operators who need larger ad-hoc exports can
|
|
35
|
-
* raise it.
|
|
36
|
-
*/
|
|
37
|
-
export const DEFAULT_QUERY_ROW_LIMIT = 1000;
|
|
38
|
-
/**
|
|
39
|
-
* Maximum number of rows the ad-hoc connection SQL endpoints
|
|
40
|
-
* (`/environments/.../connections/.../sqlQuery`) will return in a
|
|
41
|
-
* single response before failing with HTTP 413. Override at startup
|
|
42
|
-
* via `PUBLISHER_MAX_QUERY_ROWS`.
|
|
43
|
-
*
|
|
44
|
-
* Tuned high enough to handle typical interactive SQL exploration
|
|
45
|
-
* without truncating, while still bounding memory: 100k narrow rows
|
|
46
|
-
* is ~tens of MB of buffered result + a same-order JSON.stringify
|
|
47
|
-
* copy, comfortably under any reasonable pod memory budget. Wide
|
|
48
|
-
* rows (large strings, JSON blobs) are bounded separately by the
|
|
49
|
-
* Step 2 byte budget.
|
|
50
|
-
*/
|
|
51
|
-
export const DEFAULT_MAX_QUERY_ROWS = 100_000;
|
|
52
|
-
/**
|
|
53
|
-
* Maximum aggregate JSON-serialized byte size of an ad-hoc
|
|
54
|
-
* connection SQL response before failing with HTTP 413. Override at
|
|
55
|
-
* startup via `PUBLISHER_MAX_RESPONSE_BYTES`.
|
|
56
|
-
*
|
|
57
|
-
* This is the actual memory bound: row count alone is a poor proxy
|
|
58
|
-
* for memory pressure because a single 10 MB JSON column blows past
|
|
59
|
-
* the 100k-row cap's safe envelope. Enforced only when the
|
|
60
|
-
* underlying connection implements `StreamingConnection` (Postgres,
|
|
61
|
-
* DuckDB, ...) since byte counting requires iterating row-at-a-time
|
|
62
|
-
* — on non-streaming connections the driver has already buffered
|
|
63
|
-
* the whole result by the time we see it, so client-side byte
|
|
64
|
-
* counting gains nothing.
|
|
65
|
-
*
|
|
66
|
-
* 50 MB picked as a middle ground: comfortably accommodates wide
|
|
67
|
-
* exploratory results (50k rows × 1 KB, or 5k rows × 10 KB) while
|
|
68
|
-
* keeping a single pod able to serve a handful of concurrent
|
|
69
|
-
* requests under a typical 1-2 GB memory budget.
|
|
70
|
-
*/
|
|
71
|
-
export const DEFAULT_MAX_RESPONSE_BYTES = 50_000_000;
|
|
72
|
-
/**
|
|
73
|
-
* Default wall-clock timeout (milliseconds) applied to a single query
|
|
74
|
-
* — whether it's an ad-hoc connection SQL call or a Malloy model
|
|
75
|
-
* query. Override at startup via `PUBLISHER_QUERY_TIMEOUT_MS`; `0`
|
|
76
|
-
* disables the timeout entirely.
|
|
77
|
-
*
|
|
78
|
-
* 5 minutes is generous enough to let ad-hoc materializations and
|
|
79
|
-
* larger interactive queries finish, while still well under the
|
|
80
|
-
* 10-minute HTTP socket timeout so the publisher returns a clean
|
|
81
|
-
* `504 Gateway Timeout` instead of letting the load balancer
|
|
82
|
-
* disconnect mid-stream. Operators running long-tail analytical
|
|
83
|
-
* jobs should raise this; operators running a high-RPS API surface
|
|
84
|
-
* may want to lower it.
|
|
85
|
-
*/
|
|
86
|
-
export const DEFAULT_QUERY_TIMEOUT_MS = 300_000;
|
|
87
|
-
/**
|
|
88
|
-
* Default upper bound on the number of inbound query requests a
|
|
89
|
-
* single publisher pod will handle concurrently. Excess requests
|
|
90
|
-
* are rejected with `503 Service Unavailable` so the upstream load
|
|
91
|
-
* balancer can retry / shed load instead of letting them pile up
|
|
92
|
-
* and stampede memory. Override at startup via
|
|
93
|
-
* `PUBLISHER_MAX_CONCURRENT_QUERIES`; `0` disables the limit.
|
|
94
|
-
*
|
|
95
|
-
* 32 picked as a safe out-of-the-box value: it bounds aggregate
|
|
96
|
-
* memory usage at ~32× the per-query byte cap
|
|
97
|
-
* ({@link DEFAULT_MAX_RESPONSE_BYTES}, i.e. ~1.5 GB at the default
|
|
98
|
-
* 50 MB) while leaving substantial headroom for the API surface,
|
|
99
|
-
* notebook execution, and background materializations. Pods sized
|
|
100
|
-
* larger than the default should raise it; pods running on tight
|
|
101
|
-
* memory budgets should lower it.
|
|
102
|
-
*/
|
|
103
|
-
export const DEFAULT_MAX_CONCURRENT_QUERIES = 32;
|
|
104
|
-
export const TEMP_DIR_PATH = os.tmpdir();
|
|
105
|
-
export const PUBLISHER_DATA_DIR = "publisher_data";
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { GivenValue, LogMessage } from "@malloydata/malloy";
|
|
2
|
-
import { EnvironmentStore } from "../service/environment_store";
|
|
3
|
-
|
|
4
|
-
export class CompileController {
|
|
5
|
-
private environmentStore: EnvironmentStore;
|
|
6
|
-
|
|
7
|
-
constructor(environmentStore: EnvironmentStore) {
|
|
8
|
-
this.environmentStore = environmentStore;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
public async compile(
|
|
12
|
-
environmentName: string,
|
|
13
|
-
packageName: string,
|
|
14
|
-
modelName: string,
|
|
15
|
-
source: string,
|
|
16
|
-
includeSql: boolean = false,
|
|
17
|
-
givens?: Record<string, GivenValue>,
|
|
18
|
-
): Promise<{ status: string; problems: LogMessage[]; sql?: string }> {
|
|
19
|
-
const environment = await this.environmentStore.getEnvironment(
|
|
20
|
-
environmentName,
|
|
21
|
-
false,
|
|
22
|
-
);
|
|
23
|
-
const { problems, sql } = await environment.compileSource(
|
|
24
|
-
packageName,
|
|
25
|
-
modelName,
|
|
26
|
-
source,
|
|
27
|
-
includeSql,
|
|
28
|
-
givens,
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
// Determine overall status based on presence of errors
|
|
32
|
-
const hasErrors = problems.some((p) => p.severity === "error");
|
|
33
|
-
|
|
34
|
-
return {
|
|
35
|
-
status: hasErrors ? "error" : "success",
|
|
36
|
-
problems: problems,
|
|
37
|
-
...(sql !== undefined && { sql }),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
}
|