--- name: metabase_update_document kind: function lang: py domain: infra version: "1.1.0" purity: impure signature: "def metabase_update_document(client: MetabaseClient, document_id: int, *, validate: bool = True, **fields) -> dict" description: "Actualiza un document. Solo envia los campos pasados. Si se pasa 'document', valida el ProseMirror antes de enviar (evita documentos vacíos por nodos no soportados)." tags: [metabase, document, update, api, python] uses_functions: [metabase_validate_document_payload_py_infra] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [httpx] params: - name: client desc: "instancia autenticada de MetabaseClient" - name: document_id desc: "ID del document a actualizar" - name: validate desc: "si True (default), valida el ProseMirror antes de enviar cuando se pasa 'document'" - name: fields desc: "kwargs con campos a modificar: name, document (arbol ProseMirror), collection_id, archived" output: "dict: document actualizado" tested: false tests: [] test_file_path: "" file_path: "python/functions/metabase/documents.py" --- ## Ejemplo ```python from metabase.documents import prosemirror_card_embed # Renombrar metabase_update_document(client, 1, name="Nuevo titulo") # Reemplazar contenido con card embebida metabase_update_document(client, 1, document={ "type": "doc", "content": [ {"type": "heading", "attrs": {"level": 1}, "content": [{"type": "text", "text": "Resumen"}]}, prosemirror_card_embed(42, height=450), ] }) # Mover a coleccion metabase_update_document(client, 1, collection_id=5) ``` ## Notas - La validación es automática cuando se pasa `document=...`. Si contiene nodos que el frontend no renderiza (callout, taskList, etc.), lanza `ValueError` antes de enviar. - Usar `blockquote` en vez de `callout` para destacar texto. - Usar `prosemirror_card_embed(card_id)` en vez de `cardEmbed` desnudo.