@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.cjs
CHANGED
|
@@ -2364,6 +2364,9 @@ var DatabricksAdvancedWorkloadsAdapter = class {
|
|
|
2364
2364
|
dashboard(id) {
|
|
2365
2365
|
return this.client.get(`/api/2.0/lakeview/dashboards/${segment(id)}`);
|
|
2366
2366
|
}
|
|
2367
|
+
publishedDashboard(id) {
|
|
2368
|
+
return this.client.get(`/api/2.0/lakeview/dashboards/${segment(id)}/published`);
|
|
2369
|
+
}
|
|
2367
2370
|
genieSpace(id) {
|
|
2368
2371
|
return this.client.get(`/api/2.0/genie/spaces/${segment(id)}`);
|
|
2369
2372
|
}
|
|
@@ -2501,12 +2504,21 @@ function lakeflowConnectCheck() {
|
|
|
2501
2504
|
const id = env.DBX_TEST_CONNECT_PIPELINE_ID;
|
|
2502
2505
|
const pipeline = await adapter(client).pipeline(id);
|
|
2503
2506
|
assertNotFailed("Lakeflow Connect pipeline", pipeline.state);
|
|
2507
|
+
const ingestion = pipeline.spec?.ingestion_definition;
|
|
2508
|
+
if (!ingestion || !Array.isArray(ingestion.objects) || ingestion.objects.length === 0) {
|
|
2509
|
+
throw new Error("Lakeflow Connect pipeline has no managed ingestion definition");
|
|
2510
|
+
}
|
|
2504
2511
|
await booleanSql(
|
|
2505
2512
|
"Lakeflow Connect replication",
|
|
2506
2513
|
env.DBX_TEST_CONNECT_ASSERTION_SQL,
|
|
2507
2514
|
warehouse2.query
|
|
2508
2515
|
);
|
|
2509
|
-
return {
|
|
2516
|
+
return {
|
|
2517
|
+
pipelineId: pipeline.pipeline_id ?? id,
|
|
2518
|
+
state: pipeline.state ?? "IDLE",
|
|
2519
|
+
sourceType: ingestion.source_type ?? "MANAGED_INGESTION",
|
|
2520
|
+
objects: ingestion.objects.length
|
|
2521
|
+
};
|
|
2510
2522
|
}
|
|
2511
2523
|
};
|
|
2512
2524
|
}
|
|
@@ -2516,11 +2528,18 @@ function aiBiDashboardCheck() {
|
|
|
2516
2528
|
description: "Published AI/BI dashboard is accessible",
|
|
2517
2529
|
configured: (env) => Boolean(env.DBX_TEST_DASHBOARD_ID),
|
|
2518
2530
|
async run({ env, client }) {
|
|
2519
|
-
const
|
|
2531
|
+
const api = adapter(client);
|
|
2532
|
+
const id = env.DBX_TEST_DASHBOARD_ID;
|
|
2533
|
+
const dashboard = await api.dashboard(id);
|
|
2520
2534
|
assertNotFailed("AI/BI dashboard", dashboard.lifecycle_state);
|
|
2535
|
+
const published = await api.publishedDashboard(id);
|
|
2536
|
+
if (!published.revision_create_time) {
|
|
2537
|
+
throw new Error(`AI/BI dashboard ${id} has no published revision`);
|
|
2538
|
+
}
|
|
2521
2539
|
return {
|
|
2522
|
-
dashboardId: dashboard.dashboard_id ??
|
|
2523
|
-
name: dashboard.display_name
|
|
2540
|
+
dashboardId: dashboard.dashboard_id ?? id,
|
|
2541
|
+
name: published.display_name ?? dashboard.display_name,
|
|
2542
|
+
publishedAt: published.revision_create_time
|
|
2524
2543
|
};
|
|
2525
2544
|
}
|
|
2526
2545
|
};
|
|
@@ -2824,8 +2843,7 @@ function regionalDrCheck(options = {}) {
|
|
|
2824
2843
|
|
|
2825
2844
|
// src/advanced-target-packs.ts
|
|
2826
2845
|
var DOCS2 = "https://experiments.fabric.pro/docs/testing/target-packs/";
|
|
2827
|
-
var
|
|
2828
|
-
var AZURE_USER_SCOPE = "Azure Databricks, West US, interactive user OAuth, public network path; existing certification fixtures";
|
|
2846
|
+
var AZURE_M2M_SCOPE = "Azure Databricks, dedicated service principal using OAuth M2M, public network path; named managed or disposable certification fixtures";
|
|
2829
2847
|
var workspace = {
|
|
2830
2848
|
id: "workspace",
|
|
2831
2849
|
description: "Databricks workspace host",
|
|
@@ -2858,8 +2876,8 @@ function createAdvancedStreamingTargetPack() {
|
|
|
2858
2876
|
id: "streaming-cdc-connect",
|
|
2859
2877
|
name: "Advanced streaming, CDC and Lakeflow Connect",
|
|
2860
2878
|
description: "Streaming tables, pipeline health, CDC correctness, freshness and managed connector replication.",
|
|
2861
|
-
version: "
|
|
2862
|
-
maturity: "
|
|
2879
|
+
version: "1.0.0",
|
|
2880
|
+
maturity: "live-gated",
|
|
2863
2881
|
capabilities: [
|
|
2864
2882
|
"streaming.tables",
|
|
2865
2883
|
"streaming.freshness",
|
|
@@ -2892,7 +2910,9 @@ function createAdvancedStreamingTargetPack() {
|
|
|
2892
2910
|
)
|
|
2893
2911
|
],
|
|
2894
2912
|
docsUrl: `${DOCS2}#advanced-streaming-cdc-and-lakeflow-connect`,
|
|
2895
|
-
certificationScopes: [
|
|
2913
|
+
certificationScopes: [
|
|
2914
|
+
`${AZURE_M2M_SCOPE}; serverless Lakeflow pipeline AUTO CDC and query-based PostgreSQL foreign-catalog ingestion`
|
|
2915
|
+
]
|
|
2896
2916
|
});
|
|
2897
2917
|
}
|
|
2898
2918
|
function createAiBiGenieTargetPack() {
|
|
@@ -2900,7 +2920,7 @@ function createAiBiGenieTargetPack() {
|
|
|
2900
2920
|
id: "aibi-genie",
|
|
2901
2921
|
name: "AI/BI dashboards and Genie",
|
|
2902
2922
|
description: "Dashboard accessibility and authenticated Genie space/conversation behavior.",
|
|
2903
|
-
version: "0.
|
|
2923
|
+
version: "0.2.0",
|
|
2904
2924
|
maturity: "live-gated",
|
|
2905
2925
|
capabilities: ["aibi.dashboard", "genie.space", "genie.conversation"],
|
|
2906
2926
|
checks: () => [restrictedPrincipalCheck(), aiBiDashboardCheck(), genieCheck()],
|
|
@@ -2918,7 +2938,7 @@ function createAiBiGenieTargetPack() {
|
|
|
2918
2938
|
],
|
|
2919
2939
|
docsUrl: `${DOCS2}#aibi-dashboards-and-genie`,
|
|
2920
2940
|
certificationScopes: [
|
|
2921
|
-
`${
|
|
2941
|
+
`${AZURE_M2M_SCOPE}; published AI/BI dashboard revision and Genie conversation start`
|
|
2922
2942
|
]
|
|
2923
2943
|
});
|
|
2924
2944
|
}
|
|
@@ -2950,7 +2970,7 @@ function createMlflowLifecycleTargetPack() {
|
|
|
2950
2970
|
],
|
|
2951
2971
|
docsUrl: `${DOCS2}#mlflow-and-model-lifecycle`,
|
|
2952
2972
|
certificationScopes: [
|
|
2953
|
-
`${
|
|
2973
|
+
`${AZURE_M2M_SCOPE}; MLflow experiment and configured Unity Catalog model version`
|
|
2954
2974
|
]
|
|
2955
2975
|
});
|
|
2956
2976
|
}
|
|
@@ -2988,7 +3008,7 @@ function createFeatureEngineeringTargetPack() {
|
|
|
2988
3008
|
],
|
|
2989
3009
|
docsUrl: `${DOCS2}#feature-engineering-and-serving`,
|
|
2990
3010
|
certificationScopes: [
|
|
2991
|
-
`${
|
|
3011
|
+
`${AZURE_M2M_SCOPE}; Delta feature table, PostgreSQL-backed Synced Table, and SQL freshness`
|
|
2992
3012
|
]
|
|
2993
3013
|
});
|
|
2994
3014
|
}
|
|
@@ -3023,7 +3043,7 @@ function createModelServingTargetPack() {
|
|
|
3023
3043
|
],
|
|
3024
3044
|
docsUrl: `${DOCS2}#model-serving-and-ai-gateway`,
|
|
3025
3045
|
certificationScopes: [
|
|
3026
|
-
`${
|
|
3046
|
+
`${AZURE_M2M_SCOPE}; custom-model inference and AI Gateway inference-table configuration`
|
|
3027
3047
|
]
|
|
3028
3048
|
});
|
|
3029
3049
|
}
|
|
@@ -3053,7 +3073,7 @@ function createVectorRagAgentsTargetPack() {
|
|
|
3053
3073
|
],
|
|
3054
3074
|
docsUrl: `${DOCS2}#vector-search-rag-and-agents`,
|
|
3055
3075
|
certificationScopes: [
|
|
3056
|
-
`${
|
|
3076
|
+
`${AZURE_M2M_SCOPE}; Delta Sync vector retrieval and custom PyFunc agent invocation`
|
|
3057
3077
|
]
|
|
3058
3078
|
});
|
|
3059
3079
|
}
|
|
@@ -3062,8 +3082,8 @@ function createFederationSharingTargetPack() {
|
|
|
3062
3082
|
id: "federation-sharing-cleanrooms",
|
|
3063
3083
|
name: "Federation, Delta Sharing and Clean Rooms",
|
|
3064
3084
|
description: "Federated connection, data-plane query, Delta Share and Clean Room governance access.",
|
|
3065
|
-
version: "
|
|
3066
|
-
maturity: "
|
|
3085
|
+
version: "1.0.0",
|
|
3086
|
+
maturity: "live-gated",
|
|
3067
3087
|
capabilities: [
|
|
3068
3088
|
"federation.connections",
|
|
3069
3089
|
"federation.query",
|
|
@@ -3086,7 +3106,9 @@ function createFederationSharingTargetPack() {
|
|
|
3086
3106
|
)
|
|
3087
3107
|
],
|
|
3088
3108
|
docsUrl: `${DOCS2}#federation-delta-sharing-and-clean-rooms`,
|
|
3089
|
-
certificationScopes: [
|
|
3109
|
+
certificationScopes: [
|
|
3110
|
+
`${AZURE_M2M_SCOPE}; managed PostgreSQL federation, Delta Sharing table, and two-metastore Clean Room`
|
|
3111
|
+
]
|
|
3090
3112
|
});
|
|
3091
3113
|
}
|
|
3092
3114
|
function createSecurityCostDrTargetPack() {
|
|
@@ -3094,8 +3116,8 @@ function createSecurityCostDrTargetPack() {
|
|
|
3094
3116
|
id: "security-cost-dr",
|
|
3095
3117
|
name: "Networking, security posture, cost and regional DR",
|
|
3096
3118
|
description: "IP controls, compute policy, cost guardrail and authenticated secondary-region readiness.",
|
|
3097
|
-
version: "
|
|
3098
|
-
maturity: "
|
|
3119
|
+
version: "1.0.0",
|
|
3120
|
+
maturity: "live-gated",
|
|
3099
3121
|
capabilities: [
|
|
3100
3122
|
"network.ip-access",
|
|
3101
3123
|
"security.compute-policy",
|
|
@@ -3120,7 +3142,9 @@ function createSecurityCostDrTargetPack() {
|
|
|
3120
3142
|
requirement("dr-assertion", "Secondary-region workload SQL", "DBX_TEST_DR_ASSERTION_SQL")
|
|
3121
3143
|
],
|
|
3122
3144
|
docsUrl: `${DOCS2}#networking-security-cost-and-regional-dr`,
|
|
3123
|
-
certificationScopes: [
|
|
3145
|
+
certificationScopes: [
|
|
3146
|
+
`${AZURE_M2M_SCOPE}; TEST-NET block list, bounded compute policy, billing system-table guardrail, and West US 3 serverless DR warehouse`
|
|
3147
|
+
]
|
|
3124
3148
|
});
|
|
3125
3149
|
}
|
|
3126
3150
|
function createAdvancedTargetPacks() {
|