@fabricorg/databricks-testkit 0.8.0 → 0.9.0

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/index.cjs CHANGED
@@ -747,7 +747,7 @@ async function runLiveSuite(spec, runtime = {}) {
747
747
  const startedAt = (/* @__PURE__ */ new Date()).toISOString();
748
748
  const ownedWarehouse = runtime.warehouse === void 0;
749
749
  const client = runtime.client ?? createClientFromEnv(env);
750
- const warehouse2 = runtime.warehouse ?? (hasWarehouseConfig(env) ? await createWorkspaceContext({ env, client }) : unavailableWarehouseContext());
750
+ const warehouse3 = runtime.warehouse ?? (hasWarehouseConfig(env) ? await createWorkspaceContext({ env, client }) : unavailableWarehouseContext());
751
751
  const results = [];
752
752
  try {
753
753
  for (const check of spec.checks) {
@@ -762,7 +762,7 @@ async function runLiveSuite(spec, runtime = {}) {
762
762
  }
763
763
  const before = performance.now();
764
764
  try {
765
- const details = await check.run({ env, warehouse: warehouse2, client });
765
+ const details = await check.run({ env, warehouse: warehouse3, client });
766
766
  results.push({
767
767
  id: check.id,
768
768
  description: check.description,
@@ -781,7 +781,7 @@ async function runLiveSuite(spec, runtime = {}) {
781
781
  }
782
782
  }
783
783
  } finally {
784
- if (ownedWarehouse) await warehouse2.close();
784
+ if (ownedWarehouse) await warehouse3.close();
785
785
  }
786
786
  const success = required3.every(
787
787
  (id) => results.find((result) => result.id === id)?.status === "pass"
@@ -896,8 +896,8 @@ function sqlRoundTripCheck() {
896
896
  id: "sql",
897
897
  description: "SQL Statement Execution round-trip",
898
898
  configured: (env) => Boolean(env.DATABRICKS_WAREHOUSE_ID || env.DATABRICKS_HTTP_PATH),
899
- async run({ warehouse: warehouse2 }) {
900
- const rows = await warehouse2.query("SELECT 1 AS dbx_test_ok");
899
+ async run({ warehouse: warehouse3 }) {
900
+ const rows = await warehouse3.query("SELECT 1 AS dbx_test_ok");
901
901
  if (Number(rows[0]?.dbx_test_ok) !== 1)
902
902
  throw new Error("SQL round-trip returned an unexpected value");
903
903
  return { rows: rows.length };
@@ -941,9 +941,9 @@ function deltaContractCheck(tableEnv = "DBX_TEST_DELTA_TABLE", columns = []) {
941
941
  id: "delta-contract",
942
942
  description: "Delta table schema contract",
943
943
  configured: (env) => Boolean(env[tableEnv]),
944
- async run({ env, warehouse: warehouse2 }) {
944
+ async run({ env, warehouse: warehouse3 }) {
945
945
  const table = env[tableEnv];
946
- const rows = await warehouse2.query(`DESCRIBE TABLE ${table}`);
946
+ const rows = await warehouse3.query(`DESCRIBE TABLE ${table}`);
947
947
  assertDeltaContract(table, rows, columns);
948
948
  return { table, columns: rows.length };
949
949
  }
@@ -954,10 +954,10 @@ function unityCatalogAccessCheck() {
954
954
  id: "uc-grants",
955
955
  description: "Unity Catalog allow/deny access assertions",
956
956
  configured: (env) => Boolean(env.DBX_TEST_UC_ALLOWED_TABLE && env.DBX_TEST_UC_DENIED_TABLE),
957
- async run({ env, warehouse: warehouse2 }) {
958
- await warehouse2.query(`SELECT * FROM ${env.DBX_TEST_UC_ALLOWED_TABLE} LIMIT 1`);
957
+ async run({ env, warehouse: warehouse3 }) {
958
+ await warehouse3.query(`SELECT * FROM ${env.DBX_TEST_UC_ALLOWED_TABLE} LIMIT 1`);
959
959
  try {
960
- await warehouse2.query(`SELECT * FROM ${env.DBX_TEST_UC_DENIED_TABLE} LIMIT 1`);
960
+ await warehouse3.query(`SELECT * FROM ${env.DBX_TEST_UC_DENIED_TABLE} LIMIT 1`);
961
961
  } catch (error) {
962
962
  if (/permission.?denied|insufficient.?priv|403|unauthoriz/i.test(String(error))) {
963
963
  return { allowed: env.DBX_TEST_UC_ALLOWED_TABLE, denied: env.DBX_TEST_UC_DENIED_TABLE };
@@ -1325,9 +1325,9 @@ function secretScopeCheck() {
1325
1325
  scope
1326
1326
  });
1327
1327
  const actual = new Set((response.secrets ?? []).map((secret) => secret.key).filter(Boolean));
1328
- const missing = expected.filter((key) => !actual.has(key));
1329
- if (missing.length > 0) {
1330
- throw new Error(`Secret scope ${scope} is missing keys: ${missing.join(", ")}`);
1328
+ const missing2 = expected.filter((key) => !actual.has(key));
1329
+ if (missing2.length > 0) {
1330
+ throw new Error(`Secret scope ${scope} is missing keys: ${missing2.join(", ")}`);
1331
1331
  }
1332
1332
  return { scope, expectedKeys: expected.length };
1333
1333
  }
@@ -1348,10 +1348,10 @@ function appHealthCheck(options = {}) {
1348
1348
  const actual = new Set(
1349
1349
  (app.resources ?? []).map((resource) => resource.name).filter(Boolean)
1350
1350
  );
1351
- const missing = expected.filter((resource) => !actual.has(resource));
1352
- if (missing.length > 0) {
1351
+ const missing2 = expected.filter((resource) => !actual.has(resource));
1352
+ if (missing2.length > 0) {
1353
1353
  throw new Error(
1354
- `Databricks App ${name} is missing resource bindings: ${missing.join(", ")}`
1354
+ `Databricks App ${name} is missing resource bindings: ${missing2.join(", ")}`
1355
1355
  );
1356
1356
  }
1357
1357
  const appUrl = env.DBX_TEST_APP_URL ?? app.url ?? app.app_url;
@@ -1422,7 +1422,7 @@ function autoLoaderIngestionCheck(options = {}) {
1422
1422
  configured: (env) => Boolean(
1423
1423
  env.DBX_TEST_AUTOLOADER_PIPELINE_ID && env.DBX_TEST_AUTOLOADER_TABLE && env.DBX_TEST_AUTOLOADER_FIXTURE && env.DBX_TEST_VOLUME
1424
1424
  ),
1425
- async run({ env, client, warehouse: warehouse2 }) {
1425
+ async run({ env, client, warehouse: warehouse3 }) {
1426
1426
  const pipelineId = env.DBX_TEST_AUTOLOADER_PIPELINE_ID;
1427
1427
  if (pipelineId === env.DBX_TEST_PIPELINE_ID) {
1428
1428
  throw new Error("DBX_TEST_AUTOLOADER_PIPELINE_ID must not be the production pipeline");
@@ -1447,7 +1447,7 @@ function autoLoaderIngestionCheck(options = {}) {
1447
1447
  pollIntervalMs: Number(env.DBX_TEST_POLL_INTERVAL_MS ?? 1e4)
1448
1448
  });
1449
1449
  const table = env.DBX_TEST_AUTOLOADER_TABLE;
1450
- const rows = await warehouse2.query(
1450
+ const rows = await warehouse3.query(
1451
1451
  `SELECT COUNT(*) AS n, SUM(CASE WHEN _rescued_data IS NOT NULL THEN 1 ELSE 0 END) AS rescued FROM ${table}`
1452
1452
  );
1453
1453
  const count = Number(rows[0]?.n ?? 0);
@@ -1473,7 +1473,7 @@ function performanceBudgetCheck() {
1473
1473
  id: "performance",
1474
1474
  description: "SQL Statement Execution p95 stays within the configured latency budget",
1475
1475
  configured: (env) => Boolean(env.DBX_TEST_PERFORMANCE_P95_MS),
1476
- async run({ env, warehouse: warehouse2 }) {
1476
+ async run({ env, warehouse: warehouse3 }) {
1477
1477
  const budgetMs = Number(env.DBX_TEST_PERFORMANCE_P95_MS);
1478
1478
  const runs = Number(env.DBX_TEST_PERFORMANCE_RUNS ?? 7);
1479
1479
  if (!Number.isFinite(budgetMs) || budgetMs <= 0) {
@@ -1482,11 +1482,11 @@ function performanceBudgetCheck() {
1482
1482
  if (!Number.isInteger(runs) || runs < 3 || runs > 100) {
1483
1483
  throw new Error("DBX_TEST_PERFORMANCE_RUNS must be an integer from 3 to 100");
1484
1484
  }
1485
- await warehouse2.query("SELECT 1 AS warmup");
1485
+ await warehouse3.query("SELECT 1 AS warmup");
1486
1486
  const durations = [];
1487
1487
  for (let index = 0; index < runs; index += 1) {
1488
1488
  const started = performance.now();
1489
- await warehouse2.query("SELECT 1 AS performance_probe");
1489
+ await warehouse3.query("SELECT 1 AS performance_probe");
1490
1490
  durations.push(performance.now() - started);
1491
1491
  }
1492
1492
  durations.sort((left, right) => left - right);
@@ -1508,15 +1508,15 @@ function failureRecoveryCheck() {
1508
1508
  id: "failure-recovery",
1509
1509
  description: "A failed statement is isolated and a subsequent statement recovers",
1510
1510
  configured: (env) => Boolean(env.DATABRICKS_WAREHOUSE_ID || env.DATABRICKS_HTTP_PATH),
1511
- async run({ warehouse: warehouse2 }) {
1511
+ async run({ warehouse: warehouse3 }) {
1512
1512
  let failedAsExpected = false;
1513
1513
  try {
1514
- await warehouse2.query("SELECT * FROM __fabric_experiments_expected_missing_table__");
1514
+ await warehouse3.query("SELECT * FROM __fabric_experiments_expected_missing_table__");
1515
1515
  } catch {
1516
1516
  failedAsExpected = true;
1517
1517
  }
1518
1518
  if (!failedAsExpected) throw new Error("Injected failure unexpectedly succeeded");
1519
- const rows = await warehouse2.query("SELECT 1 AS recovered");
1519
+ const rows = await warehouse3.query("SELECT 1 AS recovered");
1520
1520
  if (Number(rows[0]?.recovered) !== 1) {
1521
1521
  throw new Error("Statement execution did not recover after the injected failure");
1522
1522
  }
@@ -1554,20 +1554,20 @@ function backupRestoreCheck() {
1554
1554
  id: "backup-restore",
1555
1555
  description: "Delta DEEP CLONE backup restores a dropped scratch table",
1556
1556
  configured: (env) => Boolean(env.DATABRICKS_WAREHOUSE_ID || env.DATABRICKS_HTTP_PATH),
1557
- async run({ warehouse: warehouse2 }) {
1558
- const source = warehouse2.qual(safeName("backup_source"));
1559
- const backup = warehouse2.qual(safeName("backup_clone"));
1557
+ async run({ warehouse: warehouse3 }) {
1558
+ const source = warehouse3.qual(safeName("backup_source"));
1559
+ const backup = warehouse3.qual(safeName("backup_clone"));
1560
1560
  try {
1561
- await warehouse2.exec(`CREATE TABLE ${source} USING DELTA AS SELECT 7 AS value`);
1562
- await warehouse2.exec(`CREATE TABLE ${backup} DEEP CLONE ${source}`);
1563
- await warehouse2.exec(`DROP TABLE ${source}`);
1564
- await warehouse2.exec(`CREATE TABLE ${source} DEEP CLONE ${backup}`);
1565
- const rows = await warehouse2.query(`SELECT value FROM ${source}`);
1561
+ await warehouse3.exec(`CREATE TABLE ${source} USING DELTA AS SELECT 7 AS value`);
1562
+ await warehouse3.exec(`CREATE TABLE ${backup} DEEP CLONE ${source}`);
1563
+ await warehouse3.exec(`DROP TABLE ${source}`);
1564
+ await warehouse3.exec(`CREATE TABLE ${source} DEEP CLONE ${backup}`);
1565
+ const rows = await warehouse3.query(`SELECT value FROM ${source}`);
1566
1566
  if (Number(rows[0]?.value) !== 7) throw new Error("Restored Delta table lost its data");
1567
1567
  return { restoredRows: rows.length, deepClone: true };
1568
1568
  } finally {
1569
- await warehouse2.exec(`DROP TABLE IF EXISTS ${source}`).catch(() => void 0);
1570
- await warehouse2.exec(`DROP TABLE IF EXISTS ${backup}`).catch(() => void 0);
1569
+ await warehouse3.exec(`DROP TABLE IF EXISTS ${source}`).catch(() => void 0);
1570
+ await warehouse3.exec(`DROP TABLE IF EXISTS ${backup}`).catch(() => void 0);
1571
1571
  }
1572
1572
  }
1573
1573
  };
@@ -1577,25 +1577,25 @@ function rollbackCheck() {
1577
1577
  id: "rollback",
1578
1578
  description: "Delta time-travel rollback restores a known-good table version",
1579
1579
  configured: (env) => Boolean(env.DATABRICKS_WAREHOUSE_ID || env.DATABRICKS_HTTP_PATH),
1580
- async run({ warehouse: warehouse2 }) {
1581
- const table = warehouse2.qual(safeName("rollback_probe"));
1580
+ async run({ warehouse: warehouse3 }) {
1581
+ const table = warehouse3.qual(safeName("rollback_probe"));
1582
1582
  try {
1583
- await warehouse2.exec(`CREATE TABLE ${table} (value INT) USING DELTA`);
1584
- await warehouse2.exec(`INSERT INTO ${table} VALUES (1)`);
1585
- const history = await warehouse2.query(`DESCRIBE HISTORY ${table} LIMIT 1`);
1583
+ await warehouse3.exec(`CREATE TABLE ${table} (value INT) USING DELTA`);
1584
+ await warehouse3.exec(`INSERT INTO ${table} VALUES (1)`);
1585
+ const history = await warehouse3.query(`DESCRIBE HISTORY ${table} LIMIT 1`);
1586
1586
  const knownGoodVersion = Number(history[0]?.version);
1587
1587
  if (!Number.isInteger(knownGoodVersion)) {
1588
1588
  throw new Error("Delta history did not return a known-good version");
1589
1589
  }
1590
- await warehouse2.exec(`INSERT INTO ${table} VALUES (999)`);
1591
- await warehouse2.exec(`RESTORE TABLE ${table} TO VERSION AS OF ${knownGoodVersion}`);
1592
- const rows = await warehouse2.query(`SELECT value FROM ${table} ORDER BY value`);
1590
+ await warehouse3.exec(`INSERT INTO ${table} VALUES (999)`);
1591
+ await warehouse3.exec(`RESTORE TABLE ${table} TO VERSION AS OF ${knownGoodVersion}`);
1592
+ const rows = await warehouse3.query(`SELECT value FROM ${table} ORDER BY value`);
1593
1593
  if (rows.length !== 1 || Number(rows[0]?.value) !== 1) {
1594
1594
  throw new Error("Delta rollback did not restore the known-good contents");
1595
1595
  }
1596
1596
  return { knownGoodVersion, restoredRows: rows.length };
1597
1597
  } finally {
1598
- await warehouse2.exec(`DROP TABLE IF EXISTS ${table}`).catch(() => void 0);
1598
+ await warehouse3.exec(`DROP TABLE IF EXISTS ${table}`).catch(() => void 0);
1599
1599
  }
1600
1600
  }
1601
1601
  };
@@ -1605,13 +1605,13 @@ function serverlessComputeCheck() {
1605
1605
  id: "azure-serverless",
1606
1606
  description: "Azure Databricks serverless SQL warehouse is enabled and executes SQL",
1607
1607
  configured: (env) => Boolean(env.DATABRICKS_WAREHOUSE_ID),
1608
- async run({ env, client, warehouse: warehouse2 }) {
1608
+ async run({ env, client, warehouse: warehouse3 }) {
1609
1609
  const id = env.DATABRICKS_WAREHOUSE_ID;
1610
1610
  const details = await client.get(`/api/2.0/sql/warehouses/${encodeURIComponent(id)}`);
1611
1611
  if (details.enable_serverless_compute !== true) {
1612
1612
  throw new Error(`SQL warehouse ${id} is not configured for serverless compute`);
1613
1613
  }
1614
- const rows = await warehouse2.query("SELECT current_catalog() AS catalog");
1614
+ const rows = await warehouse3.query("SELECT current_catalog() AS catalog");
1615
1615
  return { warehouseId: id, name: details.name, state: details.state, rows: rows.length };
1616
1616
  }
1617
1617
  };
@@ -1731,15 +1731,15 @@ function createTargetPackRegistry(packs) {
1731
1731
  }
1732
1732
  return registry;
1733
1733
  }
1734
- function doctorTargetPack(pack, env = process.env, requiredChecks = pack.requiredChecks ?? []) {
1735
- const requirements = (pack.requirements ?? []).map((requirement2) => ({
1736
- id: requirement2.id,
1737
- description: requirement2.description,
1738
- satisfied: requirement2.anyOf.some((name) => Boolean(env[name]?.trim())),
1739
- required: requirement2.required !== false,
1740
- variables: [...requirement2.anyOf]
1734
+ function doctorTargetPack(pack, env = process.env, requiredChecks = []) {
1735
+ const requirements = (pack.requirements ?? []).map((requirement3) => ({
1736
+ id: requirement3.id,
1737
+ description: requirement3.description,
1738
+ satisfied: requirement3.anyOf.some((name) => Boolean(env[name]?.trim())),
1739
+ required: requirement3.required !== false,
1740
+ variables: [...requirement3.anyOf]
1741
1741
  }));
1742
- const required3 = new Set(requiredChecks);
1742
+ const required3 = new Set(resolveRequiredChecks(pack, requiredChecks));
1743
1743
  const checks = pack.checks().map((check) => ({
1744
1744
  id: check.id,
1745
1745
  description: check.description,
@@ -1747,7 +1747,7 @@ function doctorTargetPack(pack, env = process.env, requiredChecks = pack.require
1747
1747
  required: required3.has(check.id)
1748
1748
  }));
1749
1749
  const known = new Set(checks.map((check) => check.id));
1750
- const missingRequirements = requirements.filter((requirement2) => requirement2.required && !requirement2.satisfied).map((requirement2) => requirement2.id);
1750
+ const missingRequirements = requirements.filter((requirement3) => requirement3.required && !requirement3.satisfied).map((requirement3) => requirement3.id);
1751
1751
  const missingRequiredChecks = [
1752
1752
  ...checks.filter((check) => check.required && !check.configured).map((check) => check.id),
1753
1753
  ...[...required3].filter((id) => !known.has(id))
@@ -1768,11 +1768,11 @@ function doctorTargetPack(pack, env = process.env, requiredChecks = pack.require
1768
1768
  }
1769
1769
  function defineTargetPackRun(pack, options = {}) {
1770
1770
  const env = options.env ?? process.env;
1771
- const requiredChecks = [...options.requiredChecks ?? pack.requiredChecks ?? []];
1771
+ const requiredChecks = resolveRequiredChecks(pack, options.requiredChecks);
1772
1772
  const doctor = doctorTargetPack(pack, env, requiredChecks);
1773
1773
  if (!doctor.ready) {
1774
- const missing = [...doctor.missingRequirements, ...doctor.missingRequiredChecks].join(", ");
1775
- throw new Error(`Target pack '${pack.id}' is not configured: ${missing}`);
1774
+ const missing2 = [...doctor.missingRequirements, ...doctor.missingRequiredChecks].join(", ");
1775
+ throw new Error(`Target pack '${pack.id}' is not configured: ${missing2}`);
1776
1776
  }
1777
1777
  const targetPack = evidenceMetadata(pack, env);
1778
1778
  const suite = defineLiveSuite({
@@ -1785,6 +1785,9 @@ function defineTargetPackRun(pack, options = {}) {
1785
1785
  });
1786
1786
  return { pack, run: (runtime) => suite.run(runtime) };
1787
1787
  }
1788
+ function resolveRequiredChecks(pack, additional = []) {
1789
+ return [.../* @__PURE__ */ new Set([...pack.requiredChecks ?? [], ...additional])];
1790
+ }
1788
1791
  async function runTargetPack(pack, options = {}, runtime) {
1789
1792
  return defineTargetPackRun(pack, options).run(runtime);
1790
1793
  }
@@ -2494,6 +2497,577 @@ function createLakeflowJobsTargetPack() {
2494
2497
  });
2495
2498
  }
2496
2499
 
2500
+ // src/next-workload-checks.ts
2501
+ init_workspace_client();
2502
+ function missing(env, names) {
2503
+ return names.filter((name) => !env[name]?.trim());
2504
+ }
2505
+ function requireEnv(env, names) {
2506
+ const absent = missing(env, names);
2507
+ if (absent.length > 0) throw new Error(`Missing required configuration: ${absent.join(", ")}`);
2508
+ }
2509
+ async function assertBooleanSql(label, statement, query) {
2510
+ if (!statement) throw new Error(`${label} assertion SQL is not configured`);
2511
+ const rows = await query(statement);
2512
+ const value = rows[0] ? Object.values(rows[0])[0] : void 0;
2513
+ if (!(value === true || value === 1 || value === "1" || value === "true")) {
2514
+ throw new Error(`${label} assertion did not return a truthy first column`);
2515
+ }
2516
+ }
2517
+ async function certificationJob(label, jobIdValue, env, client) {
2518
+ const jobId = Number(jobIdValue);
2519
+ if (!Number.isSafeInteger(jobId) || jobId <= 0) {
2520
+ throw new Error(`${label} job id must be a positive integer`);
2521
+ }
2522
+ const submitted = await client.post("/api/2.1/jobs/run-now", {
2523
+ job_id: jobId
2524
+ });
2525
+ if (!Number.isSafeInteger(submitted.run_id)) {
2526
+ throw new Error(`${label} certification job returned no run_id`);
2527
+ }
2528
+ const run = await waitForDatabricksRun(client, submitted.run_id, {
2529
+ timeoutMs: Number(env.DBX_TEST_TIMEOUT_MS ?? 36e5),
2530
+ pollIntervalMs: Number(env.DBX_TEST_POLL_INTERVAL_MS ?? 1e4)
2531
+ });
2532
+ const result = run.state?.result_state;
2533
+ if (result !== "SUCCESS") {
2534
+ throw new Error(`${label} certification job ${jobId} ended in ${result ?? "UNKNOWN"}`);
2535
+ }
2536
+ return { jobId, runId: submitted.run_id };
2537
+ }
2538
+ function jobAndAssertionsCheck(spec) {
2539
+ const names = [spec.job, ...spec.assertions.map(({ env }) => env)];
2540
+ return {
2541
+ id: spec.id,
2542
+ description: spec.description,
2543
+ configured: (env) => missing(env, names).length === 0,
2544
+ async run({ env, client, warehouse: warehouse3 }) {
2545
+ requireEnv(env, names);
2546
+ const job = await certificationJob(spec.label, env[spec.job], env, client);
2547
+ for (const assertion of spec.assertions) {
2548
+ await assertBooleanSql(assertion.label, env[assertion.env], warehouse3.query);
2549
+ }
2550
+ return {
2551
+ ...job,
2552
+ assertions: Object.fromEntries(spec.assertions.map(({ label }) => [label, true]))
2553
+ };
2554
+ }
2555
+ };
2556
+ }
2557
+ function semanticAnalyticsCheck() {
2558
+ return jobAndAssertionsCheck({
2559
+ id: "semantic-analytics",
2560
+ description: "Metric views, materialization, SQL alerts and query-performance evidence are healthy",
2561
+ label: "Semantic analytics",
2562
+ job: "DBX_TEST_SEMANTIC_ANALYTICS_JOB_ID",
2563
+ assertions: [
2564
+ { env: "DBX_TEST_METRIC_VIEW_ASSERTION_SQL", label: "Metric view query" },
2565
+ { env: "DBX_TEST_METRIC_MATERIALIZATION_ASSERTION_SQL", label: "Metric materialization" },
2566
+ { env: "DBX_TEST_SQL_ALERT_ASSERTION_SQL", label: "SQL alert" },
2567
+ { env: "DBX_TEST_QUERY_PERFORMANCE_ASSERTION_SQL", label: "Query performance" }
2568
+ ]
2569
+ });
2570
+ }
2571
+ function aiFunctionsBatchInferenceCheck() {
2572
+ return jobAndAssertionsCheck({
2573
+ id: "ai-functions-batch-inference",
2574
+ description: "AI Functions batch and streaming inference produce governed durable output",
2575
+ label: "AI Functions batch inference",
2576
+ job: "DBX_TEST_AI_FUNCTIONS_JOB_ID",
2577
+ assertions: [
2578
+ { env: "DBX_TEST_AI_FUNCTIONS_OUTPUT_ASSERTION_SQL", label: "AI Functions output" },
2579
+ { env: "DBX_TEST_BATCH_INFERENCE_QUALITY_ASSERTION_SQL", label: "Batch inference quality" },
2580
+ { env: "DBX_TEST_BATCH_INFERENCE_LINEAGE_ASSERTION_SQL", label: "Batch inference lineage" }
2581
+ ]
2582
+ });
2583
+ }
2584
+ function agentOrchestrationResponsesCheck() {
2585
+ return jobAndAssertionsCheck({
2586
+ id: "agent-orchestration-responses",
2587
+ description: "Knowledge Assistant, multi-agent orchestration and Responses API produce grounded governed evidence",
2588
+ label: "Agent orchestration and Responses",
2589
+ job: "DBX_TEST_AGENT_ORCHESTRATION_JOB_ID",
2590
+ assertions: [
2591
+ { env: "DBX_TEST_KNOWLEDGE_ASSISTANT_ASSERTION_SQL", label: "Knowledge Assistant" },
2592
+ { env: "DBX_TEST_MULTI_AGENT_ASSERTION_SQL", label: "Multi-agent orchestration" },
2593
+ { env: "DBX_TEST_RESPONSES_API_ASSERTION_SQL", label: "Responses API" },
2594
+ { env: "DBX_TEST_AGENT_GROUNDEDNESS_ASSERTION_SQL", label: "Agent groundedness" }
2595
+ ]
2596
+ });
2597
+ }
2598
+ function aiRuntimeTrainingCheck() {
2599
+ return jobAndAssertionsCheck({
2600
+ id: "ai-runtime-training",
2601
+ description: "AI Runtime training or fine-tuning produces MLflow and Unity Catalog evidence",
2602
+ label: "AI Runtime training",
2603
+ job: "DBX_TEST_AI_RUNTIME_JOB_ID",
2604
+ assertions: [
2605
+ { env: "DBX_TEST_AI_RUNTIME_RUN_ASSERTION_SQL", label: "AI Runtime run" },
2606
+ { env: "DBX_TEST_AI_RUNTIME_EVAL_ASSERTION_SQL", label: "AI Runtime evaluation" },
2607
+ { env: "DBX_TEST_AI_RUNTIME_MODEL_ASSERTION_SQL", label: "AI Runtime registered model" }
2608
+ ]
2609
+ });
2610
+ }
2611
+ function lakebaseAutoscalingFeatureStoreCheck() {
2612
+ return jobAndAssertionsCheck({
2613
+ id: "lakebase-autoscaling-feature-store",
2614
+ description: "Lakebase Autoscaling Online Feature Store publishes fresh features and serves lookups",
2615
+ label: "Lakebase Autoscaling feature store",
2616
+ job: "DBX_TEST_ONLINE_FEATURE_STORE_JOB_ID",
2617
+ assertions: [
2618
+ { env: "DBX_TEST_ONLINE_STORE_ASSERTION_SQL", label: "Online store publication" },
2619
+ { env: "DBX_TEST_FEATURE_SERVING_ASSERTION_SQL", label: "Feature Serving lookup" },
2620
+ { env: "DBX_TEST_ONLINE_FEATURE_FRESHNESS_ASSERTION_SQL", label: "Online feature freshness" }
2621
+ ]
2622
+ });
2623
+ }
2624
+ function declarativeBundlesCheck() {
2625
+ return jobAndAssertionsCheck({
2626
+ id: "declarative-bundles",
2627
+ description: "A validated bundle deployment runs the exact candidate and records provenance",
2628
+ label: "Declarative Automation Bundle",
2629
+ job: "DBX_TEST_BUNDLE_JOB_ID",
2630
+ assertions: [
2631
+ { env: "DBX_TEST_BUNDLE_PROVENANCE_ASSERTION_SQL", label: "Bundle provenance" },
2632
+ { env: "DBX_TEST_BUNDLE_CANDIDATE_ASSERTION_SQL", label: "Bundle candidate" },
2633
+ { env: "DBX_TEST_BUNDLE_ROLLBACK_ASSERTION_SQL", label: "Bundle rollback" }
2634
+ ]
2635
+ });
2636
+ }
2637
+ function lakehouseOptimizationCheck() {
2638
+ const names = [
2639
+ "DBX_TEST_PREDICTIVE_OPTIMIZATION_ASSERTION_SQL",
2640
+ "DBX_TEST_LIQUID_CLUSTERING_ASSERTION_SQL",
2641
+ "DBX_TEST_ICEBERG_INTEROP_ASSERTION_SQL"
2642
+ ];
2643
+ return {
2644
+ id: "lakehouse-optimization",
2645
+ description: "Predictive Optimization, liquid clustering and Iceberg interoperability satisfy table contracts",
2646
+ configured: (env) => missing(env, names).length === 0,
2647
+ async run({ env, warehouse: warehouse3 }) {
2648
+ requireEnv(env, names);
2649
+ await assertBooleanSql(
2650
+ "Predictive Optimization",
2651
+ env.DBX_TEST_PREDICTIVE_OPTIMIZATION_ASSERTION_SQL,
2652
+ warehouse3.query
2653
+ );
2654
+ await assertBooleanSql(
2655
+ "Liquid clustering",
2656
+ env.DBX_TEST_LIQUID_CLUSTERING_ASSERTION_SQL,
2657
+ warehouse3.query
2658
+ );
2659
+ await assertBooleanSql(
2660
+ "Iceberg interoperability",
2661
+ env.DBX_TEST_ICEBERG_INTEROP_ASSERTION_SQL,
2662
+ warehouse3.query
2663
+ );
2664
+ return { predictiveOptimization: true, liquidClustering: true, icebergInterop: true };
2665
+ }
2666
+ };
2667
+ }
2668
+ function marketplaceOpenSharingCheck() {
2669
+ return jobAndAssertionsCheck({
2670
+ id: "marketplace-open-sharing",
2671
+ description: "Marketplace provider and consumer flows preserve OpenSharing governance and asset usability",
2672
+ label: "Marketplace and OpenSharing",
2673
+ job: "DBX_TEST_MARKETPLACE_JOB_ID",
2674
+ assertions: [
2675
+ { env: "DBX_TEST_MARKETPLACE_LISTING_ASSERTION_SQL", label: "Marketplace listing" },
2676
+ { env: "DBX_TEST_OPEN_SHARING_RECIPIENT_ASSERTION_SQL", label: "OpenSharing recipient" },
2677
+ { env: "DBX_TEST_MARKETPLACE_ASSET_ASSERTION_SQL", label: "Marketplace asset" }
2678
+ ]
2679
+ });
2680
+ }
2681
+
2682
+ // src/next-target-packs.ts
2683
+ var DOCS2 = "https://experiments.fabric.pro/docs/testing/target-packs/";
2684
+ var AZURE_M2M_SCOPE = "Azure Databricks, dedicated service principal using OAuth M2M, public network path; named managed or disposable certification fixtures";
2685
+ var workspace = {
2686
+ id: "workspace",
2687
+ description: "Databricks workspace host",
2688
+ anyOf: ["DATABRICKS_HOST"]
2689
+ };
2690
+ var auth = {
2691
+ id: "authentication",
2692
+ description: "Databricks OAuth M2M authentication",
2693
+ anyOf: ["DATABRICKS_CLIENT_ID"],
2694
+ secret: true
2695
+ };
2696
+ var warehouse = {
2697
+ id: "warehouse",
2698
+ description: "SQL warehouse for durable evidence assertions",
2699
+ anyOf: ["DATABRICKS_WAREHOUSE_ID", "DATABRICKS_HTTP_PATH"]
2700
+ };
2701
+ var requirement = (id, description, ...anyOf) => ({
2702
+ id,
2703
+ description,
2704
+ anyOf
2705
+ });
2706
+ var identityChecks = () => [restrictedPrincipalCheck()];
2707
+ function createSemanticAnalyticsTargetPack() {
2708
+ return defineTargetPack({
2709
+ id: "semantic-analytics",
2710
+ name: "Semantic analytics and SQL operations",
2711
+ description: "Unity Catalog metric views, materialization, SQL alerts and query-performance regression.",
2712
+ version: "1.0.0",
2713
+ maturity: "shipped",
2714
+ capabilities: [
2715
+ "semantics.metric-views",
2716
+ "semantics.materialization",
2717
+ "sql.alerts",
2718
+ "sql.query-performance"
2719
+ ],
2720
+ checks: () => [...identityChecks(), semanticAnalyticsCheck()],
2721
+ requiredChecks: ["restricted-principal", "semantic-analytics"],
2722
+ requirements: [
2723
+ workspace,
2724
+ auth,
2725
+ warehouse,
2726
+ requirement(
2727
+ "semantic-job",
2728
+ "Metric-view certification Job",
2729
+ "DBX_TEST_SEMANTIC_ANALYTICS_JOB_ID"
2730
+ ),
2731
+ requirement(
2732
+ "metric-view",
2733
+ "Metric-view query assertion",
2734
+ "DBX_TEST_METRIC_VIEW_ASSERTION_SQL"
2735
+ ),
2736
+ requirement(
2737
+ "metric-materialization",
2738
+ "Metric-view materialization assertion",
2739
+ "DBX_TEST_METRIC_MATERIALIZATION_ASSERTION_SQL"
2740
+ ),
2741
+ requirement("sql-alert", "SQL alert assertion", "DBX_TEST_SQL_ALERT_ASSERTION_SQL"),
2742
+ requirement(
2743
+ "query-performance",
2744
+ "Query performance assertion",
2745
+ "DBX_TEST_QUERY_PERFORMANCE_ASSERTION_SQL"
2746
+ )
2747
+ ],
2748
+ docsUrl: `${DOCS2}#semantic-analytics-and-sql-operations`,
2749
+ certificationScopes: [
2750
+ `${AZURE_M2M_SCOPE}; metric view, materialization, alert and query history`
2751
+ ]
2752
+ });
2753
+ }
2754
+ function createAiFunctionsBatchInferenceTargetPack() {
2755
+ return defineTargetPack({
2756
+ id: "ai-functions-batch-inference",
2757
+ name: "AI Functions and batch inference",
2758
+ description: "Governed batch or streaming inference through Databricks AI Functions.",
2759
+ version: "1.0.0",
2760
+ maturity: "shipped",
2761
+ capabilities: [
2762
+ "ai-functions.inference",
2763
+ "batch-inference.quality",
2764
+ "streaming-inference",
2765
+ "inference.lineage"
2766
+ ],
2767
+ checks: () => [...identityChecks(), aiFunctionsBatchInferenceCheck()],
2768
+ requiredChecks: ["restricted-principal", "ai-functions-batch-inference"],
2769
+ requirements: [
2770
+ workspace,
2771
+ auth,
2772
+ warehouse,
2773
+ requirement("ai-functions-job", "AI Functions inference Job", "DBX_TEST_AI_FUNCTIONS_JOB_ID"),
2774
+ requirement(
2775
+ "ai-functions-output",
2776
+ "Inference output assertion",
2777
+ "DBX_TEST_AI_FUNCTIONS_OUTPUT_ASSERTION_SQL"
2778
+ ),
2779
+ requirement(
2780
+ "batch-quality",
2781
+ "Inference quality assertion",
2782
+ "DBX_TEST_BATCH_INFERENCE_QUALITY_ASSERTION_SQL"
2783
+ ),
2784
+ requirement(
2785
+ "batch-lineage",
2786
+ "Inference lineage assertion",
2787
+ "DBX_TEST_BATCH_INFERENCE_LINEAGE_ASSERTION_SQL"
2788
+ )
2789
+ ],
2790
+ docsUrl: `${DOCS2}#ai-functions-and-batch-inference`,
2791
+ certificationScopes: [
2792
+ `${AZURE_M2M_SCOPE}; AI Functions Job with durable output, quality and lineage`
2793
+ ]
2794
+ });
2795
+ }
2796
+ function createAgentOrchestrationTargetPack() {
2797
+ return defineTargetPack({
2798
+ id: "agent-orchestration-responses",
2799
+ name: "Knowledge Assistant, multi-agent and Responses",
2800
+ description: "Knowledge Assistant and multi-agent application behavior through the Responses API.",
2801
+ version: "1.0.0",
2802
+ maturity: "shipped",
2803
+ capabilities: [
2804
+ "agents.knowledge-assistant",
2805
+ "agents.multi-agent",
2806
+ "agents.responses-api",
2807
+ "agents.groundedness"
2808
+ ],
2809
+ checks: () => [...identityChecks(), agentOrchestrationResponsesCheck()],
2810
+ requiredChecks: ["restricted-principal", "agent-orchestration-responses"],
2811
+ requirements: [
2812
+ workspace,
2813
+ auth,
2814
+ warehouse,
2815
+ requirement(
2816
+ "agent-orchestration-job",
2817
+ "Agent orchestration certification Job",
2818
+ "DBX_TEST_AGENT_ORCHESTRATION_JOB_ID"
2819
+ ),
2820
+ requirement(
2821
+ "knowledge-assistant",
2822
+ "Knowledge Assistant assertion",
2823
+ "DBX_TEST_KNOWLEDGE_ASSISTANT_ASSERTION_SQL"
2824
+ ),
2825
+ requirement("multi-agent", "Multi-agent assertion", "DBX_TEST_MULTI_AGENT_ASSERTION_SQL"),
2826
+ requirement(
2827
+ "responses-api",
2828
+ "Responses API assertion",
2829
+ "DBX_TEST_RESPONSES_API_ASSERTION_SQL"
2830
+ ),
2831
+ requirement(
2832
+ "agent-groundedness",
2833
+ "Groundedness assertion",
2834
+ "DBX_TEST_AGENT_GROUNDEDNESS_ASSERTION_SQL"
2835
+ )
2836
+ ],
2837
+ docsUrl: `${DOCS2}#knowledge-assistant-multi-agent-and-responses`,
2838
+ certificationScopes: [
2839
+ `${AZURE_M2M_SCOPE}; Databricks preview agent surfaces with durable groundedness evidence`
2840
+ ]
2841
+ });
2842
+ }
2843
+ function createAiRuntimeTrainingTargetPack() {
2844
+ return defineTargetPack({
2845
+ id: "ai-runtime-training",
2846
+ name: "AI Runtime training and fine-tuning",
2847
+ description: "AI Runtime training or fine-tuning with MLflow and Unity Catalog model evidence.",
2848
+ version: "1.0.0",
2849
+ maturity: "shipped",
2850
+ capabilities: [
2851
+ "ai-runtime.training",
2852
+ "ai-runtime.fine-tuning",
2853
+ "mlflow.training-evaluation",
2854
+ "models.unity-catalog"
2855
+ ],
2856
+ checks: () => [...identityChecks(), aiRuntimeTrainingCheck()],
2857
+ requiredChecks: ["restricted-principal", "ai-runtime-training"],
2858
+ requirements: [
2859
+ workspace,
2860
+ auth,
2861
+ warehouse,
2862
+ requirement("ai-runtime-job", "AI Runtime certification Job", "DBX_TEST_AI_RUNTIME_JOB_ID"),
2863
+ requirement(
2864
+ "ai-runtime-run",
2865
+ "Training-run assertion",
2866
+ "DBX_TEST_AI_RUNTIME_RUN_ASSERTION_SQL"
2867
+ ),
2868
+ requirement(
2869
+ "ai-runtime-eval",
2870
+ "Training evaluation assertion",
2871
+ "DBX_TEST_AI_RUNTIME_EVAL_ASSERTION_SQL"
2872
+ ),
2873
+ requirement(
2874
+ "ai-runtime-model",
2875
+ "Registered-model assertion",
2876
+ "DBX_TEST_AI_RUNTIME_MODEL_ASSERTION_SQL"
2877
+ )
2878
+ ],
2879
+ docsUrl: `${DOCS2}#ai-runtime-training-and-fine-tuning`,
2880
+ certificationScopes: [
2881
+ `${AZURE_M2M_SCOPE}; serverless GPU AI Runtime candidate tracked in MLflow and Unity Catalog`
2882
+ ]
2883
+ });
2884
+ }
2885
+ function createLakebaseAutoscalingFeatureStoreTargetPack() {
2886
+ return defineTargetPack({
2887
+ id: "lakebase-autoscaling-features",
2888
+ name: "Lakebase Autoscaling Online Feature Store",
2889
+ description: "Online feature publication, freshness and Feature Serving lookup behavior.",
2890
+ version: "1.0.0",
2891
+ maturity: "shipped",
2892
+ capabilities: [
2893
+ "lakebase.autoscaling",
2894
+ "features.online-store",
2895
+ "features.serving-endpoint",
2896
+ "features.online-freshness"
2897
+ ],
2898
+ checks: () => [...identityChecks(), lakebaseAutoscalingFeatureStoreCheck()],
2899
+ requiredChecks: ["restricted-principal", "lakebase-autoscaling-feature-store"],
2900
+ requirements: [
2901
+ workspace,
2902
+ auth,
2903
+ warehouse,
2904
+ requirement(
2905
+ "online-feature-job",
2906
+ "Online Feature Store publication Job",
2907
+ "DBX_TEST_ONLINE_FEATURE_STORE_JOB_ID"
2908
+ ),
2909
+ requirement(
2910
+ "online-store",
2911
+ "Online publication assertion",
2912
+ "DBX_TEST_ONLINE_STORE_ASSERTION_SQL"
2913
+ ),
2914
+ requirement(
2915
+ "feature-serving",
2916
+ "Feature Serving lookup assertion",
2917
+ "DBX_TEST_FEATURE_SERVING_ASSERTION_SQL"
2918
+ ),
2919
+ requirement(
2920
+ "feature-freshness",
2921
+ "Online freshness assertion",
2922
+ "DBX_TEST_ONLINE_FEATURE_FRESHNESS_ASSERTION_SQL"
2923
+ )
2924
+ ],
2925
+ docsUrl: `${DOCS2}#lakebase-autoscaling-online-feature-store`,
2926
+ certificationScopes: [
2927
+ `${AZURE_M2M_SCOPE}; Lakebase Autoscaling store and Feature Serving lookup`
2928
+ ]
2929
+ });
2930
+ }
2931
+ function createDeclarativeBundlesTargetPack() {
2932
+ return defineTargetPack({
2933
+ id: "declarative-bundles",
2934
+ name: "Declarative Automation Bundles",
2935
+ description: "Bundle validation, exact-candidate deployment, execution provenance and rollback.",
2936
+ version: "1.0.0",
2937
+ maturity: "shipped",
2938
+ capabilities: [
2939
+ "bundles.validation",
2940
+ "bundles.deployment",
2941
+ "bundles.provenance",
2942
+ "bundles.rollback"
2943
+ ],
2944
+ checks: () => [...identityChecks(), declarativeBundlesCheck()],
2945
+ requiredChecks: ["restricted-principal", "declarative-bundles"],
2946
+ requirements: [
2947
+ workspace,
2948
+ auth,
2949
+ warehouse,
2950
+ requirement("bundle-job", "Bundle-managed certification Job", "DBX_TEST_BUNDLE_JOB_ID"),
2951
+ requirement(
2952
+ "bundle-provenance",
2953
+ "Deployment provenance assertion",
2954
+ "DBX_TEST_BUNDLE_PROVENANCE_ASSERTION_SQL"
2955
+ ),
2956
+ requirement(
2957
+ "bundle-candidate",
2958
+ "Exact-candidate assertion",
2959
+ "DBX_TEST_BUNDLE_CANDIDATE_ASSERTION_SQL"
2960
+ ),
2961
+ requirement(
2962
+ "bundle-rollback",
2963
+ "Rollback assertion",
2964
+ "DBX_TEST_BUNDLE_ROLLBACK_ASSERTION_SQL"
2965
+ )
2966
+ ],
2967
+ docsUrl: `${DOCS2}#declarative-automation-bundles`,
2968
+ certificationScopes: [
2969
+ `${AZURE_M2M_SCOPE}; validate/deploy/run/rollback lifecycle for an immutable bundle target`
2970
+ ]
2971
+ });
2972
+ }
2973
+ function createLakehouseOptimizationTargetPack() {
2974
+ return defineTargetPack({
2975
+ id: "lakehouse-optimization",
2976
+ name: "Lakehouse optimization and Iceberg interoperability",
2977
+ description: "Predictive Optimization, liquid clustering and governed Iceberg interoperability.",
2978
+ version: "1.0.0",
2979
+ maturity: "shipped",
2980
+ capabilities: [
2981
+ "tables.predictive-optimization",
2982
+ "tables.liquid-clustering",
2983
+ "tables.iceberg",
2984
+ "tables.interoperability"
2985
+ ],
2986
+ checks: () => [...identityChecks(), lakehouseOptimizationCheck()],
2987
+ requiredChecks: ["restricted-principal", "lakehouse-optimization"],
2988
+ requirements: [
2989
+ workspace,
2990
+ auth,
2991
+ warehouse,
2992
+ requirement(
2993
+ "predictive-optimization",
2994
+ "Predictive Optimization assertion",
2995
+ "DBX_TEST_PREDICTIVE_OPTIMIZATION_ASSERTION_SQL"
2996
+ ),
2997
+ requirement(
2998
+ "liquid-clustering",
2999
+ "Liquid clustering assertion",
3000
+ "DBX_TEST_LIQUID_CLUSTERING_ASSERTION_SQL"
3001
+ ),
3002
+ requirement(
3003
+ "iceberg-interop",
3004
+ "Iceberg interoperability assertion",
3005
+ "DBX_TEST_ICEBERG_INTEROP_ASSERTION_SQL"
3006
+ )
3007
+ ],
3008
+ docsUrl: `${DOCS2}#lakehouse-optimization-and-iceberg`,
3009
+ certificationScopes: [`${AZURE_M2M_SCOPE}; Unity Catalog managed Delta and Iceberg fixtures`]
3010
+ });
3011
+ }
3012
+ function createMarketplaceOpenSharingTargetPack() {
3013
+ return defineTargetPack({
3014
+ id: "marketplace-open-sharing",
3015
+ name: "Marketplace and OpenSharing",
3016
+ description: "Provider listing, recipient access and usable governed data or AI assets.",
3017
+ version: "1.0.0",
3018
+ maturity: "shipped",
3019
+ capabilities: [
3020
+ "marketplace.provider",
3021
+ "marketplace.consumer",
3022
+ "open-sharing.recipient",
3023
+ "marketplace.ai-assets"
3024
+ ],
3025
+ checks: () => [...identityChecks(), marketplaceOpenSharingCheck()],
3026
+ requiredChecks: ["restricted-principal", "marketplace-open-sharing"],
3027
+ requirements: [
3028
+ workspace,
3029
+ auth,
3030
+ warehouse,
3031
+ requirement(
3032
+ "marketplace-job",
3033
+ "Marketplace certification Job",
3034
+ "DBX_TEST_MARKETPLACE_JOB_ID"
3035
+ ),
3036
+ requirement(
3037
+ "marketplace-listing",
3038
+ "Listing assertion",
3039
+ "DBX_TEST_MARKETPLACE_LISTING_ASSERTION_SQL"
3040
+ ),
3041
+ requirement(
3042
+ "open-sharing-recipient",
3043
+ "Recipient assertion",
3044
+ "DBX_TEST_OPEN_SHARING_RECIPIENT_ASSERTION_SQL"
3045
+ ),
3046
+ requirement(
3047
+ "marketplace-asset",
3048
+ "Shared asset usability assertion",
3049
+ "DBX_TEST_MARKETPLACE_ASSET_ASSERTION_SQL"
3050
+ )
3051
+ ],
3052
+ docsUrl: `${DOCS2}#marketplace-and-opensharing`,
3053
+ certificationScopes: [
3054
+ `${AZURE_M2M_SCOPE}; private listing provider and recipient lifecycle with governed asset access`
3055
+ ]
3056
+ });
3057
+ }
3058
+ function createNextTargetPacks() {
3059
+ return [
3060
+ createSemanticAnalyticsTargetPack(),
3061
+ createAiFunctionsBatchInferenceTargetPack(),
3062
+ createAgentOrchestrationTargetPack(),
3063
+ createAiRuntimeTrainingTargetPack(),
3064
+ createLakebaseAutoscalingFeatureStoreTargetPack(),
3065
+ createDeclarativeBundlesTargetPack(),
3066
+ createLakehouseOptimizationTargetPack(),
3067
+ createMarketplaceOpenSharingTargetPack()
3068
+ ];
3069
+ }
3070
+
2497
3071
  // src/advanced-workload-checks.ts
2498
3072
  init_workspace_client();
2499
3073
  init_workspace_context();
@@ -2588,9 +3162,9 @@ function adapter(client) {
2588
3162
  function required2(env, names) {
2589
3163
  return names.filter((name) => !env[name]?.trim());
2590
3164
  }
2591
- function requireEnv(env, names) {
2592
- const missing = required2(env, names);
2593
- if (missing.length > 0) throw new Error(`Missing required configuration: ${missing.join(", ")}`);
3165
+ function requireEnv2(env, names) {
3166
+ const missing2 = required2(env, names);
3167
+ if (missing2.length > 0) throw new Error(`Missing required configuration: ${missing2.join(", ")}`);
2594
3168
  }
2595
3169
  function parseJson(value, name) {
2596
3170
  if (!value) return void 0;
@@ -2656,8 +3230,8 @@ function advancedStreamingCdcCheck() {
2656
3230
  id: "streaming-cdc",
2657
3231
  description: "Streaming pipeline, streaming table and CDC assertions are healthy",
2658
3232
  configured: (env) => required2(env, names).length === 0,
2659
- async run({ env, client, warehouse: warehouse2 }) {
2660
- requireEnv(env, names);
3233
+ async run({ env, client, warehouse: warehouse3 }) {
3234
+ requireEnv2(env, names);
2661
3235
  const api = adapter(client);
2662
3236
  const pipeline = await api.pipeline(env.DBX_TEST_STREAMING_PIPELINE_ID);
2663
3237
  assertNotFailed("Streaming pipeline", pipeline.state);
@@ -2666,11 +3240,11 @@ function advancedStreamingCdcCheck() {
2666
3240
  if (!["STREAMING_TABLE", "MATERIALIZED_VIEW", "DELTA"].includes(tableType)) {
2667
3241
  throw new Error(`Streaming target has unsupported table type ${tableType || "UNKNOWN"}`);
2668
3242
  }
2669
- await booleanSql("CDC", env.DBX_TEST_CDC_ASSERTION_SQL, warehouse2.query);
3243
+ await booleanSql("CDC", env.DBX_TEST_CDC_ASSERTION_SQL, warehouse3.query);
2670
3244
  await booleanSql(
2671
3245
  "Streaming freshness",
2672
3246
  env.DBX_TEST_STREAMING_ASSERTION_SQL,
2673
- warehouse2.query
3247
+ warehouse3.query
2674
3248
  );
2675
3249
  return { pipelineId: pipeline.pipeline_id, table: env.DBX_TEST_STREAMING_TABLE, tableType };
2676
3250
  }
@@ -2682,8 +3256,8 @@ function lakeflowConnectCheck() {
2682
3256
  id: "lakeflow-connect",
2683
3257
  description: "Lakeflow Connect ingestion pipeline exists and is not failed",
2684
3258
  configured: (env) => required2(env, names).length === 0,
2685
- async run({ env, client, warehouse: warehouse2 }) {
2686
- requireEnv(env, names);
3259
+ async run({ env, client, warehouse: warehouse3 }) {
3260
+ requireEnv2(env, names);
2687
3261
  const id = env.DBX_TEST_CONNECT_PIPELINE_ID;
2688
3262
  const pipeline = await adapter(client).pipeline(id);
2689
3263
  assertNotFailed("Lakeflow Connect pipeline", pipeline.state);
@@ -2694,7 +3268,7 @@ function lakeflowConnectCheck() {
2694
3268
  await booleanSql(
2695
3269
  "Lakeflow Connect replication",
2696
3270
  env.DBX_TEST_CONNECT_ASSERTION_SQL,
2697
- warehouse2.query
3271
+ warehouse3.query
2698
3272
  );
2699
3273
  return {
2700
3274
  pipelineId: pipeline.pipeline_id ?? id,
@@ -2734,7 +3308,7 @@ function genieCheck() {
2734
3308
  description: "Genie space is accessible and can optionally start a grounded conversation",
2735
3309
  configured: (env) => required2(env, names).length === 0,
2736
3310
  async run({ env, client }) {
2737
- requireEnv(env, names);
3311
+ requireEnv2(env, names);
2738
3312
  const api = adapter(client);
2739
3313
  const id = env.DBX_TEST_GENIE_SPACE_ID;
2740
3314
  const space = await api.genieSpace(id);
@@ -2764,7 +3338,7 @@ function mlflowLifecycleCheck() {
2764
3338
  description: "MLflow experiment and Unity Catalog model version are accessible",
2765
3339
  configured: (env) => required2(env, names).length === 0,
2766
3340
  async run({ env, client }) {
2767
- requireEnv(env, names);
3341
+ requireEnv2(env, names);
2768
3342
  const api = adapter(client);
2769
3343
  const experiment = await api.experiment(env.DBX_TEST_MLFLOW_EXPERIMENT_ID);
2770
3344
  const model = await api.registeredModel(env.DBX_TEST_REGISTERED_MODEL);
@@ -2788,8 +3362,8 @@ function featureEngineeringServingCheck() {
2788
3362
  configured: (env) => Boolean(
2789
3363
  env.DBX_TEST_FEATURE_TABLE && env.DBX_TEST_FEATURE_ASSERTION_SQL && (env.DBX_TEST_ONLINE_TABLE || env.DBX_TEST_FEATURE_SERVING_PIPELINE_ID)
2790
3364
  ),
2791
- async run({ env, client, warehouse: warehouse2 }) {
2792
- requireEnv(env, ["DBX_TEST_FEATURE_TABLE"]);
3365
+ async run({ env, client, warehouse: warehouse3 }) {
3366
+ requireEnv2(env, ["DBX_TEST_FEATURE_TABLE"]);
2793
3367
  if (!env.DBX_TEST_ONLINE_TABLE && !env.DBX_TEST_FEATURE_SERVING_PIPELINE_ID) {
2794
3368
  throw new Error(
2795
3369
  "Feature serving requires DBX_TEST_ONLINE_TABLE or DBX_TEST_FEATURE_SERVING_PIPELINE_ID"
@@ -2812,7 +3386,7 @@ function featureEngineeringServingCheck() {
2812
3386
  assertNotFailed("Synced Table pipeline", state);
2813
3387
  servingResource = pipeline.pipeline_id ?? pipelineId;
2814
3388
  }
2815
- await booleanSql("Feature freshness", env.DBX_TEST_FEATURE_ASSERTION_SQL, warehouse2.query);
3389
+ await booleanSql("Feature freshness", env.DBX_TEST_FEATURE_ASSERTION_SQL, warehouse3.query);
2816
3390
  return {
2817
3391
  featureTable: source.full_name ?? env.DBX_TEST_FEATURE_TABLE,
2818
3392
  servingResource,
@@ -2832,7 +3406,7 @@ function modelServingCheck() {
2832
3406
  description: "Model Serving endpoint is ready and can optionally serve an inference request",
2833
3407
  configured: (env) => required2(env, names).length === 0,
2834
3408
  async run({ env, client }) {
2835
- requireEnv(env, names);
3409
+ requireEnv2(env, names);
2836
3410
  if (env.DBX_TEST_AI_GATEWAY_REQUIRED !== "1") {
2837
3411
  throw new Error("DBX_TEST_AI_GATEWAY_REQUIRED must be 1 for the Model Serving target pack");
2838
3412
  }
@@ -2868,7 +3442,7 @@ function evalJudgeModelServingCheck() {
2868
3442
  description: "Databricks Model Serving satisfies the deterministic evaluator chat contract",
2869
3443
  configured: (env) => required2(env, names).length === 0,
2870
3444
  async run({ env, client }) {
2871
- requireEnv(env, names);
3445
+ requireEnv2(env, names);
2872
3446
  const api = adapter(client);
2873
3447
  const name = env.DBX_TEST_EVAL_SERVING_ENDPOINT;
2874
3448
  const endpoint = await api.servingEndpoint(name);
@@ -2908,7 +3482,7 @@ function vectorSearchCheck() {
2908
3482
  description: "Vector Search endpoint and index are online",
2909
3483
  configured: (env) => required2(env, names).length === 0,
2910
3484
  async run({ env, client }) {
2911
- requireEnv(env, names);
3485
+ requireEnv2(env, names);
2912
3486
  const api = adapter(client);
2913
3487
  const endpoint = await api.vectorSearchEndpoint(env.DBX_TEST_VECTOR_ENDPOINT);
2914
3488
  assertReady("Vector Search endpoint", endpoint.endpoint_status?.state, ["ONLINE", "READY"]);
@@ -2935,7 +3509,7 @@ function ragAgentCheck() {
2935
3509
  description: "RAG retrieval and agent serving endpoint return non-empty responses",
2936
3510
  configured: (env) => required2(env, names).length === 0,
2937
3511
  async run({ env, client }) {
2938
- requireEnv(env, names);
3512
+ requireEnv2(env, names);
2939
3513
  const api = adapter(client);
2940
3514
  let retrieval;
2941
3515
  if (env.DBX_TEST_VECTOR_QUERY_JSON) {
@@ -2979,13 +3553,13 @@ function federationSharingCleanRoomsCheck() {
2979
3553
  id: "federation-sharing-cleanrooms",
2980
3554
  description: "Lakehouse Federation connection, Delta Share and Clean Room are accessible",
2981
3555
  configured: (env) => required2(env, names).length === 0,
2982
- async run({ env, client, warehouse: warehouse2 }) {
2983
- requireEnv(env, names);
3556
+ async run({ env, client, warehouse: warehouse3 }) {
3557
+ requireEnv2(env, names);
2984
3558
  const api = adapter(client);
2985
3559
  const connection = await api.connection(env.DBX_TEST_CONNECTION);
2986
3560
  const share = await api.share(env.DBX_TEST_SHARE);
2987
3561
  const room = await api.cleanRoom(env.DBX_TEST_CLEAN_ROOM);
2988
- await booleanSql("Federated query", env.DBX_TEST_FEDERATION_ASSERTION_SQL, warehouse2.query);
3562
+ await booleanSql("Federated query", env.DBX_TEST_FEDERATION_ASSERTION_SQL, warehouse3.query);
2989
3563
  return {
2990
3564
  connection: connection.name ?? env.DBX_TEST_CONNECTION,
2991
3565
  share: share.name ?? env.DBX_TEST_SHARE,
@@ -3004,8 +3578,8 @@ function securityPostureCostCheck() {
3004
3578
  id: "security-cost",
3005
3579
  description: "Network access controls, compute policy and cost guardrail are enforced",
3006
3580
  configured: (env) => required2(env, names).length === 0,
3007
- async run({ env, client, warehouse: warehouse2 }) {
3008
- requireEnv(env, names);
3581
+ async run({ env, client, warehouse: warehouse3 }) {
3582
+ requireEnv2(env, names);
3009
3583
  const api = adapter(client);
3010
3584
  const access = await api.ipAccessList(env.DBX_TEST_IP_ACCESS_LIST_ID);
3011
3585
  if (access.enabled === false) throw new Error("Configured IP access list is disabled");
@@ -3015,7 +3589,7 @@ function securityPostureCostCheck() {
3015
3589
  if (env.DBX_TEST_EXPECT_HOST_SUFFIX && !env.DATABRICKS_HOST?.endsWith(env.DBX_TEST_EXPECT_HOST_SUFFIX)) {
3016
3590
  throw new Error(`Workspace host does not end with ${env.DBX_TEST_EXPECT_HOST_SUFFIX}`);
3017
3591
  }
3018
- await booleanSql("Cost guardrail", env.DBX_TEST_COST_ASSERTION_SQL, warehouse2.query);
3592
+ await booleanSql("Cost guardrail", env.DBX_TEST_COST_ASSERTION_SQL, warehouse3.query);
3019
3593
  return {
3020
3594
  ipAccessList: access.list_id ?? env.DBX_TEST_IP_ACCESS_LIST_ID,
3021
3595
  policy: policy.policy_id ?? policy.name,
@@ -3037,8 +3611,8 @@ function mlflow3GenAiQualityCheck() {
3037
3611
  id: "mlflow3-genai-quality",
3038
3612
  description: "MLflow 3 tracing, offline agent evaluation and production scorer monitoring produce durable evidence",
3039
3613
  configured: (env) => required2(env, names).length === 0,
3040
- async run({ env, client, warehouse: warehouse2 }) {
3041
- requireEnv(env, names);
3614
+ async run({ env, client, warehouse: warehouse3 }) {
3615
+ requireEnv2(env, names);
3042
3616
  const job = await runCertificationJob(
3043
3617
  "MLflow 3 GenAI",
3044
3618
  env.DBX_TEST_MLFLOW3_JOB_ID,
@@ -3046,26 +3620,26 @@ function mlflow3GenAiQualityCheck() {
3046
3620
  client,
3047
3621
  { timeoutMs: Number(env.DBX_TEST_MLFLOW3_TIMEOUT_MS ?? 72e5) }
3048
3622
  );
3049
- await booleanSql("MLflow 3 trace", env.DBX_TEST_MLFLOW3_TRACE_ASSERTION_SQL, warehouse2.query);
3623
+ await booleanSql("MLflow 3 trace", env.DBX_TEST_MLFLOW3_TRACE_ASSERTION_SQL, warehouse3.query);
3050
3624
  await booleanSql(
3051
3625
  "MLflow 3 offline evaluation",
3052
3626
  env.DBX_TEST_MLFLOW3_EVAL_ASSERTION_SQL,
3053
- warehouse2.query
3627
+ warehouse3.query
3054
3628
  );
3055
3629
  await booleanSql(
3056
3630
  "MLflow 3 production scorer lifecycle",
3057
3631
  env.DBX_TEST_MLFLOW3_SCORER_ASSERTION_SQL,
3058
- warehouse2.query
3632
+ warehouse3.query
3059
3633
  );
3060
3634
  await booleanSql(
3061
3635
  "MLflow 3 production monitoring",
3062
3636
  env.DBX_TEST_MLFLOW3_MONITOR_ASSERTION_SQL,
3063
- warehouse2.query
3637
+ warehouse3.query
3064
3638
  );
3065
3639
  await booleanSql(
3066
3640
  "AI Search retrieval quality",
3067
3641
  env.DBX_TEST_AI_SEARCH_EVAL_ASSERTION_SQL,
3068
- warehouse2.query
3642
+ warehouse3.query
3069
3643
  );
3070
3644
  return {
3071
3645
  ...job,
@@ -3084,8 +3658,8 @@ function agentEvaluationPipelineCheck() {
3084
3658
  id: "agent-evaluation-pipeline",
3085
3659
  description: "Experiments API, outbox, Temporal worker, Model Serving judge, SQL score sink and Quality completion execute end to end",
3086
3660
  configured: (env) => required2(env, names).length === 0,
3087
- async run({ env, client, warehouse: warehouse2 }) {
3088
- requireEnv(env, names);
3661
+ async run({ env, client, warehouse: warehouse3 }) {
3662
+ requireEnv2(env, names);
3089
3663
  const job = await runCertificationJob(
3090
3664
  "Agent evaluation end-to-end",
3091
3665
  env.DBX_TEST_AGENT_EVAL_E2E_JOB_ID,
@@ -3095,7 +3669,7 @@ function agentEvaluationPipelineCheck() {
3095
3669
  await booleanSql(
3096
3670
  "Agent evaluation terminal Quality evidence",
3097
3671
  env.DBX_TEST_AGENT_EVAL_ASSERTION_SQL,
3098
- warehouse2.query
3672
+ warehouse3.query
3099
3673
  );
3100
3674
  return { ...job, api: true, outbox: true, temporal: true, judged: true, persisted: true };
3101
3675
  }
@@ -3112,23 +3686,23 @@ function managedMcpAgentsCheck() {
3112
3686
  id: "managed-mcp-agents",
3113
3687
  description: "Managed MCP and Unity Catalog MCP Services support list, call and deny behavior",
3114
3688
  configured: (env) => required2(env, names).length === 0,
3115
- async run({ env, client, warehouse: warehouse2 }) {
3116
- requireEnv(env, names);
3689
+ async run({ env, client, warehouse: warehouse3 }) {
3690
+ requireEnv2(env, names);
3117
3691
  const job = await runCertificationJob("Databricks MCP", env.DBX_TEST_MCP_JOB_ID, env, client);
3118
3692
  await booleanSql(
3119
3693
  "Managed MCP list/call",
3120
3694
  env.DBX_TEST_MCP_MANAGED_ASSERTION_SQL,
3121
- warehouse2.query
3695
+ warehouse3.query
3122
3696
  );
3123
3697
  await booleanSql(
3124
3698
  "Unity Catalog MCP Service list/call",
3125
3699
  env.DBX_TEST_MCP_SERVICE_ASSERTION_SQL,
3126
- warehouse2.query
3700
+ warehouse3.query
3127
3701
  );
3128
3702
  await booleanSql(
3129
3703
  "MCP excluded-tool denial",
3130
3704
  env.DBX_TEST_MCP_DENY_ASSERTION_SQL,
3131
- warehouse2.query
3705
+ warehouse3.query
3132
3706
  );
3133
3707
  return { ...job, managedServer: true, mcpService: true, denyControl: true };
3134
3708
  }
@@ -3146,8 +3720,8 @@ function dataQualityAppTelemetryCheck() {
3146
3720
  id: "data-quality-app-telemetry",
3147
3721
  description: "Unity Catalog data quality monitoring and Databricks Apps logs, spans and metrics are current",
3148
3722
  configured: (env) => required2(env, names).length === 0,
3149
- async run({ env, client, warehouse: warehouse2 }) {
3150
- requireEnv(env, names);
3723
+ async run({ env, client, warehouse: warehouse3 }) {
3724
+ requireEnv2(env, names);
3151
3725
  const appName = env.DBX_TEST_TELEMETRY_APP_NAME;
3152
3726
  const app = await adapter(client).app(appName);
3153
3727
  const destinations = Array.isArray(app.telemetry_export_destinations) ? app.telemetry_export_destinations : [];
@@ -3163,10 +3737,10 @@ function dataQualityAppTelemetryCheck() {
3163
3737
  throw new Error(`Databricks App ${appName} telemetry destination has no ${field}`);
3164
3738
  }
3165
3739
  }
3166
- await booleanSql("Data Quality Monitoring", env.DBX_TEST_DQM_ASSERTION_SQL, warehouse2.query);
3167
- await booleanSql("App logs", env.DBX_TEST_APP_LOGS_ASSERTION_SQL, warehouse2.query);
3168
- await booleanSql("App spans", env.DBX_TEST_APP_SPANS_ASSERTION_SQL, warehouse2.query);
3169
- await booleanSql("App metrics", env.DBX_TEST_APP_METRICS_ASSERTION_SQL, warehouse2.query);
3740
+ await booleanSql("Data Quality Monitoring", env.DBX_TEST_DQM_ASSERTION_SQL, warehouse3.query);
3741
+ await booleanSql("App logs", env.DBX_TEST_APP_LOGS_ASSERTION_SQL, warehouse3.query);
3742
+ await booleanSql("App spans", env.DBX_TEST_APP_SPANS_ASSERTION_SQL, warehouse3.query);
3743
+ await booleanSql("App metrics", env.DBX_TEST_APP_METRICS_ASSERTION_SQL, warehouse3.query);
3170
3744
  return { app: appName, unityCatalogTelemetry: true, dataQualityMonitoring: true };
3171
3745
  }
3172
3746
  };
@@ -3182,7 +3756,7 @@ function agentServicesEnrollmentCheck() {
3182
3756
  description: "A customer-owned Harness agent is registered as an external Unity Catalog Agent Service with governed access",
3183
3757
  configured: (env) => required2(env, names).length === 0,
3184
3758
  async run({ env, client }) {
3185
- requireEnv(env, names);
3759
+ requireEnv2(env, names);
3186
3760
  const fullName = env.DBX_TEST_AGENT_SERVICE_FULL_NAME;
3187
3761
  const api = adapter(client);
3188
3762
  const service = await api.agentService(fullName);
@@ -3230,7 +3804,7 @@ function regionalDrCheck(options = {}) {
3230
3804
  description: "Secondary-region workspace authentication and SQL warehouse are reachable",
3231
3805
  configured: (env) => required2(env, names).length === 0,
3232
3806
  async run({ env }) {
3233
- requireEnv(env, names);
3807
+ requireEnv2(env, names);
3234
3808
  const drEnv = {
3235
3809
  ...env,
3236
3810
  DATABRICKS_HOST: env.DBX_TEST_DR_HOST,
@@ -3260,14 +3834,14 @@ function regionalDrCheck(options = {}) {
3260
3834
  }
3261
3835
 
3262
3836
  // src/advanced-target-packs.ts
3263
- var DOCS2 = "https://experiments.fabric.pro/docs/testing/target-packs/";
3264
- var AZURE_M2M_SCOPE = "Azure Databricks, dedicated service principal using OAuth M2M, public network path; named managed or disposable certification fixtures";
3265
- var workspace = {
3837
+ var DOCS3 = "https://experiments.fabric.pro/docs/testing/target-packs/";
3838
+ var AZURE_M2M_SCOPE2 = "Azure Databricks, dedicated service principal using OAuth M2M, public network path; named managed or disposable certification fixtures";
3839
+ var workspace2 = {
3266
3840
  id: "workspace",
3267
3841
  description: "Databricks workspace host",
3268
3842
  anyOf: ["DATABRICKS_HOST"]
3269
3843
  };
3270
- var auth = {
3844
+ var auth2 = {
3271
3845
  id: "authentication",
3272
3846
  description: "Databricks OAuth, OIDC, bearer, or PAT authentication",
3273
3847
  anyOf: [
@@ -3279,12 +3853,12 @@ var auth = {
3279
3853
  ],
3280
3854
  secret: true
3281
3855
  };
3282
- var warehouse = {
3856
+ var warehouse2 = {
3283
3857
  id: "warehouse",
3284
3858
  description: "SQL warehouse for data-plane assertions",
3285
3859
  anyOf: ["DATABRICKS_WAREHOUSE_ID", "DATABRICKS_HTTP_PATH"]
3286
3860
  };
3287
- var requirement = (id, description, ...anyOf) => ({
3861
+ var requirement2 = (id, description, ...anyOf) => ({
3288
3862
  id,
3289
3863
  description,
3290
3864
  anyOf
@@ -3305,31 +3879,31 @@ function createAdvancedStreamingTargetPack() {
3305
3879
  checks: () => [restrictedPrincipalCheck(), advancedStreamingCdcCheck(), lakeflowConnectCheck()],
3306
3880
  requiredChecks: ["restricted-principal", "streaming-cdc", "lakeflow-connect"],
3307
3881
  requirements: [
3308
- workspace,
3309
- auth,
3310
- warehouse,
3311
- requirement("streaming-pipeline", "Streaming pipeline ID", "DBX_TEST_STREAMING_PIPELINE_ID"),
3312
- requirement("streaming-table", "Streaming target table", "DBX_TEST_STREAMING_TABLE"),
3313
- requirement(
3882
+ workspace2,
3883
+ auth2,
3884
+ warehouse2,
3885
+ requirement2("streaming-pipeline", "Streaming pipeline ID", "DBX_TEST_STREAMING_PIPELINE_ID"),
3886
+ requirement2("streaming-table", "Streaming target table", "DBX_TEST_STREAMING_TABLE"),
3887
+ requirement2(
3314
3888
  "connect-pipeline",
3315
3889
  "Lakeflow Connect ingestion pipeline",
3316
3890
  "DBX_TEST_CONNECT_PIPELINE_ID"
3317
3891
  ),
3318
- requirement(
3892
+ requirement2(
3319
3893
  "streaming-assertion",
3320
3894
  "Streaming freshness SQL",
3321
3895
  "DBX_TEST_STREAMING_ASSERTION_SQL"
3322
3896
  ),
3323
- requirement("cdc-assertion", "CDC correctness SQL", "DBX_TEST_CDC_ASSERTION_SQL"),
3324
- requirement(
3897
+ requirement2("cdc-assertion", "CDC correctness SQL", "DBX_TEST_CDC_ASSERTION_SQL"),
3898
+ requirement2(
3325
3899
  "connect-assertion",
3326
3900
  "Lakeflow Connect replication SQL",
3327
3901
  "DBX_TEST_CONNECT_ASSERTION_SQL"
3328
3902
  )
3329
3903
  ],
3330
- docsUrl: `${DOCS2}#advanced-streaming-cdc-and-lakeflow-connect`,
3904
+ docsUrl: `${DOCS3}#advanced-streaming-cdc-and-lakeflow-connect`,
3331
3905
  certificationScopes: [
3332
- `${AZURE_M2M_SCOPE}; serverless Lakeflow pipeline AUTO CDC and query-based PostgreSQL foreign-catalog ingestion`
3906
+ `${AZURE_M2M_SCOPE2}; serverless Lakeflow pipeline AUTO CDC and query-based PostgreSQL foreign-catalog ingestion`
3333
3907
  ]
3334
3908
  });
3335
3909
  }
@@ -3344,19 +3918,19 @@ function createAiBiGenieTargetPack() {
3344
3918
  checks: () => [restrictedPrincipalCheck(), aiBiDashboardCheck(), genieCheck()],
3345
3919
  requiredChecks: ["restricted-principal", "aibi-dashboard", "genie"],
3346
3920
  requirements: [
3347
- workspace,
3348
- auth,
3349
- requirement("dashboard", "AI/BI dashboard ID", "DBX_TEST_DASHBOARD_ID"),
3350
- requirement("genie-space", "Genie space ID", "DBX_TEST_GENIE_SPACE_ID"),
3351
- requirement(
3921
+ workspace2,
3922
+ auth2,
3923
+ requirement2("dashboard", "AI/BI dashboard ID", "DBX_TEST_DASHBOARD_ID"),
3924
+ requirement2("genie-space", "Genie space ID", "DBX_TEST_GENIE_SPACE_ID"),
3925
+ requirement2(
3352
3926
  "genie-question",
3353
3927
  "Grounded Genie certification question",
3354
3928
  "DBX_TEST_GENIE_QUESTION"
3355
3929
  )
3356
3930
  ],
3357
- docsUrl: `${DOCS2}#aibi-dashboards-and-genie`,
3931
+ docsUrl: `${DOCS3}#aibi-dashboards-and-genie`,
3358
3932
  certificationScopes: [
3359
- `${AZURE_M2M_SCOPE}; published AI/BI dashboard revision and Genie conversation start`
3933
+ `${AZURE_M2M_SCOPE2}; published AI/BI dashboard revision and Genie conversation start`
3360
3934
  ]
3361
3935
  });
3362
3936
  }
@@ -3376,19 +3950,19 @@ function createMlflowLifecycleTargetPack() {
3376
3950
  checks: () => [restrictedPrincipalCheck(), mlflowLifecycleCheck()],
3377
3951
  requiredChecks: ["restricted-principal", "mlflow-lifecycle"],
3378
3952
  requirements: [
3379
- workspace,
3380
- auth,
3381
- requirement("experiment", "MLflow experiment ID", "DBX_TEST_MLFLOW_EXPERIMENT_ID"),
3382
- requirement(
3953
+ workspace2,
3954
+ auth2,
3955
+ requirement2("experiment", "MLflow experiment ID", "DBX_TEST_MLFLOW_EXPERIMENT_ID"),
3956
+ requirement2(
3383
3957
  "registered-model",
3384
3958
  "Unity Catalog registered model",
3385
3959
  "DBX_TEST_REGISTERED_MODEL"
3386
3960
  ),
3387
- requirement("model-version", "Registered model version", "DBX_TEST_MODEL_VERSION")
3961
+ requirement2("model-version", "Registered model version", "DBX_TEST_MODEL_VERSION")
3388
3962
  ],
3389
- docsUrl: `${DOCS2}#mlflow-and-model-lifecycle`,
3963
+ docsUrl: `${DOCS3}#mlflow-and-model-lifecycle`,
3390
3964
  certificationScopes: [
3391
- `${AZURE_M2M_SCOPE}; MLflow experiment and configured Unity Catalog model version`
3965
+ `${AZURE_M2M_SCOPE2}; MLflow experiment and configured Unity Catalog model version`
3392
3966
  ]
3393
3967
  });
3394
3968
  }
@@ -3408,25 +3982,25 @@ function createFeatureEngineeringTargetPack() {
3408
3982
  checks: () => [restrictedPrincipalCheck(), featureEngineeringServingCheck()],
3409
3983
  requiredChecks: ["restricted-principal", "feature-engineering"],
3410
3984
  requirements: [
3411
- workspace,
3412
- auth,
3413
- warehouse,
3414
- requirement("feature-table", "Unity Catalog feature table", "DBX_TEST_FEATURE_TABLE"),
3415
- requirement(
3985
+ workspace2,
3986
+ auth2,
3987
+ warehouse2,
3988
+ requirement2("feature-table", "Unity Catalog feature table", "DBX_TEST_FEATURE_TABLE"),
3989
+ requirement2(
3416
3990
  "online-materialization",
3417
3991
  "Databricks Online Table or Synced Table pipeline",
3418
3992
  "DBX_TEST_ONLINE_TABLE",
3419
3993
  "DBX_TEST_FEATURE_SERVING_PIPELINE_ID"
3420
3994
  ),
3421
- requirement(
3995
+ requirement2(
3422
3996
  "feature-assertion",
3423
3997
  "Feature freshness/correctness SQL",
3424
3998
  "DBX_TEST_FEATURE_ASSERTION_SQL"
3425
3999
  )
3426
4000
  ],
3427
- docsUrl: `${DOCS2}#feature-engineering-and-serving`,
4001
+ docsUrl: `${DOCS3}#feature-engineering-and-serving`,
3428
4002
  certificationScopes: [
3429
- `${AZURE_M2M_SCOPE}; Delta feature table, PostgreSQL-backed Synced Table, and SQL freshness`
4003
+ `${AZURE_M2M_SCOPE2}; Delta feature table, PostgreSQL-backed Synced Table, and SQL freshness`
3430
4004
  ]
3431
4005
  });
3432
4006
  }
@@ -3445,23 +4019,23 @@ function createModelServingTargetPack() {
3445
4019
  checks: () => [restrictedPrincipalCheck(), modelServingCheck()],
3446
4020
  requiredChecks: ["restricted-principal", "model-serving"],
3447
4021
  requirements: [
3448
- workspace,
3449
- auth,
3450
- requirement("serving-endpoint", "Model Serving endpoint name", "DBX_TEST_SERVING_ENDPOINT"),
3451
- requirement(
4022
+ workspace2,
4023
+ auth2,
4024
+ requirement2("serving-endpoint", "Model Serving endpoint name", "DBX_TEST_SERVING_ENDPOINT"),
4025
+ requirement2(
3452
4026
  "serving-request",
3453
4027
  "Safe inference request JSON",
3454
4028
  "DBX_TEST_SERVING_REQUEST_JSON"
3455
4029
  ),
3456
- requirement(
4030
+ requirement2(
3457
4031
  "ai-gateway",
3458
4032
  "AI Gateway enforcement flag set to 1",
3459
4033
  "DBX_TEST_AI_GATEWAY_REQUIRED"
3460
4034
  )
3461
4035
  ],
3462
- docsUrl: `${DOCS2}#model-serving-and-ai-gateway`,
4036
+ docsUrl: `${DOCS3}#model-serving-and-ai-gateway`,
3463
4037
  certificationScopes: [
3464
- `${AZURE_M2M_SCOPE}; custom-model inference and AI Gateway inference-table configuration`
4038
+ `${AZURE_M2M_SCOPE2}; custom-model inference and AI Gateway inference-table configuration`
3465
4039
  ]
3466
4040
  });
3467
4041
  }
@@ -3481,17 +4055,17 @@ function createVectorRagAgentsTargetPack() {
3481
4055
  checks: () => [restrictedPrincipalCheck(), vectorSearchCheck(), ragAgentCheck()],
3482
4056
  requiredChecks: ["restricted-principal", "vector-search", "rag-agent"],
3483
4057
  requirements: [
3484
- workspace,
3485
- auth,
3486
- requirement("vector-endpoint", "Vector Search endpoint", "DBX_TEST_VECTOR_ENDPOINT"),
3487
- requirement("vector-index", "Vector Search index", "DBX_TEST_VECTOR_INDEX"),
3488
- requirement("vector-query", "Vector retrieval request JSON", "DBX_TEST_VECTOR_QUERY_JSON"),
3489
- requirement("agent-endpoint", "Agent serving endpoint", "DBX_TEST_AGENT_ENDPOINT"),
3490
- requirement("agent-request", "Safe agent request JSON", "DBX_TEST_AGENT_REQUEST_JSON")
4058
+ workspace2,
4059
+ auth2,
4060
+ requirement2("vector-endpoint", "Vector Search endpoint", "DBX_TEST_VECTOR_ENDPOINT"),
4061
+ requirement2("vector-index", "Vector Search index", "DBX_TEST_VECTOR_INDEX"),
4062
+ requirement2("vector-query", "Vector retrieval request JSON", "DBX_TEST_VECTOR_QUERY_JSON"),
4063
+ requirement2("agent-endpoint", "Agent serving endpoint", "DBX_TEST_AGENT_ENDPOINT"),
4064
+ requirement2("agent-request", "Safe agent request JSON", "DBX_TEST_AGENT_REQUEST_JSON")
3491
4065
  ],
3492
- docsUrl: `${DOCS2}#vector-search-rag-and-agents`,
4066
+ docsUrl: `${DOCS3}#vector-search-rag-and-agents`,
3493
4067
  certificationScopes: [
3494
- `${AZURE_M2M_SCOPE}; Delta Sync vector retrieval and custom PyFunc agent invocation`
4068
+ `${AZURE_M2M_SCOPE2}; Delta Sync vector retrieval and custom PyFunc agent invocation`
3495
4069
  ]
3496
4070
  });
3497
4071
  }
@@ -3511,21 +4085,21 @@ function createFederationSharingTargetPack() {
3511
4085
  checks: () => [restrictedPrincipalCheck(), federationSharingCleanRoomsCheck()],
3512
4086
  requiredChecks: ["restricted-principal", "federation-sharing-cleanrooms"],
3513
4087
  requirements: [
3514
- workspace,
3515
- auth,
3516
- warehouse,
3517
- requirement("connection", "Lakehouse Federation connection", "DBX_TEST_CONNECTION"),
3518
- requirement("share", "Delta Sharing share", "DBX_TEST_SHARE"),
3519
- requirement("clean-room", "Clean Room name", "DBX_TEST_CLEAN_ROOM"),
3520
- requirement(
4088
+ workspace2,
4089
+ auth2,
4090
+ warehouse2,
4091
+ requirement2("connection", "Lakehouse Federation connection", "DBX_TEST_CONNECTION"),
4092
+ requirement2("share", "Delta Sharing share", "DBX_TEST_SHARE"),
4093
+ requirement2("clean-room", "Clean Room name", "DBX_TEST_CLEAN_ROOM"),
4094
+ requirement2(
3521
4095
  "federation-assertion",
3522
4096
  "Federated data-plane SQL",
3523
4097
  "DBX_TEST_FEDERATION_ASSERTION_SQL"
3524
4098
  )
3525
4099
  ],
3526
- docsUrl: `${DOCS2}#federation-delta-sharing-and-clean-rooms`,
4100
+ docsUrl: `${DOCS3}#federation-delta-sharing-and-clean-rooms`,
3527
4101
  certificationScopes: [
3528
- `${AZURE_M2M_SCOPE}; managed PostgreSQL federation, Delta Sharing table, and two-metastore Clean Room`
4102
+ `${AZURE_M2M_SCOPE2}; managed PostgreSQL federation, Delta Sharing table, and two-metastore Clean Room`
3529
4103
  ]
3530
4104
  });
3531
4105
  }
@@ -3545,23 +4119,23 @@ function createSecurityCostDrTargetPack() {
3545
4119
  checks: () => [restrictedPrincipalCheck(), securityPostureCostCheck(), regionalDrCheck()],
3546
4120
  requiredChecks: ["restricted-principal", "security-cost", "regional-dr"],
3547
4121
  requirements: [
3548
- workspace,
3549
- auth,
3550
- warehouse,
3551
- requirement(
4122
+ workspace2,
4123
+ auth2,
4124
+ warehouse2,
4125
+ requirement2(
3552
4126
  "ip-access-list",
3553
4127
  "Enabled workspace IP access list",
3554
4128
  "DBX_TEST_IP_ACCESS_LIST_ID"
3555
4129
  ),
3556
- requirement("cluster-policy", "Compute policy ID", "DBX_TEST_CLUSTER_POLICY_ID"),
3557
- requirement("cost-assertion", "Boolean SQL cost guardrail", "DBX_TEST_COST_ASSERTION_SQL"),
3558
- requirement("dr-workspace", "Secondary workspace host", "DBX_TEST_DR_HOST"),
3559
- requirement("dr-warehouse", "Running secondary-region warehouse", "DBX_TEST_DR_WAREHOUSE_ID"),
3560
- requirement("dr-assertion", "Secondary-region workload SQL", "DBX_TEST_DR_ASSERTION_SQL")
4130
+ requirement2("cluster-policy", "Compute policy ID", "DBX_TEST_CLUSTER_POLICY_ID"),
4131
+ requirement2("cost-assertion", "Boolean SQL cost guardrail", "DBX_TEST_COST_ASSERTION_SQL"),
4132
+ requirement2("dr-workspace", "Secondary workspace host", "DBX_TEST_DR_HOST"),
4133
+ requirement2("dr-warehouse", "Running secondary-region warehouse", "DBX_TEST_DR_WAREHOUSE_ID"),
4134
+ requirement2("dr-assertion", "Secondary-region workload SQL", "DBX_TEST_DR_ASSERTION_SQL")
3561
4135
  ],
3562
- docsUrl: `${DOCS2}#networking-security-cost-and-regional-dr`,
4136
+ docsUrl: `${DOCS3}#networking-security-cost-and-regional-dr`,
3563
4137
  certificationScopes: [
3564
- `${AZURE_M2M_SCOPE}; TEST-NET block list, bounded compute policy, billing system-table guardrail, and West US 3 serverless DR warehouse`
4138
+ `${AZURE_M2M_SCOPE2}; TEST-NET block list, bounded compute policy, billing system-table guardrail, and West US 3 serverless DR warehouse`
3565
4139
  ]
3566
4140
  });
3567
4141
  }
@@ -3582,39 +4156,39 @@ function createMlflow3AgentQualityTargetPack() {
3582
4156
  checks: () => [restrictedPrincipalCheck(), mlflow3GenAiQualityCheck()],
3583
4157
  requiredChecks: ["restricted-principal", "mlflow3-genai-quality"],
3584
4158
  requirements: [
3585
- workspace,
3586
- auth,
3587
- warehouse,
3588
- requirement("mlflow3-job", "Native MLflow 3 certification Job", "DBX_TEST_MLFLOW3_JOB_ID"),
3589
- requirement(
4159
+ workspace2,
4160
+ auth2,
4161
+ warehouse2,
4162
+ requirement2("mlflow3-job", "Native MLflow 3 certification Job", "DBX_TEST_MLFLOW3_JOB_ID"),
4163
+ requirement2(
3590
4164
  "mlflow3-traces",
3591
4165
  "Boolean SQL proving a fresh MLflow 3 trace",
3592
4166
  "DBX_TEST_MLFLOW3_TRACE_ASSERTION_SQL"
3593
4167
  ),
3594
- requirement(
4168
+ requirement2(
3595
4169
  "mlflow3-evaluation",
3596
4170
  "Boolean SQL proving offline agent evaluation results",
3597
4171
  "DBX_TEST_MLFLOW3_EVAL_ASSERTION_SQL"
3598
4172
  ),
3599
- requirement(
4173
+ requirement2(
3600
4174
  "mlflow3-scorers",
3601
4175
  "Boolean SQL proving production scorer lifecycle evidence",
3602
4176
  "DBX_TEST_MLFLOW3_SCORER_ASSERTION_SQL"
3603
4177
  ),
3604
- requirement(
4178
+ requirement2(
3605
4179
  "mlflow3-monitoring",
3606
4180
  "Boolean SQL proving production monitoring output",
3607
4181
  "DBX_TEST_MLFLOW3_MONITOR_ASSERTION_SQL"
3608
4182
  ),
3609
- requirement(
4183
+ requirement2(
3610
4184
  "ai-search-evaluation",
3611
4185
  "Boolean SQL proving AI Search retrieval-quality thresholds",
3612
4186
  "DBX_TEST_AI_SEARCH_EVAL_ASSERTION_SQL"
3613
4187
  )
3614
4188
  ],
3615
- docsUrl: `${DOCS2}#mlflow-3-agent-quality-and-monitoring`,
4189
+ docsUrl: `${DOCS3}#mlflow-3-agent-quality-and-monitoring`,
3616
4190
  certificationScopes: [
3617
- `${AZURE_M2M_SCOPE}; Python-native MLflow 3 trace, evaluation, complete scorer lifecycle and monitor evidence`
4191
+ `${AZURE_M2M_SCOPE2}; Python-native MLflow 3 trace, evaluation, complete scorer lifecycle and monitor evidence`
3618
4192
  ]
3619
4193
  });
3620
4194
  }
@@ -3639,28 +4213,28 @@ function createAgentEvaluationPipelineTargetPack() {
3639
4213
  ],
3640
4214
  requiredChecks: ["restricted-principal", "model-eval-judge", "agent-evaluation-pipeline"],
3641
4215
  requirements: [
3642
- workspace,
3643
- auth,
3644
- warehouse,
3645
- requirement(
4216
+ workspace2,
4217
+ auth2,
4218
+ warehouse2,
4219
+ requirement2(
3646
4220
  "eval-serving-endpoint",
3647
4221
  "Databricks Model Serving endpoint satisfying the evaluator chat contract",
3648
4222
  "DBX_TEST_EVAL_SERVING_ENDPOINT"
3649
4223
  ),
3650
- requirement(
4224
+ requirement2(
3651
4225
  "agent-eval-job",
3652
4226
  "Exact-candidate end-to-end agent evaluation certification Job",
3653
4227
  "DBX_TEST_AGENT_EVAL_E2E_JOB_ID"
3654
4228
  ),
3655
- requirement(
4229
+ requirement2(
3656
4230
  "agent-eval-evidence",
3657
4231
  "Boolean SQL proving terminal scores and Quality evidence",
3658
4232
  "DBX_TEST_AGENT_EVAL_ASSERTION_SQL"
3659
4233
  )
3660
4234
  ],
3661
- docsUrl: `${DOCS2}#agent-evaluation-delivery-pipeline`,
4235
+ docsUrl: `${DOCS3}#agent-evaluation-delivery-pipeline`,
3662
4236
  certificationScopes: [
3663
- `${AZURE_M2M_SCOPE}; Experiments API through customer worker and Databricks judge to SQL/Quality`
4237
+ `${AZURE_M2M_SCOPE2}; Experiments API through customer worker and Databricks judge to SQL/Quality`
3664
4238
  ]
3665
4239
  });
3666
4240
  }
@@ -3680,29 +4254,29 @@ function createManagedMcpAgentsTargetPack() {
3680
4254
  checks: () => [restrictedPrincipalCheck(), managedMcpAgentsCheck()],
3681
4255
  requiredChecks: ["restricted-principal", "managed-mcp-agents"],
3682
4256
  requirements: [
3683
- workspace,
3684
- auth,
3685
- warehouse,
3686
- requirement("mcp-job", "Native Streamable HTTP MCP certification Job", "DBX_TEST_MCP_JOB_ID"),
3687
- requirement(
4257
+ workspace2,
4258
+ auth2,
4259
+ warehouse2,
4260
+ requirement2("mcp-job", "Native Streamable HTTP MCP certification Job", "DBX_TEST_MCP_JOB_ID"),
4261
+ requirement2(
3688
4262
  "managed-mcp",
3689
4263
  "Boolean SQL proving managed MCP list/call behavior",
3690
4264
  "DBX_TEST_MCP_MANAGED_ASSERTION_SQL"
3691
4265
  ),
3692
- requirement(
4266
+ requirement2(
3693
4267
  "mcp-service",
3694
4268
  "Boolean SQL proving UC MCP Service list/call behavior",
3695
4269
  "DBX_TEST_MCP_SERVICE_ASSERTION_SQL"
3696
4270
  ),
3697
- requirement(
4271
+ requirement2(
3698
4272
  "mcp-denial",
3699
4273
  "Boolean SQL proving an MCP tool excluded by UC selectors was denied",
3700
4274
  "DBX_TEST_MCP_DENY_ASSERTION_SQL"
3701
4275
  )
3702
4276
  ],
3703
- docsUrl: `${DOCS2}#managed-mcp-and-mcp-services`,
4277
+ docsUrl: `${DOCS3}#managed-mcp-and-mcp-services`,
3704
4278
  certificationScopes: [
3705
- `${AZURE_M2M_SCOPE}; managed AI Search or SQL MCP plus a UC MCP Service over Streamable HTTP`
4279
+ `${AZURE_M2M_SCOPE2}; managed AI Search or SQL MCP plus a UC MCP Service over Streamable HTTP`
3706
4280
  ]
3707
4281
  });
3708
4282
  }
@@ -3722,34 +4296,34 @@ function createDataQualityObservabilityTargetPack() {
3722
4296
  checks: () => [restrictedPrincipalCheck(), dataQualityAppTelemetryCheck()],
3723
4297
  requiredChecks: ["restricted-principal", "data-quality-app-telemetry"],
3724
4298
  requirements: [
3725
- workspace,
3726
- auth,
3727
- warehouse,
3728
- requirement("telemetry-app", "App with UC telemetry export", "DBX_TEST_TELEMETRY_APP_NAME"),
3729
- requirement(
4299
+ workspace2,
4300
+ auth2,
4301
+ warehouse2,
4302
+ requirement2("telemetry-app", "App with UC telemetry export", "DBX_TEST_TELEMETRY_APP_NAME"),
4303
+ requirement2(
3730
4304
  "data-quality",
3731
4305
  "Boolean SQL over current Data Quality Monitoring results",
3732
4306
  "DBX_TEST_DQM_ASSERTION_SQL"
3733
4307
  ),
3734
- requirement(
4308
+ requirement2(
3735
4309
  "app-logs",
3736
4310
  "Boolean SQL proving current app logs",
3737
4311
  "DBX_TEST_APP_LOGS_ASSERTION_SQL"
3738
4312
  ),
3739
- requirement(
4313
+ requirement2(
3740
4314
  "app-spans",
3741
4315
  "Boolean SQL proving current app spans",
3742
4316
  "DBX_TEST_APP_SPANS_ASSERTION_SQL"
3743
4317
  ),
3744
- requirement(
4318
+ requirement2(
3745
4319
  "app-metrics",
3746
4320
  "Boolean SQL proving current app metrics",
3747
4321
  "DBX_TEST_APP_METRICS_ASSERTION_SQL"
3748
4322
  )
3749
4323
  ],
3750
- docsUrl: `${DOCS2}#data-quality-and-databricks-apps-observability`,
4324
+ docsUrl: `${DOCS3}#data-quality-and-databricks-apps-observability`,
3751
4325
  certificationScopes: [
3752
- `${AZURE_M2M_SCOPE}; system.data_quality_monitoring.table_results and UC OTel tables`
4326
+ `${AZURE_M2M_SCOPE2}; system.data_quality_monitoring.table_results and UC OTel tables`
3753
4327
  ]
3754
4328
  });
3755
4329
  }
@@ -3769,27 +4343,27 @@ function createAgentServicesEnrollmentTargetPack() {
3769
4343
  checks: () => [restrictedPrincipalCheck(), agentServicesEnrollmentCheck()],
3770
4344
  requiredChecks: ["restricted-principal", "agent-services-enrollment"],
3771
4345
  requirements: [
3772
- workspace,
3773
- auth,
3774
- requirement(
4346
+ workspace2,
4347
+ auth2,
4348
+ requirement2(
3775
4349
  "agent-service",
3776
4350
  "External Unity Catalog Agent Service full name",
3777
4351
  "DBX_TEST_AGENT_SERVICE_FULL_NAME"
3778
4352
  ),
3779
- requirement(
4353
+ requirement2(
3780
4354
  "agent-connection",
3781
4355
  "Expected Unity Catalog HTTP connection",
3782
4356
  "DBX_TEST_AGENT_SERVICE_CONNECTION"
3783
4357
  ),
3784
- requirement(
4358
+ requirement2(
3785
4359
  "agent-execute-principal",
3786
4360
  "Principal expected to have EXECUTE",
3787
4361
  "DBX_TEST_AGENT_SERVICE_EXECUTE_PRINCIPAL"
3788
4362
  )
3789
4363
  ],
3790
- docsUrl: `${DOCS2}#unity-catalog-agent-services-enrollment`,
4364
+ docsUrl: `${DOCS3}#unity-catalog-agent-services-enrollment`,
3791
4365
  certificationScopes: [
3792
- `${AZURE_M2M_SCOPE}; Agent Services Beta registration/discovery/ACL only; runtime invocation is not claimed`
4366
+ `${AZURE_M2M_SCOPE2}; Agent Services Beta registration/discovery/ACL only; runtime invocation is not claimed`
3793
4367
  ]
3794
4368
  });
3795
4369
  }
@@ -3816,7 +4390,8 @@ function createBuiltinTargetPacks() {
3816
4390
  return [
3817
4391
  ...createFoundationTargetPacks(),
3818
4392
  createLakeflowJobsTargetPack(),
3819
- ...createAdvancedTargetPacks()
4393
+ ...createAdvancedTargetPacks(),
4394
+ ...createNextTargetPacks()
3820
4395
  ];
3821
4396
  }
3822
4397
  var builtinTargetPacks = createBuiltinTargetPacks();
@@ -3828,8 +4403,11 @@ exports.DatabricksAdvancedWorkloadsAdapter = DatabricksAdvancedWorkloadsAdapter;
3828
4403
  exports.DatabricksJobsAdapter = DatabricksJobsAdapter;
3829
4404
  exports.advancedStreamingCdcCheck = advancedStreamingCdcCheck;
3830
4405
  exports.agentEvaluationPipelineCheck = agentEvaluationPipelineCheck;
4406
+ exports.agentOrchestrationResponsesCheck = agentOrchestrationResponsesCheck;
3831
4407
  exports.agentServicesEnrollmentCheck = agentServicesEnrollmentCheck;
3832
4408
  exports.aiBiDashboardCheck = aiBiDashboardCheck;
4409
+ exports.aiFunctionsBatchInferenceCheck = aiFunctionsBatchInferenceCheck;
4410
+ exports.aiRuntimeTrainingCheck = aiRuntimeTrainingCheck;
3833
4411
  exports.appHealthCheck = appHealthCheck;
3834
4412
  exports.assertDeltaContract = assertDeltaContract;
3835
4413
  exports.autoLoaderIngestionCheck = autoLoaderIngestionCheck;
@@ -3840,12 +4418,16 @@ exports.compareToGolden = compareToGolden;
3840
4418
  exports.createAdvancedStreamingTargetPack = createAdvancedStreamingTargetPack;
3841
4419
  exports.createAdvancedTargetPacks = createAdvancedTargetPacks;
3842
4420
  exports.createAgentEvaluationPipelineTargetPack = createAgentEvaluationPipelineTargetPack;
4421
+ exports.createAgentOrchestrationTargetPack = createAgentOrchestrationTargetPack;
3843
4422
  exports.createAgentServicesEnrollmentTargetPack = createAgentServicesEnrollmentTargetPack;
3844
4423
  exports.createAiBiGenieTargetPack = createAiBiGenieTargetPack;
4424
+ exports.createAiFunctionsBatchInferenceTargetPack = createAiFunctionsBatchInferenceTargetPack;
4425
+ exports.createAiRuntimeTrainingTargetPack = createAiRuntimeTrainingTargetPack;
3845
4426
  exports.createAppsOperationalFoundationPack = createAppsOperationalFoundationPack;
3846
4427
  exports.createBuiltinTargetPacks = createBuiltinTargetPacks;
3847
4428
  exports.createClientFromEnv = createClientFromEnv;
3848
4429
  exports.createDataQualityObservabilityTargetPack = createDataQualityObservabilityTargetPack;
4430
+ exports.createDeclarativeBundlesTargetPack = createDeclarativeBundlesTargetPack;
3849
4431
  exports.createDuckDbContext = createDuckDbContext;
3850
4432
  exports.createEphemeralLakebaseBranch = createEphemeralLakebaseBranch;
3851
4433
  exports.createExecutionContext = createExecutionContext;
@@ -3853,15 +4435,20 @@ exports.createFeatureEngineeringTargetPack = createFeatureEngineeringTargetPack;
3853
4435
  exports.createFederationSharingTargetPack = createFederationSharingTargetPack;
3854
4436
  exports.createFoundationTargetPacks = createFoundationTargetPacks;
3855
4437
  exports.createJobsCodeFoundationPack = createJobsCodeFoundationPack;
4438
+ exports.createLakebaseAutoscalingFeatureStoreTargetPack = createLakebaseAutoscalingFeatureStoreTargetPack;
3856
4439
  exports.createLakebaseTestProvider = createLakebaseTestProvider;
3857
4440
  exports.createLakeflowFoundationPack = createLakeflowFoundationPack;
3858
4441
  exports.createLakeflowJobsTargetPack = createLakeflowJobsTargetPack;
4442
+ exports.createLakehouseOptimizationTargetPack = createLakehouseOptimizationTargetPack;
3859
4443
  exports.createManagedMcpAgentsTargetPack = createManagedMcpAgentsTargetPack;
4444
+ exports.createMarketplaceOpenSharingTargetPack = createMarketplaceOpenSharingTargetPack;
3860
4445
  exports.createMlflow3AgentQualityTargetPack = createMlflow3AgentQualityTargetPack;
3861
4446
  exports.createMlflowLifecycleTargetPack = createMlflowLifecycleTargetPack;
3862
4447
  exports.createMockDatabricksClient = createMockDatabricksClient;
3863
4448
  exports.createModelServingTargetPack = createModelServingTargetPack;
4449
+ exports.createNextTargetPacks = createNextTargetPacks;
3864
4450
  exports.createSecurityCostDrTargetPack = createSecurityCostDrTargetPack;
4451
+ exports.createSemanticAnalyticsTargetPack = createSemanticAnalyticsTargetPack;
3865
4452
  exports.createSqlDeltaFoundationPack = createSqlDeltaFoundationPack;
3866
4453
  exports.createTargetPackRegistry = createTargetPackRegistry;
3867
4454
  exports.createUnityStorageFoundationPack = createUnityStorageFoundationPack;
@@ -3870,6 +4457,7 @@ exports.createWorkspaceContext = createWorkspaceContext;
3870
4457
  exports.customLiveCheck = customLiveCheck;
3871
4458
  exports.dataQualityAppTelemetryCheck = dataQualityAppTelemetryCheck;
3872
4459
  exports.dbtBuildCheck = dbtBuildCheck;
4460
+ exports.declarativeBundlesCheck = declarativeBundlesCheck;
3873
4461
  exports.defineLiveSuite = defineLiveSuite;
3874
4462
  exports.defineTargetPack = defineTargetPack;
3875
4463
  exports.defineTargetPackRun = defineTargetPackRun;
@@ -3889,10 +4477,13 @@ exports.genieCheck = genieCheck;
3889
4477
  exports.jobRunCheck = jobRunCheck;
3890
4478
  exports.jobsCertificationCheck = jobsCertificationCheck;
3891
4479
  exports.jobsOrchestrationCheck = jobsOrchestrationCheck;
4480
+ exports.lakebaseAutoscalingFeatureStoreCheck = lakebaseAutoscalingFeatureStoreCheck;
3892
4481
  exports.lakebaseCredentialCheck = lakebaseCredentialCheck;
3893
4482
  exports.lakebaseRoundTripCheck = lakebaseRoundTripCheck;
3894
4483
  exports.lakeflowConnectCheck = lakeflowConnectCheck;
4484
+ exports.lakehouseOptimizationCheck = lakehouseOptimizationCheck;
3895
4485
  exports.managedMcpAgentsCheck = managedMcpAgentsCheck;
4486
+ exports.marketplaceOpenSharingCheck = marketplaceOpenSharingCheck;
3896
4487
  exports.mlflow3GenAiQualityCheck = mlflow3GenAiQualityCheck;
3897
4488
  exports.mlflowLifecycleCheck = mlflowLifecycleCheck;
3898
4489
  exports.modelServingCheck = modelServingCheck;
@@ -3911,6 +4502,7 @@ exports.renderJUnit = renderJUnit;
3911
4502
  exports.resolveFixtureRows = resolveFixtureRows;
3912
4503
  exports.resolveLakebaseProject = resolveLakebaseProject;
3913
4504
  exports.resolveProfile = resolveProfile;
4505
+ exports.resolveRequiredChecks = resolveRequiredChecks;
3914
4506
  exports.resolveTokenProvider = resolveTokenProvider;
3915
4507
  exports.restrictedPrincipalCheck = restrictedPrincipalCheck;
3916
4508
  exports.rollbackCheck = rollbackCheck;
@@ -3919,6 +4511,7 @@ exports.runTargetPack = runTargetPack;
3919
4511
  exports.secretRotationCheck = secretRotationCheck;
3920
4512
  exports.secretScopeCheck = secretScopeCheck;
3921
4513
  exports.securityPostureCostCheck = securityPostureCostCheck;
4514
+ exports.semanticAnalyticsCheck = semanticAnalyticsCheck;
3922
4515
  exports.serverlessComputeCheck = serverlessComputeCheck;
3923
4516
  exports.sqlRoundTripCheck = sqlRoundTripCheck;
3924
4517
  exports.toLakebaseBranchId = toLakebaseBranchId;