@fabricorg/databricks-testkit 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +45 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +45 -21
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -616,6 +616,11 @@ interface DashboardResource extends JsonObject {
|
|
|
616
616
|
display_name?: string;
|
|
617
617
|
lifecycle_state?: string;
|
|
618
618
|
}
|
|
619
|
+
interface PublishedDashboardResource extends JsonObject {
|
|
620
|
+
display_name?: string;
|
|
621
|
+
revision_create_time?: string;
|
|
622
|
+
warehouse_id?: string;
|
|
623
|
+
}
|
|
619
624
|
interface GenieSpaceResource extends JsonObject {
|
|
620
625
|
space_id?: string;
|
|
621
626
|
title?: string;
|
|
@@ -659,6 +664,7 @@ declare class DatabricksAdvancedWorkloadsAdapter {
|
|
|
659
664
|
pipeline(id: string): Promise<PipelineResource>;
|
|
660
665
|
table(fullName: string): Promise<JsonObject>;
|
|
661
666
|
dashboard(id: string): Promise<DashboardResource>;
|
|
667
|
+
publishedDashboard(id: string): Promise<PublishedDashboardResource>;
|
|
662
668
|
genieSpace(id: string): Promise<GenieSpaceResource>;
|
|
663
669
|
startGenieConversation(spaceId: string, question: string): Promise<JsonObject>;
|
|
664
670
|
experiment(id: string): Promise<JsonObject>;
|
package/dist/index.d.ts
CHANGED
|
@@ -616,6 +616,11 @@ interface DashboardResource extends JsonObject {
|
|
|
616
616
|
display_name?: string;
|
|
617
617
|
lifecycle_state?: string;
|
|
618
618
|
}
|
|
619
|
+
interface PublishedDashboardResource extends JsonObject {
|
|
620
|
+
display_name?: string;
|
|
621
|
+
revision_create_time?: string;
|
|
622
|
+
warehouse_id?: string;
|
|
623
|
+
}
|
|
619
624
|
interface GenieSpaceResource extends JsonObject {
|
|
620
625
|
space_id?: string;
|
|
621
626
|
title?: string;
|
|
@@ -659,6 +664,7 @@ declare class DatabricksAdvancedWorkloadsAdapter {
|
|
|
659
664
|
pipeline(id: string): Promise<PipelineResource>;
|
|
660
665
|
table(fullName: string): Promise<JsonObject>;
|
|
661
666
|
dashboard(id: string): Promise<DashboardResource>;
|
|
667
|
+
publishedDashboard(id: string): Promise<PublishedDashboardResource>;
|
|
662
668
|
genieSpace(id: string): Promise<GenieSpaceResource>;
|
|
663
669
|
startGenieConversation(spaceId: string, question: string): Promise<JsonObject>;
|
|
664
670
|
experiment(id: string): Promise<JsonObject>;
|
package/dist/index.js
CHANGED
|
@@ -1900,6 +1900,9 @@ var DatabricksAdvancedWorkloadsAdapter = class {
|
|
|
1900
1900
|
dashboard(id) {
|
|
1901
1901
|
return this.client.get(`/api/2.0/lakeview/dashboards/${segment(id)}`);
|
|
1902
1902
|
}
|
|
1903
|
+
publishedDashboard(id) {
|
|
1904
|
+
return this.client.get(`/api/2.0/lakeview/dashboards/${segment(id)}/published`);
|
|
1905
|
+
}
|
|
1903
1906
|
genieSpace(id) {
|
|
1904
1907
|
return this.client.get(`/api/2.0/genie/spaces/${segment(id)}`);
|
|
1905
1908
|
}
|
|
@@ -2037,12 +2040,21 @@ function lakeflowConnectCheck() {
|
|
|
2037
2040
|
const id = env.DBX_TEST_CONNECT_PIPELINE_ID;
|
|
2038
2041
|
const pipeline = await adapter(client).pipeline(id);
|
|
2039
2042
|
assertNotFailed("Lakeflow Connect pipeline", pipeline.state);
|
|
2043
|
+
const ingestion = pipeline.spec?.ingestion_definition;
|
|
2044
|
+
if (!ingestion || !Array.isArray(ingestion.objects) || ingestion.objects.length === 0) {
|
|
2045
|
+
throw new Error("Lakeflow Connect pipeline has no managed ingestion definition");
|
|
2046
|
+
}
|
|
2040
2047
|
await booleanSql(
|
|
2041
2048
|
"Lakeflow Connect replication",
|
|
2042
2049
|
env.DBX_TEST_CONNECT_ASSERTION_SQL,
|
|
2043
2050
|
warehouse2.query
|
|
2044
2051
|
);
|
|
2045
|
-
return {
|
|
2052
|
+
return {
|
|
2053
|
+
pipelineId: pipeline.pipeline_id ?? id,
|
|
2054
|
+
state: pipeline.state ?? "IDLE",
|
|
2055
|
+
sourceType: ingestion.source_type ?? "MANAGED_INGESTION",
|
|
2056
|
+
objects: ingestion.objects.length
|
|
2057
|
+
};
|
|
2046
2058
|
}
|
|
2047
2059
|
};
|
|
2048
2060
|
}
|
|
@@ -2052,11 +2064,18 @@ function aiBiDashboardCheck() {
|
|
|
2052
2064
|
description: "Published AI/BI dashboard is accessible",
|
|
2053
2065
|
configured: (env) => Boolean(env.DBX_TEST_DASHBOARD_ID),
|
|
2054
2066
|
async run({ env, client }) {
|
|
2055
|
-
const
|
|
2067
|
+
const api = adapter(client);
|
|
2068
|
+
const id = env.DBX_TEST_DASHBOARD_ID;
|
|
2069
|
+
const dashboard = await api.dashboard(id);
|
|
2056
2070
|
assertNotFailed("AI/BI dashboard", dashboard.lifecycle_state);
|
|
2071
|
+
const published = await api.publishedDashboard(id);
|
|
2072
|
+
if (!published.revision_create_time) {
|
|
2073
|
+
throw new Error(`AI/BI dashboard ${id} has no published revision`);
|
|
2074
|
+
}
|
|
2057
2075
|
return {
|
|
2058
|
-
dashboardId: dashboard.dashboard_id ??
|
|
2059
|
-
name: dashboard.display_name
|
|
2076
|
+
dashboardId: dashboard.dashboard_id ?? id,
|
|
2077
|
+
name: published.display_name ?? dashboard.display_name,
|
|
2078
|
+
publishedAt: published.revision_create_time
|
|
2060
2079
|
};
|
|
2061
2080
|
}
|
|
2062
2081
|
};
|
|
@@ -2360,8 +2379,7 @@ function regionalDrCheck(options = {}) {
|
|
|
2360
2379
|
|
|
2361
2380
|
// src/advanced-target-packs.ts
|
|
2362
2381
|
var DOCS2 = "https://experiments.fabric.pro/docs/testing/target-packs/";
|
|
2363
|
-
var
|
|
2364
|
-
var AZURE_USER_SCOPE = "Azure Databricks, West US, interactive user OAuth, public network path; existing certification fixtures";
|
|
2382
|
+
var AZURE_M2M_SCOPE = "Azure Databricks, dedicated service principal using OAuth M2M, public network path; named managed or disposable certification fixtures";
|
|
2365
2383
|
var workspace = {
|
|
2366
2384
|
id: "workspace",
|
|
2367
2385
|
description: "Databricks workspace host",
|
|
@@ -2394,8 +2412,8 @@ function createAdvancedStreamingTargetPack() {
|
|
|
2394
2412
|
id: "streaming-cdc-connect",
|
|
2395
2413
|
name: "Advanced streaming, CDC and Lakeflow Connect",
|
|
2396
2414
|
description: "Streaming tables, pipeline health, CDC correctness, freshness and managed connector replication.",
|
|
2397
|
-
version: "
|
|
2398
|
-
maturity: "
|
|
2415
|
+
version: "1.0.0",
|
|
2416
|
+
maturity: "live-gated",
|
|
2399
2417
|
capabilities: [
|
|
2400
2418
|
"streaming.tables",
|
|
2401
2419
|
"streaming.freshness",
|
|
@@ -2428,7 +2446,9 @@ function createAdvancedStreamingTargetPack() {
|
|
|
2428
2446
|
)
|
|
2429
2447
|
],
|
|
2430
2448
|
docsUrl: `${DOCS2}#advanced-streaming-cdc-and-lakeflow-connect`,
|
|
2431
|
-
certificationScopes: [
|
|
2449
|
+
certificationScopes: [
|
|
2450
|
+
`${AZURE_M2M_SCOPE}; serverless Lakeflow pipeline AUTO CDC and query-based PostgreSQL foreign-catalog ingestion`
|
|
2451
|
+
]
|
|
2432
2452
|
});
|
|
2433
2453
|
}
|
|
2434
2454
|
function createAiBiGenieTargetPack() {
|
|
@@ -2436,7 +2456,7 @@ function createAiBiGenieTargetPack() {
|
|
|
2436
2456
|
id: "aibi-genie",
|
|
2437
2457
|
name: "AI/BI dashboards and Genie",
|
|
2438
2458
|
description: "Dashboard accessibility and authenticated Genie space/conversation behavior.",
|
|
2439
|
-
version: "0.
|
|
2459
|
+
version: "0.2.0",
|
|
2440
2460
|
maturity: "live-gated",
|
|
2441
2461
|
capabilities: ["aibi.dashboard", "genie.space", "genie.conversation"],
|
|
2442
2462
|
checks: () => [restrictedPrincipalCheck(), aiBiDashboardCheck(), genieCheck()],
|
|
@@ -2454,7 +2474,7 @@ function createAiBiGenieTargetPack() {
|
|
|
2454
2474
|
],
|
|
2455
2475
|
docsUrl: `${DOCS2}#aibi-dashboards-and-genie`,
|
|
2456
2476
|
certificationScopes: [
|
|
2457
|
-
`${
|
|
2477
|
+
`${AZURE_M2M_SCOPE}; published AI/BI dashboard revision and Genie conversation start`
|
|
2458
2478
|
]
|
|
2459
2479
|
});
|
|
2460
2480
|
}
|
|
@@ -2486,7 +2506,7 @@ function createMlflowLifecycleTargetPack() {
|
|
|
2486
2506
|
],
|
|
2487
2507
|
docsUrl: `${DOCS2}#mlflow-and-model-lifecycle`,
|
|
2488
2508
|
certificationScopes: [
|
|
2489
|
-
`${
|
|
2509
|
+
`${AZURE_M2M_SCOPE}; MLflow experiment and configured Unity Catalog model version`
|
|
2490
2510
|
]
|
|
2491
2511
|
});
|
|
2492
2512
|
}
|
|
@@ -2524,7 +2544,7 @@ function createFeatureEngineeringTargetPack() {
|
|
|
2524
2544
|
],
|
|
2525
2545
|
docsUrl: `${DOCS2}#feature-engineering-and-serving`,
|
|
2526
2546
|
certificationScopes: [
|
|
2527
|
-
`${
|
|
2547
|
+
`${AZURE_M2M_SCOPE}; Delta feature table, PostgreSQL-backed Synced Table, and SQL freshness`
|
|
2528
2548
|
]
|
|
2529
2549
|
});
|
|
2530
2550
|
}
|
|
@@ -2559,7 +2579,7 @@ function createModelServingTargetPack() {
|
|
|
2559
2579
|
],
|
|
2560
2580
|
docsUrl: `${DOCS2}#model-serving-and-ai-gateway`,
|
|
2561
2581
|
certificationScopes: [
|
|
2562
|
-
`${
|
|
2582
|
+
`${AZURE_M2M_SCOPE}; custom-model inference and AI Gateway inference-table configuration`
|
|
2563
2583
|
]
|
|
2564
2584
|
});
|
|
2565
2585
|
}
|
|
@@ -2589,7 +2609,7 @@ function createVectorRagAgentsTargetPack() {
|
|
|
2589
2609
|
],
|
|
2590
2610
|
docsUrl: `${DOCS2}#vector-search-rag-and-agents`,
|
|
2591
2611
|
certificationScopes: [
|
|
2592
|
-
`${
|
|
2612
|
+
`${AZURE_M2M_SCOPE}; Delta Sync vector retrieval and custom PyFunc agent invocation`
|
|
2593
2613
|
]
|
|
2594
2614
|
});
|
|
2595
2615
|
}
|
|
@@ -2598,8 +2618,8 @@ function createFederationSharingTargetPack() {
|
|
|
2598
2618
|
id: "federation-sharing-cleanrooms",
|
|
2599
2619
|
name: "Federation, Delta Sharing and Clean Rooms",
|
|
2600
2620
|
description: "Federated connection, data-plane query, Delta Share and Clean Room governance access.",
|
|
2601
|
-
version: "
|
|
2602
|
-
maturity: "
|
|
2621
|
+
version: "1.0.0",
|
|
2622
|
+
maturity: "live-gated",
|
|
2603
2623
|
capabilities: [
|
|
2604
2624
|
"federation.connections",
|
|
2605
2625
|
"federation.query",
|
|
@@ -2622,7 +2642,9 @@ function createFederationSharingTargetPack() {
|
|
|
2622
2642
|
)
|
|
2623
2643
|
],
|
|
2624
2644
|
docsUrl: `${DOCS2}#federation-delta-sharing-and-clean-rooms`,
|
|
2625
|
-
certificationScopes: [
|
|
2645
|
+
certificationScopes: [
|
|
2646
|
+
`${AZURE_M2M_SCOPE}; managed PostgreSQL federation, Delta Sharing table, and two-metastore Clean Room`
|
|
2647
|
+
]
|
|
2626
2648
|
});
|
|
2627
2649
|
}
|
|
2628
2650
|
function createSecurityCostDrTargetPack() {
|
|
@@ -2630,8 +2652,8 @@ function createSecurityCostDrTargetPack() {
|
|
|
2630
2652
|
id: "security-cost-dr",
|
|
2631
2653
|
name: "Networking, security posture, cost and regional DR",
|
|
2632
2654
|
description: "IP controls, compute policy, cost guardrail and authenticated secondary-region readiness.",
|
|
2633
|
-
version: "
|
|
2634
|
-
maturity: "
|
|
2655
|
+
version: "1.0.0",
|
|
2656
|
+
maturity: "live-gated",
|
|
2635
2657
|
capabilities: [
|
|
2636
2658
|
"network.ip-access",
|
|
2637
2659
|
"security.compute-policy",
|
|
@@ -2656,7 +2678,9 @@ function createSecurityCostDrTargetPack() {
|
|
|
2656
2678
|
requirement("dr-assertion", "Secondary-region workload SQL", "DBX_TEST_DR_ASSERTION_SQL")
|
|
2657
2679
|
],
|
|
2658
2680
|
docsUrl: `${DOCS2}#networking-security-cost-and-regional-dr`,
|
|
2659
|
-
certificationScopes: [
|
|
2681
|
+
certificationScopes: [
|
|
2682
|
+
`${AZURE_M2M_SCOPE}; TEST-NET block list, bounded compute policy, billing system-table guardrail, and West US 3 serverless DR warehouse`
|
|
2683
|
+
]
|
|
2660
2684
|
});
|
|
2661
2685
|
}
|
|
2662
2686
|
function createAdvancedTargetPacks() {
|