@lightdash/cli 2.562.0 → 2.564.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/.tsbuildinfo.build +1 -1
- package/dist/agentConnectionConnectOption.d.ts +8 -0
- package/dist/agentConnectionConnectOption.d.ts.map +1 -0
- package/dist/agentConnectionConnectOption.js +39 -0
- package/dist/agentConnectionOption.d.ts +3 -0
- package/dist/agentConnectionOption.d.ts.map +1 -0
- package/dist/agentConnectionOption.js +48 -0
- package/dist/agentConnections/agentTokenProvider.d.ts +13 -0
- package/dist/agentConnections/agentTokenProvider.d.ts.map +1 -0
- package/dist/agentConnections/agentTokenProvider.js +294 -0
- package/dist/agentConnections/apiUrl.d.ts +4 -0
- package/dist/agentConnections/apiUrl.d.ts.map +1 -0
- package/dist/agentConnections/apiUrl.js +37 -0
- package/dist/agentConnections/commandPolicy.d.ts +14 -0
- package/dist/agentConnections/commandPolicy.d.ts.map +1 -0
- package/dist/agentConnections/commandPolicy.js +108 -0
- package/dist/agentConnections/configLock.d.ts +12 -0
- package/dist/agentConnections/configLock.d.ts.map +1 -0
- package/dist/agentConnections/configLock.js +191 -0
- package/dist/agentConnections/connectInputs.d.ts +20 -0
- package/dist/agentConnections/connectInputs.d.ts.map +1 -0
- package/dist/agentConnections/connectInputs.js +49 -0
- package/dist/agentConnections/fixtures.d.ts +3 -0
- package/dist/agentConnections/fixtures.d.ts.map +1 -0
- package/dist/agentConnections/fixtures.js +36 -0
- package/dist/agentConnections/initialToken.d.ts +26 -0
- package/dist/agentConnections/initialToken.d.ts.map +1 -0
- package/dist/agentConnections/initialToken.js +93 -0
- package/dist/agentConnections/lifecycle.d.ts +17 -0
- package/dist/agentConnections/lifecycle.d.ts.map +1 -0
- package/dist/agentConnections/lifecycle.js +44 -0
- package/dist/agentConnections/personalRecovery.d.ts +27 -0
- package/dist/agentConnections/personalRecovery.d.ts.map +1 -0
- package/dist/agentConnections/personalRecovery.js +71 -0
- package/dist/agentConnections/projectSelection.d.ts +4 -0
- package/dist/agentConnections/projectSelection.d.ts.map +1 -0
- package/dist/agentConnections/projectSelection.js +48 -0
- package/dist/agentConnections/providerProcess.fixture.d.ts +2 -0
- package/dist/agentConnections/providerProcess.fixture.d.ts.map +1 -0
- package/dist/agentConnections/providerProcess.fixture.js +19 -0
- package/dist/agentConnections/requestPolicy.d.ts +11 -0
- package/dist/agentConnections/requestPolicy.d.ts.map +1 -0
- package/dist/agentConnections/requestPolicy.js +76 -0
- package/dist/agentConnections/schema.d.ts +66 -0
- package/dist/agentConnections/schema.d.ts.map +1 -0
- package/dist/agentConnections/schema.js +184 -0
- package/dist/agentConnections/statusResponse.d.ts +10 -0
- package/dist/agentConnections/statusResponse.d.ts.map +1 -0
- package/dist/agentConnections/statusResponse.js +146 -0
- package/dist/agentConnections/store.d.ts +36 -0
- package/dist/agentConnections/store.d.ts.map +1 -0
- package/dist/agentConnections/store.js +275 -0
- package/dist/agentConnections/warehouseStatus.d.ts +30 -0
- package/dist/agentConnections/warehouseStatus.d.ts.map +1 -0
- package/dist/agentConnections/warehouseStatus.js +184 -0
- package/dist/analytics/analytics.d.ts.map +1 -1
- package/dist/analytics/analytics.js +4 -0
- package/dist/config.d.ts +3 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/credentials.d.ts +27 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +161 -0
- package/dist/dbt/models.d.ts.map +1 -1
- package/dist/dbt/models.js +45 -14
- package/dist/handlers/agentAccess.d.ts.map +1 -1
- package/dist/handlers/agentAccess.js +9 -1
- package/dist/handlers/agentConnect.d.ts.map +1 -1
- package/dist/handlers/agentConnect.js +2 -0
- package/dist/handlers/agentConnectionConnect.d.ts +5 -0
- package/dist/handlers/agentConnectionConnect.d.ts.map +1 -0
- package/dist/handlers/agentConnectionConnect.js +371 -0
- package/dist/handlers/agentConnectionStatus.d.ts +7 -0
- package/dist/handlers/agentConnectionStatus.d.ts.map +1 -0
- package/dist/handlers/agentConnectionStatus.js +228 -0
- package/dist/handlers/agentRevoke.d.ts +7 -0
- package/dist/handlers/agentRevoke.d.ts.map +1 -0
- package/dist/handlers/agentRevoke.js +144 -0
- package/dist/handlers/agentStatus.d.ts +4 -1
- package/dist/handlers/agentStatus.d.ts.map +1 -1
- package/dist/handlers/agentStatus.js +7 -0
- package/dist/handlers/apps/createApp.d.ts.map +1 -1
- package/dist/handlers/apps/createApp.js +2 -0
- package/dist/handlers/apps/preview.d.ts.map +1 -1
- package/dist/handlers/apps/preview.js +6 -0
- package/dist/handlers/apps/previewProxy.d.ts.map +1 -1
- package/dist/handlers/apps/previewProxy.js +2 -0
- package/dist/handlers/apps/validate.d.ts.map +1 -1
- package/dist/handlers/apps/validate.js +20 -8
- package/dist/handlers/compile.d.ts.map +1 -1
- package/dist/handlers/compile.js +3 -0
- package/dist/handlers/connectSnowflake.d.ts.map +1 -1
- package/dist/handlers/connectSnowflake.js +2 -0
- package/dist/handlers/createProject.d.ts.map +1 -1
- package/dist/handlers/createProject.js +2 -0
- package/dist/handlers/dbt/apiClient.d.ts +4 -2
- package/dist/handlers/dbt/apiClient.d.ts.map +1 -1
- package/dist/handlers/dbt/apiClient.js +138 -4
- package/dist/handlers/dbt/compile.d.ts.map +1 -1
- package/dist/handlers/dbt/compile.js +13 -2
- package/dist/handlers/dbt/getDbtProfileTargetName.d.ts.map +1 -1
- package/dist/handlers/dbt/getDbtProfileTargetName.js +12 -4
- package/dist/handlers/dbt/getDbtVersion.d.ts.map +1 -1
- package/dist/handlers/dbt/getDbtVersion.js +12 -4
- package/dist/handlers/dbt/getWarehouseClient.d.ts.map +1 -1
- package/dist/handlers/dbt/getWarehouseClient.js +15 -5
- package/dist/handlers/dbt/refresh.d.ts.map +1 -1
- package/dist/handlers/dbt/refresh.js +2 -0
- package/dist/handlers/dbt/run.d.ts.map +1 -1
- package/dist/handlers/dbt/run.js +10 -3
- package/dist/handlers/deploy.d.ts.map +1 -1
- package/dist/handlers/deploy.js +17 -1
- package/dist/handlers/diagnostics.d.ts.map +1 -1
- package/dist/handlers/diagnostics.js +2 -0
- package/dist/handlers/download.d.ts.map +1 -1
- package/dist/handlers/download.js +19 -5
- package/dist/handlers/exportChartImage.d.ts.map +1 -1
- package/dist/handlers/exportChartImage.js +2 -0
- package/dist/handlers/generateExposures.d.ts.map +1 -1
- package/dist/handlers/generateExposures.js +4 -1
- package/dist/handlers/getProject.d.ts.map +1 -1
- package/dist/handlers/getProject.js +25 -1
- package/dist/handlers/listProjects.d.ts.map +1 -1
- package/dist/handlers/listProjects.js +2 -0
- package/dist/handlers/login/connectionBrowser.d.ts +2 -0
- package/dist/handlers/login/connectionBrowser.d.ts.map +1 -0
- package/dist/handlers/login/connectionBrowser.js +22 -0
- package/dist/handlers/login/loopback.d.ts +15 -0
- package/dist/handlers/login/loopback.d.ts.map +1 -0
- package/dist/handlers/login/loopback.js +135 -0
- package/dist/handlers/login/oauth.d.ts.map +1 -1
- package/dist/handlers/login/oauth.js +16 -3
- package/dist/handlers/login/pat.d.ts.map +1 -1
- package/dist/handlers/login/pat.js +2 -0
- package/dist/handlers/login.d.ts.map +1 -1
- package/dist/handlers/login.js +8 -1
- package/dist/handlers/oauthLogin.d.ts.map +1 -1
- package/dist/handlers/oauthLogin.js +2 -0
- package/dist/handlers/ordinary/harness.mocks.d.ts +42 -0
- package/dist/handlers/ordinary/harness.mocks.d.ts.map +1 -0
- package/dist/handlers/ordinary/harness.mocks.js +180 -0
- package/dist/handlers/preAggregateAudit.d.ts.map +1 -1
- package/dist/handlers/preAggregateAudit.js +2 -0
- package/dist/handlers/preview.d.ts.map +1 -1
- package/dist/handlers/preview.js +4 -0
- package/dist/handlers/renameHandler.d.ts.map +1 -1
- package/dist/handlers/renameHandler.js +2 -0
- package/dist/handlers/renameProject.d.ts.map +1 -1
- package/dist/handlers/renameProject.js +2 -0
- package/dist/handlers/resolveProjectFlag.d.ts.map +1 -1
- package/dist/handlers/resolveProjectFlag.js +5 -0
- package/dist/handlers/runChart.d.ts.map +1 -1
- package/dist/handlers/runChart.js +7 -2
- package/dist/handlers/selectProject.d.ts.map +1 -1
- package/dist/handlers/selectProject.js +5 -0
- package/dist/handlers/setProject.d.ts.map +1 -1
- package/dist/handlers/setProject.js +5 -0
- package/dist/handlers/setWarehouse.d.ts.map +1 -1
- package/dist/handlers/setWarehouse.js +2 -0
- package/dist/handlers/slugUpdate.d.ts.map +1 -1
- package/dist/handlers/slugUpdate.js +2 -0
- package/dist/handlers/sourceSelection.d.ts.map +1 -1
- package/dist/handlers/sourceSelection.js +13 -2
- package/dist/handlers/sql.d.ts.map +1 -1
- package/dist/handlers/sql.js +7 -2
- package/dist/handlers/utils.d.ts +3 -0
- package/dist/handlers/utils.d.ts.map +1 -1
- package/dist/handlers/utils.js +39 -0
- package/dist/handlers/validate.d.ts.map +1 -1
- package/dist/handlers/validate.js +2 -0
- package/dist/handlers/warehouseCatalog.d.ts.map +1 -1
- package/dist/handlers/warehouseCatalog.js +7 -2
- package/dist/index.js +43 -3
- package/dist/lightdash-config/index.d.ts.map +1 -1
- package/dist/lightdash-config/index.js +4 -1
- package/package.json +3 -3
|
@@ -5,9 +5,11 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const ability_1 = require("@casl/ability");
|
|
6
6
|
const common_1 = require("@lightdash/common");
|
|
7
7
|
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
8
|
+
const stream_1 = require("stream");
|
|
8
9
|
const url_1 = require("url");
|
|
9
10
|
const zlib_1 = require("zlib");
|
|
10
11
|
const config_1 = require("../../config");
|
|
12
|
+
const credentials_1 = require("../../credentials");
|
|
11
13
|
const env_1 = require("../../env");
|
|
12
14
|
const globalState_1 = tslib_1.__importDefault(require("../../globalState"));
|
|
13
15
|
const styles = tslib_1.__importStar(require("../../styles"));
|
|
@@ -56,8 +58,113 @@ const fetchWithTimeout = async (fullUrl, init) => {
|
|
|
56
58
|
clearTimeout(timer);
|
|
57
59
|
}
|
|
58
60
|
};
|
|
59
|
-
const lightdashRawApi = async ({ method, url, body, headers: requestHeaders = {}, signal, }) => {
|
|
60
|
-
const config = await (0,
|
|
61
|
+
const lightdashRawApi = async ({ method, url, body, headers: requestHeaders = {}, signal, safeToRetry = false, lifecycle, }) => {
|
|
62
|
+
const config = await ((0, credentials_1.getAgentConnectionSelection)() === null
|
|
63
|
+
? (0, config_1.getConfig)()
|
|
64
|
+
: (0, config_1.getConfig)({ readOnly: true }));
|
|
65
|
+
if (lifecycle && (0, credentials_1.getAgentConnectionSelection)() === null)
|
|
66
|
+
throw new Error('An agent connection selection is required.');
|
|
67
|
+
if ((0, credentials_1.getAgentConnectionSelection)() !== null) {
|
|
68
|
+
if (Object.keys(requestHeaders).some((header) => ['authorization', 'cookie'].includes(header.toLowerCase())))
|
|
69
|
+
throw new Error('Agent connection requests cannot override Authorization or include Cookie headers.');
|
|
70
|
+
if (!config.context?.serverUrl)
|
|
71
|
+
throw new Error('No instance is configured for this agent connection.');
|
|
72
|
+
const { agentConnectionApiUrl } = await Promise.resolve().then(() => tslib_1.__importStar(require('../../agentConnections/apiUrl')));
|
|
73
|
+
const destination = agentConnectionApiUrl(config.context.serverUrl, url);
|
|
74
|
+
const { assertAgentRequestAllowed } = await Promise.resolve().then(() => tslib_1.__importStar(require('../../agentConnections/requestPolicy')));
|
|
75
|
+
const requestPath = new url_1.URL(destination).pathname.slice(new url_1.URL(config.context.serverUrl).pathname.replace(/\/$/, '')
|
|
76
|
+
.length);
|
|
77
|
+
assertAgentRequestAllowed(method, requestPath);
|
|
78
|
+
if (requestPath === '/api/v2/content') {
|
|
79
|
+
const allowedQueryKeys = new Set([
|
|
80
|
+
'projectUuids',
|
|
81
|
+
'contentTypes',
|
|
82
|
+
'page',
|
|
83
|
+
'pageSize',
|
|
84
|
+
]);
|
|
85
|
+
const query = new url_1.URL(destination).search.slice(1);
|
|
86
|
+
if (query
|
|
87
|
+
.split('&')
|
|
88
|
+
.some((parameter) => !allowedQueryKeys.has(parameter.split('=', 1)[0])))
|
|
89
|
+
throw new Error('This query is not available with an agent connection. No request was sent.');
|
|
90
|
+
}
|
|
91
|
+
if (requestPath.startsWith('/api/v2/user/agent-connections/') &&
|
|
92
|
+
!lifecycle)
|
|
93
|
+
throw new Error('Invalid connection lifecycle request.');
|
|
94
|
+
if (lifecycle) {
|
|
95
|
+
const statusPath = `/api/v2/user/agent-connections/${lifecycle.grantUuid}/status`;
|
|
96
|
+
const revokePath = `/api/v2/user/agent-connections/${lifecycle.grantUuid}`;
|
|
97
|
+
const validRoute = lifecycle.kind === 'revoke'
|
|
98
|
+
? method === 'DELETE' && url === revokePath
|
|
99
|
+
: method === 'GET' &&
|
|
100
|
+
(url === statusPath ||
|
|
101
|
+
/^\/api\/v2\/projects\/[a-f0-9-]+\/ai-access\/me$/.test(url));
|
|
102
|
+
if (!validRoute || body !== undefined)
|
|
103
|
+
throw new Error('Invalid connection lifecycle request.');
|
|
104
|
+
}
|
|
105
|
+
let credential = await (0, credentials_1.resolveCredential)(config, null, null, lifecycle);
|
|
106
|
+
let retried = false;
|
|
107
|
+
const send = async () => {
|
|
108
|
+
if (credential.kind !== 'agent_connection')
|
|
109
|
+
throw new Error('The selected request requires an agent connection credential.');
|
|
110
|
+
if (!lifecycle) {
|
|
111
|
+
const { approvedProjects } = credential.slot.lastReported;
|
|
112
|
+
const pathProject = requestPath.match(/^\/api\/v[12]\/(?:ee\/)?projects\/([^/]+)/)?.[1];
|
|
113
|
+
const queryProjects = new url_1.URL(destination).searchParams
|
|
114
|
+
.getAll('projectUuids')
|
|
115
|
+
.flatMap((value) => value.split(','));
|
|
116
|
+
const projects = pathProject
|
|
117
|
+
? [pathProject, ...queryProjects]
|
|
118
|
+
: queryProjects;
|
|
119
|
+
if ((requestPath === '/api/v2/content' &&
|
|
120
|
+
projects.length === 0) ||
|
|
121
|
+
projects.some((projectUuid) => !approvedProjects.some((project) => project.projectUuid === projectUuid)))
|
|
122
|
+
throw new Error('This project is not approved for the selected agent connection. No request was sent.');
|
|
123
|
+
}
|
|
124
|
+
try {
|
|
125
|
+
return await fetchWithTimeout(destination, {
|
|
126
|
+
method,
|
|
127
|
+
headers: {
|
|
128
|
+
...(0, utils_1.buildCredentialHeaders)(credential, config.context?.proxyAuthorization ?? null),
|
|
129
|
+
...requestHeaders,
|
|
130
|
+
},
|
|
131
|
+
body,
|
|
132
|
+
signal,
|
|
133
|
+
redirect: 'error',
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
if (lifecycle) {
|
|
138
|
+
const { AgentConnectionRequestError } = await Promise.resolve().then(() => tslib_1.__importStar(require('../../agentConnections/lifecycle')));
|
|
139
|
+
throw new AgentConnectionRequestError('unreachable');
|
|
140
|
+
}
|
|
141
|
+
throw new Error(retried
|
|
142
|
+
? 'The agent connection request failed. No further retry was attempted.'
|
|
143
|
+
: 'The agent connection request failed. No request was retried.');
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
let response = await send();
|
|
147
|
+
if (response.status === 401 &&
|
|
148
|
+
safeToRetry &&
|
|
149
|
+
method === 'GET' &&
|
|
150
|
+
body === undefined &&
|
|
151
|
+
credential.kind === 'agent_connection') {
|
|
152
|
+
if (response.body instanceof stream_1.Readable)
|
|
153
|
+
response.body.destroy();
|
|
154
|
+
credential = await (0, credentials_1.resolveCredential)(config, null, credential.slot.tokens.generation, lifecycle);
|
|
155
|
+
retried = true;
|
|
156
|
+
response = await send();
|
|
157
|
+
}
|
|
158
|
+
if (!response.ok && lifecycle) {
|
|
159
|
+
const { AgentConnectionRequestError } = await Promise.resolve().then(() => tslib_1.__importStar(require('../../agentConnections/lifecycle')));
|
|
160
|
+
throw new AgentConnectionRequestError(response.status >= 500 ? 'unreachable' : 'rejected');
|
|
161
|
+
}
|
|
162
|
+
if (response.status === 401)
|
|
163
|
+
throw new Error(`Agent connection ${(0, credentials_1.getAgentConnectionSelection)()} could not authenticate. No personal credential was used.`);
|
|
164
|
+
if (!response.ok)
|
|
165
|
+
throw new Error(`The server rejected the agent connection request (status ${response.status}).`);
|
|
166
|
+
return response;
|
|
167
|
+
}
|
|
61
168
|
if (!(config.context?.apiKey && config.context.serverUrl)) {
|
|
62
169
|
throw new common_1.AuthorizationError(`Not logged in. Run 'lightdash login --help'`);
|
|
63
170
|
}
|
|
@@ -86,7 +193,28 @@ const lightdashRawApi = async ({ method, url, body, headers: requestHeaders = {}
|
|
|
86
193
|
return response;
|
|
87
194
|
};
|
|
88
195
|
exports.lightdashRawApi = lightdashRawApi;
|
|
89
|
-
|
|
196
|
+
async function agentSafeReadApi(props) {
|
|
197
|
+
return (0, exports.lightdashRawApi)({ ...props })
|
|
198
|
+
.then((r) => r.json())
|
|
199
|
+
.then((d) => {
|
|
200
|
+
globalState_1.default.debug(`> HTTP request returned status: ${d.status}`);
|
|
201
|
+
switch (d.status) {
|
|
202
|
+
case 'ok':
|
|
203
|
+
return d.results;
|
|
204
|
+
case 'error':
|
|
205
|
+
throw new common_1.LightdashError(d.error);
|
|
206
|
+
default:
|
|
207
|
+
throw new Error(d);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
const lightdashApi = async ({ method, url, body, signal, safeToRetry, }) => {
|
|
212
|
+
if ((0, credentials_1.getAgentConnectionSelection)() !== null &&
|
|
213
|
+
safeToRetry &&
|
|
214
|
+
method === 'GET' &&
|
|
215
|
+
body === undefined) {
|
|
216
|
+
return agentSafeReadApi({ method, url, body, signal, safeToRetry });
|
|
217
|
+
}
|
|
90
218
|
const headers = {};
|
|
91
219
|
let requestBody = body;
|
|
92
220
|
if (gzipEnabled &&
|
|
@@ -133,6 +261,7 @@ const getUserContext = async () => (0, exports.lightdashApi)({
|
|
|
133
261
|
method: 'GET',
|
|
134
262
|
url: `/api/v1/user`,
|
|
135
263
|
body: undefined,
|
|
264
|
+
safeToRetry: true,
|
|
136
265
|
});
|
|
137
266
|
exports.getUserContext = getUserContext;
|
|
138
267
|
const getContentAsCodeUploadPermissions = async (projectUuid) => {
|
|
@@ -284,15 +413,20 @@ const checkLightdashVersion = async () => {
|
|
|
284
413
|
method: 'GET',
|
|
285
414
|
url: `/api/v1/health?skipMigrationCheck=true`,
|
|
286
415
|
body: undefined,
|
|
416
|
+
safeToRetry: true,
|
|
287
417
|
});
|
|
288
418
|
const cliMajor = env_1.CLI_VERSION.split('.')[0];
|
|
289
419
|
const serverMajor = health.version.split('.')[0];
|
|
290
420
|
if (cliMajor !== serverMajor) {
|
|
291
|
-
const config = await (0,
|
|
421
|
+
const config = await ((0, credentials_1.getAgentConnectionSelection)() === null
|
|
422
|
+
? (0, config_1.getConfig)()
|
|
423
|
+
: (0, config_1.getConfig)({ readOnly: true }));
|
|
292
424
|
console.error(`${styles.title('Warning')}: CLI (${env_1.CLI_VERSION}) is running a different version than Lightdash (${health.version}) on ${config.context?.serverUrl}.\n Some commands may fail, consider upgrading your CLI by ${styles.secondary((0, env_1.getUpdateInstructions)(health.version))}`);
|
|
293
425
|
}
|
|
294
426
|
}
|
|
295
427
|
catch (err) {
|
|
428
|
+
if ((0, credentials_1.getAgentConnectionSelection)() !== null)
|
|
429
|
+
throw err;
|
|
296
430
|
globalState_1.default.debug(`> Health check failed: ${err}`);
|
|
297
431
|
}
|
|
298
432
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/compile.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAIpE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,CAAC;AA8HF,wBAAsB,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8C3E;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,gBAAgB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACvC;;;;OAIG;IACH,0BAA0B,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACpD,CAAC;AAEF,wBAAsB,0BAA0B,CAC5C,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,iBAAiB,GAClC,OAAO,CAAC,mBAAmB,CAAC,CA0G9B"}
|
|
@@ -8,6 +8,7 @@ const execa_1 = tslib_1.__importDefault(require("execa"));
|
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const lodash_1 = require("lodash");
|
|
10
10
|
const path = tslib_1.__importStar(require("path"));
|
|
11
|
+
const credentials_1 = require("../../credentials");
|
|
11
12
|
const manifest_1 = require("../../dbt/manifest");
|
|
12
13
|
const globalState_1 = tslib_1.__importDefault(require("../../globalState"));
|
|
13
14
|
const getDbtVersion_1 = require("./getDbtVersion");
|
|
@@ -48,7 +49,12 @@ const dbtCompile = async (options) => {
|
|
|
48
49
|
try {
|
|
49
50
|
const args = optionsToArgs(options);
|
|
50
51
|
globalState_1.default.debug(`> Running: dbt compile ${args.join(' ')}`);
|
|
51
|
-
const { stdout, stderr } = await (0,
|
|
52
|
+
const { stdout, stderr } = await ((0, credentials_1.getAgentConnectionSelection)() !== null
|
|
53
|
+
? (0, execa_1.default)('dbt', ['compile', ...args], {
|
|
54
|
+
extendEnv: false,
|
|
55
|
+
env: await (0, credentials_1.getAgentConnectionChildEnvironment)(),
|
|
56
|
+
})
|
|
57
|
+
: (0, execa_1.default)('dbt', ['compile', ...args]));
|
|
52
58
|
console.error(stdout);
|
|
53
59
|
console.error(stderr);
|
|
54
60
|
}
|
|
@@ -115,7 +121,12 @@ async function dbtList(options) {
|
|
|
115
121
|
args.push('--quiet');
|
|
116
122
|
}
|
|
117
123
|
globalState_1.default.debug(`> Running: dbt ls ${args.join(' ')}`);
|
|
118
|
-
const { stdout, stderr } = await (0,
|
|
124
|
+
const { stdout, stderr } = await ((0, credentials_1.getAgentConnectionSelection)() !== null
|
|
125
|
+
? (0, execa_1.default)('dbt', ['ls', ...args], {
|
|
126
|
+
extendEnv: false,
|
|
127
|
+
env: await (0, credentials_1.getAgentConnectionChildEnvironment)(),
|
|
128
|
+
})
|
|
129
|
+
: (0, execa_1.default)('dbt', ['ls', ...args]));
|
|
119
130
|
const models = stdout
|
|
120
131
|
.split('\n')
|
|
121
132
|
.map((line) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDbtProfileTargetName.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/getDbtProfileTargetName.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDbtProfileTargetName.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/getDbtProfileTargetName.ts"],"names":[],"mappings":"AAwCA,KAAK,8BAA8B,GAAG;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAA8B,uBAAuB,CACjD,OAAO,EAAE,8BAA8B,GACxC,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
|
|
@@ -5,15 +5,23 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const common_1 = require("@lightdash/common");
|
|
6
6
|
const execa_1 = tslib_1.__importDefault(require("execa"));
|
|
7
7
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
8
|
+
const credentials_1 = require("../../credentials");
|
|
8
9
|
const profile_1 = require("../../dbt/profile");
|
|
9
10
|
const globalState_1 = tslib_1.__importDefault(require("../../globalState"));
|
|
10
11
|
const DBT_CLOUD_TARGET_NAME_REGEX = /Target name\s+(\w+)/;
|
|
11
12
|
const getDbtCloudTargetName = async () => {
|
|
12
13
|
try {
|
|
13
|
-
const { all } = await (0,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const { all } = await ((0, credentials_1.getAgentConnectionSelection)() !== null
|
|
15
|
+
? (0, execa_1.default)('dbt', ['environment', 'show'], {
|
|
16
|
+
all: true,
|
|
17
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
18
|
+
extendEnv: false,
|
|
19
|
+
env: await (0, credentials_1.getAgentConnectionChildEnvironment)({}),
|
|
20
|
+
})
|
|
21
|
+
: (0, execa_1.default)('dbt', ['environment', 'show'], {
|
|
22
|
+
all: true,
|
|
23
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
24
|
+
}));
|
|
17
25
|
const logs = all || '';
|
|
18
26
|
const targetName = logs.match(DBT_CLOUD_TARGET_NAME_REGEX);
|
|
19
27
|
if (targetName === null || targetName.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDbtVersion.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/getDbtVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAMnB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"getDbtVersion.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/getDbtVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAMnB,MAAM,mBAAmB,CAAC;AA8F3B,MAAM,MAAM,UAAU,GAAG;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,gBAAgB,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,UAAU,CA+CxD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAC7C;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAc9E,CAAC"}
|
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const common_1 = require("@lightdash/common");
|
|
6
6
|
const execa_1 = tslib_1.__importDefault(require("execa"));
|
|
7
7
|
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
8
|
+
const credentials_1 = require("../../credentials");
|
|
8
9
|
const globalState_1 = tslib_1.__importDefault(require("../../globalState"));
|
|
9
10
|
const styles = tslib_1.__importStar(require("../../styles"));
|
|
10
11
|
const DBT_CORE_VERSION_REGEX = /installed:.*/;
|
|
@@ -21,10 +22,17 @@ const getDbtCLIVersion = async () => {
|
|
|
21
22
|
return knownVersion;
|
|
22
23
|
}
|
|
23
24
|
try {
|
|
24
|
-
const { all } = await (0,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
const { all } = await ((0, credentials_1.getAgentConnectionSelection)() !== null
|
|
26
|
+
? (0, execa_1.default)('dbt', ['--version'], {
|
|
27
|
+
all: true,
|
|
28
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
29
|
+
extendEnv: false,
|
|
30
|
+
env: await (0, credentials_1.getAgentConnectionChildEnvironment)({}),
|
|
31
|
+
})
|
|
32
|
+
: (0, execa_1.default)('dbt', ['--version'], {
|
|
33
|
+
all: true,
|
|
34
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
35
|
+
}));
|
|
28
36
|
const logs = all || '';
|
|
29
37
|
const cloudVersion = logs.match(DBT_CLOUD_CLI_REGEX);
|
|
30
38
|
if (cloudVersion) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWarehouseClient.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/getWarehouseClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,0BAA0B,EAC1B,0BAA0B,EAW7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGH,8BAA8B,EACjC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"getWarehouseClient.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/getWarehouseClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,0BAA0B,EAC1B,0BAA0B,EAW7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGH,8BAA8B,EACjC,MAAM,uBAAuB,CAAC;AA2N/B,KAAK,yBAAyB,GAAG;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AASF,eAAO,MAAM,iCAAiC,gBAC7B,0BAA0B,KACxC,OAAO,CAAC,MAAM,CAwBhB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC5B,eAAe,EAAE,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC;IACnE,WAAW,EAAE,0BAA0B,CAAC;CAC3C,CAAC;AAEF,wBAA8B,kBAAkB,CAC5C,OAAO,EAAE,yBAAyB,GACnC,OAAO,CAAC,wBAAwB,CAAC,CAsLnC"}
|
|
@@ -9,6 +9,7 @@ const crypto_1 = tslib_1.__importDefault(require("crypto"));
|
|
|
9
9
|
const execa_1 = tslib_1.__importDefault(require("execa"));
|
|
10
10
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
11
11
|
const config_1 = require("../../config");
|
|
12
|
+
const credentials_1 = require("../../credentials");
|
|
12
13
|
const profile_1 = require("../../dbt/profile");
|
|
13
14
|
const oauth_1 = require("../../dbt/targets/Databricks/oauth");
|
|
14
15
|
const globalState_1 = tslib_1.__importDefault(require("../../globalState"));
|
|
@@ -41,10 +42,17 @@ const getTableSchema = async ({ projectUuid, tableName, schemaName, databaseName
|
|
|
41
42
|
const DBT_CLOUD_CONNECTION_TYPE_REGEX = /Connection type\s+(\w+)/;
|
|
42
43
|
const getDbtCloudConnectionType = async () => {
|
|
43
44
|
try {
|
|
44
|
-
const { all } = await (0,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
const { all } = await ((0, credentials_1.getAgentConnectionSelection)() !== null
|
|
46
|
+
? (0, execa_1.default)('dbt', ['environment', 'show'], {
|
|
47
|
+
all: true,
|
|
48
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
49
|
+
extendEnv: false,
|
|
50
|
+
env: await (0, credentials_1.getAgentConnectionChildEnvironment)({}),
|
|
51
|
+
})
|
|
52
|
+
: (0, execa_1.default)('dbt', ['environment', 'show'], {
|
|
53
|
+
all: true,
|
|
54
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
55
|
+
}));
|
|
48
56
|
const logs = all || '';
|
|
49
57
|
const connectionType = logs.match(DBT_CLOUD_CONNECTION_TYPE_REGEX);
|
|
50
58
|
if (connectionType === null || connectionType.length === 0) {
|
|
@@ -205,7 +213,9 @@ async function getWarehouseClient(options) {
|
|
|
205
213
|
? options.startOfWeek
|
|
206
214
|
: undefined,
|
|
207
215
|
});
|
|
208
|
-
const config = await (0,
|
|
216
|
+
const config = await ((0, credentials_1.getAgentConnectionSelection)() === null
|
|
217
|
+
? (0, config_1.getConfig)()
|
|
218
|
+
: (0, config_1.getConfig)({ readOnly: true }).then(async (currentConfig) => (await Promise.resolve().then(() => tslib_1.__importStar(require('../../agentConnections/projectSelection')))).configWithAgentProject(currentConfig)));
|
|
209
219
|
// Overwrite methods that need to connect to the warehouse
|
|
210
220
|
warehouseClient.getCatalog = async (refs) => refs.reduce(async (accPromise, ref) => {
|
|
211
221
|
const acc = await accPromise; // Wait for the previous step's result
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,GAAG,EAKH,OAAO,EACV,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,GAAG,EAKH,OAAO,EACV,MAAM,mBAAmB,CAAC;AAS3B,eAAO,MAAM,UAAU,gBAAuB,MAAM,qBAK9C,CAAC;AAgDP,eAAO,MAAM,gBAAgB,YAChB,MAAM,kBACA,MAAM,KACtB,OAAO,CAAC,GAAG,CAcb,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,cAAc,YAAmB,qBAAqB,kBAiElE,CAAC"}
|
|
@@ -4,6 +4,7 @@ exports.refreshHandler = exports.getFinalJobState = exports.getProject = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@lightdash/common");
|
|
6
6
|
const uuid_1 = require("uuid");
|
|
7
|
+
const commandPolicy_1 = require("../../agentConnections/commandPolicy");
|
|
7
8
|
const analytics_1 = require("../../analytics/analytics");
|
|
8
9
|
const config_1 = require("../../config");
|
|
9
10
|
const globalState_1 = tslib_1.__importDefault(require("../../globalState"));
|
|
@@ -55,6 +56,7 @@ const getFinalJobState = async (jobUuid, spinnerPrefix = 'Refreshing dbt project
|
|
|
55
56
|
};
|
|
56
57
|
exports.getFinalJobState = getFinalJobState;
|
|
57
58
|
const refreshHandler = async (options) => {
|
|
59
|
+
(0, commandPolicy_1.assertAgentCommandAllowed)('refresh');
|
|
58
60
|
globalState_1.default.setVerbose(options.verbose);
|
|
59
61
|
await (0, apiClient_1.checkLightdashVersion)();
|
|
60
62
|
const executionId = (0, uuid_1.v4)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/handlers/dbt/run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAwB,MAAM,WAAW,CAAC;AAS1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,KAAK,oBAAoB,GAAG,iBAAiB,GAAG;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,aAAa,YACb,oBAAoB,WACpB,OAAO,kBA0EnB,CAAC"}
|
package/dist/handlers/dbt/run.js
CHANGED
|
@@ -6,6 +6,7 @@ const common_1 = require("@lightdash/common");
|
|
|
6
6
|
const commander_1 = require("commander");
|
|
7
7
|
const execa_1 = tslib_1.__importDefault(require("execa"));
|
|
8
8
|
const analytics_1 = require("../../analytics/analytics");
|
|
9
|
+
const credentials_1 = require("../../credentials");
|
|
9
10
|
const globalState_1 = tslib_1.__importDefault(require("../../globalState"));
|
|
10
11
|
const generate_1 = require("../generate");
|
|
11
12
|
const dbtRunHandler = async (options, command) => {
|
|
@@ -32,9 +33,15 @@ const dbtRunHandler = async (options, command) => {
|
|
|
32
33
|
}, []);
|
|
33
34
|
globalState_1.default.debug(`> Running dbt command: ${commands}`);
|
|
34
35
|
try {
|
|
35
|
-
const subprocess = (0,
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const subprocess = (0, credentials_1.getAgentConnectionSelection)() !== null
|
|
37
|
+
? (0, execa_1.default)('dbt', commands, {
|
|
38
|
+
stdio: 'inherit',
|
|
39
|
+
extendEnv: false,
|
|
40
|
+
env: await (0, credentials_1.getAgentConnectionChildEnvironment)({}),
|
|
41
|
+
})
|
|
42
|
+
: (0, execa_1.default)('dbt', commands, {
|
|
43
|
+
stdio: 'inherit',
|
|
44
|
+
});
|
|
38
45
|
await subprocess;
|
|
39
46
|
await analytics_1.LightdashAnalytics.track({
|
|
40
47
|
event: 'dbt_command.completed',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/handlers/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,OAAO,EACP,YAAY,EASZ,KAAK,eAAe,EACpB,KAAK,YAAY,EAGpB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/handlers/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,OAAO,EACP,YAAY,EASZ,KAAK,eAAe,EACpB,KAAK,YAAY,EAGpB,MAAM,mBAAmB,CAAC;AAgB3B,OAAO,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAC;AAgB7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAUlD,KAAK,oBAAoB,GAAG,iBAAiB,GAAG;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,wBAAwB,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,UAAU,GAAG,oBAAoB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AAkBF,eAAO,MAAM,eAAe,YACf,IAAI,CACT,oBAAoB,EACpB,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,CACrE,eACY,cAAc,mBACV,eAAe,GAAG,SAAS,KAC7C,OAAO,CAAC,YAAY,GAAG,SAAS,CA+BlC,CAAC;AAmSF,eAAO,MAAM,MAAM,aACL,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,WAC3B,UAAU,KACpB,OAAO,CAAC,IAAI,CAkLd,CAAC;AAiGF,eAAO,MAAM,aAAa,oBAA2B,oBAAoB,kBA+LxE,CAAC"}
|
package/dist/handlers/deploy.js
CHANGED
|
@@ -7,8 +7,10 @@ const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
|
7
7
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
8
8
|
const url_1 = require("url");
|
|
9
9
|
const uuid_1 = require("uuid");
|
|
10
|
+
const commandPolicy_1 = require("../agentConnections/commandPolicy");
|
|
10
11
|
const analytics_1 = require("../analytics/analytics");
|
|
11
12
|
const config_1 = require("../config");
|
|
13
|
+
const credentials_1 = require("../credentials");
|
|
12
14
|
const context_1 = require("../dbt/context");
|
|
13
15
|
const profile_1 = require("../dbt/profile");
|
|
14
16
|
const globalState_1 = tslib_1.__importDefault(require("../globalState"));
|
|
@@ -137,6 +139,8 @@ const isRetriableBatchError = (err) => {
|
|
|
137
139
|
return true;
|
|
138
140
|
};
|
|
139
141
|
const retryBatchUpload = async (task, batchNumber) => {
|
|
142
|
+
if ((0, credentials_1.getAgentConnectionSelection)() !== null)
|
|
143
|
+
return task();
|
|
140
144
|
let backoffMs = BATCH_UPLOAD_INITIAL_BACKOFF_MS;
|
|
141
145
|
for (let attempt = 1; attempt <= BATCH_UPLOAD_MAX_ATTEMPTS; attempt += 1) {
|
|
142
146
|
try {
|
|
@@ -182,6 +186,8 @@ const deployBatched = async (explores, options) => {
|
|
|
182
186
|
sessionUuid = startSessionResponse.deploySessionUuid;
|
|
183
187
|
}
|
|
184
188
|
catch (error) {
|
|
189
|
+
if ((0, credentials_1.getAgentConnectionSelection)() !== null)
|
|
190
|
+
throw error;
|
|
185
191
|
if (error instanceof common_1.LightdashError && error.statusCode === 404) {
|
|
186
192
|
globalState_1.default.log(styles.info('Batched deploy is not supported by this server; falling back to legacy deploy'));
|
|
187
193
|
return false;
|
|
@@ -251,6 +257,11 @@ const deployBatched = async (explores, options) => {
|
|
|
251
257
|
return true;
|
|
252
258
|
};
|
|
253
259
|
const deploy = async (explores, options) => {
|
|
260
|
+
if ((0, credentials_1.getAgentConnectionSelection)() !== null)
|
|
261
|
+
(0, commandPolicy_1.assertAgentCommandAllowed)('deploy', {
|
|
262
|
+
source: options.sourceUuid,
|
|
263
|
+
target: options.deployTarget,
|
|
264
|
+
});
|
|
254
265
|
if (explores.length === 0) {
|
|
255
266
|
globalState_1.default.log(styles.warning('No explores found'));
|
|
256
267
|
process.exit(1);
|
|
@@ -313,6 +324,8 @@ const deploy = async (explores, options) => {
|
|
|
313
324
|
: `/api/v2/projects/${options.projectUuid}/deploy`,
|
|
314
325
|
body: deployPayload,
|
|
315
326
|
}).catch(async (error) => {
|
|
327
|
+
if ((0, credentials_1.getAgentConnectionSelection)() !== null)
|
|
328
|
+
throw error;
|
|
316
329
|
if (options.dbtModelNames === undefined ||
|
|
317
330
|
!(error instanceof common_1.LightdashError) ||
|
|
318
331
|
error.statusCode !== 404) {
|
|
@@ -444,6 +457,7 @@ const createNewProject = async (executionId, options) => {
|
|
|
444
457
|
}
|
|
445
458
|
};
|
|
446
459
|
const deployHandler = async (originalOptions) => {
|
|
460
|
+
(0, commandPolicy_1.assertAgentCommandAllowed)('deploy', originalOptions);
|
|
447
461
|
const options = {
|
|
448
462
|
...originalOptions,
|
|
449
463
|
};
|
|
@@ -510,7 +524,9 @@ const deployHandler = async (originalOptions) => {
|
|
|
510
524
|
}
|
|
511
525
|
await (0, apiClient_1.checkLightdashVersion)();
|
|
512
526
|
const executionId = (0, uuid_1.v4)();
|
|
513
|
-
const config = await (0,
|
|
527
|
+
const config = await ((0, credentials_1.getAgentConnectionSelection)() === null
|
|
528
|
+
? (0, config_1.getConfig)()
|
|
529
|
+
: (0, config_1.getConfig)({ readOnly: true }));
|
|
514
530
|
let existingProjectSelection;
|
|
515
531
|
let sourceUuid;
|
|
516
532
|
let connectionRoute;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/handlers/diagnostics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/handlers/diagnostics.ts"],"names":[],"mappings":"AAiBA,KAAK,kBAAkB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AA2HF,eAAO,MAAM,kBAAkB,YAAmB,kBAAkB,kBA4InE,CAAC"}
|
|
@@ -6,6 +6,7 @@ const common_1 = require("@lightdash/common");
|
|
|
6
6
|
const execa_1 = tslib_1.__importDefault(require("execa"));
|
|
7
7
|
const analytics_1 = require("../analytics/analytics");
|
|
8
8
|
const config_1 = require("../config");
|
|
9
|
+
const credentials_1 = require("../credentials");
|
|
9
10
|
const env_1 = require("../env");
|
|
10
11
|
const globalState_1 = tslib_1.__importDefault(require("../globalState"));
|
|
11
12
|
const styles = tslib_1.__importStar(require("../styles"));
|
|
@@ -106,6 +107,7 @@ const runDbtDebug = async (projectDir, profilesDir, options = {}) => {
|
|
|
106
107
|
}
|
|
107
108
|
};
|
|
108
109
|
const diagnosticsHandler = async (options) => {
|
|
110
|
+
(0, credentials_1.refuseAgentConnection)();
|
|
109
111
|
const startTime = Date.now();
|
|
110
112
|
let success = true;
|
|
111
113
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/handlers/download.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,WAAW,EA4BX,WAAW,EAIX,eAAe,EAKf,wBAAwB,EAoBxB,KAAK,WAAW,EACnB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/handlers/download.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,10 @@ const groupBy_1 = tslib_1.__importDefault(require("lodash/groupBy"));
|
|
|
12
12
|
const p_limit_1 = tslib_1.__importDefault(require("p-limit"));
|
|
13
13
|
const path = tslib_1.__importStar(require("path"));
|
|
14
14
|
const uuid_1 = require("uuid");
|
|
15
|
+
const commandPolicy_1 = require("../agentConnections/commandPolicy");
|
|
15
16
|
const analytics_1 = require("../analytics/analytics");
|
|
16
17
|
const config_1 = require("../config");
|
|
18
|
+
const credentials_1 = require("../credentials");
|
|
17
19
|
const env_1 = require("../env");
|
|
18
20
|
const globalState_1 = tslib_1.__importDefault(require("../globalState"));
|
|
19
21
|
const lightdash_config_1 = require("../lightdash-config");
|
|
@@ -1084,6 +1086,7 @@ const listAppsViaContentApi = async (projectId) => {
|
|
|
1084
1086
|
return listedApps;
|
|
1085
1087
|
};
|
|
1086
1088
|
const downloadHandler = async (options) => {
|
|
1089
|
+
(0, commandPolicy_1.assertAgentCommandAllowed)('download', options);
|
|
1087
1090
|
globalState_1.default.setVerbose(options.verbose);
|
|
1088
1091
|
const isOrganizationDownload = options.organization === true;
|
|
1089
1092
|
if (options.appsOnly && options.chartTypesOnly) {
|
|
@@ -1207,8 +1210,13 @@ const downloadHandler = async (options) => {
|
|
|
1207
1210
|
}
|
|
1208
1211
|
}
|
|
1209
1212
|
await (0, apiClient_1.checkLightdashVersion)();
|
|
1210
|
-
const config = await (0,
|
|
1211
|
-
|
|
1213
|
+
const config = await ((0, credentials_1.getAgentConnectionSelection)() === null
|
|
1214
|
+
? (0, config_1.getConfig)()
|
|
1215
|
+
: (0, config_1.getConfig)({ readOnly: true }));
|
|
1216
|
+
if ((0, credentials_1.getAgentConnectionSelection)() !== null) {
|
|
1217
|
+
await (0, credentials_1.resolveCredential)(config);
|
|
1218
|
+
}
|
|
1219
|
+
else if (!config.context?.apiKey || !config.context.serverUrl) {
|
|
1212
1220
|
throw new common_1.AuthorizationError(`Not logged in. Run 'lightdash login --help'`);
|
|
1213
1221
|
}
|
|
1214
1222
|
if (isOrganizationDownload) {
|
|
@@ -1836,7 +1844,8 @@ const downloadHandler = async (options) => {
|
|
|
1836
1844
|
await (0, metadataFile_1.writeMetadataFile)(baseDir, metadataToWrite);
|
|
1837
1845
|
if (!config.answers?.metadataFileGitignoreNoticeShown) {
|
|
1838
1846
|
globalState_1.default.log(styles.warning(`\nNote: ${metadataFile_1.METADATA_FILENAME} was written to ${baseDir}. Consider adding it to your .gitignore.`));
|
|
1839
|
-
|
|
1847
|
+
if ((0, credentials_1.getAgentConnectionSelection)() === null)
|
|
1848
|
+
await (0, config_1.setAnswer)({ metadataFileGitignoreNoticeShown: true });
|
|
1840
1849
|
}
|
|
1841
1850
|
output.completeItem('timestamps written');
|
|
1842
1851
|
const end = Date.now();
|
|
@@ -2034,7 +2043,9 @@ const upsertSingleItem = async (item, type, projectId, changes, force, config, s
|
|
|
2034
2043
|
* @param slugs if slugs are provided, we only force upsert the charts/dashboards that match the slugs, if slugs are empty, we upload files that were locally updated
|
|
2035
2044
|
*/
|
|
2036
2045
|
const upsertResources = async (type, projectId, changes, force, slugs, canUpload, customPath, skipSpaceCreate, publicSpaceCreate, validate, concurrency = 1, extraItems = [], spaceNames, skipSlugs) => {
|
|
2037
|
-
const config = await (0,
|
|
2046
|
+
const config = await ((0, credentials_1.getAgentConnectionSelection)() === null
|
|
2047
|
+
? (0, config_1.getConfig)()
|
|
2048
|
+
: (0, config_1.getConfig)({ readOnly: true }));
|
|
2038
2049
|
const folderItems = await readCodeFiles(type, customPath);
|
|
2039
2050
|
const items = [...folderItems, ...extraItems];
|
|
2040
2051
|
(0, contentAsCodeOutput_1.logContentAsCodeDiscovery)(`Found ${items.length} ${type} files`);
|
|
@@ -2228,6 +2239,7 @@ const getStampedContentPath = (uploadRoot) => {
|
|
|
2228
2239
|
return (0, common_1.normalizeContentAsCodePath)(relative.split(path.sep).join('/'));
|
|
2229
2240
|
};
|
|
2230
2241
|
const uploadHandler = async (options) => {
|
|
2242
|
+
(0, credentials_1.refuseAgentConnection)();
|
|
2231
2243
|
globalState_1.default.setVerbose(options.verbose);
|
|
2232
2244
|
const projectConfig = await readUploadProjectConfig();
|
|
2233
2245
|
// --path wins; otherwise content_as_code.path from lightdash.config.yml
|
|
@@ -2293,7 +2305,9 @@ const uploadHandler = async (options) => {
|
|
|
2293
2305
|
(0, apiClient_1.setGzipEnabled)(true);
|
|
2294
2306
|
}
|
|
2295
2307
|
await (0, apiClient_1.checkLightdashVersion)();
|
|
2296
|
-
const config = await (0,
|
|
2308
|
+
const config = await ((0, credentials_1.getAgentConnectionSelection)() === null
|
|
2309
|
+
? (0, config_1.getConfig)()
|
|
2310
|
+
: (0, config_1.getConfig)({ readOnly: true }));
|
|
2297
2311
|
if (!config.context?.apiKey || !config.context.serverUrl) {
|
|
2298
2312
|
throw new common_1.AuthorizationError(`Not logged in. Run 'lightdash login --help'`);
|
|
2299
2313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exportChartImage.d.ts","sourceRoot":"","sources":["../../src/handlers/exportChartImage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exportChartImage.d.ts","sourceRoot":"","sources":["../../src/handlers/exportChartImage.ts"],"names":[],"mappings":"AAUA,KAAK,uBAAuB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,uBAAuB,oBACf,MAAM,WACd,uBAAuB,KACjC,OAAO,CAAC,IAAI,CAkDd,CAAC"}
|