@lightdash/cli 0.1464.3 → 0.1466.0
Sign up to get free protection for your applications and to get access to all the features.
package/LICENSE
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
-
|
1
|
+
Copyright (c) 2021-present Telescope Technology Limited (trading as “Lightdash”)
|
2
2
|
|
3
|
-
|
3
|
+
Portions of this software are licensed as follows:
|
4
|
+
|
5
|
+
* All content that resides under the "packages/backend/src/ee" directory of this repository, if that directory exists, is licensed under the license defined in "packages/backend/src/ee/LICENSE".
|
6
|
+
* All third party components incorporated into the Lightdash Software are licensed under the original license provided by the owner of the applicable component.
|
7
|
+
* Content outside of the above mentioned directories or restrictions above is available under the "MIT" license as defined below.
|
4
8
|
|
5
9
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
10
|
of this software and associated documentation files (the "Software"), to deal
|
@@ -17,14 +17,17 @@ export declare const lightdashApi: <T extends string | boolean | unknown[] | imp
|
|
17
17
|
selectedTabs?: string[] | undefined;
|
18
18
|
} & {
|
19
19
|
targets: (import("@lightdash/common").SchedulerSlackTarget | import("@lightdash/common").SchedulerEmailTarget)[];
|
20
|
-
}) | import("@lightdash/common").SchedulerAndTargets[] | import("@lightdash/common").FieldValueSearchResult<unknown> | import("@lightdash/common").ApiDownloadCsv | import("@lightdash/common").AllowedEmailDomains | import("@lightdash/common").UpdateAllowedEmailDomains | import("@lightdash/common").UserAllowedOrganization[] | import("@lightdash/common").EmailStatusExpiring | import("@lightdash/common").ApiScheduledDownloadCsv | import("@lightdash/common").PinnedItems | import("@lightdash/common").ViewStatistics | import("@lightdash/common").SchedulerWithLogs | import("@lightdash/common").ValidationResponse[] | import("@lightdash/common").ChartHistory | import("@lightdash/common").ChartVersion | import("@lightdash/common").GitRepo[] | import("@lightdash/common").PullRequestCreated | import("@lightdash/common").GitIntegrationConfiguration | import("@lightdash/common").UserWarehouseCredentials | {
|
20
|
+
}) | import("@lightdash/common").SchedulerAndTargets[] | import("@lightdash/common").FieldValueSearchResult<unknown> | import("@lightdash/common").ApiDownloadCsv | import("@lightdash/common").AllowedEmailDomains | import("@lightdash/common").UpdateAllowedEmailDomains | import("@lightdash/common").UserAllowedOrganization[] | import("@lightdash/common").EmailStatusExpiring | import("@lightdash/common").ApiScheduledDownloadCsv | import("@lightdash/common").PinnedItems | import("@lightdash/common").ViewStatistics | import("@lightdash/common").SchedulerWithLogs | import("@lightdash/common").ValidationResponse[] | import("@lightdash/common").ChartHistory | import("@lightdash/common").ChartVersion | import("@lightdash/common").EmbedUrl | import("@lightdash/common").DecodedEmbed | import("@lightdash/common").GitRepo[] | import("@lightdash/common").PullRequestCreated | import("@lightdash/common").GitIntegrationConfiguration | import("@lightdash/common").UserWarehouseCredentials | {
|
21
21
|
status: import("@lightdash/common").SchedulerJobStatus;
|
22
22
|
details: Record<string, any> | null;
|
23
23
|
} | {
|
24
24
|
jobId: string;
|
25
25
|
} | Pick<import("@lightdash/common").SshKeyPair, "publicKey"> | import("@lightdash/common").MostPopularAndRecentlyUpdated | Record<string, number> | Record<string, import("@lightdash/common").DbtExposure> | {
|
26
26
|
[dashboardTileUuid: string]: import("@lightdash/common").Comment[];
|
27
|
-
} | import("@lightdash/common").ApiResolveComment | import("@lightdash/common").ApiSuccessEmpty | import("@lightdash/common").ApiCreateProjectResults | import("@lightdash/common").DashboardSummary | import("@lightdash/common").CatalogMetadata | import("@lightdash/common").CatalogAnalytics | import("@lightdash/common").
|
27
|
+
} | import("@lightdash/common").ApiResolveComment | import("@lightdash/common").ApiSuccessEmpty | import("@lightdash/common").ApiCreateProjectResults | import("@lightdash/common").DashboardSummary | import("@lightdash/common").CatalogMetadata | import("@lightdash/common").CatalogAnalytics | import("@lightdash/common").AiConversation[] | import("@lightdash/common").AiConversationMessage[] | {
|
28
|
+
prompt: import("@lightdash/common").AiWebAppPrompt;
|
29
|
+
rows: Record<string, any>[] | undefined;
|
30
|
+
} | import("@lightdash/common").PromotionChanges | import("@lightdash/common").WarehouseTableSchema | import("@lightdash/common").TogglePinnedItemInfo | import("@lightdash/common").KnexPaginatedData<import("@lightdash/common").OrganizationMemberProfile[]> | import("@lightdash/common").SqlChart | {
|
28
31
|
savedSqlUuid: string;
|
29
32
|
slug: string;
|
30
33
|
} | {
|
package/dist/handlers/deploy.js
CHANGED
@@ -11,11 +11,24 @@ const analytics_1 = require("../analytics/analytics");
|
|
11
11
|
const config_1 = require("../config");
|
12
12
|
const context_1 = require("../dbt/context");
|
13
13
|
const globalState_1 = tslib_1.__importDefault(require("../globalState"));
|
14
|
+
const lightdash_config_1 = require("../lightdash-config");
|
14
15
|
const styles = tslib_1.__importStar(require("../styles"));
|
15
16
|
const compile_1 = require("./compile");
|
16
17
|
const createProject_1 = require("./createProject");
|
17
18
|
const apiClient_1 = require("./dbt/apiClient");
|
18
19
|
const getDbtVersion_1 = require("./dbt/getDbtVersion");
|
20
|
+
const replaceProjectYamlTags = async (projectUuid, lightdashProjectConfig) => {
|
21
|
+
const yamlTags = Object.entries(lightdashProjectConfig.spotlight?.categories ?? {}).map(([yamlReference, category]) => ({
|
22
|
+
yamlReference,
|
23
|
+
name: category.label,
|
24
|
+
color: category.color ?? 'gray',
|
25
|
+
}));
|
26
|
+
await (0, apiClient_1.lightdashApi)({
|
27
|
+
method: 'PUT',
|
28
|
+
url: `/api/v1/projects/${projectUuid}/tags/yaml`,
|
29
|
+
body: JSON.stringify(yamlTags),
|
30
|
+
});
|
31
|
+
};
|
19
32
|
const deploy = async (explores, options) => {
|
20
33
|
if (explores.length === 0) {
|
21
34
|
globalState_1.default.log(styles.warning('No explores found'));
|
@@ -31,6 +44,8 @@ const deploy = async (explores, options) => {
|
|
31
44
|
process.exit(1);
|
32
45
|
}
|
33
46
|
}
|
47
|
+
const lightdashProjectConfig = await (0, lightdash_config_1.loadLightdashProjectConfig)(path_1.default.join(options.projectDir, 'lightdash.config.yml'));
|
48
|
+
await replaceProjectYamlTags(options.projectUuid, lightdashProjectConfig);
|
34
49
|
await (0, apiClient_1.lightdashApi)({
|
35
50
|
method: 'PUT',
|
36
51
|
url: `/api/v1/projects/${options.projectUuid}/explores`,
|
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.loadLightdashProjectConfig = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const common_1 = require("@lightdash/common");
|
6
|
+
const better_ajv_errors_1 = tslib_1.__importDefault(require("better-ajv-errors"));
|
7
|
+
const fs_1 = require("fs");
|
8
|
+
const yaml = tslib_1.__importStar(require("js-yaml"));
|
9
|
+
const ajv_1 = require("../ajv");
|
10
|
+
const loadLightdashProjectConfig = async (configPath) => {
|
11
|
+
try {
|
12
|
+
const configFile = yaml.load(await fs_1.promises.readFile(configPath, 'utf8'));
|
13
|
+
const validate = ajv_1.ajv.compile(common_1.lightdashProjectConfigSchema);
|
14
|
+
if (!validate(configFile)) {
|
15
|
+
const errors = (0, better_ajv_errors_1.default)(common_1.lightdashProjectConfigSchema, configFile, validate.errors || [], { indent: 2 });
|
16
|
+
throw new common_1.ParseError(`Invalid lightdash.config.yml at ${configPath}\n${errors}`);
|
17
|
+
}
|
18
|
+
return configFile;
|
19
|
+
}
|
20
|
+
catch (e) {
|
21
|
+
if (e instanceof Error && 'code' in e && e.code === 'ENOENT') {
|
22
|
+
// Return default config if file doesn't exist
|
23
|
+
return {
|
24
|
+
spotlight: common_1.DEFAULT_SPOTLIGHT_CONFIG,
|
25
|
+
};
|
26
|
+
}
|
27
|
+
throw e;
|
28
|
+
}
|
29
|
+
};
|
30
|
+
exports.loadLightdashProjectConfig = loadLightdashProjectConfig;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@lightdash/cli",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.1466.0",
|
4
4
|
"license": "MIT",
|
5
5
|
"bin": {
|
6
6
|
"lightdash": "dist/index.js"
|
@@ -30,8 +30,8 @@
|
|
30
30
|
"parse-node-version": "^2.0.0",
|
31
31
|
"unique-names-generator": "^4.7.1",
|
32
32
|
"uuid": "^11.0.3",
|
33
|
-
"@lightdash/common": "0.
|
34
|
-
"@lightdash/warehouses": "0.
|
33
|
+
"@lightdash/common": "0.1466.0",
|
34
|
+
"@lightdash/warehouses": "0.1466.0"
|
35
35
|
},
|
36
36
|
"description": "Lightdash CLI tool",
|
37
37
|
"devDependencies": {
|