writes: CREATE envoie toujours vers l'URL de collection {path}, incompatible avec les APIs où la clé est dans l'URL (ex: HashiCorp Vault) #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Contexte
En tentant d'utiliser kuberest pour configurer HashiCorp Vault 1.17.3 via son API REST, nous avons rencontré une incompatibilité fondamentale avec le mécanisme
writes.Comportement actuel
Avec une configuration de type :
kuberest envoie la requête de création vers l'URL de collection :
Résultat :
405 Method Not Allowed— vault répondunsupported operation.Nous avons également testé
createMethod: Put: le verbe change (PUT) mais kuberest envoie toujours vers{path}(URL de collection), pas vers{path}/{name}(URL d'instance).Comportement attendu par l'API Vault
L'API HashiCorp Vault suit un pattern REST où la clé est dans l'URL même pour la création :
POST /v1/auth/oidc/role/reader{user_claim: "email", ...}GET /v1/auth/oidc/role/readerDELETE /v1/auth/oidc/role/readerGET /v1/auth/oidc/role?list=trueC'est le pattern "PUT-centric" :
POST {collection}/{id}pour créer ET mettre à jour. La même API est utilisée pour d'autres ressources :POST /v1/auth/kubernetes/role/{name}POST /v1/sys/policies/acl/{name}POST /v1/auth/oidc/config(singleton)Ce qui fonctionne en contournement
Le script
post(Rhai) avecclient.post()direct :Logs confirmant que ça fonctionne :
Mais ce contournement perd le mécanisme de réconciliation déclarative de kuberest.
Demande d'évolution
Serait-il possible d'ajouter une option sur le write group permettant que le CREATE utilise l'URL d'instance
{path}/{name}plutôt que l'URL de collection{path}?Par exemple un champ
createWithKeyInPath: true(nom à définir) :Ce qui produirait :
Versions testées :