3.6 KiB
Spec: outline-api-client
ADDED Requirements
Requirement: Configuración por variables de entorno
El sistema SHALL configurar el cliente de Outline a partir de las variables de entorno OUTLINE_URL (URL base de la instancia) y OUTLINE_API_KEY (token de API).
Scenario: Cliente configurado correctamente
- WHEN las variables
OUTLINE_URLyOUTLINE_API_KEYestán definidas en el entorno - THEN el cliente construye las peticiones contra la URL base indicada y autentica con el token provisto
Scenario: Variables de entorno ausentes
- WHEN
OUTLINE_URLoOUTLINE_API_KEYno están definidas al invocar una herramienta - THEN el sistema responde con un mensaje de error descriptivo indicando la configuración faltante
Requirement: Petición POST genérica autenticada
El cliente HTTP SHALL implementar un método genérico para realizar peticiones POST a los endpoints de la API de Outline, incluyendo el header Authorization: Bearer <TOKEN> y el body en formato JSON.
Scenario: Petición autenticada
- WHEN el cliente envía una petición a cualquier endpoint de la API de Outline
- THEN la petición incluye el header
Authorization: Bearercon el token configurado y el payload serializado como JSON
Scenario: Error de la API de Outline
- WHEN la API de Outline responde con un código HTTP de error
- THEN el sistema propaga un error descriptivo (incluyendo el código y el mensaje de la API) hacia el llamador
Requirement: Herramienta outline_list_collections
La herramienta outline_list_collections SHALL invocar el endpoint /api/collections.list y devolver el ID, el nombre y la descripción de cada colección.
Scenario: Listado de colecciones exitoso
- WHEN se invoca
outline_list_collectionssin parámetros - THEN la herramienta devuelve la lista de colecciones con sus campos
id,nameydescription
Requirement: Herramienta outline_search
La herramienta outline_search SHALL invocar el endpoint /api/documents.search recibiendo el parámetro query y devolver los resultados de la búsqueda.
Scenario: Búsqueda con resultados
- WHEN se invoca
outline_searchcon unqueryválido - THEN la herramienta devuelve los documentos coincidentes con su información relevante (título, id y extracto)
Scenario: Búsqueda sin resultados
- WHEN se invoca
outline_searchcon unqueryque no coincide con ningún documento - THEN la herramienta devuelve una lista vacía sin error
Requirement: Herramienta outline_get_document
La herramienta outline_get_document SHALL invocar el endpoint /api/documents.info recibiendo el parámetro id y devolver el título y el texto del documento en formato Markdown.
Scenario: Lectura de documento existente
- WHEN se invoca
outline_get_documentcon elidde un documento existente - THEN la herramienta devuelve el título del documento y su contenido en Markdown
Scenario: Documento inexistente
- WHEN se invoca
outline_get_documentcon unidque no corresponde a ningún documento - THEN la herramienta devuelve un error indicando que el documento no fue encontrado
Requirement: Herramienta outline_create_document
La herramienta outline_create_document SHALL invocar el endpoint /api/documents.create recibiendo los parámetros title, text (Markdown) y collection_id, y devolver la información del documento creado.
Scenario: Creación de documento exitosa
- WHEN se invoca
outline_create_documentcontitle,texty uncollection_idválido - THEN la herramienta crea el documento en la colección indicada y devuelve su
idytitle