Autenticación y configuración

Ver en Markdown

Da al cliente del SDK un token de API, la dirección de la API y la organización, desde el entorno o desde el constructor.

En esta página

El cliente necesita tres cosas. Cada una sale del constructor o, si no la indicas, de una variable de entorno.

AjusteOpción de TypeScriptArgumento de PythonEntornoPor defecto
Token de APItokentoken=OPENWAF_TOKENninguno: las llamadas fallan con no_token
Dirección de la APIbaseUrlbase_url=OPENWAF_API_URLuna dirección integrada que no sirve la API: defínela siempre
Id de la organizaciónorgorg=OPENWAF_ORGla organización del token, que se pide una vez con GET /v1/orgs

Pon como dirección de la API https://dash.openwaf.dev; el SDK añade las rutas /v1/….

import { OpenWAF } from "./openwaf.ts";

// Desde el entorno: OPENWAF_API_URL, OPENWAF_TOKEN, OPENWAF_ORG.
const owf = new OpenWAF();

// O explícitamente, por ejemplo en una extensión de navegador o un worker sin process.env.
const other = new OpenWAF({ baseUrl: "https://dash.openwaf.dev", token: myToken });

El cliente de TypeScript lee el entorno en Node.js, Bun y Deno. En los demás casos, pasa las opciones. También puedes pasar tu propia implementación de fetch en fetch.

El token

Crea los tokens en el panel, en Tokens de API. Un token tiene un rol (Solo lectura, Técnico, Admin) y un alcance (toda la organización, un cliente o una zona); la API aplica los dos en cada llamada, uses el método del SDK que uses. Da a cada script el token más restringido que le sirva y guárdalo en un almacén de secretos o en una variable de entorno, nunca en el código.

El cliente lo envía como Authorization: Bearer owf_… en todas las llamadas salvo las públicas (las CA de TLS hacia el origen).

La organización

Todos los métodos bajo /v1/orgs/{org} reciben un org opcional. Sin él, el cliente usa la suya: el org que configuraste o la organización del token, que pide a la API una vez y recuerda. orgId() (TypeScript) u org_id() (Python) la devuelven.

Las zonas se nombran por id

Los métodos de zona reciben el id de la zona, no su dominio. Búscalo una vez con listZones / list_zones:

const { items = [] } = await owf.listZones();
const zone = items.find((z) => z.name === "example.com");

Última actualización:

↑↓ para moverte↵ para abriresc para cerrar