@lightdash/cli 0.3387.0 → 0.3389.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.
Files changed (32) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/analytics/analytics.d.ts +16 -1
  3. package/dist/analytics/analytics.d.ts.map +1 -1
  4. package/dist/handlers/connectSnowflake.d.ts +43 -0
  5. package/dist/handlers/connectSnowflake.d.ts.map +1 -0
  6. package/dist/handlers/connectSnowflake.js +310 -0
  7. package/dist/handlers/connectSnowflake.test.d.ts +2 -0
  8. package/dist/handlers/connectSnowflake.test.d.ts.map +1 -0
  9. package/dist/handlers/connectSnowflake.test.js +347 -0
  10. package/dist/handlers/organizationContent/customRoles.d.ts.map +1 -1
  11. package/dist/handlers/organizationContent/customRoles.js +6 -30
  12. package/dist/handlers/organizationContent/fileNames.d.ts +5 -0
  13. package/dist/handlers/organizationContent/fileNames.d.ts.map +1 -0
  14. package/dist/handlers/organizationContent/fileNames.js +33 -0
  15. package/dist/handlers/organizationContent/fileNames.test.d.ts +2 -0
  16. package/dist/handlers/organizationContent/fileNames.test.d.ts.map +1 -0
  17. package/dist/handlers/organizationContent/fileNames.test.js +36 -0
  18. package/dist/handlers/organizationContent/groups.d.ts +18 -0
  19. package/dist/handlers/organizationContent/groups.d.ts.map +1 -0
  20. package/dist/handlers/organizationContent/groups.js +171 -0
  21. package/dist/handlers/organizationContent/groups.test.d.ts +2 -0
  22. package/dist/handlers/organizationContent/groups.test.d.ts.map +1 -0
  23. package/dist/handlers/organizationContent/groups.test.js +134 -0
  24. package/dist/handlers/organizationContent/index.d.ts.map +1 -1
  25. package/dist/handlers/organizationContent/index.js +41 -0
  26. package/dist/handlers/organizationContent/index.test.d.ts +2 -0
  27. package/dist/handlers/organizationContent/index.test.d.ts.map +1 -0
  28. package/dist/handlers/organizationContent/index.test.js +155 -0
  29. package/dist/handlers/organizationContent/users.d.ts.map +1 -1
  30. package/dist/handlers/organizationContent/users.js +6 -29
  31. package/dist/index.js +13 -0
  32. package/package.json +3 -3
@@ -397,7 +397,22 @@ type CliCommandExecuted = BaseTrack & {
397
397
  success: boolean;
398
398
  };
399
399
  };
400
- type Track = CliGenerateStarted | CliGenerateCompleted | CliGenerateError | CliDbtCommand | CliDbtCommandCompleted | CliDbtError | CliPreviewStarted | CliPreviewCompleted | CliPreviewStopped | CliPreviewError | CliRefreshStarted | CliRefreshCompleted | CliRefreshError | CliCompileStarted | CliCompileCompleted | CliCompileError | CliDeployTriggered | CliCreateStarted | CliCreateCompleted | CliCreateError | CliStartStopPreview | CliStopPreviewMissing | CliGenerateExposuresStarted | CliGenerateExposuresCompleted | CliGenerateExposuresError | CliLogin | CliContentAsCode | CliLightdashConfigLoaded | CliValidateStarted | CliValidateCompleted | CliValidateError | CliSqlStarted | CliSqlCompleted | CliSqlError | CliLintCompleted | CliLintError | CliRenameCompleted | CliRenameError | CliCommandExecuted;
400
+ type CliConnectSnowflake = BaseTrack & ({
401
+ event: 'connect_snowflake.started';
402
+ properties: Record<string, never>;
403
+ } | {
404
+ event: 'connect_snowflake.completed';
405
+ properties: {
406
+ method: 'key_pair' | 'pat';
407
+ };
408
+ } | {
409
+ event: 'connect_snowflake.error';
410
+ properties: {
411
+ error: string;
412
+ errorCategory: string;
413
+ };
414
+ });
415
+ type Track = CliGenerateStarted | CliGenerateCompleted | CliGenerateError | CliDbtCommand | CliDbtCommandCompleted | CliDbtError | CliPreviewStarted | CliPreviewCompleted | CliPreviewStopped | CliPreviewError | CliRefreshStarted | CliRefreshCompleted | CliRefreshError | CliCompileStarted | CliCompileCompleted | CliCompileError | CliDeployTriggered | CliCreateStarted | CliCreateCompleted | CliCreateError | CliStartStopPreview | CliStopPreviewMissing | CliGenerateExposuresStarted | CliGenerateExposuresCompleted | CliGenerateExposuresError | CliLogin | CliContentAsCode | CliLightdashConfigLoaded | CliValidateStarted | CliValidateCompleted | CliValidateError | CliSqlStarted | CliSqlCompleted | CliSqlError | CliLintCompleted | CliLintError | CliRenameCompleted | CliRenameError | CliCommandExecuted | CliConnectSnowflake;
401
416
  export declare const categorizeError: (error: unknown) => string;
402
417
  export declare class LightdashAnalytics {
403
418
  private static getWriteKey;
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { type CreateSnowflakeCredentials } from '@lightdash/common';
2
+ import { SnowflakeWarehouseClient, type SnowflakeSessionDiscovery } from '@lightdash/warehouses';
3
+ import fetch from 'node-fetch';
4
+ export type ConnectSnowflakeOptions = {
5
+ code: string;
6
+ url: string;
7
+ account: string;
8
+ database?: string;
9
+ warehouse?: string;
10
+ role?: string;
11
+ schema?: string;
12
+ user?: string;
13
+ };
14
+ type SnowflakeOnboardingClient = Pick<SnowflakeWarehouseClient, 'closeDiagnosticConnection' | 'createProgrammaticAccessToken' | 'getSessionDiscovery' | 'getUserPublicKeySlots' | 'openDiagnosticConnection' | 'selectOneDiagnosticConnection' | 'setUserPublicKey' | 'unsetUserPublicKey'>;
15
+ type GeneratedKeyPair = {
16
+ privateKey: string;
17
+ publicKey: string;
18
+ };
19
+ type ConnectSnowflakeDependencies = {
20
+ warehouseClientFactory: (credentials: CreateSnowflakeCredentials) => SnowflakeOnboardingClient;
21
+ generateKeyPair: () => GeneratedKeyPair;
22
+ sleep: (milliseconds: number) => Promise<void>;
23
+ now: () => Date;
24
+ fetch: typeof fetch;
25
+ write: (message: string) => void;
26
+ };
27
+ type ConnectionValueName = 'database' | 'warehouse' | 'schema' | 'role';
28
+ type ConnectionValues = {
29
+ database?: string;
30
+ warehouse?: string;
31
+ role?: string;
32
+ schema?: string;
33
+ };
34
+ type ResolvedConnectionValues = {
35
+ values: ConnectionValues;
36
+ sources: Partial<Record<ConnectionValueName, 'flag' | 'session default'>>;
37
+ };
38
+ export declare const connectSnowflakeHandler: (options: ConnectSnowflakeOptions, dependencies?: ConnectSnowflakeDependencies) => Promise<void>;
39
+ export declare const connectSnowflakeTestHelpers: {
40
+ resolveConnectionValues: (options: ConnectSnowflakeOptions, discovery: SnowflakeSessionDiscovery) => ResolvedConnectionValues;
41
+ };
42
+ export {};
43
+ //# sourceMappingURL=connectSnowflake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectSnowflake.d.ts","sourceRoot":"","sources":["../../src/handlers/connectSnowflake.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,KAAK,0BAA0B,EAIlC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEH,wBAAwB,EAExB,KAAK,yBAAyB,EACjC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAwB,MAAM,YAAY,CAAC;AAIlD,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,yBAAyB,GAAG,IAAI,CACjC,wBAAwB,EACtB,2BAA2B,GAC3B,+BAA+B,GAC/B,qBAAqB,GACrB,uBAAuB,GACvB,0BAA0B,GAC1B,+BAA+B,GAC/B,kBAAkB,GAClB,oBAAoB,CACzB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAChC,sBAAsB,EAAE,CACpB,WAAW,EAAE,0BAA0B,KACtC,yBAAyB,CAAC;IAC/B,eAAe,EAAE,MAAM,gBAAgB,CAAC;IACxC,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,KAAK,mBAAmB,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExE,KAAK,gBAAgB,GAAG;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC5B,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAC7E,CAAC;AAwWF,eAAO,MAAM,uBAAuB,GAChC,SAAS,uBAAuB,EAChC,eAAc,4BAAkD,KACjE,OAAO,CAAC,IAAI,CAwEd,CAAC;AAEF,eAAO,MAAM,2BAA2B;uCAnW3B,uBAAuB,aACrB,yBAAyB,KACrC,wBAAwB;CAmW1B,CAAC"}
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.connectSnowflakeTestHelpers = exports.connectSnowflakeHandler = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@lightdash/common");
6
+ const warehouses_1 = require("@lightdash/warehouses");
7
+ const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
8
+ const node_crypto_1 = require("node:crypto");
9
+ const analytics_1 = require("../analytics/analytics");
10
+ const PAT_EXPIRY_DAYS = 365;
11
+ const PAT_NETWORK_POLICY_BYPASS_MINUTES = 1440;
12
+ const KEY_VERIFICATION_ATTEMPTS = 3;
13
+ const KEY_VERIFICATION_RETRY_DELAY_MS = 5_000;
14
+ const generateSnowflakeKeyPair = () => {
15
+ const { privateKey, publicKey } = (0, node_crypto_1.generateKeyPairSync)('rsa', {
16
+ modulusLength: 2048,
17
+ privateKeyEncoding: { type: 'pkcs8', format: 'pem' },
18
+ publicKeyEncoding: { type: 'spki', format: 'der' },
19
+ });
20
+ return {
21
+ privateKey,
22
+ publicKey: publicKey.toString('base64'),
23
+ };
24
+ };
25
+ const defaultDependencies = {
26
+ warehouseClientFactory: (credentials) => new warehouses_1.SnowflakeWarehouseClient(credentials),
27
+ generateKeyPair: generateSnowflakeKeyPair,
28
+ sleep: (milliseconds) => new Promise((resolve) => {
29
+ setTimeout(resolve, milliseconds);
30
+ }),
31
+ now: () => new Date(),
32
+ fetch: node_fetch_1.default,
33
+ write: (message) => console.error(message),
34
+ };
35
+ const parseDepositResponse = async (response) => {
36
+ let body;
37
+ try {
38
+ body = await response.json();
39
+ }
40
+ catch {
41
+ throw new common_1.WarehouseConnectionError('Lightdash returned an invalid response while depositing the Snowflake credential');
42
+ }
43
+ if (!response.ok) {
44
+ if (response.status === 401 || response.status === 404) {
45
+ throw new common_1.WarehouseConnectionError('code expired — generate a new one in the Lightdash setup wizard');
46
+ }
47
+ const serverMessage = typeof body === 'object' &&
48
+ body !== null &&
49
+ 'error' in body &&
50
+ typeof body.error === 'object' &&
51
+ body.error !== null &&
52
+ 'message' in body.error &&
53
+ typeof body.error.message === 'string'
54
+ ? ` (${response.status}: ${body.error.message})`
55
+ : ` (${response.status})`;
56
+ throw new common_1.WarehouseConnectionError(`Lightdash could not accept the Snowflake credential${serverMessage}`);
57
+ }
58
+ if (typeof body !== 'object' ||
59
+ body === null ||
60
+ !('status' in body) ||
61
+ body.status !== 'ok') {
62
+ throw new common_1.WarehouseConnectionError('Lightdash returned an invalid response while depositing the Snowflake credential');
63
+ }
64
+ };
65
+ const resolveValue = (flagValue, defaultValue) => {
66
+ const value = flagValue ?? defaultValue ?? undefined;
67
+ return value?.trim() ? value : undefined;
68
+ };
69
+ const resolveConnectionValues = (options, discovery) => {
70
+ const values = {
71
+ database: resolveValue(options.database, discovery.defaults.database),
72
+ warehouse: resolveValue(options.warehouse, discovery.defaults.warehouse),
73
+ schema: resolveValue(options.schema, discovery.defaults.schema),
74
+ role: resolveValue(options.role, discovery.defaults.role),
75
+ };
76
+ const sources = {};
77
+ Object.keys(values).forEach((name) => {
78
+ if (values[name] !== undefined) {
79
+ sources[name] =
80
+ options[name] !== undefined ? 'flag' : 'session default';
81
+ }
82
+ });
83
+ return {
84
+ values,
85
+ sources,
86
+ };
87
+ };
88
+ const buildInventory = (discovery) => {
89
+ if (!discovery.inventory) {
90
+ return null;
91
+ }
92
+ return {
93
+ databases: discovery.inventory.databases
94
+ .map(({ name, comment }) => ({ name, comment }))
95
+ .slice(0, 100),
96
+ warehouses: discovery.inventory.warehouses
97
+ .map(({ name, size, state }) => ({ name, size, state }))
98
+ .slice(0, 100),
99
+ roles: discovery.inventory.roles
100
+ .map(({ name, isDefault }) => ({ name, isDefault }))
101
+ .slice(0, 100),
102
+ schemas: discovery.inventory.schemas
103
+ .map(({ databaseName, name }) => ({ database: databaseName, name }))
104
+ .slice(0, 1000),
105
+ };
106
+ };
107
+ const writeConnectionValuesSummary = (resolvedValues, write) => {
108
+ const names = [
109
+ 'database',
110
+ 'warehouse',
111
+ 'schema',
112
+ 'role',
113
+ ];
114
+ const resolved = names.filter((name) => resolvedValues.values[name] !== undefined);
115
+ const missing = names.filter((name) => resolvedValues.values[name] === undefined);
116
+ write(`Connection values resolved: ${resolved.length === 0
117
+ ? 'none'
118
+ : resolved
119
+ .map((name) => `${name} (${resolvedValues.sources[name]})`)
120
+ .join(', ')}`);
121
+ if (missing.length > 0) {
122
+ write(`Finish choosing ${missing.join(', ')} in the browser.`);
123
+ }
124
+ };
125
+ const isInsufficientPrivilegesError = (error) => {
126
+ const message = (0, common_1.getErrorMessage)(error).toLowerCase();
127
+ return (message.includes('insufficient privilege') ||
128
+ message.includes('not authorized') ||
129
+ message.includes('not permitted') ||
130
+ message.includes('modify programmatic authentication methods'));
131
+ };
132
+ const getAvailableKeySlot = (slots) => {
133
+ if (!slots.RSA_PUBLIC_KEY) {
134
+ return 'RSA_PUBLIC_KEY';
135
+ }
136
+ if (!slots.RSA_PUBLIC_KEY_2) {
137
+ return 'RSA_PUBLIC_KEY_2';
138
+ }
139
+ return null;
140
+ };
141
+ const verifyKeyPair = async (credentials, dependencies) => {
142
+ const client = dependencies.warehouseClientFactory(credentials);
143
+ const attemptConnection = async (attempt) => {
144
+ let session = null;
145
+ try {
146
+ session = await client.openDiagnosticConnection();
147
+ await client.selectOneDiagnosticConnection(session);
148
+ await client.closeDiagnosticConnection(session);
149
+ }
150
+ catch (error) {
151
+ if (session !== null) {
152
+ await client
153
+ .closeDiagnosticConnection(session)
154
+ .catch(() => undefined);
155
+ }
156
+ if (attempt >= KEY_VERIFICATION_ATTEMPTS) {
157
+ throw error;
158
+ }
159
+ await dependencies.sleep(KEY_VERIFICATION_RETRY_DELAY_MS);
160
+ await attemptConnection(attempt + 1);
161
+ }
162
+ };
163
+ await attemptConnection(1);
164
+ };
165
+ const writeAdminRemedies = (user, role, slot, publicKey, write) => {
166
+ const userIdentifier = (0, warehouses_1.snowflakeIdentifier)(user);
167
+ const roleIdentifier = (0, warehouses_1.snowflakeIdentifier)(role ?? 'ACCOUNTADMIN');
168
+ write('Snowflake could not create a durable onboarding credential. Ask an administrator to use one of these remedies:');
169
+ write(`GRANT MODIFY PROGRAMMATIC AUTHENTICATION METHODS ON USER ${userIdentifier} TO ROLE ${roleIdentifier};`);
170
+ write(`ALTER USER ${userIdentifier} SET ${slot} = '${publicKey}';`);
171
+ write("ALTER AUTHENTICATION POLICY <policy_name> SET AUTHENTICATION_METHODS = ('OAUTH', 'PASSWORD', 'KEYPAIR', 'PROGRAMMATIC_ACCESS_TOKEN');");
172
+ write('ALTER AUTHENTICATION POLICY <policy_name> SET PAT_POLICY = (MAX_EXPIRY_IN_DAYS = 365 NETWORK_POLICY_EVALUATION = ENFORCED_NOT_REQUIRED);');
173
+ };
174
+ const createDurableCredential = async (authorizationCodeCredentials, warehouseClient, discovery, connectionValues, dependencies) => {
175
+ const keyPair = dependencies.generateKeyPair();
176
+ const slots = await warehouseClient.getUserPublicKeySlots(discovery.user);
177
+ const slot = getAvailableKeySlot(slots);
178
+ if (slot === null) {
179
+ dependencies.write('Both Snowflake key slots are in use by other tools; using a programmatic access token instead.');
180
+ }
181
+ let keyRegistered = false;
182
+ if (slot !== null) {
183
+ try {
184
+ await warehouseClient.setUserPublicKey(discovery.user, slot, keyPair.publicKey);
185
+ keyRegistered = true;
186
+ }
187
+ catch (error) {
188
+ if (!isInsufficientPrivilegesError(error)) {
189
+ throw error;
190
+ }
191
+ dependencies.write('Key-pair registration requires an administrator privilege; trying a self-service programmatic access token instead.');
192
+ }
193
+ }
194
+ const keyPairCredentials = {
195
+ type: common_1.WarehouseTypes.SNOWFLAKE,
196
+ account: authorizationCodeCredentials.account,
197
+ user: discovery.user,
198
+ authenticationType: common_1.SnowflakeAuthenticationType.PRIVATE_KEY,
199
+ privateKey: keyPair.privateKey,
200
+ database: connectionValues.database ?? '',
201
+ warehouse: connectionValues.warehouse ?? '',
202
+ schema: connectionValues.schema ?? '',
203
+ role: connectionValues.role,
204
+ };
205
+ if (keyRegistered && slot !== null) {
206
+ try {
207
+ await verifyKeyPair({
208
+ ...keyPairCredentials,
209
+ database: '',
210
+ warehouse: '',
211
+ schema: '',
212
+ role: undefined,
213
+ }, dependencies);
214
+ return {
215
+ credentials: {
216
+ ...keyPairCredentials,
217
+ database: connectionValues.database,
218
+ warehouse: connectionValues.warehouse,
219
+ schema: connectionValues.schema,
220
+ },
221
+ successMessage: 'Secured with a key pair',
222
+ method: 'key_pair',
223
+ };
224
+ }
225
+ catch {
226
+ dependencies.write('Snowflake rejected key-pair authentication, likely because of the authentication policy. Removing the new key and trying a programmatic access token instead.');
227
+ await warehouseClient.unsetUserPublicKey(discovery.user, slot);
228
+ }
229
+ }
230
+ try {
231
+ const { tokenSecret } = await warehouseClient.createProgrammaticAccessToken('LIGHTDASH_ONBOARDING', PAT_EXPIRY_DAYS, PAT_NETWORK_POLICY_BYPASS_MINUTES);
232
+ const expiresAt = new Date(dependencies.now().getTime() +
233
+ PAT_EXPIRY_DAYS * 24 * 60 * 60 * 1000);
234
+ return {
235
+ credentials: {
236
+ type: common_1.WarehouseTypes.SNOWFLAKE,
237
+ account: authorizationCodeCredentials.account,
238
+ user: discovery.user,
239
+ authenticationType: common_1.SnowflakeAuthenticationType.PASSWORD,
240
+ password: tokenSecret,
241
+ database: connectionValues.database,
242
+ warehouse: connectionValues.warehouse,
243
+ schema: connectionValues.schema,
244
+ role: connectionValues.role,
245
+ },
246
+ successMessage: `Secured with a programmatic access token (expires ${expiresAt.toISOString().slice(0, 10)})`,
247
+ method: 'pat',
248
+ };
249
+ }
250
+ catch (error) {
251
+ writeAdminRemedies(discovery.user, discovery.defaults.role, slot ?? 'RSA_PUBLIC_KEY_2', keyPair.publicKey, dependencies.write);
252
+ throw new common_1.WarehouseConnectionError(`Snowflake programmatic access token creation failed: ${(0, common_1.getErrorMessage)(error)}`);
253
+ }
254
+ };
255
+ const connectSnowflakeHandler = async (options, dependencies = defaultDependencies) => {
256
+ await analytics_1.LightdashAnalytics.track({
257
+ event: 'connect_snowflake.started',
258
+ properties: {},
259
+ });
260
+ try {
261
+ const authorizationCodeCredentials = {
262
+ type: common_1.WarehouseTypes.SNOWFLAKE,
263
+ account: options.account,
264
+ user: options.user ?? '',
265
+ authenticationType: common_1.SnowflakeAuthenticationType.OAUTH_AUTHORIZATION_CODE,
266
+ role: options.role,
267
+ database: options.database ?? '',
268
+ warehouse: options.warehouse ?? '',
269
+ schema: options.schema ?? '',
270
+ };
271
+ const warehouseClient = dependencies.warehouseClientFactory(authorizationCodeCredentials);
272
+ dependencies.write('Opening Snowflake sign-in in your browser…');
273
+ const discovery = await warehouseClient.getSessionDiscovery(options.user);
274
+ const resolvedConnectionValues = resolveConnectionValues(options, discovery);
275
+ const durableCredential = await createDurableCredential(authorizationCodeCredentials, warehouseClient, discovery, resolvedConnectionValues.values, dependencies);
276
+ const depositUrl = new URL('/api/v1/warehouse-connect/deposit', options.url);
277
+ const request = {
278
+ code: options.code,
279
+ credentials: durableCredential.credentials,
280
+ inventory: buildInventory(discovery),
281
+ };
282
+ const response = await dependencies.fetch(depositUrl.href, {
283
+ method: 'POST',
284
+ headers: { 'Content-Type': 'application/json' },
285
+ body: JSON.stringify(request),
286
+ });
287
+ await parseDepositResponse(response);
288
+ await analytics_1.LightdashAnalytics.track({
289
+ event: 'connect_snowflake.completed',
290
+ properties: { method: durableCredential.method },
291
+ });
292
+ dependencies.write(durableCredential.successMessage);
293
+ writeConnectionValuesSummary(resolvedConnectionValues, dependencies.write);
294
+ dependencies.write('Authenticated and connected! Return to Lightdash to finish setup.');
295
+ }
296
+ catch (error) {
297
+ await analytics_1.LightdashAnalytics.track({
298
+ event: 'connect_snowflake.error',
299
+ properties: {
300
+ error: (0, common_1.getErrorMessage)(error),
301
+ errorCategory: (0, analytics_1.categorizeError)(error),
302
+ },
303
+ });
304
+ throw error;
305
+ }
306
+ };
307
+ exports.connectSnowflakeHandler = connectSnowflakeHandler;
308
+ exports.connectSnowflakeTestHelpers = {
309
+ resolveConnectionValues,
310
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connectSnowflake.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectSnowflake.test.d.ts","sourceRoot":"","sources":["../../src/handlers/connectSnowflake.test.ts"],"names":[],"mappings":""}