Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Reference : [admin] et [api]

⟳ : rechargee a chaud ; sans marque : prise au redemarrage. Voir Rechargement.

[admin]

Voir Console et API d’administration.

CleTypeDefautEffet
admintableabsent : aucune porte HTTPl’ecouteur d’administration, de l’API et de l’explorateur
admin.listenadresse(obligatoire)adresse d’ecoute ; 0.0.0.0 dans un conteneur ; CRAFT_FILE_GATE_ADMIN_LISTEN
admin.control_listenadresseabsentune porte a part pour /admin, la console, /metrics et les sondes (sauf avec server.probes_listen) ; CRAFT_FILE_GATE_ADMIN_CONTROL_LISTEN
admin.bearer_tokenchaineabsentjeton qui a toutes les permissions ; lui ou un role de [[admin.roles]] est exige ; CRAFT_FILE_GATE_ADMIN_BEARER_TOKEN, _FILE
admin.allow_static_tokenbooleentruefalse : aucun jeton statique, d’aucune source
admin.header_read_timeout_secsentier10secondes pour envoyer les en-tetes d’une requete ; 1 a 300 ; CRAFT_FILE_GATE_ADMIN_HEADER_READ_TIMEOUT_SECS
admin.long_request_threshold_secs ⟳entier30secondes apres lesquelles un transfert REST en cours apparait dans les sessions de la console ; 0 : tous

[[admin.roles]]

Voir Console et API d’administration.

CleTypeDefautEffet
admin.rolestableau de tables[]les roles admin nommes
admin.roles[].namechaine(obligatoire)le nom qu’une authority porte (compte local ou JWT) ; unique, distinct des noms de [[roles]]
admin.roles[].permissionsliste(obligatoire, non vide)parmi overview, sessions, kick, bans, unban, config, logs, audit, revoke

[admin.session]

Voir Console et API d’administration.

CleTypeDefautEffet
admin.sessiontablecle par processus, 1 h, 12 h, revocations en memoireles jetons de session de la console, signes par le serveur, et leurs revocations
admin.session.key_filecheminabsentla cle de signature, 32 octets au moins (head -c 32 /dev/urandom), lisible par le serveur seul, la meme sur toutes les instances ; sans elle ni secret_name, une cle tiree pour le processus
admin.session.secret_namechaineabsentle Secret Kubernetes dont l’entree admin-session.key tient la cle ; le chart le cree vide, le premier pod l’ecrit, les autres la lisent (feature k8s) ; CRAFT_FILE_GATE_ADMIN_SESSION_SECRET_NAME ; pas avec key_file
admin.session.ttl_secsentier3600vie d’un jeton ; 60 a 86400
admin.session.max_age_secsentier43200plus de renouvellement au-dela, depuis la connexion ; 60 a 604800, au moins ttl_secs
admin.session.persist_filecheminabsentle fichier ou les revocations sont partagees, a elles seules, distinct des fichiers de bans ; ni lui ni backend : en memoire, une instance, perdues au redemarrage
admin.session.backendchainefile avec persist_file, memoire sinonfile (avec persist_file) ou configmap (feature k8s), une ConfigMap comme les bans ; CRAFT_FILE_GATE_ADMIN_SESSION_BACKEND
admin.session.revocation_configmap_namechainecraft-file-gate-accessla ConfigMap des revocations, cle revocations, avec backend = "configmap" ; la meme que les acces temporaires ; CRAFT_FILE_GATE_ADMIN_SESSION_REVOCATION_CONFIGMAP_NAME
admin.session.reread_interval_secsentier5relecture des revocations partagees, en secondes ; 1 a 30

[admin.grants]

Les acces temporaires : un role de fichiers donne a un utilisateur jusqu’a une date, par POST /admin/grants (permission grant).

CleTypeDefautEffet
admin.grantstableen memoire, 7 jours au plusou les acces temporaires sont partages, et le plus long
admin.grants.persist_filecheminabsentle fichier ou les acces sont partages, a eux seuls (ni bans, ni revocations) ; ni lui ni backend : en memoire, une instance, refuse avec [cluster]
admin.grants.backendchainefile avec persist_file, memoire sinonfile ou configmap (feature k8s) ; CRAFT_FILE_GATE_ADMIN_GRANTS_BACKEND
admin.grants.grant_configmap_namechainecraft-file-gate-accessla ConfigMap, cle grants, a cote des revocations ; CRAFT_FILE_GATE_ADMIN_GRANTS_GRANT_CONFIGMAP_NAME
admin.grants.reread_interval_secsentier5relecture des acces partages, en secondes ; 1 a 30
admin.grants.max_duration_secsentier604800duree maximale d’un acces ; 60 a 2592000

[admin.tls]

CleTypeDefautEffet
admin.tlstableabsent : HTTPHTTPS sur tout l’ecouteur
admin.tls.cert_filecheminabsentcertificat PEM, relu quand le fichier change ; CRAFT_FILE_GATE_ADMIN_TLS_CERT
admin.tls.key_filecheminabsentcle privee PEM ; CRAFT_FILE_GATE_ADMIN_TLS_KEY
admin.tls.auto_generatebooleenfalsegenerer un certificat auto-signe (essais)
admin.tls.auto_generate_cnchainelocalhostson Common Name
admin.tls.auto_generate_dirchemin.ou l’ecrire
admin.tls.auto_generate_validity_daysentier31sa validite en jours

[admin.ban]

Memes cles que [sftp.ban]. Voir Bans et limites de debit.

CleTypeDefautEffet
admin.bantableabsent : aucun banban des adresses apres des echecs d’authentification sur l’API d’administration ; l’API de fichiers a sa liste, [api.ban]
admin.ban.max_failuresentier5echecs dans la fenetre avant le ban ; au moins 1
admin.ban.ban_duration_secsentier600duree d’un ban en secondes, a partir du verdict
admin.ban.window_secsentier300fenetre de comptage des echecs en secondes, fixe, ouverte par le premier echec d’une serie
admin.ban.whitelist_ipsliste[]adresses et reseaux CIDR, IPv4 ou IPv6, jamais bannis par cette instance
admin.ban.trusted_proxiesliste[]proxys dont X-Forwarded-For donne l’adresse du client ; sans control_listen, egale a api.ban.trusted_proxies
admin.ban.persist_filecheminabsent : en memoirefichier ou les bans sont gardes et partages entre instances
admin.ban.backendchaine"file""file", ou "configmap" pour partager les bans entre pods Kubernetes
admin.ban.ban_configmap_namechainecraft-file-gate-bansle ConfigMap des bans, avec backend = "configmap"
admin.ban.reread_interval_secsentier5relecture du persist_file partage en secondes, en plus de la surveillance ; 1 a 30

[admin.metrics_thresholds]

Voir Metriques.

CleTypeDefautEffet
admin.metrics_thresholdstable-seuils d’alerte de l’onglet Metrics de la console
admin.metrics_thresholds.hash_pool_percententier80places prises du pool de hachage, en %
admin.metrics_thresholds.tls_cert_daysentier14jours restants du certificat TLS admin, en dessous
admin.metrics_thresholds.rejections_per_minuteentier60refus SFTP par minute
admin.metrics_thresholds.jwt_refusals_per_minuteentier60JWT refuses par minute
admin.metrics_thresholds.jwks_age_secsentier2 x jwks_refresh_interval_secsage du cache JWKS
admin.metrics_thresholds.clock_skew_secsentier30ecart d’horloge d’un stockage
admin.metrics_thresholds.cpu_percententier90CPU du processus, 100 = un coeur

[api]

Voir Portes.

CleTypeDefautEffet
apitableabsent : pas d’APIl’API REST de fichiers, sur admin.listen
api.enabledbooleenfalseservir l’API, sur l’ecouteur de [admin] ; exige [admin]
api.prefixchaine/api/v1/fileschemin sous lequel l’API est servie
api.cors_originslisteabsent : pas de CORSorigines admises en CORS ; "*" : toutes (voir Bans)
api.openapibooleenfalseservir le Swagger UI (/api/docs) et le document OpenAPI (/api/openapi.json), sans authentification ; exige api.enabled

[api.ban]

Memes cles que [sftp.ban]. Voir Bans et limites de debit.

CleTypeDefautEffet
api.bantableabsent : aucun banban des adresses apres des echecs d’authentification sur l’API de fichiers, ses tickets et l’explorateur
api.ban.max_failuresentier5echecs dans la fenetre avant le ban ; au moins 1
api.ban.ban_duration_secsentier600duree d’un ban en secondes, a partir du verdict
api.ban.window_secsentier300fenetre de comptage des echecs en secondes, fixe, ouverte par le premier echec d’une serie
api.ban.whitelist_ipsliste[]adresses et reseaux CIDR, IPv4 ou IPv6, jamais bannis par cette instance, ni plafonnes dans la file de hachage
api.ban.trusted_proxiesliste[]proxys dont X-Forwarded-For donne l’adresse du client (ban, limiteur, audit) ; sans admin.control_listen, egale a admin.ban.trusted_proxies
api.ban.persist_filecheminabsent : en memoirefichier ou les bans sont gardes et partages entre instances
api.ban.backendchaine"file""file", ou "configmap" pour partager les bans entre pods Kubernetes
api.ban.ban_configmap_namechainecraft-file-gate-bansle ConfigMap des bans, avec backend = "configmap"
api.ban.reread_interval_secsentier5relecture du persist_file partage en secondes, en plus de la surveillance ; 1 a 30

[api.rate_limit]

Voir Bans et limites de debit.

CleTypeDefautEffet
api.rate_limittableabsent : aucune limiteseau a jetons par adresse pour l’API
api.rate_limit.requests_per_minuteentier(obligatoire)debit soutenu de requetes par adresse ; au moins 1
api.rate_limit.burstentierrequests_per_minuterequetes acceptees d’affilee ; au moins 1

[api.ui]

Voir Explorateur de fichiers.

CleTypeDefautEffet
api.uitable-l’explorateur de fichiers web
api.ui.enabledbooleenfalseservir l’explorateur ; exige [api]
api.ui.pathchaine/filesou la page est servie, sur l’ecouteur de l’API (admin.listen, meme avec control_listen) ; commence par /, sans / final ; ni sur api.prefix, ni sur une route du serveur (/admin, /ui, /metrics, /health, /livez, /readyz, /api/docs, /api/openapi.json)