axiom-create-org
POST https://api.axiom.co/v2/orgs/provision crée une véritable organisation Axiom et retourne un token API avec accès complet. L'organisation est supprimée après 24 heures sauf si un humain ouvre son URL de réclamation.
Avant de provisionner
- Utilise un déploiement existant de
~/.axiom.tomls'il convient à la tâche. - Provisionne au maximum une organisation par tâche. Les agents peuvent créer au maximum 3 organisations par jour.
- Indique à l'utilisateur que l'organisation est temporaire et doit être réclamée pour persister.
Provisionner et stocker le token
Le token et l'URL de réclamation sont retournés une seule fois et ne peuvent jamais être récupérés à nouveau. Sauvegarde-les avant de faire quoi que ce soit d'autre, et n'imprime jamais le token, n'affiche pas la réponse brute, ni ne commite l'une ou l'autre valeur.
Exécute ceci comme une seule commande pour que la réponse ne touche qu'un fichier temporaire privé :
umask 077
resp=$(mktemp)
code=$(curl -sS -o "$resp" -w '%{http_code}' -X POST https://api.axiom.co/v2/orgs/provision \
-H 'Content-Type: application/json' -d '{"name": "<short-task-name>"}')
if [[ "$code" == 200 ]]; then
jq -r '"\n[deployments.\(.id)]\nurl = \"https://api.axiom.co\"\ntoken = \"\(.token)\"\norg_id = \"\(.id)\"\nclaim_url = \"\(.claimUrl)\"\nexpires_at = \"\(.expiresAt)\""' \
"$resp" >> ~/.axiom.toml && chmod 600 ~/.axiom.toml &&
jq '{id, name, defaultEdgeDeployment, expiresAt}' "$resp" && rm -f "$resp"
else
echo "provision failed: HTTP $code" >&2; cat "$resp" >&2; rm -f "$resp"
fi
- Les champs du body sont optionnels ;
{}est valide.namepar défaut estAgent Org <hex>. - Omets
edgeDeploymentsauf si l'utilisateur en demande un ; la valeur par défaut estUS East 1 (AWS). 429 Too Many Requestssignifie que la limite quotidienne est atteinte. Réessaye plus tard avec backoff ; ne boucle jamais.- Si l'ajout à
~/.axiom.tomléchoue, la réponse reste dans$resp. Récupère le token avant de la supprimer.
Utiliser l'organisation
L'ID de l'organisation est le nom du déploiement, donc les autres skills Axiom fonctionnent comme d'habitude :
skills/axiom-alerting/scripts/axiom-api <org-id> GET /datasets
Pour les appels directs, envoie Authorization: Bearer <token> et X-Axiom-Org-Id: <org-id>. Lis le token de ~/.axiom.toml dans une variable ; ne le colle pas dans les commandes ou la sortie. L'organisation se comporte comme n'importe quelle organisation Axiom : créer des datasets, ingérer, requêter, et construire des dashboards et des monitors.
Transmettre l'URL de réclamation
La réclamation nécessite un humain connecté à Axiom ; il n'y a pas d'API pour cela. Essaye d'ouvrir l'URL de réclamation dans le navigateur de l'utilisateur, et affiche-la avec la date limite :
url=$(awk -F'"' -v d="[deployments.<org-id>]" '$0==d{f=1;next} /^\[/{f=0} f&&/^claim_url/{print $2}' ~/.axiom.toml)
{ open "$url" || { [[ -n "${DISPLAY:-}${WAYLAND_DISPLAY:-}" ]] && xdg-open "$url"; }; } >/dev/null 2>&1 && echo "opened claim URL in browser" || echo "no browser available"
awk -v d="[deployments.<org-id>]" '$0==d{f=1;next} /^\[/{f=0} f&&/^(claim_url|expires_at)/' ~/.axiom.toml
Affiche toujours l'URL de réclamation une fois dans ta réponse aussi : sur une machine distante, le navigateur peut s'ouvrir où l'utilisateur ne le voit pas. Indique à l'utilisateur :
- N'importe qui qui ouvre le lien peut prendre possession. Ne le partage pas au-delà de l'utilisateur.
- Non réclamée, l'organisation et toutes ses données, dashboards, monitors, et le token sont définitivement supprimés à
expires_at(24 heures après le provisionnement). - La réclamation préserve tout ce que l'agent a construit, rend l'organisation permanente sur le plan Personnel, et garde le token fonctionnel. Le lien ne peut être utilisé qu'une fois.
Limites tant que non réclamée
- 10 GB d'ingestion et 1 GB-heure de calcul de requête sur les 24 heures.
- Peu de datasets : créer un 4ème dataset a échoué avec
dataset license limit exceededen test (non documenté). Mets les données connexes dans un seul dataset. - Les monitors et notifiants peuvent être créés, mais les notifications ne sont pas livrées.
- La réclamation lève ces limites au niveau complet du plan Personnel et active les notifiants.
Si le token est perdu, l'organisation est inaccessible via l'API jusqu'à ce qu'un humain la réclame et crée un nouveau token.
Docs : https://axiom.co/docs/console/intelligence/agent-created-orgs