Cómo funciona de verdad un backup de Notion
Un backup es una larga serie de peticiones a una API que nunca se diseñó para copias. Solo cuando sabes qué te va a devolver esa API y qué no, consigues una copia en la que puedes confiar.
Todo empieza con un token
Notion decide quién puede leer qué mediante integraciones. Creas una integración interna y solo puede leer las páginas y las bases de datos que compartes con ella: nada más del espacio de trabajo. Si no compartes nada, no lee nada. El token identifica esa integración.
Ese es todo el modelo de acceso que usa NotionManager. No hay contraseña de Notion, no hay una clave de todo el espacio de trabajo que pueda leerlo todo, y no hay acceso a las páginas que no has compartido. La lista de elementos compartidos decide qué puede leer la integración, y Notion aplica la misma regla a cualquier otra herramienta. Si revocas la integración en Notion, la siguiente ejecución falla de inmediato.
Después la API decide qué es posible
La API de Notion es una interfaz de lectura paginada para block y páginas. Devuelve los resultados en páginas de cien elementos como máximo y limita cuántas peticiones puedes enviar por segundo. Lo que puede representar, lo devuelve entero. Lo que no puede representar, lo informa sin su contenido en lugar de inventarlo.
La paginación, los límites de peticiones y el contenido que falta condicionan el diseño de cualquier backup de Notion. Por eso un backup no es una sola petición: es un recorrido con un ritmo. En un espacio de trabajo grande puede tardar minutos, diez minutos o incluso más. NotionManager muestra el progreso en directo, así que sabes por dónde va la copia.
Notion también actualiza la API para corregir fallos, añadir funciones y mejorar cómo organiza los datos. NotionManager se apoya en la versión más reciente de la API, así que la copia recoge toda la información que puede.
El modelo de datos que copia un backup
Todo en Notion se construye con block. Un párrafo, un título, una tarea, un desplegable y una fila de tabla son block. Una página es un block que contiene otros block, así que todo lo que lees en Notion es un árbol de block. Un backup lee ese árbol igual: empieza en un nodo, lee sus hijos y repite.
Una base de datos es un contenedor de páginas. Su contenido vive en una o varias fuentes de datos, y cada fila de una fuente de datos es una página cuyas propiedades define esa fuente. Una vista no guarda datos por su cuenta: define cómo miras los datos. Qué fuente de datos, qué filtros y qué orden, y si se muestra como tabla, tablero, calendario o galería. La API de Notion devuelve la estructura clave de una vista y ningún estilo.
Cómo lee NotionManager un espacio de trabajo
Un solo recorrido de arriba abajo, y continúa hasta que la API no devuelve más resultados.
- 1
Empieza por lo que compartiste
El integration token expone las páginas y las bases de datos de nivel superior que compartiste con él. Esas son las raíces del recorrido.
- 2
Lee cada una entera
NotionManager descarga cada raíz con sus propiedades y sus block, página a página hasta que se acaba la paginación, para no dejar nada fuera.
- 3
Sigue bajando por las páginas hijas
Descarga cada página hija que encuentra por el camino, una tras otra y de forma recursiva, hasta que no quedan más páginas hijas.
- 4
Reconstruye la estructura y vuelve a leerla
NotionManager convierte lo que leyó en páginas, bases de datos y relaciones. El resultado es una copia de solo lectura que puedes consultar sin conexión, parecida a Notion, y no un montón de JSON.
Lo que la API no hace y lo que pasa en su lugar
| Límite de la API de Notion | Qué hace NotionManager |
|---|---|
| La API limita las peticiones, así que un backup tarda más | NotionManager marca el ritmo de las peticiones y espera cuando alcanza un límite, para que la copia siga completa. |
| Algunos tipos de block se informan sin su contenido | La copia conserva todos los datos sin tratar que puede leer y el renderizado marca lo que falta, así que el hueco se ve en lugar de quedar en silencio. |
| El estilo complejo de las vistas: colores, diseño, agrupación, el tablero o la galería que miras de verdad | NotionManager copia los datos que hay detrás de la vista y reconstruye la vista a partir de sus propiedades. Imita el comportamiento de Notion todo lo que puede. |
| No hay flujo de cambios: la API no puede decir "estas tres páginas cambiaron desde el martes" | Todavía no ofrece copias incrementales ni diferenciales, así que cada ejecución recorre todas las páginas y todos los block. Un block que no ha cambiado no ocupa espacio extra en disco, y los archivos multimedia externos se guardan sin duplicados, para que el disco se aproveche bien. |
| No hay escritura de vuelta: la API no puede restaurar un espacio de trabajo por ti | La restauración de una copia no está disponible directamente. Cualquier backup que prometa restaurar reconstruye el espacio de trabajo por completo y arrastra límites graves: cambian los id y se pierden relaciones. NotionManager no admite restaurar, por diseño. |
| Todo lo que no compartiste con la integración | Nada. La copia contiene exactamente las páginas que compartiste. NotionManager puede reducirlo más, a una parte de esas páginas, pero no puede salirse de ese límite. |
Haz tu backup con NotionManager
Crea una integración, comparte con ella una página o una base de datos y mira cómo aparece la primera copia.
Adónde ir ahora
Preguntas frecuentes
¿NotionManager necesita mi contraseña de Notion?
No. Usa un integration token, y esa integración solo puede leer lo que has compartido con ella de forma explícita. No hay ninguna credencial de todo el espacio de trabajo.
¿Por qué un backup tarda minutos o más?
Primero, porque la API de Notion limita la velocidad de las llamadas con dureza, y cualquier intento de acelerar la copia acaba en llamadas simultáneas que se bloquean por límite. Segundo, porque cada backup es completo: puede que los datos no hagan falta otra vez, pero NotionManager tiene que recorrer cada página y cada block para asegurar que la copia está entera.
¿Puede copiar solo lo que ha cambiado?
Con lo que ofrece hoy la API de Notion, no hay forma fiable de obtener la lista de todo lo que ha cambiado desde la última copia. Así que cada ejecución es una copia completa, y NotionManager se encarga de que cualquier dato repetido se guarde una sola vez.
¿Qué pasa con los block que la API no describe?
NotionManager registra el tipo declarado del block y su posición en el árbol. Así el hueco se ve en la copia que puedes consultar, en lugar de ser un agujero silencioso en medio de una página.
