Referencia del SDK de TypeScript

Ver en Markdown

El cliente de TypeScript de OpenWAF: opciones del constructor, firmas de los métodos, opciones por llamada, request, errores y tipos.

En esta página

openwaf.ts es un único fichero de TypeScript sin dependencias que usa fetch. Descárgalo de https://dash.openwaf.dev/v1/sdk/openwaf.ts. Funciona con Bun, con Node.js con eliminación de tipos (node --experimental-strip-types), con Deno y en navegadores, o a través de tu cadena de herramientas de TypeScript.

import { OpenWAF, OpenWAFError, type Applied, type Zone } from "./openwaf.ts";

new OpenWAF(options?)

OpciónTipoPor defecto
tokenstringOPENWAF_TOKEN
baseUrlstringOPENWAF_API_URL; ponla a https://dash.openwaf.dev
orgstring (id de la organización)OPENWAF_ORG; si no, la organización del token
fetchtypeof fetchglobalThis.fetch

Las variables de entorno se leen en Node.js, Bun y Deno; en los demás casos, pasa las opciones.

MiembroSignificado
baseUrlLa dirección de la API en uso, sin barra final.
orgId(): Promise<string>La organización que usan los métodos por defecto (se pide una vez si no está configurada).
request<T>(req): Promise<T>La llamada genérica que hay detrás de cada método (abajo).

Métodos

Cada operación de la API es un método con el nombre de su id de operación y esta forma:

owf.listZones(params?: ListZonesParams, options?: RequestOptions): Promise<ListZonesResult>
owf.createRecord(params: CreateRecordParams,
                 options: RequestOptions & RequiredReasonOption & IfMatchOption & DryRunOption): Promise<Applied | Record>
owf.revertZone(params: RevertZoneParams,
               options: RequestOptions & RequiredReasonOption & RequiredIfMatchOption & DryRunOption): Promise<RevertResult | Applied>
owf.purgeCache(params: PurgeCacheParams, options?: RequestOptions & ReasonOption & DryRunOption): Promise<PurgeResult>
  • params lleva los parámetros de ruta y de consulta y, en las operaciones que lo tienen, body. org siempre es opcional.
  • options siempre admite signal (un AbortSignal) y headers (cabeceras adicionales). Los métodos de escritura añaden las opciones de cambio que admite su operación.
Tipo de opciónCampoSe envía como
RequiredReasonOption / ReasonOptionreason: stringX-Change-Reason
RequiredIfMatchOption / IfMatchOptionifMatch: number | stringIf-Match: "<versión>"
DryRunOptiondryRun?: boolean?dry_run=1

Un método que responde un plan de simulación o un resultado está tipado como su unión; convierte a Applied la respuesta de una llamada con dryRun.

Métodos de uso habitual:

TareaMétodo
ZonaslistZones, getZone, createZone, deleteZone
Registros DNSlistRecords, createRecord, updateRecord, deleteRecord, batchRecords
Ajustes de borde y reglasgetZoneEdge, updateZoneEdge, listRules, createRule, deleteRule
HistoriallistZoneVersions, getZoneVersion, getZoneDiff, revertZone, getZonePropagation
CachépurgeCache, listCachePurges
AuditoríalistAudit

La referencia de la API enumera todas las operaciones con su id, sus parámetros y sus respuestas.

request(req)

Llama a cualquier ruta con la URL base, el token y la gestión de errores del cliente:

const res = await owf.request<{ items: unknown[] }>({
  method: "GET",
  path: "/v1/orgs/" + (await owf.orgId()) + "/zones",
  query: { include: "merged" },
});
CampoSignificado
method, pathMétodo HTTP y ruta por debajo de la URL base.
queryParámetros de consulta; undefined y null se omiten.
body, contentTypeValor JSON, o texto con otro contentType.
reason, ifMatch, dryRunOpciones de cambio, como arriba.
authfalse no envía el token (rutas públicas).
signal, headersComo en cualquier método.

Devuelve el cuerpo decodificado: JSON en las respuestas JSON, texto en las demás, undefined en una respuesta vacía.

OpenWAFError

class OpenWAFError extends Error {
  readonly status: number;   // estado HTTP; 0 si no hubo respuesta de la API
  readonly code: string;     // p. ej. not_found, invalid, version_conflict, reason_required
  readonly field?: string;   // el campo de un error de validación
  readonly body: unknown;    // el cuerpo del error decodificado, p. ej. { current_version }
}

Los fallos de red y las cancelaciones no se envuelven: son los errores que lanza fetch. Ver Gestión de errores.

Tipos

El fichero exporta una interfaz por cada esquema de la API (Zone, Record, RecordInput, ZoneEdgeSettings, ConfigVersion, Diff, DiffChange, Applied, AuditEntry, PurgeRequest, PurgeResult, Propagation…), una interfaz …Params por método y un tipo …Result para las respuestas de listas. Las descripciones de los campos salen del contrato de la API y están en español.

Última actualización:

↑↓ para moverte↵ para abriresc para cerrar