Skip to main content
JGJenks Guo

Docs / reference

API d'administration

Points de terminaison authentifiés qui modifient le contenu du site via des commits Git validés.

All admin endpoints need Authorization: Bearer <admin token> (Jenks le conserve dans le trousseau macOS sous agent-env:JENKSGUO_ADMIN_TOKEN; les outils lisent la variable d'environnement JENKSGUO_ADMIN_TOKEN). Les écritures sont validées avec le même schéma que la build, puis validées sur GitHub. La CI traduit les entrées modifiées dans chaque langue, reconstruit et déploie : main → jenksguo.xyz, dev → dev.jenksguo.xyz.

Méthode Chemin Outil
GET /api/admin/whoami —
POST /api/admin/login · /api/admin/logout — (cookie de session console)
GET /api/admin/schema admin_schema
GET /api/admin/files admin_list_files
GET /api/admin/file admin_read_file
POST /api/admin/validate admin_validate
PUT /api/admin/file admin_write_file
DELETE /api/admin/file admin_delete_file
POST /api/admin/changes admin_commit_changes
POST /api/admin/ai-edit admin_ai_edit
GET /api/admin/deploys admin_deploy_status
POST /api/admin/promote admin_promote

Erreurs : 401 unauthorized, 403 forbidden_path (seuls les fichiers de contenu sont modifiables), 422 invalid avec errors[], 409/502 github_error, 503 github_not_configured.

admin_schema — Schéma de contenu

Le modèle de contenu : champs et règles des entrées, tags, lentilles, types, chemins inscriptibles, documents et conventions d'édition. Lisez ceci avant d'écrire.

  • MCP : admin_schema sur https://jenksguo.xyz/mcp/admin
  • REST : GET /api/admin/schema (admin token)
  • CLI : jenks admin schema

Aucun argument.

curl -s "https://jenksguo.xyz/api/admin/schema" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_list_files — Lister les fichiers de contenu

Lister les fichiers de contenu modifiables sur une branche (chemin, taille, sha), éventuellement dans un dossier comme content/corpus/experiences.

  • MCP : admin_list_files sur https://jenksguo.xyz/mcp/admin
  • REST : GET /api/admin/files?dir=&branch= (admin token)
  • CLI : jenks admin ls [dir]
Argument Type Requis Remarques
dir string non p. ex. content/corpus/projects (par défaut : tout le contenu)
branch main · dev non main publie sur jenksguo.xyz ; dev prévisualise sur dev.jenksguo.xyz (par défaut main).
curl -s "https://jenksguo.xyz/api/admin/files" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_read_file — Lire un fichier de contenu

Lire la source brute Markdown/JSON d'un fichier de contenu (avec son sha). Passer path, ou slug pour une entrée, une lentille ou une compétence.

  • MCP : admin_read_file sur https://jenksguo.xyz/mcp/admin
  • REST : GET /api/admin/file?path=&slug=&branch= (admin token)
  • CLI : jenks admin get <slug|path>
Argument Type Requis Remarques
path string non
slug string non
branch main · dev non main publie sur jenksguo.xyz ; dev prévisualise sur dev.jenksguo.xyz (par défaut main).
curl -s "https://jenksguo.xyz/api/admin/file" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_validate — Valider une modification

Valider le contenu d'un fichier par rapport au schéma de contenu sans commit. Renvoie une liste de problèmes (vide = valide).

  • MCP : admin_validate sur https://jenksguo.xyz/mcp/admin
  • REST : POST /api/admin/validate (admin token)
  • CLI : jenks admin validate <path> <file>
Argument Type Requis Remarques
path string oui
content string oui
curl -s -X POST https://jenksguo.xyz/api/admin/validate \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"path":"content/corpus/projects/example.md","content":"<content>"}'

admin_write_file — Créer ou mettre à jour un fichier de contenu

Valider et committer un fichier de contenu (création ou remplacement). La publication est automatique : la CI retraduit les entrées modifiées dans toutes les langues, reconstruit et déploie (main → jenksguo.xyz, dev → dev.jenksguo.xyz) en quelques minutes.

  • MCP : admin_write_file sur https://jenksguo.xyz/mcp/admin
  • REST : PUT /api/admin/file (admin token)
  • CLI : jenks admin put <path> <file> -m <message>
Argument Type Requis Remarques
path string oui
content string oui
message string oui Message de commit
branch main · dev non main publie sur jenksguo.xyz ; dev prévisualise sur dev.jenksguo.xyz (par défaut main).
curl -s -X PUT https://jenksguo.xyz/api/admin/file \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"path":"content/corpus/projects/example.md","content":"<content>","message":"<message>"}'

admin_delete_file — Supprimer un fichier de contenu

Supprimer un fichier de contenu (par ex. retirer une entrée) avec un message de commit. L'historique Git le rend récupérable.

  • MCP : admin_delete_file sur https://jenksguo.xyz/mcp/admin
  • REST : DELETE /api/admin/file?path=&message=&branch= (admin token)
  • CLI : jenks admin rm <path> -m <message>
Argument Type Requis Remarques
path string oui
message string oui
branch main · dev non main publie sur jenksguo.xyz ; dev prévisualise sur dev.jenksguo.xyz (par défaut main).
curl -s -X DELETE https://jenksguo.xyz/api/admin/file \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"path":"content/corpus/projects/example.md","message":"<message>"}'

admin_commit_changes — Valider plusieurs fichiers en une seule fois

Valider et committer plusieurs modifications de fichiers en UN seul commit. Chaque modification est {path, content} ou {path, delete: true}.

  • MCP : admin_commit_changes sur https://jenksguo.xyz/mcp/admin
  • REST : POST /api/admin/changes (admin token)
  • CLI : jenks admin commit <changes.json> -m <message>
Argument Type Requis Remarques
changes array oui
message string oui
branch main · dev non main publie sur jenksguo.xyz ; dev prévisualise sur dev.jenksguo.xyz (par défaut main).
curl -s -X POST https://jenksguo.xyz/api/admin/changes \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"changes":"<changes>","message":"<message>"}'

admin_ai_edit — Proposer une modification avec l'IA

Demander au modèle du site de réécrire un fichier de contenu à partir d'une instruction en anglais simple. Renvoie le contenu proposé, un diff et les problèmes de validation. Ne commite PAS — relisez, puis appelez admin_write_file.

  • MCP : admin_ai_edit sur https://jenksguo.xyz/mcp/admin
  • REST : POST /api/admin/ai-edit (admin token)
  • CLI : jenks admin ai-edit <slug|path> "<instruction>" [--apply]
Argument Type Requis Remarques
path string non
slug string non
instruction string oui
branch main · dev non main publie sur jenksguo.xyz ; dev prévisualise sur dev.jenksguo.xyz (par défaut main).
content string non Texte de fichier non enregistré facultatif à partir duquel rédiger (par défaut : le fichier enregistré).
curl -s -X POST https://jenksguo.xyz/api/admin/ai-edit \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"instruction":"<instruction>"}'

admin_deploy_status — Statut des déploiements

Exécutions CI récentes (traduction → build → déploiement) avec statut, branche, commit et liens.

  • MCP : admin_deploy_status sur https://jenksguo.xyz/mcp/admin
  • REST : GET /api/admin/deploys?branch= (admin token)
  • CLI : jenks admin deploys
Argument Type Requis Remarques
branch main · dev non main publie sur jenksguo.xyz ; dev prévisualise sur dev.jenksguo.xyz (par défaut main).
curl -s "https://jenksguo.xyz/api/admin/deploys" \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN"

admin_promote — Promouvoir dev en production

Fusionner la branche dev dans main, publiant tout ce qui a été prévisualisé sur dev.jenksguo.xyz vers jenksguo.xyz.

  • MCP : admin_promote sur https://jenksguo.xyz/mcp/admin
  • REST : POST /api/admin/promote (admin token)
  • CLI : jenks admin promote
Argument Type Requis Remarques
message string non
curl -s -X POST https://jenksguo.xyz/api/admin/promote \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -H 'content-type: application/json' \
  -d '{}'

.mdCette page est traduite avec l’aide de l’IA ; les titres officiels restent en anglais.