Aller au contenu principal

Limites

Disponible

Fonctionnalité déployée et prise en charge. Les champs et commandes décrits ici sont stables au sein de la version v1alpha1.

Débit​

PortéeLimiteFenêtre
Routes /v1, par adresse IP300 requêtes1 minute glissante

La limite s'applique avant toute vérification du jeton : une requête refusée (401, 403) compte aussi. Les sessions et policies (/v1/iam/…), les routes d'identité (tenants, gabarits) et les routes du tenant ont chacune leur compteur de 300 requêtes. Au-delà, l'API répond 429, {"error": "rate limit exceeded"}, avec un en-tête Retry-After. La limite est par adresse IP vue par la plateforme : derrière une NAT d'entreprise ou dans une CI mutualisée, plusieurs clients la partagent.

Conseils :

  • Mettre en cache GET /v1/openapi.yaml (il porte un ETag et un Cache-Control).
  • Ne pas sonder en boucle : sng app describe toutes les secondes depuis dix terminaux épuise la limite. Préférer sng app logs (flux) ou un intervalle de 5 à 10 s.
  • Respecter Retry-After et appliquer un délai croissant sur 429 et 503.

Délais​

DélaiValeur
Lecture de la requête par le serveur30 s
Écriture de la réponse60 s
Session de tenant1 h (5 min à 1 h pour une session ouverte par une CI fédérée)
Réponse 409 policies_pending après création d'un tenantjusqu'à ~5 min, Retry-After: 10

Les flux (GET /v1/apps/{name}/logs) sont la seule exception au délai d'écriture : la connexion reste ouverte tant que le client lit.

Taille​

  • Corps de requête : 1 Mo au plus, lu avec un décodeur strict (champs inconnus refusés, pas de second document JSON à la suite).
  • Manifestes : chaque document YAML est validé contre le schéma de son kind ; les bornes (nombre de services, longueur des noms, nombre de cibles DNS…) sont dans la référence des manifestes.
  • Téléversements (apply, cdn uploads) : le corps de l'API ne porte pas les fichiers. L'API renvoie des URL de dépôt et le client y envoie les octets directement.

Pagination​

Il n'y en a pas : les listes sont renvoyées en entier. Les volumes concernés (manifestes, secrets, applications d'un tenant) restent de l'ordre de la centaine. Si une liste devient grande, filtrez côté client (jq), et dites-le-nous.

Concurrence​

  • Deux apply simultanés sur le même manifeste : le dernier écrit gagne. Un apply n'est pris en compte qu'après apply/complete, une fois tous les manifestes déposés.
  • Une rotation de secret déjà en cours répond 409.
  • Une ressource en cours de suppression répond 409 à toute modification.

CORS​

L'API ne renvoie pas d'en-têtes CORS : elle n'est pas conçue pour être appelée directement depuis le navigateur d'un tiers. Passez par un serveur (le vôtre ou une fonction) qui détient la session.

Quotas du tenant​

Indépendamment des limites de l'API, chaque tenant a un tier qui borne CPU, mémoire, nombre d'instances, de moniteurs, etc. Un dépassement se voit dans le status des ressources (QuotaExceeded) ou en 409 tier too small. Voir Tiers.