Nodefony 10.0.0-beta.5
Framework Node.js fullstack — HTTP & WebSocket, même contexte

Référence d'API — @nodefony/http — interfaces

stable

Documentation › Référence d’API › @nodefony/http › interfaces

Générée depuis les déclarations de types publiées de @nodefony/http 10.0.0-beta.5 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

@nodefony/http#

import { … } from "@nodefony/http" — 56 symboles.

Interfaces (39)#

IContext#

interface IContext

ICookie#

interface ICookie

ICookieOptions#

interface ICookieOptions

IErrorHttpResult#

interface IErrorHttpResult

Result of rendering an error for an HTTP response. body will be passed verbatim to context.render() (which JSON-stringifies). status and message go into ServerResponse.writeHead(). headers are optional extra headers (e.g. Allow for 405, WWW-Authenticate for 401).

IErrorRenderer#

interface IErrorRenderer

Unified error rendering contract — HTTP + WebSocket. The default implementation preserves the legacy Nodefony JSON error shape: { code, message, error: HttpError.toJSON(), nodefony: { requestId, scheme, … }, result }

IErrorWebsocketResult#

interface IErrorWebsocketResult

Result of rendering an error for a WebSocket close frame. code MUST be a valid WS close code (1000-4999). RFC 6455 §7.4. reason is a UTF-8 string sent in the close frame (max 123 bytes).

IFirewallGate#

interface IFirewallGate

Ce que le noyau HTTP appelle du pare-feu, service firewall du conteneur.

IHttp2Request#

interface IHttp2Request extends IHttpRequest

IHttpContext#

interface IHttpContext extends IContext

IHttpKernel#

interface IHttpKernel extends IServerKernel

IHttpRequest#

interface IHttpRequest extends IRequest

IHttpResponse#

interface IHttpResponse extends IResponse

IParsedUploadFile#

interface IParsedUploadFile

Forme neutre d’un fichier multipart parsé (temp écrit sur disque), découplée du parser sous-jacent. Remplace l’ex-couplage à formidable.File : le moteur de parsing (busboy) n’apparaît plus dans le contrat consommé par UploadedFile. Champs alignés sur ce que lit UploadedFile.create.

IProxyMount#

interface IProxyMount extends IProxyMountOptions

Un montage tel que le proxy le garde : préfixe normalisé + réglages.

IProxyMountOptions#

interface IProxyMountOptions

Réglages d’un montage du proxy inverse (ReverseProxy.mount).

IRequestLogEntry#

interface IRequestLogEntry

Result of rendering a request log entry. Returned by IRequestLogger and passed verbatim to context.log(text, severity, msgid).

IRequestLogger#

interface IRequestLogger

Unified per-request logger contract — HTTP + WebSocket.

IRequestRouter#

interface IRequestRouter

Ce que le pipeline HTTP/WS attend du service router — implémenté par Router (@nodefony/framework).

IRequestTrace#

interface IRequestTrace

Message publié sur le TracingChannel nodefony.http.request, le même objet de start à asyncEnd pour une requête donnée.

IResolvedRoute#

interface IResolvedRoute

Ce que le pipeline HTTP/WS lit d’une route résolue — et rien de plus.

IRouteResolver#

interface IRouteResolver

Ce que le pipeline HTTP/WS attend du résolveur d’une requête, posé sur context.resolver par le routeur.

ISecurityTrace#

interface ISecurityTrace

Décision du firewall sur CETTE requête — matière de la « radiographie » (Studio / debug bar) : la zone dit ce qui était POSSIBLE (via context.security), cette trace dit ce qui s’est RÉELLEMENT passé.

ISecurityZone#

interface ISecurityZone

Ce que le pipeline HTTP/WS — et le résolveur de framework — lit de la zone de sécurité posée sur context.security — et rien de plus.

ISerializedSession#

interface ISerializedSession

Données de session sérialisées échangées avec un ISessionStorage (blob opaque persisté/restauré). La forme métier riche (ProtoService/bags) est l’affaire de Session ; le storage ne manipule que cette projection JSON-safe.

ISession#

interface ISession

ISessionListFilter#

interface ISessionListFilter

Filtre d’énumération admin de ISessionStorage.listAll. Tous les champs sont optionnels. Un store SQL peut honorer user (WHERE indexable) ; les autres peuvent l’ignorer — SessionsService.listAllSessions ré-applique le filtre de façon défensive. tenantId = slot multi-tenant (ignoré en mono-tenant).

ISessionListQuery#

interface ISessionListQuery extends IPageQuery, ISessionListFilter

Requête d’énumération paginée des sessions — le IPageQuery standard de Nodefony étendu des filtres propres au store de session. C’est la forme que consomme ISessionStorage.listPage ; ISessionListFilter reste la forme non paginée du dump ISessionStorage.listAll.

ISessionRecord#

interface ISessionRecord

Entrée brute d’énumération renvoyée par ISessionStorage.listAll : l’id opaque RÉEL + le blob sérialisé. Usage strictement interne au process (le service en a besoin pour calculer le ref et révoquer par id) — n’est JAMAIS sérialisée vers une réponse HTTP : SessionsService la projette en ISessionSummary (redaction par construction).

ISessionStorage#

interface ISessionStorage extends ISortableSource

Contrat unique d’un backend de stockage de session (File, Redis, SQL/Drizzle…). Source de vérité unifiée — l’ex-doublon sessionStorageInterface (any) n’est plus qu’un alias transitionnel. Enregistré dans le registre IoC SessionsService.registerStorage.

ISessionSummary#

interface ISessionSummary

Projection redactée d’une session pour l’ADMINISTRATION (data plane Studio, /nodefony/http/api/sessions). Construite par allowlist — jamais par delete après coup — donc ne porte par construction ni Attributes ni flashBag (données métier potentiellement sensibles), ni l’id de session brut (= la valeur du cookie ; le posséder = être connecté).

IUploadOptions#

interface IUploadOptions

Options du sous-système d’upload (clé de config upload). Mappées sur les limits de busboy + la gestion temp/hash propre à Nodefony.

IUploadService#

interface IUploadService

IUploadedFile#

interface IUploadedFile

IWebsocketConnectionState#

interface IWebsocketConnectionState

Ce qu’un module attache à une connexion WebSocket pour toute sa durée — interface VIDE par construction, qu’un module AUGMENTE par fusion de déclarations.

IWebsocketContext#

interface IWebsocketContext extends IContext, IWebsocketConnectionState

IWebsocketResponse#

interface IWebsocketResponse extends IResponse

IWsCookie#

interface IWsCookie

IWsRequest#

interface IWsRequest extends IRequest

SessionIntent#

interface SessionIntent

Intent d’activation de session déclaré par une route (décorateur @UseSession de @nodefony/framework, ou présence d’un paramètre @Session). Lu au point d’activation unique du pipeline (HTTP comme WS) : c’est lui — et non plus un sessionAutoStart global « démarre partout » — qui décide d’ouvrir une session.

Types (17)#

AlpnProtocol#

type AlpnProtocol = "http/1.1" | "h2" | "h2c"

Protocole du saut qui atteint CE processus, nommé par le registre IANA des identifiants ALPN — la valeur même que Node expose (TLSSocket.alpnProtocol, Http2Session.alpnProtocol, qui vaut "h2c" sur une session en clair).

CookiesMap#

type CookiesMap = Record<string, ICookie>

FlashBagType#

type FlashBagType = Record<string, unknown>

HTTPMethodType#

type HTTPMethodType = "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH" | "WEBSOCKET"

MetaBagType#

type MetaBagType = Record<string, unknown>

PriorityType#

type PriorityType = "High" | "Medium" | "Low"

ProtocolName#

type ProtocolName = "http" | "websocket"

Famille du protocole que le contrôleur traite, nommée comme l’attribut OpenTelemetry network.protocol.name.

ProxyTarget#

type ProxyTarget = string | () => string

Origine d’un amont relayé : scheme://hôte[:port], sans chemin.

RequestBody#

type RequestBody = Record<string, unknown> | string | Uint8Array

Le corps DÉCODÉ d’une requête : un objet (JSON, formulaire, champs multipart, XML), une chaîne (text/*), ou des octets (Uint8Array — tout autre type, et un corps sans Content-Type). Le même type d’octets que la socket temps réel : un schéma de route valide l’un comme l’autre.

RequestTraceProtocol#

type RequestTraceProtocol = "http" | "websocket"

Nature de l’opération tracée : une requête HTTP, ou le handshake d’une connexion WebSocket.

SameSiteType#

type SameSiteType = "Strict" | "Lax" | "None"

SchemeType#

type SchemeType = "http" | "https" | "ws" | "wss"

Schéma d’URI vu par le CLIENT (RFC 9110 §4.2, RFC 6455 §3) : derrière un proxy de confiance, c’est le schéma qu’il a annoncé (Forwarded), pas celui du saut local. Toute décision de sécurité lit ce champ.

SecurityOutcome#

type SecurityOutcome = "granted" | "anonymous" | "denied" | "failure" | "throttled" | "bypass"

Issue de la traversée d’une zone firewall.

ServerType#

type ServerType = "http" | "https" | "ws" | "wss"

Identité du serveur qui a reçu la requête, nommée par le schéma d’URI qu’il sert en LOCAL (RFC 9110 §4.2, RFC 6455 §3) : elle choisit la section de configuration du serveur (http, https, websocket, websocketSecure). Ce n’est PAS un protocole — https sert HTTP/1.1 et h2 sur le même port ; le protocole du saut se lit dans AlpnProtocol.

SessionStatusType#

type SessionStatusType = "none" | "active" | "disabled"

SessionStrategyType#

type SessionStrategyType = "none" | "migrate" | "invalidate"

WebSocketStateType#

type WebSocketStateType = "handshake" | "connected" | "closed" | "error" | "message" | null

← Toutes les références d’API