feat(metabase): nuevos modulos — snippets, notifications, dashboard_filters

Tres modulos nuevos con funciones CRUD completas:
- snippets: list, get, create, update, archive (SQL reutilizable)
- notifications: list, create_card_alert, create_dashboard_subscription, update, delete
- dashboard_filters: add_dashboard_filter (parameter_mappings sobre cards existentes)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-14 19:03:08 +02:00
parent 7081c3b4d1
commit 4299482b75
14 changed files with 1105 additions and 0 deletions
@@ -0,0 +1,45 @@
---
name: metabase_archive_snippet
kind: function
lang: py
domain: infra
version: "1.0.0"
purity: impure
signature: "def metabase_archive_snippet(client: MetabaseClient, snippet_id: int) -> dict"
description: "Archiva un SQL snippet en Metabase. Wrapper sobre metabase_update_snippet con archived=True."
tags: [metabase, snippet, archive, api, python]
uses_functions: [metabase_update_snippet_py_infra]
uses_types: [MetabaseClient_go_infra]
returns: []
returns_optional: false
error_type: "error_go_core"
imports: [httpx]
params:
- name: client
desc: "instancia autenticada de MetabaseClient"
- name: snippet_id
desc: "ID numerico del snippet a archivar"
output: "dict: snippet con archived=True y updated_at actualizado"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/metabase/snippets.py"
---
## Ejemplo
```python
# Archivar snippet obsoleto
result = metabase_archive_snippet(client, 42)
print(result["archived"]) # True
# Listar snippets activos despues de archivar
active = metabase_list_snippets(client, archived=False)
assert all(not s["archived"] for s in active)
```
## Notas
Los snippets archivados no aparecen en el autocomplete de queries nativas en el editor de Metabase.
Las cards que ya referencian el snippet siguen funcionando correctamente despues de archivar.
Para desarchivar, usar metabase_update_snippet(client, snippet_id, archived=False).