---
title: "Référence d'API — nodefony — kernel-adminPlane"
source: docs/api/core/kernel-adminPlane.md
url: https://nodefony.github.io/nodefony-core/docs/api/core/kernel-adminPlane/
---


[Documentation](../../../) › [Référence d'API](../../) › [`nodefony`](../) › kernel-adminPlane

> Générée depuis les déclarations de types publiées de `nodefony` **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`

`import { … } from "nodefony"` — 18 symboles.

### Fonctions (9)

#### `adminReadCatalog`

```ts
function adminReadCatalog(broker: IAdminBrokerLike, caller: IAdminCaller, query?: IAdminCatalogQuery): IAdminCatalogView
```

Les endpoints du plan d'administration qu'une porte **sans session** peut servir à cet appelant — la règle unique dont dépendent `nodefony_admin_list` ET `nodefony_admin_call`.

#### `executeAdminEndpoint`

```ts
function executeAdminEndpoint(input: IAdminExecuteInput): Promise<IAdminExecution>
```

Exécute un endpoint du plan d'administration — **la porte unique**, sans HTTP.

#### `findAdminReadEntry`

```ts
function findAdminReadEntry(broker: IAdminBrokerLike, caller: IAdminCaller, namespace: string, path: string): IAdminCatalogEntry | null
```

Retrouve une entrée APPELABLE par son couple producteur/chemin.

#### `isAdminGranted`

```ts
function isAdminGranted(roles: readonly string[], requiredRole: string): boolean
```

Décision d'autorisation du data plane admin (Studio) — fonction **PURE**, cœur de la garantie RBAC, testée isolément (zéro dépendance runtime/DI).

#### `localOperatorCaller`

```ts
function localOperatorCaller(): IAdminCaller
```

L'opérateur qui lance une commande sur sa propre application.

#### `normalizeAdminResult`

```ts
function normalizeAdminResult(result: unknown): IAdminExecution
```

Normalise ce qu'un handler a rendu : donnée brute, ou enveloppe.

#### `refusedAdminScopes`

```ts
function refusedAdminScopes(requested: readonly string[], roles: readonly string[]): string[]
```

Les scopes d'administration demandés que ce porteur **ne peut pas** obtenir.

#### `resolveAdminRole`

```ts
function resolveAdminRole(endpoint: Pick<IAdminEndpoint, "public" | "role">): string
```

Rôle **effectif** d'un endpoint — la règle, à un seul endroit.

#### `rolesFromScopes`

```ts
function rolesFromScopes(scopes: readonly string[]): string[]
```

Traduit les scopes d'un jeton en rôles Nodefony.

### Constantes (3)

#### `ADMIN_DEFAULT_ROLE`

```ts
const ADMIN_DEFAULT_ROLE = "ROLE_NODEFONY_ADMIN"
```

Rôle exigé par défaut d'un endpoint d'administration qui n'en déclare aucun.

#### `ADMIN_SCOPE_READ`

```ts
const ADMIN_SCOPE_READ = "admin:read"
```

Scope d'un jeton ouvrant la LECTURE du plan d'administration.

#### `ADMIN_SCOPE_WRITE`

```ts
const ADMIN_SCOPE_WRITE = "admin:write"
```

Scope d'un jeton ouvrant les MUTATIONS du plan d'administration.

### Interfaces (5)

#### `IAdminCaller`

```ts
interface IAdminCaller
```

Qui appelle le plan d'administration, tel qu'il se PRÉSENTE.

- `user: unknown` — L'utilisateur, quand la porte en connaît un.
- `roles: readonly string[]` — Ses rôles RÉELS — c'est sur eux que le contrôle d'accès tranche.
- `label: string` — Qui c'est, en clair.

#### `IAdminCatalogView`

```ts
interface IAdminCatalogView
```

Ce que le catalogue montre, ET ce qu'il a écarté.

- `entries: IAdminCatalogEntry[]` — Les endpoints appelables, groupés par personne — l'ordre de déclaration.
- `total: number` — Combien d'endpoints le plan déclare en tout.
- `mutations: number` — Écartés parce que ce sont des mutations (POST/PATCH/PUT/DELETE).
- `selfService: number` — Écartés parce qu'ils sont scopés à une session (`public: true`).
- `denied: number` — Écartés faute du rôle exigé par l'endpoint.
- `filtered: number` — Écartés par la restriction de lecture demandée (`IAdminCatalogQuery`).

#### `IAdminExecuteInput`

```ts
interface IAdminExecuteInput
```

Ce dont l'exécution a besoin — aucun transport, aucun conteneur.

- `endpoint: IAdminEndpoint` — L'endpoint résolu par l'appelant (par nom de route, ou par chemin).
- `request: IAdminRequest` — La requête projetée : params, query, corps, identité, rôles.
- `requiredRole: string` — Rôle exigé, déjà résolu par `resolveAdminRole` — passé plutôt que recalculé pour que la porte HTTP puisse honorer le rôle **monté** avec sa route.
- `gate: AdminGate | null` — Porte d'idempotence, ou `null` quand l'appelant n'en pose aucune.
- `onServerError?: (error: Error) => void` — Notification d'une panne serveur (le handler a levé autre chose qu'une erreur cliente).
- `assertCredentialTransport?: () => void` — Garde du transport d'un secret, pour un endpoint `credentials: true` : lève une erreur 403 si la requête est arrivée en clair en production.

#### `IAdminExecution`

```ts
interface IAdminExecution
```

Issue d'un endpoint d'administration, sous la forme que TOUTES les portes reçoivent — succès comme échec.

- `status: number` — Statut résolu du handler (200 par défaut).
- `headers?: IAdminResponse["headers"]` — En-têtes que le producteur a joints, s'il en a joint.
- `body: unknown` — La donnée, ou le corps d'erreur **que le producteur a préparé**.

#### `IAdminGateVerdict`

```ts
interface IAdminGateVerdict
```

Verdict d'une porte posée AVANT le handler — aujourd'hui l'idempotence des mutations, demain ce que le transport exigera.

- `shortCircuit?: IAdminExecution` — Réponse immédiate : le handler n'est pas appelé.
- `onSuccess?: (execution: IAdminExecution) => void | Promise<void>` — Appelé après un handler qui a rendu sa réponse.
- `onFailure?: () => void | Promise<void>` — Appelé après un handler qui a levé — l'appel reste réessayable.

### Types (1)

#### `AdminGate`

```ts
type AdminGate = (request: IAdminRequest) => IAdminGateVerdict | Promise<IAdminGateVerdict>
```

Porte optionnelle évaluée entre le RBAC et le handler.

---

[← Toutes les références d'API](../../)
