test(hosts): extend the socket-level pass to the two workstation routes #26
No reviewers
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/vps-health-api#26
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-16-hosts-monitoring-commissioning"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Etend
test-curl.shaux deux routes postes, et documente la mise en service.Volontairement
Refs #16et pasFixes #16: plusieurs criteres d'acceptation ne sont pas encore tenus (ops VPS bloquees, deploiement Vercel bloque en amont). L'issue se ferme a la main quand le dernier tombe, pas au merge de cette PR.Ce que contient la PR
test-curl.sh: 17 -> 41 cas. Les 24 nouveaux couvrentPOST /hosts/<id>etGET /hostsau niveau socket — le 413 rendu avant que la connexion soit coupee, les deux tokens qui se refusent mutuellement leurs routes, le 401 avant le 403, la regex de route qui transforme un id malforme et une traversee en 404 avant tout handler, et le round trip ingestion -> persistance -> lecture.HOSTS_INGEST_TOKEN, pour observer le 503 fail-closed — c'est le seul comportement du lot qu'une instance unique ne peut pas montrer.CLAUDE.md: le compte vitest etait perime (244 -> 251,auth.test.js19 -> 26) ettest-curl.shn'y figurait pas.Deux cas ont demande de l'attention pour valoir quelque chose :
__proto__comme du texte. Ecrit__proto__:dans un litteral objet, il aurait pose le prototype etJSON.stringifyn'aurait rien emis — le cas aurait teste un payload qui ne portait jamais la cle.set -ependant que le serveur detruit la socket juste apres avoir vide la reponse. Toutes les sondes passent par un helper qui absorbe ca ; un curl qui n'a vraiment rien recu rapporte000, ce qui fait echouer le cas au lieu de le laisser passer en silence.Le trap
EXITdeferencait unSERVER_PIDnon initialise sousset -u: il tombait en erreur au lieu de nettoyer quand quoi que ce soit echouait avant le boot.Verification
npm test: 251 cas vertsbash test-curl.sh: 41 cas verts, joue 3 fois de suite pour le cas 413Hors PR, deja fait
HOSTS_INGEST_TOKENetHOSTS_ALLOWED_IDS=thinkpadposees,is_runtime=true is_buildtime=falseverifie sur les 4 rows (jumeaux preview compris)la-compagnie-maximus@7e3ee04: procedure d'ajout d'un poste dansdocs/coolify-ops.md, rotation conjointe des deux tokens dansdocs/secret-rotation-ops.mdReste a faire
Detaille en commentaire sur #16.
Refs #16
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.