metabase-iac 0.2.0 → 0.3.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/client.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { MetabaseCard, MetabaseCollection, MetabaseDashboard, MetabaseDatabase } from './types.js';
1
+ import type { MetabaseCard, MetabaseCollection, MetabaseDashboard, MetabaseDatabase, MetabaseSnippet } from './types.js';
2
2
  export declare class MetabaseClient {
3
3
  private baseUrl;
4
4
  private headers;
@@ -30,6 +30,9 @@ export declare class MetabaseClient {
30
30
  updateDashboard(id: number, data: Record<string, unknown>): Promise<MetabaseDashboard>;
31
31
  addCardToDashboard(dashboardId: number, data: Record<string, unknown>): Promise<unknown>;
32
32
  updateDashboardCards(dashboardId: number, cards: Record<string, unknown>[]): Promise<unknown>;
33
+ getSnippets(): Promise<MetabaseSnippet[]>;
34
+ createSnippet(data: Record<string, unknown>): Promise<MetabaseSnippet>;
35
+ updateSnippet(id: number, data: Record<string, unknown>): Promise<MetabaseSnippet>;
33
36
  getDatabases(): Promise<MetabaseDatabase[]>;
34
37
  getDatabaseMetadata(id: number): Promise<MetabaseDatabase>;
35
38
  get<T = any>(path: string): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;WAWhE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBhG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAIlE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc;IAMnE,cAAc,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAI/C,gBAAgB,CAAC,IAAI,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC1B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIzB,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GACvE,OAAO,CAAC,kBAAkB,CAAC;IAMxB,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAInC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI1C,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAIhE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAM5E,aAAa,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI7C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpD,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI1E,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAItF,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC;IAIb,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC/B,OAAO,CAAC,OAAO,CAAC;IAMb,YAAY,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAK3C,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM1D,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;YAS9B,IAAI;YAaJ,GAAG;CAYlB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -73,6 +73,16 @@ export class MetabaseClient {
73
73
  async updateDashboardCards(dashboardId, cards) {
74
74
  return this.put(`/api/dashboard/${dashboardId}/cards`, { cards });
75
75
  }
76
+ // ─── Snippets ───
77
+ async getSnippets() {
78
+ return this.get('/api/native-query-snippet');
79
+ }
80
+ async createSnippet(data) {
81
+ return this.post('/api/native-query-snippet', data);
82
+ }
83
+ async updateSnippet(id, data) {
84
+ return this.put(`/api/native-query-snippet/${id}`, data);
85
+ }
76
86
  // ─── Databases ───
77
87
  async getDatabases() {
78
88
  const result = await this.get('/api/database');
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAIV,SAAS,EACV,MAAM,aAAa,CAAA;AAoBpB,wBAAsB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAqH9G"}
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAKV,SAAS,EACV,MAAM,aAAa,CAAA;AAoBpB,wBAAsB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAuJ9G"}
@@ -71,6 +71,9 @@ export async function pull(client, outputDir, importBase) {
71
71
  description: card.description,
72
72
  visualizationSettings: simplifyVizSettings(card.visualization_settings),
73
73
  };
74
+ if (card.type && card.type !== 'question') {
75
+ meta.cardType = card.type;
76
+ }
74
77
  if (dq.native['template-tags'] && Object.keys(dq.native['template-tags']).length > 0) {
75
78
  meta.templateTags = dq.native['template-tags'];
76
79
  }
@@ -110,6 +113,30 @@ export async function pull(client, outputDir, importBase) {
110
113
  });
111
114
  console.log(` dashboard: ${dash.name} (id: ${dash.id})`);
112
115
  }
116
+ // 4. Pull snippets
117
+ console.log('Pulling snippets...');
118
+ try {
119
+ const snippets = await client.getSnippets();
120
+ const activeSnippets = snippets.filter((s) => !s.archived);
121
+ if (activeSnippets.length > 0) {
122
+ await mkdir(join(baseDir, 'snippets'), { recursive: true });
123
+ for (const s of activeSnippets) {
124
+ const filename = sanitizeFilename(s.name);
125
+ await writeFile(join(baseDir, 'snippets', `${filename}.sql`), s.content);
126
+ const meta = {
127
+ id: s.id,
128
+ name: s.name,
129
+ description: s.description,
130
+ };
131
+ await writeFile(join(baseDir, 'snippets', `${filename}.meta.json`), JSON.stringify(meta, null, 2) + '\n');
132
+ upsertState(state, { kind: 'snippet', name: s.name, metabaseId: s.id });
133
+ console.log(` snippet: ${s.name} (id: ${s.id})`);
134
+ }
135
+ }
136
+ }
137
+ catch (err) {
138
+ console.log(' (snippets not available, skipping)');
139
+ }
113
140
  return state;
114
141
  }
115
142
  function guessQueryExtension(resolver, dbName) {
@@ -149,6 +176,9 @@ function buildStructuredQuestionFile(card, collectionName, dbName, typesImport)
149
176
  lines.push(` collection: '${escapeTs(collectionName)}',`);
150
177
  lines.push(` database: '${escapeTs(dbName)}',`);
151
178
  lines.push(` display: '${card.display}',`);
179
+ if (card.type && card.type !== 'question') {
180
+ lines.push(` cardType: '${card.type}',`);
181
+ }
152
182
  if (stages && Array.isArray(stages) && stages.length > 0) {
153
183
  // MLv2 stages-based query — store the full dataset_query for fidelity
154
184
  const cleanDq = cleanDatasetQuery(dq);
@@ -184,17 +214,24 @@ function buildDashboardFile(dash, collectionName, allCards, typesImport) {
184
214
  for (const dc of dash.dashcards ?? []) {
185
215
  if (dc.card_id && cardsById.has(dc.card_id)) {
186
216
  const card = cardsById.get(dc.card_id);
187
- lines.push(` { question: '${escapeTs(card.name)}', questionId: ${card.id}, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col} },`);
217
+ lines.push(` ${serializeQuestionCard(card, dc)},`);
188
218
  }
189
219
  else if (dc.card_id && dc.card) {
190
- // Card from dashboard response (not in cards list, e.g. archived or from another collection)
191
220
  const card = dc.card;
192
- lines.push(` { question: '${escapeTs(card.name)}', questionId: ${card.id}, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col} },`);
221
+ lines.push(` ${serializeQuestionCard(card, dc)},`);
193
222
  }
194
223
  else if (dc.visualization_settings &&
195
- dc.visualization_settings.text) {
224
+ dc.visualization_settings.text &&
225
+ dc.visualization_settings.virtual_card?.display === 'text') {
196
226
  const text = escapeTs(dc.visualization_settings.text);
197
- lines.push(` { text: \`${text}\`, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col} },`);
227
+ const extras = serializeDashcardExtras(dc);
228
+ lines.push(` { text: \`${text}\`, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col}${extras} },`);
229
+ }
230
+ else if (dc.visualization_settings && dc.visualization_settings.virtual_card) {
231
+ // Heading, link, action, or other virtual card
232
+ const vizSettings = simplifyVizSettings(dc.visualization_settings);
233
+ const extras = serializeDashcardExtras(dc);
234
+ lines.push(` { virtualCard: ${indentJson(dc.visualization_settings.virtual_card)}, visualizationSettings: ${indentJson(vizSettings)}, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col}${extras} },`);
198
235
  }
199
236
  }
200
237
  lines.push(' ],');
@@ -205,23 +242,36 @@ function buildDashboardFile(dash, collectionName, allCards, typesImport) {
205
242
  lines.push('})', '');
206
243
  return lines.join('\n');
207
244
  }
245
+ function serializeQuestionCard(card, dc) {
246
+ const vizSettings = simplifyVizSettings(dc.visualization_settings);
247
+ const hasViz = Object.keys(vizSettings).length > 0;
248
+ const extras = serializeDashcardExtras(dc);
249
+ const vizPart = hasViz ? `, visualizationSettings: ${indentJson(vizSettings)}` : '';
250
+ return `{ question: '${escapeTs(card.name)}', questionId: ${card.id}, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col}${vizPart}${extras} }`;
251
+ }
252
+ function serializeDashcardExtras(dc) {
253
+ let extras = '';
254
+ if (dc.parameter_mappings && dc.parameter_mappings.length > 0) {
255
+ extras += `, parameterMappings: ${indentJson(dc.parameter_mappings)}`;
256
+ }
257
+ return extras;
258
+ }
259
+ function cleanValue(value) {
260
+ if (Array.isArray(value)) {
261
+ return value.map((item) => cleanValue(item));
262
+ }
263
+ if (typeof value === 'object' && value !== null) {
264
+ return cleanDatasetQuery(value);
265
+ }
266
+ return value;
267
+ }
208
268
  function cleanDatasetQuery(dq) {
209
269
  // Remove internal lib/* keys that are Metabase internals, keep the query semantics
210
270
  const cleaned = {};
211
271
  for (const [key, value] of Object.entries(dq)) {
212
272
  if (key.startsWith('lib/') || key.startsWith('lib.'))
213
273
  continue;
214
- if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
215
- cleaned[key] = cleanDatasetQuery(value);
216
- }
217
- else if (Array.isArray(value)) {
218
- cleaned[key] = value.map((item) => typeof item === 'object' && item !== null && !Array.isArray(item)
219
- ? cleanDatasetQuery(item)
220
- : item);
221
- }
222
- else {
223
- cleaned[key] = value;
224
- }
274
+ cleaned[key] = cleanValue(value);
225
275
  }
226
276
  return cleaned;
227
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAsC9E"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA8C9E"}
package/dist/loader.js CHANGED
@@ -9,7 +9,7 @@ import { pathToFileURL } from 'node:url';
9
9
  export async function loadResources(baseDir = '.') {
10
10
  const resources = [];
11
11
  const root = resolve(baseDir);
12
- const subdirs = ['collections', 'questions', 'dashboards'];
12
+ const subdirs = ['collections', 'questions', 'dashboards', 'snippets'];
13
13
  for (const subdir of subdirs) {
14
14
  const dir = join(root, subdir);
15
15
  if (!existsSync(dir))
@@ -29,14 +29,23 @@ export async function loadResources(baseDir = '.') {
29
29
  const baseName = file.replace(/\.(sql|mongodb)$/, '');
30
30
  const metaPath = join(dir, `${baseName}.meta.json`);
31
31
  if (existsSync(metaPath)) {
32
- const query = await readFile(join(dir, file), 'utf-8');
32
+ const content = await readFile(join(dir, file), 'utf-8');
33
33
  const meta = JSON.parse(await readFile(metaPath, 'utf-8'));
34
- resources.push({
35
- kind: 'question',
36
- type: 'native',
37
- query,
38
- ...meta,
39
- });
34
+ if (subdir === 'snippets') {
35
+ resources.push({
36
+ kind: 'snippet',
37
+ content,
38
+ ...meta,
39
+ });
40
+ }
41
+ else {
42
+ resources.push({
43
+ kind: 'question',
44
+ type: 'native',
45
+ query: content,
46
+ ...meta,
47
+ });
48
+ }
40
49
  }
41
50
  }
42
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAkB,GAAG;IACvD,MAAM,SAAS,GAAe,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7B,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;IAE1D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QAE9B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YACzB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBAChC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;gBACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAmB,CAAA;gBACxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC9B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,YAAY,CAAC,CAAA;gBACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;oBACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;oBAC1D,SAAS,CAAC,IAAI,CAAC;wBACb,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,QAAQ;wBACd,KAAK;wBACL,GAAG,IAAI;qBACR,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAkB,GAAG;IACvD,MAAM,SAAS,GAAe,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7B,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;IAEtE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QAE9B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YACzB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBAChC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;gBACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAmB,CAAA;gBACxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC9B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,YAAY,CAAC,CAAA;gBACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;oBACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;oBAC1D,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;wBAC1B,SAAS,CAAC,IAAI,CAAC;4BACb,IAAI,EAAE,SAAS;4BACf,OAAO;4BACP,GAAG,IAAI;yBACR,CAAC,CAAA;oBACJ,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,IAAI,CAAC;4BACb,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,OAAO;4BACd,GAAG,IAAI;yBACR,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EACV,QAAQ,EAMR,SAAS,EACV,MAAM,YAAY,CAAA;AAGnB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;IACzB,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAyB3E;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,SAAS,CAAC,CAepB"}
1
+ {"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EACV,QAAQ,EAQR,SAAS,EACV,MAAM,YAAY,CAAA;AAGnB,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;IACzB,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAyB3E;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,SAAS,CAAC,CAkBpB"}
@@ -3,7 +3,7 @@ export function buildPlan(resources, state) {
3
3
  const actions = [];
4
4
  // Sort: collections first, then questions, then dashboards
5
5
  const sorted = [...resources].sort((a, b) => {
6
- const order = { collection: 0, question: 1, dashboard: 2 };
6
+ const order = { collection: 0, snippet: 1, question: 2, dashboard: 3 };
7
7
  return order[a.kind] - order[b.kind];
8
8
  });
9
9
  for (const resource of sorted) {
@@ -29,6 +29,9 @@ export async function applyActions(client, resolver, actions, state) {
29
29
  case 'dashboard':
30
30
  state = await applyDashboard(client, resolver, action, state);
31
31
  break;
32
+ case 'snippet':
33
+ state = await applySnippet(client, action, state);
34
+ break;
32
35
  }
33
36
  }
34
37
  return state;
@@ -94,6 +97,7 @@ async function applyQuestion(client, resolver, action, state) {
94
97
  display: res.display ?? 'table',
95
98
  visualization_settings: res.visualizationSettings ?? {},
96
99
  collection_id: collectionId,
100
+ type: res.cardType ?? 'question',
97
101
  };
98
102
  if (action.type === 'create') {
99
103
  const created = await client.createCard(cardPayload);
@@ -146,9 +150,11 @@ async function applyDashboard(client, resolver, action, state) {
146
150
  col: ref.col,
147
151
  size_x: ref.width,
148
152
  size_y: ref.height,
153
+ visualization_settings: ref.visualizationSettings ?? {},
154
+ parameter_mappings: ref.parameterMappings ?? [],
149
155
  });
150
156
  }
151
- else {
157
+ else if ('text' in card) {
152
158
  const text = card;
153
159
  dashcards.push({
154
160
  card_id: null,
@@ -165,6 +171,19 @@ async function applyDashboard(client, resolver, action, state) {
165
171
  },
166
172
  text: text.text,
167
173
  },
174
+ parameter_mappings: text.parameterMappings ?? [],
175
+ });
176
+ }
177
+ else if ('virtualCard' in card) {
178
+ const vc = card;
179
+ dashcards.push({
180
+ card_id: null,
181
+ row: vc.row,
182
+ col: vc.col,
183
+ size_x: vc.width,
184
+ size_y: vc.height,
185
+ visualization_settings: vc.visualizationSettings ?? { virtual_card: vc.virtualCard },
186
+ parameter_mappings: vc.parameterMappings ?? [],
168
187
  });
169
188
  }
170
189
  }
@@ -181,4 +200,20 @@ async function applyDashboard(client, resolver, action, state) {
181
200
  });
182
201
  return state;
183
202
  }
203
+ async function applySnippet(client, action, state) {
204
+ const res = action.resource;
205
+ const payload = {
206
+ name: res.name,
207
+ description: res.description ?? null,
208
+ content: res.content,
209
+ };
210
+ if (action.type === 'create') {
211
+ const created = await client.createSnippet(payload);
212
+ return upsertState(state, { kind: 'snippet', name: res.name, metabaseId: created.id });
213
+ }
214
+ else {
215
+ await client.updateSnippet(action.existingId, payload);
216
+ return upsertState(state, { kind: 'snippet', name: res.name, metabaseId: action.existingId });
217
+ }
218
+ }
184
219
  //# sourceMappingURL=reconciler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -18,6 +18,7 @@ export interface NativeQuestionResource {
18
18
  display?: string;
19
19
  visualizationSettings?: Record<string, unknown>;
20
20
  description?: string;
21
+ cardType?: 'model' | 'question' | 'metric';
21
22
  }
22
23
  export interface StructuredQuestionResource {
23
24
  kind: 'question';
@@ -31,8 +32,15 @@ export interface StructuredQuestionResource {
31
32
  display?: string;
32
33
  visualizationSettings?: Record<string, unknown>;
33
34
  description?: string;
35
+ cardType?: 'model' | 'question' | 'metric';
34
36
  }
35
37
  export type QuestionResource = NativeQuestionResource | StructuredQuestionResource;
38
+ export interface ParameterMapping {
39
+ parameter_id: string;
40
+ card_id: number | null;
41
+ target: unknown[];
42
+ [key: string]: unknown;
43
+ }
36
44
  export interface DashboardCardRef {
37
45
  question: string;
38
46
  questionId?: number;
@@ -40,6 +48,8 @@ export interface DashboardCardRef {
40
48
  height: number;
41
49
  row: number;
42
50
  col: number;
51
+ parameterMappings?: ParameterMapping[];
52
+ visualizationSettings?: Record<string, unknown>;
43
53
  }
44
54
  export interface DashboardTextCard {
45
55
  text: string;
@@ -47,6 +57,16 @@ export interface DashboardTextCard {
47
57
  height: number;
48
58
  row: number;
49
59
  col: number;
60
+ parameterMappings?: ParameterMapping[];
61
+ }
62
+ export interface DashboardVirtualCard {
63
+ virtualCard: Record<string, unknown>;
64
+ width: number;
65
+ height: number;
66
+ row: number;
67
+ col: number;
68
+ visualizationSettings?: Record<string, unknown>;
69
+ parameterMappings?: ParameterMapping[];
50
70
  }
51
71
  export interface DashboardParameter {
52
72
  name: string;
@@ -63,10 +83,17 @@ export interface DashboardResource {
63
83
  name: string;
64
84
  collection: string;
65
85
  description?: string;
66
- cards: (DashboardCardRef | DashboardTextCard)[];
86
+ cards: (DashboardCardRef | DashboardTextCard | DashboardVirtualCard)[];
67
87
  parameters?: DashboardParameter[];
68
88
  }
69
- export type Resource = CollectionResource | QuestionResource | DashboardResource;
89
+ export interface SnippetResource {
90
+ kind: 'snippet';
91
+ id?: number;
92
+ name: string;
93
+ description?: string;
94
+ content: string;
95
+ }
96
+ export type Resource = CollectionResource | QuestionResource | DashboardResource | SnippetResource;
70
97
  export interface MBQLQuery {
71
98
  'source-table': string;
72
99
  aggregation?: unknown[][];
@@ -85,6 +112,15 @@ export declare const collection: (c: Omit<CollectionResource, "kind">) => Collec
85
112
  export declare const nativeQuestion: (q: Omit<NativeQuestionResource, "kind" | "type">) => NativeQuestionResource;
86
113
  export declare const structuredQuestion: (q: Omit<StructuredQuestionResource, "kind" | "type">) => StructuredQuestionResource;
87
114
  export declare const dashboard: (d: Omit<DashboardResource, "kind">) => DashboardResource;
115
+ export declare const snippet: (s: Omit<SnippetResource, "kind">) => SnippetResource;
116
+ export interface MetabaseSnippet {
117
+ id: number;
118
+ name: string;
119
+ description: string | null;
120
+ content: string;
121
+ collection_id: number | null;
122
+ archived: boolean;
123
+ }
88
124
  export interface MetabaseCollection {
89
125
  id: number;
90
126
  name: string;
@@ -100,6 +136,7 @@ export interface MetabaseCard {
100
136
  description: string | null;
101
137
  collection_id: number | null;
102
138
  database_id: number;
139
+ type?: 'model' | 'question' | 'metric';
103
140
  dataset_query: {
104
141
  type: 'native' | 'query';
105
142
  database: number;
@@ -131,6 +168,8 @@ export interface MetabaseDashcard {
131
168
  size_x: number;
132
169
  size_y: number;
133
170
  visualization_settings: Record<string, unknown>;
171
+ parameter_mappings?: ParameterMapping[];
172
+ series?: unknown[];
134
173
  }
135
174
  export interface MetabaseDatabase {
136
175
  id: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -18,4 +18,8 @@ export const dashboard = (d) => ({
18
18
  kind: 'dashboard',
19
19
  ...d,
20
20
  });
21
+ export const snippet = (s) => ({
22
+ kind: 'snippet',
23
+ ...s,
24
+ });
21
25
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAkGlD,4BAA4B;AAE5B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAmC,EAAsB,EAAE,CAAC,CAAC;IACtF,IAAI,EAAE,YAAY;IAClB,GAAG,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAgD,EAA0B,EAAE,CAAC,CAAC;IAC3G,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,GAAG,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,CAAoD,EACxB,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAkC,EAAqB,EAAE,CAAC,CAAC;IACnF,IAAI,EAAE,WAAW;IACjB,GAAG,CAAC;CACL,CAAC,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAgIlD,4BAA4B;AAE5B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAmC,EAAsB,EAAE,CAAC,CAAC;IACtF,IAAI,EAAE,YAAY;IAClB,GAAG,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAgD,EAA0B,EAAE,CAAC,CAAC;IAC3G,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,GAAG,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,CAAoD,EACxB,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAkC,EAAqB,EAAE,CAAC,CAAC;IACnF,IAAI,EAAE,WAAW;IACjB,GAAG,CAAC;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAgC,EAAmB,EAAE,CAAC,CAAC;IAC7E,IAAI,EAAE,SAAS;IACf,GAAG,CAAC;CACL,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metabase-iac",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Infrastructure as Code for Metabase — manage collections, questions, dashboards as code",
5
5
  "type": "module",
6
6
  "main": "./dist/types.js",
package/src/client.ts CHANGED
@@ -3,6 +3,7 @@ import type {
3
3
  MetabaseCollection,
4
4
  MetabaseDashboard,
5
5
  MetabaseDatabase,
6
+ MetabaseSnippet,
6
7
  } from './types.js'
7
8
 
8
9
  export class MetabaseClient {
@@ -116,6 +117,20 @@ export class MetabaseClient {
116
117
  return this.put(`/api/dashboard/${dashboardId}/cards`, { cards })
117
118
  }
118
119
 
120
+ // ─── Snippets ───
121
+
122
+ async getSnippets(): Promise<MetabaseSnippet[]> {
123
+ return this.get('/api/native-query-snippet')
124
+ }
125
+
126
+ async createSnippet(data: Record<string, unknown>): Promise<MetabaseSnippet> {
127
+ return this.post('/api/native-query-snippet', data)
128
+ }
129
+
130
+ async updateSnippet(id: number, data: Record<string, unknown>): Promise<MetabaseSnippet> {
131
+ return this.put(`/api/native-query-snippet/${id}`, data)
132
+ }
133
+
119
134
  // ─── Databases ───
120
135
 
121
136
  async getDatabases(): Promise<MetabaseDatabase[]> {
@@ -6,6 +6,7 @@ import type {
6
6
  MetabaseCard,
7
7
  MetabaseCollection,
8
8
  MetabaseDashboard,
9
+ MetabaseDashcard,
9
10
  StateFile,
10
11
  } from '../types.js'
11
12
  import { upsertState } from '../state.js'
@@ -95,6 +96,9 @@ export async function pull(client: MetabaseClient, outputDir?: string, importBas
95
96
  description: card.description,
96
97
  visualizationSettings: simplifyVizSettings(card.visualization_settings),
97
98
  }
99
+ if (card.type && card.type !== 'question') {
100
+ meta.cardType = card.type
101
+ }
98
102
  if (dq.native['template-tags'] && Object.keys(dq.native['template-tags']).length > 0) {
99
103
  meta.templateTags = dq.native['template-tags']
100
104
  }
@@ -143,6 +147,37 @@ export async function pull(client: MetabaseClient, outputDir?: string, importBas
143
147
  console.log(` dashboard: ${dash.name} (id: ${dash.id})`)
144
148
  }
145
149
 
150
+ // 4. Pull snippets
151
+ console.log('Pulling snippets...')
152
+ try {
153
+ const snippets = await client.getSnippets()
154
+ const activeSnippets = snippets.filter((s) => !s.archived)
155
+
156
+ if (activeSnippets.length > 0) {
157
+ await mkdir(join(baseDir, 'snippets'), { recursive: true })
158
+
159
+ for (const s of activeSnippets) {
160
+ const filename = sanitizeFilename(s.name)
161
+ await writeFile(join(baseDir, 'snippets', `${filename}.sql`), s.content)
162
+
163
+ const meta: Record<string, unknown> = {
164
+ id: s.id,
165
+ name: s.name,
166
+ description: s.description,
167
+ }
168
+ await writeFile(
169
+ join(baseDir, 'snippets', `${filename}.meta.json`),
170
+ JSON.stringify(meta, null, 2) + '\n',
171
+ )
172
+
173
+ upsertState(state, { kind: 'snippet', name: s.name, metabaseId: s.id })
174
+ console.log(` snippet: ${s.name} (id: ${s.id})`)
175
+ }
176
+ }
177
+ } catch (err) {
178
+ console.log(' (snippets not available, skipping)')
179
+ }
180
+
146
181
  return state
147
182
  }
148
183
 
@@ -185,6 +220,9 @@ function buildStructuredQuestionFile(card: MetabaseCard, collectionName: string,
185
220
  lines.push(` collection: '${escapeTs(collectionName)}',`)
186
221
  lines.push(` database: '${escapeTs(dbName)}',`)
187
222
  lines.push(` display: '${card.display}',`)
223
+ if (card.type && card.type !== 'question') {
224
+ lines.push(` cardType: '${card.type}',`)
225
+ }
188
226
 
189
227
  if (stages && Array.isArray(stages) && stages.length > 0) {
190
228
  // MLv2 stages-based query — store the full dataset_query for fidelity
@@ -227,17 +265,23 @@ function buildDashboardFile(
227
265
  for (const dc of dash.dashcards ?? []) {
228
266
  if (dc.card_id && cardsById.has(dc.card_id)) {
229
267
  const card = cardsById.get(dc.card_id)!
230
- lines.push(` { question: '${escapeTs(card.name)}', questionId: ${card.id}, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col} },`)
268
+ lines.push(` ${serializeQuestionCard(card, dc)},`)
231
269
  } else if (dc.card_id && dc.card) {
232
- // Card from dashboard response (not in cards list, e.g. archived or from another collection)
233
270
  const card = dc.card
234
- lines.push(` { question: '${escapeTs(card.name)}', questionId: ${card.id}, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col} },`)
271
+ lines.push(` ${serializeQuestionCard(card, dc)},`)
235
272
  } else if (
236
273
  dc.visualization_settings &&
237
- (dc.visualization_settings as any).text
274
+ (dc.visualization_settings as any).text &&
275
+ (dc.visualization_settings as any).virtual_card?.display === 'text'
238
276
  ) {
239
277
  const text = escapeTs((dc.visualization_settings as any).text)
240
- lines.push(` { text: \`${text}\`, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col} },`)
278
+ const extras = serializeDashcardExtras(dc)
279
+ lines.push(` { text: \`${text}\`, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col}${extras} },`)
280
+ } else if (dc.visualization_settings && (dc.visualization_settings as any).virtual_card) {
281
+ // Heading, link, action, or other virtual card
282
+ const vizSettings = simplifyVizSettings(dc.visualization_settings)
283
+ const extras = serializeDashcardExtras(dc)
284
+ lines.push(` { virtualCard: ${indentJson((dc.visualization_settings as any).virtual_card)}, visualizationSettings: ${indentJson(vizSettings)}, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col}${extras} },`)
241
285
  }
242
286
  }
243
287
  lines.push(' ],')
@@ -251,22 +295,38 @@ function buildDashboardFile(
251
295
  return lines.join('\n')
252
296
  }
253
297
 
298
+ function serializeQuestionCard(card: MetabaseCard, dc: MetabaseDashcard): string {
299
+ const vizSettings = simplifyVizSettings(dc.visualization_settings)
300
+ const hasViz = Object.keys(vizSettings).length > 0
301
+ const extras = serializeDashcardExtras(dc)
302
+ const vizPart = hasViz ? `, visualizationSettings: ${indentJson(vizSettings)}` : ''
303
+ return `{ question: '${escapeTs(card.name)}', questionId: ${card.id}, width: ${dc.size_x}, height: ${dc.size_y}, row: ${dc.row}, col: ${dc.col}${vizPart}${extras} }`
304
+ }
305
+
306
+ function serializeDashcardExtras(dc: MetabaseDashcard): string {
307
+ let extras = ''
308
+ if (dc.parameter_mappings && dc.parameter_mappings.length > 0) {
309
+ extras += `, parameterMappings: ${indentJson(dc.parameter_mappings)}`
310
+ }
311
+ return extras
312
+ }
313
+
314
+ function cleanValue(value: unknown): unknown {
315
+ if (Array.isArray(value)) {
316
+ return value.map((item) => cleanValue(item))
317
+ }
318
+ if (typeof value === 'object' && value !== null) {
319
+ return cleanDatasetQuery(value as Record<string, unknown>)
320
+ }
321
+ return value
322
+ }
323
+
254
324
  function cleanDatasetQuery(dq: Record<string, unknown>): Record<string, unknown> {
255
325
  // Remove internal lib/* keys that are Metabase internals, keep the query semantics
256
326
  const cleaned: Record<string, unknown> = {}
257
327
  for (const [key, value] of Object.entries(dq)) {
258
328
  if (key.startsWith('lib/') || key.startsWith('lib.')) continue
259
- if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
260
- cleaned[key] = cleanDatasetQuery(value as Record<string, unknown>)
261
- } else if (Array.isArray(value)) {
262
- cleaned[key] = value.map((item) =>
263
- typeof item === 'object' && item !== null && !Array.isArray(item)
264
- ? cleanDatasetQuery(item as Record<string, unknown>)
265
- : item,
266
- )
267
- } else {
268
- cleaned[key] = value
269
- }
329
+ cleaned[key] = cleanValue(value)
270
330
  }
271
331
  return cleaned
272
332
  }
package/src/loader.ts CHANGED
@@ -12,7 +12,7 @@ export async function loadResources(baseDir: string = '.'): Promise<Resource[]>
12
12
  const resources: Resource[] = []
13
13
  const root = resolve(baseDir)
14
14
 
15
- const subdirs = ['collections', 'questions', 'dashboards']
15
+ const subdirs = ['collections', 'questions', 'dashboards', 'snippets']
16
16
 
17
17
  for (const subdir of subdirs) {
18
18
  const dir = join(root, subdir)
@@ -32,14 +32,22 @@ export async function loadResources(baseDir: string = '.'): Promise<Resource[]>
32
32
  const baseName = file.replace(/\.(sql|mongodb)$/, '')
33
33
  const metaPath = join(dir, `${baseName}.meta.json`)
34
34
  if (existsSync(metaPath)) {
35
- const query = await readFile(join(dir, file), 'utf-8')
35
+ const content = await readFile(join(dir, file), 'utf-8')
36
36
  const meta = JSON.parse(await readFile(metaPath, 'utf-8'))
37
- resources.push({
38
- kind: 'question',
39
- type: 'native',
40
- query,
41
- ...meta,
42
- })
37
+ if (subdir === 'snippets') {
38
+ resources.push({
39
+ kind: 'snippet',
40
+ content,
41
+ ...meta,
42
+ })
43
+ } else {
44
+ resources.push({
45
+ kind: 'question',
46
+ type: 'native',
47
+ query: content,
48
+ ...meta,
49
+ })
50
+ }
43
51
  }
44
52
  }
45
53
  }
package/src/reconciler.ts CHANGED
@@ -7,6 +7,8 @@ import type {
7
7
  DashboardResource,
8
8
  DashboardCardRef,
9
9
  DashboardTextCard,
10
+ DashboardVirtualCard,
11
+ SnippetResource,
10
12
  StateFile,
11
13
  } from './types.js'
12
14
  import { findInState, upsertState } from './state.js'
@@ -22,7 +24,7 @@ export function buildPlan(resources: Resource[], state: StateFile): Action[] {
22
24
 
23
25
  // Sort: collections first, then questions, then dashboards
24
26
  const sorted = [...resources].sort((a, b) => {
25
- const order = { collection: 0, question: 1, dashboard: 2 }
27
+ const order: Record<string, number> = { collection: 0, snippet: 1, question: 2, dashboard: 3 }
26
28
  return order[a.kind] - order[b.kind]
27
29
  })
28
30
 
@@ -61,6 +63,9 @@ export async function applyActions(
61
63
  case 'dashboard':
62
64
  state = await applyDashboard(client, resolver, action, state)
63
65
  break
66
+ case 'snippet':
67
+ state = await applySnippet(client, action, state)
68
+ break
64
69
  }
65
70
  }
66
71
  return state
@@ -140,6 +145,7 @@ async function applyQuestion(
140
145
  display: res.display ?? 'table',
141
146
  visualization_settings: res.visualizationSettings ?? {},
142
147
  collection_id: collectionId,
148
+ type: res.cardType ?? 'question',
143
149
  }
144
150
 
145
151
  if (action.type === 'create') {
@@ -202,8 +208,10 @@ async function applyDashboard(
202
208
  col: ref.col,
203
209
  size_x: ref.width,
204
210
  size_y: ref.height,
211
+ visualization_settings: ref.visualizationSettings ?? {},
212
+ parameter_mappings: ref.parameterMappings ?? [],
205
213
  })
206
- } else {
214
+ } else if ('text' in card) {
207
215
  const text = card as DashboardTextCard
208
216
  dashcards.push({
209
217
  card_id: null,
@@ -220,6 +228,18 @@ async function applyDashboard(
220
228
  },
221
229
  text: text.text,
222
230
  },
231
+ parameter_mappings: text.parameterMappings ?? [],
232
+ })
233
+ } else if ('virtualCard' in card) {
234
+ const vc = card as DashboardVirtualCard
235
+ dashcards.push({
236
+ card_id: null,
237
+ row: vc.row,
238
+ col: vc.col,
239
+ size_x: vc.width,
240
+ size_y: vc.height,
241
+ visualization_settings: vc.visualizationSettings ?? { virtual_card: vc.virtualCard },
242
+ parameter_mappings: vc.parameterMappings ?? [],
223
243
  })
224
244
  }
225
245
  }
@@ -239,3 +259,25 @@ async function applyDashboard(
239
259
 
240
260
  return state
241
261
  }
262
+
263
+ async function applySnippet(
264
+ client: MetabaseClient,
265
+ action: Action,
266
+ state: StateFile,
267
+ ): Promise<StateFile> {
268
+ const res = action.resource as SnippetResource
269
+
270
+ const payload: Record<string, unknown> = {
271
+ name: res.name,
272
+ description: res.description ?? null,
273
+ content: res.content,
274
+ }
275
+
276
+ if (action.type === 'create') {
277
+ const created = await client.createSnippet(payload)
278
+ return upsertState(state, { kind: 'snippet', name: res.name, metabaseId: created.id })
279
+ } else {
280
+ await client.updateSnippet(action.existingId!, payload)
281
+ return upsertState(state, { kind: 'snippet', name: res.name, metabaseId: action.existingId! })
282
+ }
283
+ }
package/src/types.ts CHANGED
@@ -21,6 +21,7 @@ export interface NativeQuestionResource {
21
21
  display?: string
22
22
  visualizationSettings?: Record<string, unknown>
23
23
  description?: string
24
+ cardType?: 'model' | 'question' | 'metric'
24
25
  }
25
26
 
26
27
  export interface StructuredQuestionResource {
@@ -35,10 +36,18 @@ export interface StructuredQuestionResource {
35
36
  display?: string
36
37
  visualizationSettings?: Record<string, unknown>
37
38
  description?: string
39
+ cardType?: 'model' | 'question' | 'metric'
38
40
  }
39
41
 
40
42
  export type QuestionResource = NativeQuestionResource | StructuredQuestionResource
41
43
 
44
+ export interface ParameterMapping {
45
+ parameter_id: string
46
+ card_id: number | null
47
+ target: unknown[]
48
+ [key: string]: unknown
49
+ }
50
+
42
51
  export interface DashboardCardRef {
43
52
  question: string // question name
44
53
  questionId?: number
@@ -46,6 +55,8 @@ export interface DashboardCardRef {
46
55
  height: number
47
56
  row: number
48
57
  col: number
58
+ parameterMappings?: ParameterMapping[]
59
+ visualizationSettings?: Record<string, unknown>
49
60
  }
50
61
 
51
62
  export interface DashboardTextCard {
@@ -54,6 +65,17 @@ export interface DashboardTextCard {
54
65
  height: number
55
66
  row: number
56
67
  col: number
68
+ parameterMappings?: ParameterMapping[]
69
+ }
70
+
71
+ export interface DashboardVirtualCard {
72
+ virtualCard: Record<string, unknown>
73
+ width: number
74
+ height: number
75
+ row: number
76
+ col: number
77
+ visualizationSettings?: Record<string, unknown>
78
+ parameterMappings?: ParameterMapping[]
57
79
  }
58
80
 
59
81
  export interface DashboardParameter {
@@ -72,11 +94,19 @@ export interface DashboardResource {
72
94
  name: string
73
95
  collection: string
74
96
  description?: string
75
- cards: (DashboardCardRef | DashboardTextCard)[]
97
+ cards: (DashboardCardRef | DashboardTextCard | DashboardVirtualCard)[]
76
98
  parameters?: DashboardParameter[]
77
99
  }
78
100
 
79
- export type Resource = CollectionResource | QuestionResource | DashboardResource
101
+ export interface SnippetResource {
102
+ kind: 'snippet'
103
+ id?: number
104
+ name: string
105
+ description?: string
106
+ content: string
107
+ }
108
+
109
+ export type Resource = CollectionResource | QuestionResource | DashboardResource | SnippetResource
80
110
 
81
111
  // ─── MBQL (Metabase Query Language) ───
82
112
 
@@ -122,8 +152,22 @@ export const dashboard = (d: Omit<DashboardResource, 'kind'>): DashboardResource
122
152
  ...d,
123
153
  })
124
154
 
155
+ export const snippet = (s: Omit<SnippetResource, 'kind'>): SnippetResource => ({
156
+ kind: 'snippet',
157
+ ...s,
158
+ })
159
+
125
160
  // ─── Metabase API response types ───
126
161
 
162
+ export interface MetabaseSnippet {
163
+ id: number
164
+ name: string
165
+ description: string | null
166
+ content: string
167
+ collection_id: number | null
168
+ archived: boolean
169
+ }
170
+
127
171
  export interface MetabaseCollection {
128
172
  id: number
129
173
  name: string
@@ -140,6 +184,7 @@ export interface MetabaseCard {
140
184
  description: string | null
141
185
  collection_id: number | null
142
186
  database_id: number
187
+ type?: 'model' | 'question' | 'metric'
143
188
  dataset_query: {
144
189
  type: 'native' | 'query'
145
190
  database: number
@@ -170,6 +215,8 @@ export interface MetabaseDashcard {
170
215
  size_x: number
171
216
  size_y: number
172
217
  visualization_settings: Record<string, unknown>
218
+ parameter_mappings?: ParameterMapping[]
219
+ series?: unknown[]
173
220
  }
174
221
 
175
222
  export interface MetabaseDatabase {