Que fait cli-anything-tigris ?
Interface en ligne de commande sans état pour le stockage d'objets Tigris. Englobe le CLI officiel tigris afin que toutes les primitives Tigris (instantanés, IAM, identifiants restreints, OAuth) soient accessibles via un seul point d'entrée adapté aux agents, avec --json partout.
Portée
Ce kit d'outils est destiné uniquement au CLI officiel Tigris. Il exécute le binaire tigris et suppose une authentification Tigris via tigris login ou les clés d'accès Tigris. Ce n'est pas un outil générique pour les points de terminaison S3, et il ne gère pas MinIO, Cloudflare R2, AWS S3, ni d'autres points de terminaison compatibles S3.
Installation
# 1. Installer le CLI Tigris sous-jacent
npm install -g @tigrisdata/cli
# ou :
brew install tigrisdata/tap/tigris
# 2. S'authentifier (OAuth navigateur)
tigris login
# 3. Installer ce kit d'outils
pip install cli-anything-tigris
Prérequis :
- Python 3.10+
- CLI
tigrisdans le PATH (l'alias du binaire estt3)
Utilisation
Commandes de base
# Afficher l'aide
cli-anything-tigris --help
# Démarrer le REPL interactif
cli-anything-tigris
# Whoami (sortie JSON pour les agents)
cli-anything-tigris --json auth whoami
# Lister les buckets
cli-anything-tigris --json bucket list
# Téléverser un fichier local
cli-anything-tigris --json object put --bucket my-bucket --key path/to/file.txt --file ./local.txt
# Télécharger un objet
cli-anything-tigris --json object get --bucket my-bucket --key path/to/file.txt --output ./out.txt
# Copie côté serveur
cli-anything-tigris --json object cp t3://my-bucket/src.txt t3://my-bucket/dst.txt
# Prendre un instantané
cli-anything-tigris --json snapshot take my-bucket --name baseline-v1
# Supprimer un bucket ; `--yes` est requis
cli-anything-tigris --json bucket delete --name old-bucket --yes
# Créer une clé d'accès restreinte pour un exécution d'agent
cli-anything-tigris --json access-key create my-agent-key
cli-anything-tigris --json access-key assign tid_AaBb --bucket my-bucket --role Editor
# Pivoter ou supprimer des clés d'accès ; `--yes` est requis
cli-anything-tigris --json access-key rotate tid_AaBb --yes
cli-anything-tigris --json access-key delete tid_AaBb --yes
# URL de téléchargement présignée (1 heure)
cli-anything-tigris --json presign get --bucket my-bucket --key path/to/file.txt --expires 3600
Mode REPL
Lorsqu'il est invoqué sans sous-commande, le CLI entre dans un REPL interactif avec complétion par tabulation et historique.
Groupes de commandes
auth
Authentification via OAuth.
| Commande | Description |
|---|---|
login | Connexion OAuth via navigateur (tigris login) |
logout | Se déconnecter de la session en cours |
whoami | Afficher l'utilisateur / l'organisation authentifié·e |
bucket
CRUD des buckets.
| Commande | Description |
|---|---|
list | Lister tous les buckets |
create --name NOM | Créer un bucket |
delete --name NOM --yes | Supprimer un bucket vide (--yes requis) |
info NOM | Obtenir les infos du bucket |
object
Opérations sur les objets (englobe tigris ls/cp/rm/stat).
| Commande | Description |
|---|---|
list --bucket B [--prefix P] [--limit N] | Lister les objets |
put --bucket B --key K (--file F | --text T) | Téléverser un objet |
get --bucket B --key K --output F | Télécharger un objet |
delete --bucket B --key K | Supprimer un objet |
info --bucket B --key K | Métadonnées de l'objet (HEAD / stat) |
cp SRC DST [-r] | Copier. Accepte les URI t3:// ou tigris://. |
presign
URLs limitées dans le temps.
| Commande | Description |
|---|---|
get --bucket B --key K [--expires SEC] | URL de téléchargement présignée |
put --bucket B --key K [--expires SEC] | URL de téléversement présignée |
snapshot
Instantanés ponctuels de buckets – une primitive spécifique à Tigris.
| Commande | Description |
|---|---|
list BUCKET | Lister les instantanés d'un bucket |
take BUCKET [--name N] | Prendre un instantané |
access-key
Identifiants programmatiques restreints – combinez avec snapshot pour l'isolation par agent.
| Commande | Description |
|---|---|
list | Lister toutes les clés d'accès |
create NOM | Créer une nouvelle clé d'accès (secret affiché UNE SEULE FOIS) |
get KEY_ID | Afficher les détails de la clé |
delete KEY_ID --yes | Supprimer définitivement une clé (--yes requis) |
assign KEY_ID --bucket B --role R | Restreindre une clé à un bucket + rôle |
rotate KEY_ID --yes | Pivoter le secret d'une clé (--yes requis) |
iam
Politiques et utilisateurs de l'organisation.
| Commande | Description |
|---|---|
policy list | Lister les politiques IAM |
policy create NOM --document FICHIER | Créer une politique à partir d'un fichier JSON |
user list | Lister les utilisateurs de l'organisation |
user invite EMAIL [--role R] | Inviter un utilisateur |
Formats de sortie
Toutes les commandes prennent en charge deux modes de sortie :
- Lisible par l'humain (par défaut) : tableaux, couleurs, texte formaté
- Lisible par machine (
--json) : enveloppe JSON (ou sortie--format jsondu CLI amont, renvoyée telle quelle)
Pour les agents IA
Lorsque vous utilisez ce CLI de manière programmatique :
- Passez toujours
--jsonpour une sortie analysable. - Vérifiez les codes de retour — 0 pour succès, non nul pour erreur.
- Lisez stderr pour les messages d'erreur.
object cpaccepte les URIt3://bucket/cleoutigris://bucket/cle; les copies côté serveur (t3 → t3) évitent complètement l'aller-retour réseau.presignrenvoie une URL sur stdout en mode humain ; en mode JSON, c'est le champurl.- Pour les actions destructrices : la suppression de bucket, la suppression et la rotation de clé d'accès nécessitent explicitement
--yes; prenez d'abord unsnapshotdu bucket cible, effectuez l'action, puis conservez ou supprimez l'instantané. - Pour l'isolation par agent :
access-key create+access-key assign --bucket B --role Editorpour créer une clé restreinte à un bucket ; révoquez avecaccess-key deleteà la fin de l'exécution de l'agent.
Pourquoi Tigris
- Distribué mondialement. Données placées au plus près de là où elles sont lues.
- Pas de frais de sortie. Les agents qui récupèrent des artefacts depuis n'importe où n'encourent pas de frais de bande passante par région.
- Instantanés + identifiants restreints. Primitives que les fournisseurs génériques compatibles S3 n'offrent pas – la base pour l'isolation par agent.
- Compatible S3. Utile avec des outils compatibles S3, mais ce kit n'est pas un gestionnaire de points de terminaison S3/MinIO/R2/AWS générique.
Version
1.0.0