Guardar tus propios datos
Dónde guarda una herramienta las tablas que no necesita ninguna otra, como puntos de control y memorias caché, y cómo se refieren a los registros compartidos.
Tu herramienta necesita tablas que solo usa ella: un punto de control de sincronización, una memoria caché, los datos internos del proveedor. Esta página muestra dónde van y cómo se refieren al almacén compartido, para que cli-core pueda cambiar su esquema sin romper tu herramienta y ninguna otra herramienta llegue a depender de tus tablas internas.
La regla
- Una tabla que solo necesita tu herramienta vive en el archivo SQLite propio de tu herramienta, junto al almacén compartido.
- Tu herramienta ejecuta sus propias migraciones sobre ese archivo.
- Tus tablas se refieren a los registros compartidos solo por id, como el id de una cuenta o de un documento.
- Ninguna otra herramienta abre tu archivo, y tu herramienta no abre el archivo de ninguna otra.
La regla es WC-DATA-1. Si una segunda herramienta necesita los mismos registros, son una entidad compartida y su sitio es cli-core.
Pasos
- Encuentra la carpeta del almacén compartido con
storePathde@wirecat/cli-core/store. Sigue aMESSAGING_STORE, así que las pruebas que mueven el almacén compartido también mueven tu archivo. - Abre tu archivo en esa carpeta con
openCachedel mismo módulo. Elige el SQLite del entorno de ejecución (Node o Bun) y aplica los mismos ajustes que el almacén compartido. - Crea y cambia tus tablas con migraciones que solo avanzan: añadir, nunca editar ni reconstruir (WC-STORE-7).
Ejemplo
Una herramienta llamada acme-cli guarda un punto de control de sincronización por cuenta:
import { dirname, join } from "node:path"
import { openCache, storePath } from "@wirecat/cli-core/store"
const own = await openCache(join(dirname(storePath()), "acme-cli.db"))
own.exec(`CREATE TABLE IF NOT EXISTS sync_checkpoints (
account_id INTEGER PRIMARY KEY,
cursor TEXT NOT NULL,
updated_at INTEGER NOT NULL
)`)account_id es el id de la fila de la cuenta en el almacén compartido. El punto de control nunca copia el nombre ni el
proveedor de la cuenta; los lee de cli-core cuando los necesita.
Próximamente
Una ayuda de cli-core que abre el archivo propio de una herramienta y ejecuta sus migraciones está en la lista de «más
adelante». Mientras no exista, usa openCache como arriba.
Qué se rompe si lo omites
Una tabla privada dentro del almacén compartido se rompe cuando cli-core migra, y otras herramientas empiezan a leerla. Una copia de un campo compartido en tu tabla queda desfasada cuando el propietario edita el original. Otra herramienta que abre tu archivo se rompe con tu siguiente cambio.
Siguiente: Iniciar sesión en un servicio.
Añadir una fuente
Llevar los registros de un proveedor nuevo al almacén compartido como registros de origen que cli-core puede vincular a personas, eventos y documentos.
Iniciar sesión en un servicio
Cómo inicia sesión una herramienta en un proveedor, mantiene claves y tokens fuera del almacén y de la pantalla, y nombra siempre el perfil.