ManifestRouteHmac
Verificacion HMAC de un tercero (auth: "hmac"): secreto = credencial cifrada del dominio; comparacion en tiempo constante; anti-replay.
Firma
export interface ManifestRouteHmac {
header: string;
algorithm: "sha256" | "sha512" | "ed25519";
encoding?: "hex" | "base64";
prefix?: string;
secretCredential: string;
timestampHeader?: string;
allowReplay?: boolean;
toleranceSec?: number;
signedPayload?: "body" | "timestamp.body" | "v0:timestamp:body" | "timestamp+body";
}Miembros (9)
| Nombre | Tipo | Descripción |
|---|---|---|
| headerobligatorio | string | Cabecera (minusculas) con la firma. |
| algorithmobligatorio | "sha256" | "sha512" | "ed25519" | ed25519 (Discord Interactions): secretCredential guarda la clave PUBLICA hex; exige signedPayload "timestamp+body". |
| encodingopcional | "hex" | "base64" | Sin descripción. |
| prefixopcional | string | Prefijo de la cabecera, p. ej. "sha256=". |
| secretCredentialobligatorio | string | Nombre en MAYUSCULAS de un campo secret:true del settingsSchema (o ENV_READ). |
| timestampHeaderopcional | string | Cabecera con el timestamp que firma el tercero. OBLIGATORIA (anti-replay) salvo allowReplay: true. |
| allowReplayopcional | boolean | Acepta repeticiones dentro de la ventana de firma (sin timestamp). Explicito: en serverless la deteccion de firmas repetidas es por proceso y no es una defensa fuerte. |
| toleranceSecopcional | number | Tolerancia del timestamp en segundos (30..900, por defecto 300). |
| signedPayloadopcional | "body" | "timestamp.body" | "v0:timestamp:body" | "timestamp+body" | Sin descripción. |
Usado en / Referenciado por
Fuente: bloomx-extensions/_shared/sdk/manifest.d.ts:245 · manifest.d.ts