@bubblelab/bubble-core 0.1.285 → 0.1.287
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/bubble-bundle.d.ts +2 -2
- package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/ai-agent.js +17 -0
- package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
- package/dist/bubbles/service-bubble/capability-pipeline.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/capability-pipeline.js +10 -0
- package/dist/bubbles/service-bubble/capability-pipeline.js.map +1 -1
- package/dist/bubbles.json +1 -1
- package/dist/capabilities/define-capability.d.ts +7 -0
- package/dist/capabilities/define-capability.d.ts.map +1 -1
- package/dist/capabilities/define-capability.js.map +1 -1
- package/package.json +2 -2
- package/dist/bubble-trigger/index.d.ts +0 -2
- package/dist/bubble-trigger/index.d.ts.map +0 -1
- package/dist/bubble-trigger/index.js +0 -2
- package/dist/bubble-trigger/index.js.map +0 -1
- package/dist/bubble-trigger/types.d.ts +0 -87
- package/dist/bubble-trigger/types.d.ts.map +0 -1
- package/dist/bubble-trigger/types.js +0 -14
- package/dist/bubble-trigger/types.js.map +0 -1
- package/dist/bubbles/service-bubble/google-sheets.d.ts +0 -1811
- package/dist/bubbles/service-bubble/google-sheets.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/google-sheets.js +0 -904
- package/dist/bubbles/service-bubble/google-sheets.js.map +0 -1
- package/dist/bubbles/service-bubble/looker/index.d.ts +0 -3
- package/dist/bubbles/service-bubble/looker/index.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/looker/index.js +0 -3
- package/dist/bubbles/service-bubble/looker/index.js.map +0 -1
- package/dist/bubbles/service-bubble/looker/looker.d.ts +0 -768
- package/dist/bubbles/service-bubble/looker/looker.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/looker/looker.js +0 -319
- package/dist/bubbles/service-bubble/looker/looker.js.map +0 -1
- package/dist/bubbles/service-bubble/looker/looker.schema.d.ts +0 -735
- package/dist/bubbles/service-bubble/looker/looker.schema.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/looker/looker.schema.js +0 -264
- package/dist/bubbles/service-bubble/looker/looker.schema.js.map +0 -1
- package/dist/bubbles/service-bubble/pylon/index.d.ts +0 -3
- package/dist/bubbles/service-bubble/pylon/index.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/pylon/index.js +0 -3
- package/dist/bubbles/service-bubble/pylon/index.js.map +0 -1
- package/dist/bubbles/service-bubble/pylon/pylon.d.ts +0 -435
- package/dist/bubbles/service-bubble/pylon/pylon.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/pylon/pylon.js +0 -375
- package/dist/bubbles/service-bubble/pylon/pylon.js.map +0 -1
- package/dist/bubbles/service-bubble/pylon/pylon.schema.d.ts +0 -408
- package/dist/bubbles/service-bubble/pylon/pylon.schema.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/pylon/pylon.schema.js +0 -249
- package/dist/bubbles/service-bubble/pylon/pylon.schema.js.map +0 -1
- package/dist/bubbles/service-bubble/slack.d.ts +0 -5869
- package/dist/bubbles/service-bubble/slack.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/slack.js +0 -1536
- package/dist/bubbles/service-bubble/slack.js.map +0 -1
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.d.ts +0 -3
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.d.ts.map +0 -1
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.js +0 -3
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.js.map +0 -1
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.d.ts +0 -160
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.d.ts.map +0 -1
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.js +0 -706
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.js.map +0 -1
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.d.ts +0 -93
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.d.ts.map +0 -1
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.js +0 -50
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.js.map +0 -1
- package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +0 -114
- package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +0 -1
- package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +0 -777
- package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +0 -1
- package/dist/types/ai-models.d.ts +0 -4
- package/dist/types/ai-models.d.ts.map +0 -1
- package/dist/types/ai-models.js +0 -16
- package/dist/types/ai-models.js.map +0 -1
- package/dist/utils/param-helper.d.ts +0 -2
- package/dist/utils/param-helper.d.ts.map +0 -1
- package/dist/utils/param-helper.js +0 -5
- package/dist/utils/param-helper.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"looker.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/looker/looker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAI5B;;;;;;GAMG;AACH,qBAAa,YAAY,CACvB,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAC/C,SAAQ,aAAa,CACrB,CAAC,EACD,OAAO,CAAC,YAAY,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CACrD;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,YAAY;IACnC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,YAAY;IACtC,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAsB;IAC5C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAsB;IAClD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,4EAC2C;IAC3E,MAAM,CAAC,QAAQ,CAAC,eAAe,0nBAc7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM;gBAGzB,MAAM,GAAE,CAGF,EACN,OAAO,CAAC,EAAE,aAAa;IAKZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAuB/C,OAAO,CAAC,gBAAgB;IA+BxB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAKhD,OAAO,CAAC,UAAU;YAeJ,aAAa;cAwCX,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YAqDlD,cAAc;YAmCd,OAAO;YAmCP,YAAY;YAsCZ,UAAU;YA+BV,YAAY;YAoEZ,SAAS;YAwBT,cAAc;CAsB7B"}
|
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
import { ServiceBubble } from '../../../types/service-bubble-class.js';
|
|
2
|
-
import { CredentialType, decodeCredentialPayload, } from '@bubblelab/shared-schemas';
|
|
3
|
-
import { LookerParamsSchema, LookerResultSchema, } from './looker.schema.js';
|
|
4
|
-
const LOOKER_API_VERSION = '4.0';
|
|
5
|
-
/**
|
|
6
|
-
* Looker Analytics Service Bubble
|
|
7
|
-
*
|
|
8
|
-
* Looker integration for querying LookML models, pulling saved Looks and
|
|
9
|
-
* dashboard data via the Looker REST API v4.0. Uses Google OAuth for
|
|
10
|
-
* authentication since Looker is a Google Cloud product.
|
|
11
|
-
*/
|
|
12
|
-
export class LookerBubble extends ServiceBubble {
|
|
13
|
-
static type = 'service';
|
|
14
|
-
static service = 'looker';
|
|
15
|
-
static authType = 'oauth';
|
|
16
|
-
static bubbleName = 'looker';
|
|
17
|
-
static schema = LookerParamsSchema;
|
|
18
|
-
static resultSchema = LookerResultSchema;
|
|
19
|
-
static shortDescription = 'Looker analytics integration for LookML queries, Looks, and dashboards';
|
|
20
|
-
static longDescription = `
|
|
21
|
-
Looker analytics integration for querying data models and pulling dashboard content.
|
|
22
|
-
|
|
23
|
-
Features:
|
|
24
|
-
- Run inline queries against LookML models/explores with fields, filters, and sorts
|
|
25
|
-
- Retrieve results from saved Looks by ID
|
|
26
|
-
- Fetch dashboard metadata, filters, and tile definitions
|
|
27
|
-
- Discover available LookML models and their explores
|
|
28
|
-
- List saved Looks and dashboards
|
|
29
|
-
|
|
30
|
-
Security Features:
|
|
31
|
-
- Google OAuth 2.0 authentication (Looker is a Google Cloud product)
|
|
32
|
-
- Instance-scoped access via per-client Looker URLs
|
|
33
|
-
- Secure credential handling with base64-encoded payloads
|
|
34
|
-
`;
|
|
35
|
-
static alias = '';
|
|
36
|
-
constructor(params = {
|
|
37
|
-
operation: 'list_models',
|
|
38
|
-
instance_url: '',
|
|
39
|
-
}, context) {
|
|
40
|
-
super(params, context);
|
|
41
|
-
}
|
|
42
|
-
async testCredential() {
|
|
43
|
-
const creds = this.parseCredentials();
|
|
44
|
-
if (!creds) {
|
|
45
|
-
throw new Error('Looker credentials are required');
|
|
46
|
-
}
|
|
47
|
-
const baseUrl = this.getBaseUrl();
|
|
48
|
-
const response = await fetch(`${baseUrl}/api/${LOOKER_API_VERSION}/user`, {
|
|
49
|
-
headers: {
|
|
50
|
-
Authorization: `Bearer ${creds.accessToken}`,
|
|
51
|
-
Accept: 'application/json',
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
if (!response.ok) {
|
|
55
|
-
const text = await response.text();
|
|
56
|
-
throw new Error(`Looker API error (${response.status}): ${text}`);
|
|
57
|
-
}
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
parseCredentials() {
|
|
61
|
-
const { credentials } = this.params;
|
|
62
|
-
if (!credentials || typeof credentials !== 'object') {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
const raw = credentials[CredentialType.LOOKER_CRED];
|
|
66
|
-
if (!raw) {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
try {
|
|
70
|
-
const parsed = decodeCredentialPayload(raw);
|
|
71
|
-
if (parsed.accessToken) {
|
|
72
|
-
return { accessToken: parsed.accessToken };
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
// If decoding fails, treat the raw value as an access token (validator path)
|
|
77
|
-
}
|
|
78
|
-
return { accessToken: raw };
|
|
79
|
-
}
|
|
80
|
-
chooseCredential() {
|
|
81
|
-
const creds = this.parseCredentials();
|
|
82
|
-
return creds?.accessToken;
|
|
83
|
-
}
|
|
84
|
-
getBaseUrl() {
|
|
85
|
-
const p = this.params;
|
|
86
|
-
let url = p.instance_url || '';
|
|
87
|
-
// Strip trailing slashes and /api paths
|
|
88
|
-
url = url.replace(/\/+$/, '').replace(/\/api\/.*$/, '');
|
|
89
|
-
// Ensure https:// prefix
|
|
90
|
-
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
|
91
|
-
url = `https://${url}`;
|
|
92
|
-
}
|
|
93
|
-
return url;
|
|
94
|
-
}
|
|
95
|
-
async lookerRequest(endpoint, method = 'GET', body) {
|
|
96
|
-
const creds = this.parseCredentials();
|
|
97
|
-
if (!creds) {
|
|
98
|
-
throw new Error('Looker credentials are required');
|
|
99
|
-
}
|
|
100
|
-
const baseUrl = this.getBaseUrl();
|
|
101
|
-
const url = `${baseUrl}/api/${LOOKER_API_VERSION}${endpoint}`;
|
|
102
|
-
const init = {
|
|
103
|
-
method,
|
|
104
|
-
headers: {
|
|
105
|
-
Authorization: `Bearer ${creds.accessToken}`,
|
|
106
|
-
'Content-Type': 'application/json',
|
|
107
|
-
Accept: 'application/json',
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
if (body && method !== 'GET') {
|
|
111
|
-
init.body = JSON.stringify(body);
|
|
112
|
-
}
|
|
113
|
-
const response = await fetch(url, init);
|
|
114
|
-
if (!response.ok) {
|
|
115
|
-
const errorText = await response.text();
|
|
116
|
-
throw new Error(`Looker API error (${response.status}): ${errorText}`);
|
|
117
|
-
}
|
|
118
|
-
if (response.status === 204) {
|
|
119
|
-
return undefined;
|
|
120
|
-
}
|
|
121
|
-
return await response.json();
|
|
122
|
-
}
|
|
123
|
-
async performAction(context) {
|
|
124
|
-
void context;
|
|
125
|
-
const { operation } = this.params;
|
|
126
|
-
try {
|
|
127
|
-
const result = await (async () => {
|
|
128
|
-
const p = this.params;
|
|
129
|
-
switch (operation) {
|
|
130
|
-
case 'run_inline_query':
|
|
131
|
-
return await this.runInlineQuery(p);
|
|
132
|
-
case 'get_look':
|
|
133
|
-
return await this.getLook(p);
|
|
134
|
-
case 'get_dashboard':
|
|
135
|
-
return await this.getDashboard(p);
|
|
136
|
-
case 'list_models':
|
|
137
|
-
return await this.listModels();
|
|
138
|
-
case 'list_explores':
|
|
139
|
-
return await this.listExplores(p);
|
|
140
|
-
case 'list_looks':
|
|
141
|
-
return await this.listLooks(p);
|
|
142
|
-
case 'list_dashboards':
|
|
143
|
-
return await this.listDashboards(p);
|
|
144
|
-
default:
|
|
145
|
-
throw new Error(`Unsupported operation: ${operation}`);
|
|
146
|
-
}
|
|
147
|
-
})();
|
|
148
|
-
return result;
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
return {
|
|
152
|
-
operation,
|
|
153
|
-
success: false,
|
|
154
|
-
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
// --- Operation Implementations ---
|
|
159
|
-
async runInlineQuery(params) {
|
|
160
|
-
const { model, explore, fields, filters, sorts, limit } = params;
|
|
161
|
-
const queryBody = {
|
|
162
|
-
model,
|
|
163
|
-
view: explore,
|
|
164
|
-
fields,
|
|
165
|
-
limit: String(limit),
|
|
166
|
-
};
|
|
167
|
-
if (filters && Object.keys(filters).length > 0) {
|
|
168
|
-
queryBody.filters = filters;
|
|
169
|
-
}
|
|
170
|
-
if (sorts && sorts.length > 0) {
|
|
171
|
-
queryBody.sorts = sorts;
|
|
172
|
-
}
|
|
173
|
-
const data = (await this.lookerRequest('/queries/run/json', 'POST', queryBody));
|
|
174
|
-
return {
|
|
175
|
-
operation: 'run_inline_query',
|
|
176
|
-
success: true,
|
|
177
|
-
data,
|
|
178
|
-
rowCount: data.length,
|
|
179
|
-
error: '',
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
async getLook(params) {
|
|
183
|
-
const { look_id, limit, result_format } = params;
|
|
184
|
-
// Get the Look metadata
|
|
185
|
-
const lookMeta = (await this.lookerRequest(`/looks/${look_id}`));
|
|
186
|
-
// Run the Look to get results
|
|
187
|
-
const data = (await this.lookerRequest(`/looks/${look_id}/run/${result_format}?limit=${limit}`));
|
|
188
|
-
return {
|
|
189
|
-
operation: 'get_look',
|
|
190
|
-
success: true,
|
|
191
|
-
data,
|
|
192
|
-
look: {
|
|
193
|
-
id: look_id,
|
|
194
|
-
title: lookMeta.title,
|
|
195
|
-
description: lookMeta.description,
|
|
196
|
-
model: lookMeta.model,
|
|
197
|
-
space: lookMeta.space,
|
|
198
|
-
},
|
|
199
|
-
rowCount: data.length,
|
|
200
|
-
error: '',
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
async getDashboard(params) {
|
|
204
|
-
const { dashboard_id } = params;
|
|
205
|
-
const dashboard = (await this.lookerRequest(`/dashboards/${dashboard_id}`));
|
|
206
|
-
return {
|
|
207
|
-
operation: 'get_dashboard',
|
|
208
|
-
success: true,
|
|
209
|
-
dashboard: {
|
|
210
|
-
id: String(dashboard.id),
|
|
211
|
-
title: dashboard.title,
|
|
212
|
-
description: dashboard.description,
|
|
213
|
-
dashboard_filters: dashboard.dashboard_filters,
|
|
214
|
-
dashboard_elements: dashboard.dashboard_elements,
|
|
215
|
-
},
|
|
216
|
-
error: '',
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
async listModels() {
|
|
220
|
-
const models = (await this.lookerRequest('/lookml_models'));
|
|
221
|
-
return {
|
|
222
|
-
operation: 'list_models',
|
|
223
|
-
success: true,
|
|
224
|
-
models: models.map((m) => ({
|
|
225
|
-
name: m.name,
|
|
226
|
-
label: m.label,
|
|
227
|
-
explores: m.explores?.map((e) => ({
|
|
228
|
-
name: e.name,
|
|
229
|
-
label: e.label,
|
|
230
|
-
description: e.description,
|
|
231
|
-
})),
|
|
232
|
-
})),
|
|
233
|
-
error: '',
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
async listExplores(params) {
|
|
237
|
-
const { model } = params;
|
|
238
|
-
const modelData = (await this.lookerRequest(`/lookml_models/${model}`));
|
|
239
|
-
const explores = modelData.explores || [];
|
|
240
|
-
// Fetch detailed field info for each explore
|
|
241
|
-
const detailedExplores = await Promise.all(explores.map(async (e) => {
|
|
242
|
-
const exploreName = e.name;
|
|
243
|
-
try {
|
|
244
|
-
const detail = (await this.lookerRequest(`/lookml_models/${model}/explores/${exploreName}`));
|
|
245
|
-
const fields = detail.fields;
|
|
246
|
-
return {
|
|
247
|
-
name: exploreName,
|
|
248
|
-
label: (detail.label || e.label),
|
|
249
|
-
description: (detail.description || e.description),
|
|
250
|
-
fields: fields
|
|
251
|
-
? {
|
|
252
|
-
dimensions: fields.dimensions?.map((d) => ({
|
|
253
|
-
name: d.name,
|
|
254
|
-
label: d.label,
|
|
255
|
-
type: d.type,
|
|
256
|
-
description: d.description,
|
|
257
|
-
})),
|
|
258
|
-
measures: fields.measures?.map((m) => ({
|
|
259
|
-
name: m.name,
|
|
260
|
-
label: m.label,
|
|
261
|
-
type: m.type,
|
|
262
|
-
description: m.description,
|
|
263
|
-
})),
|
|
264
|
-
}
|
|
265
|
-
: undefined,
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
catch {
|
|
269
|
-
// If detail fetch fails, return basic info
|
|
270
|
-
return {
|
|
271
|
-
name: exploreName,
|
|
272
|
-
label: e.label,
|
|
273
|
-
description: e.description,
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
}));
|
|
277
|
-
return {
|
|
278
|
-
operation: 'list_explores',
|
|
279
|
-
success: true,
|
|
280
|
-
explores: detailedExplores,
|
|
281
|
-
model,
|
|
282
|
-
error: '',
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
async listLooks(params) {
|
|
286
|
-
const { limit } = params;
|
|
287
|
-
const looks = (await this.lookerRequest(`/looks?limit=${limit}`));
|
|
288
|
-
return {
|
|
289
|
-
operation: 'list_looks',
|
|
290
|
-
success: true,
|
|
291
|
-
looks: looks.map((l) => ({
|
|
292
|
-
id: l.id,
|
|
293
|
-
title: l.title,
|
|
294
|
-
description: l.description,
|
|
295
|
-
model: l.model,
|
|
296
|
-
space: l.space,
|
|
297
|
-
})),
|
|
298
|
-
totalCount: looks.length,
|
|
299
|
-
error: '',
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
async listDashboards(params) {
|
|
303
|
-
const { limit } = params;
|
|
304
|
-
const dashboards = (await this.lookerRequest(`/dashboards?limit=${limit}`));
|
|
305
|
-
return {
|
|
306
|
-
operation: 'list_dashboards',
|
|
307
|
-
success: true,
|
|
308
|
-
dashboards: dashboards.map((d) => ({
|
|
309
|
-
id: String(d.id),
|
|
310
|
-
title: d.title,
|
|
311
|
-
description: d.description,
|
|
312
|
-
folder: d.folder,
|
|
313
|
-
})),
|
|
314
|
-
totalCount: dashboards.length,
|
|
315
|
-
error: '',
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
//# sourceMappingURL=looker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"looker.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/looker/looker.ts"],"names":[],"mappings":"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"}
|