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.
Tienes un servicio, como un calendario, una aplicación de reuniones o un almacén de archivos, y quieres sus registros en el almacén compartido de WireCat para que la búsqueda y las demás herramientas puedan usarlos. Esta página muestra los pasos: elegir la entidad que alimentan tus registros, escribirlos como registros de origen, dejar que cli-core los vincule y mantener fuera los secretos. Supone que conoces los conceptos.
Pasos
- Elige la entidad. Decide qué entiende el propietario por tus registros: una persona, un evento o un documento. Tus registros son registros de origen de esa entidad. Si nada encaja, el tipo de registro es una nueva entidad compartida y necesita un cambio en cli-core, no una tabla propia.
- Escribe a través de cli-core. Guarda los registros con las áreas del almacén de cli-core, nunca con tu propio SQL (WC-STORE-5). Si a un área le falta el método que necesitas, añádelo a cli-core con su prueba.
- Usa como clave el id del proveedor. Cada registro tiene su
account_idy el id del proveedor enexternal_id. Guardar otra vez el mismo registro lo actualiza en lugar de añadir una copia. - Usa los nombres estándar. Un campo por el que filtras, ordenas, unes o que muestras en una lista es una columna
con nombre estándar:
title,url,starts_at,ends_at,external_updated_at. Las horas van en milisegundos UTC. Todo lo demás va enmetadata, con una lista de campos permitidos (WC-DATA-4, WC-DATA-5). - Deja que la coincidencia los vincule. cli-core vincula tu registro a su entidad con una regla: la misma clave,
un id compartido como el
ical_uidde un calendario, un enlace para unirse o un hash exacto del contenido. Dos candidatos iguales no producen vínculo. - Borra de forma suave lo que desaparece. Cuando el proveedor deja de devolver un registro, este recibe
deleted_at. Su entidad y los vínculos del propietario se quedan (WC-DATA-7).
Ejemplo: reuniones de Zoom
La herramienta zm ya lleva así las reuniones de Zoom al almacén:
- cada reunión es una fila de
meetings, un registro de origen, guardada con el almacén de reuniones de cli-core; account_ides la cuenta de Zoom yexternal_ides el id de la reunión en Zoom, únicos juntos;event_idapunta al evento, la entidad, y lo fija la vinculación de eventos;- los participantes son identidades, así que un participante de Zoom y la misma persona en Telegram pueden unirse en una sola persona.
Una grabación que llega después encuentra la misma fila por su clave y la actualiza.
Nunca guardes
- tokens, contraseñas ni claves (reglas de seguridad);
- códigos de acceso de reuniones, PIN ni la parte de consulta de un enlace para unirse;
- la respuesta en bruto del proveedor; guarda solo los campos permitidos.
Registra tu proveedor
Cada vez que se ejecuta, tu herramienta anota su proveedor en el almacén: su nombre, tipo, alias y comando. Así todas las demás herramientas conocen la nueva fuente sin una versión de cli-core. Las filas de un proveedor que ninguna herramienta ha registrado se omiten y se informan, nunca se buscan como mensajes.
import { openStore } from "@wirecat/cli-core/store"
const store = await openStore()
await store.accounts.registerProvider({ name: "acme", kind: "meetings", aliases: ["acme"], command: "acme" })kind es cómo la búsqueda lee tus registros: messages, mail, notes, documents, meetings o events.
Qué se rompe si lo omites
Sin external_id, cada sincronización añade el mismo registro otra vez. Sin borrado suave, una sincronización fallida
borra lo que el propietario vinculó o escribió. Sin las áreas compartidas del almacén, la siguiente migración de cli-core
rompe tu herramienta.
Siguiente: Guardar tus propios datos.
Conceptos en cinco minutos
Entidades, registros de origen, external_id, vínculos y la lista de revisión: el modelo que sigue toda herramienta sobre el almacén compartido de WireCat.
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.