https://github.com/dimer47/action1-cli
https://github.com/dimer47/action1-cli
Last synced: 23 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/dimer47/action1-cli
- Owner: dimer47
- Created: 2026-05-01T09:52:37.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-01T10:15:16.000Z (about 2 months ago)
- Last Synced: 2026-05-01T12:15:08.939Z (about 2 months ago)
- Language: Go
- Size: 55.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.fr.md
Awesome Lists containing this project
README
# action1-cli
CLI pour l'API Action1 — gerez vos endpoints, automations, patches et bien plus depuis le terminal.
## Fonctionnalites
- **~140 endpoints API** couverts : endpoints, automations, rapports, deploiement logiciel, vulnerabilites, RBAC, etc.
- **Stockage securise des credentials** : secrets client stockes dans le keychain OS (Keychain macOS, Windows Credential Manager, Linux Secret Service)
- **Multi-profils** : gerez plusieurs comptes et organisations Action1
- **Multi-region** : Amerique du Nord, Europe, Australie
- **Sortie flexible** : table, JSON, CSV, YAML
- **Multi-plateforme** : macOS, Linux, Windows (amd64 et arm64)
- **Pagination automatique** : recuperez tous les resultats avec `--all`
- **Integration MCP** : 50 tools pour Claude Code, VS Code, JetBrains
## Prerequis
- Un compte [Action1](https://www.action1.com) avec un acces API
- Des **credentials API** (Client ID et Client Secret) generes depuis la console Action1
## Installation
### Methode 1 : Telecharger le binaire (recommande)
Rendez-vous sur la page [Releases](https://github.com/dimer47/action1-cli/releases/latest) et telechargez l'archive correspondant a votre plateforme.
Ou en une commande :
**macOS (Apple Silicon — M1/M2/M3/M4) :**
```bash
curl -sL https://github.com/dimer47/action1-cli/releases/latest/download/action1-cli_darwin_arm64.tar.gz | tar xz
sudo mv action1 /usr/local/bin/
```
**macOS (Intel) :**
```bash
curl -sL https://github.com/dimer47/action1-cli/releases/latest/download/action1-cli_darwin_amd64.tar.gz | tar xz
sudo mv action1 /usr/local/bin/
```
**Linux (amd64) :**
```bash
curl -sL https://github.com/dimer47/action1-cli/releases/latest/download/action1-cli_linux_amd64.tar.gz | tar xz
sudo mv action1 /usr/local/bin/
```
**Linux (arm64 — Raspberry Pi, etc.) :**
```bash
curl -sL https://github.com/dimer47/action1-cli/releases/latest/download/action1-cli_linux_arm64.tar.gz | tar xz
sudo mv action1 /usr/local/bin/
```
**Windows :**
Telechargez `action1-cli_windows_amd64.zip` depuis les [Releases](https://github.com/dimer47/action1-cli/releases/latest), decompressez et ajoutez le dossier au `PATH`.
### Methode 2 : Depuis les sources (necessite Go 1.21+)
```bash
go install github.com/dimer47/action1-cli@latest
```
Le binaire sera installe dans `$GOPATH/bin/` (generalement `~/go/bin/`). Assurez-vous que ce repertoire est dans votre `PATH`.
### Methode 3 : Compiler localement
```bash
git clone https://github.com/dimer47/action1-cli.git
cd action1-cli
go build -o action1 .
./action1 version
```
### Verifier l'installation
```bash
action1 version
# action1 version 0.1.0
```
## Mise a jour
La CLI verifie automatiquement les nouvelles versions au demarrage et vous notifie quand une mise a jour est disponible.
```bash
# Mettre a jour vers la derniere version
action1 self-update
# Verifier les mises a jour sans installer
action1 self-update --check
```
La mise a jour est telechargee depuis GitHub Releases et remplace le binaire actuel. Si le binaire est dans un repertoire protege (ex: `/usr/local/bin/`), `sudo` sera demande automatiquement.
## Demarrage rapide
### 1. Generer des credentials API
1. Connectez-vous a la [console Action1](https://app.action1.com)
2. Allez dans **Configuration > API Credentials**
3. Cliquez **Create API Credentials**
4. Copiez le **Client ID** et le **Client Secret**
5. Notez votre region (Amerique du Nord, Europe ou Australie)
### 2. S'authentifier
```bash
action1 auth login --region eu
```
Repondez aux questions :
```
Region: eu (https://app.eu.action1.com/api/3.0)
Client ID: api-key-xxxxx@action1.com # Collez votre Client ID
Client Secret: # Collez votre secret (masque)
Successfully authenticated.
Token expires in 3600 seconds.
```
Les credentials client sont stockes dans le **keychain OS** (chiffre). Les tokens sont stockes localement avec des permissions restreintes (0600).
### 3. Configurer l'organisation par defaut
```bash
# Lister les organisations pour trouver l'ID
action1 org list
# Definir l'organisation par defaut
action1 config set org
```
### 4. Commencer a utiliser
```bash
# Lister vos endpoints
action1 endpoint list
# Verifier le statut des endpoints
action1 endpoint status
# Lister les vulnerabilites
action1 vulnerability list
# Executer un rapport
action1 report data
```
## Configuration
### Fichier de configuration
Situe dans :
- **macOS** : `~/Library/Application Support/action1/config.yaml`
- **Linux** : `~/.config/action1/config.yaml`
- **Windows** : `%APPDATA%\action1\config.yaml`
### Multi-profils
```bash
# Creer un profil "production"
action1 config use-profile production
action1 auth login --region eu
# Creer un profil "staging"
action1 config use-profile staging
action1 auth login --region na
# Voir tous les profils (* = actif)
action1 config list-profiles
# default
# * production
# staging
# Changer de profil
action1 config use-profile production
# Utiliser un profil ponctuellement
action1 endpoint list --profile staging
```
### Stockage des credentials
| OS | Backend | Ce qui est stocke |
|----|---------|-------------------|
| macOS | Keychain | Client ID + Secret |
| Windows | Credential Manager | Client ID + Secret |
| Linux | Secret Service (GNOME Keyring / KWallet) | Client ID + Secret |
| Fallback | Fichier config (0600) | Tout |
Les tokens (access + refresh) sont toujours stockes dans le fichier de configuration avec des permissions restreintes, car ils sont trop volumineux pour certaines implementations de keychain.
Utilisez `--no-keychain` pour forcer le stockage fichier pour tout.
## Utilisation
### Endpoints
```bash
action1 endpoint list # Lister tous les endpoints
action1 endpoint list --all # Tout recuperer (pagination auto)
action1 endpoint list --filter "name eq 'SRV01'" # Filtre OData
action1 endpoint get # Details d'un endpoint
action1 endpoint status # Compteurs online/offline
action1 endpoint update --name "nouveau-nom" # Renommer
action1 endpoint delete # Supprimer (demande confirmation)
action1 endpoint move --to-org # Deplacer vers une autre org
action1 endpoint missing-updates # Patches manquants
action1 endpoint install-url windowsEXE # URL d'installation de l'agent
```
### Groupes d'endpoints
```bash
action1 endpoint-group list # Lister les groupes
action1 endpoint-group create --name "Serveurs" # Creer
action1 endpoint-group members # Lister les membres
action1 endpoint-group add --endpoints a,b,c # Ajouter des endpoints
action1 endpoint-group remove --endpoints a,b # Retirer des endpoints
```
### Automations
```bash
# Planifications
action1 automation schedule list
action1 automation schedule create --data @schedule.json
action1 automation schedule get
action1 automation schedule delete
# Execution immediate
action1 automation instance run --data @automation.json
action1 automation instance results
action1 automation instance stop
# Templates d'actions
action1 automation template list
action1 automation template get
```
### Rapports
```bash
action1 report list # Lister les rapports
action1 report data # Lignes du rapport
action1 report data --all # Toutes les lignes
action1 report export --output-file r.csv
action1 report requery # Re-executer
action1 report drilldown # Details d'une ligne
```
### Depot logiciel
```bash
action1 software list # Lister les packages
action1 software get # Details d'un package
action1 software clone # Cloner un package
action1 software version create --data @v.json
action1 software upload ./installer.exe
```
### Mises a jour (Patches)
```bash
action1 update list # Toutes les MAJ manquantes
action1 update get # MAJ d'un package
action1 update endpoints # Endpoints manquant une MAJ
```
### Inventaire logiciel installe
```bash
action1 installed-software list # Toutes les apps installees
action1 installed-software get # Apps sur un endpoint
action1 installed-software requery # Rafraichir les donnees
```
### Vulnerabilites
```bash
action1 vulnerability list # Logiciels vulnerables
action1 vulnerability get # Details CVE (org)
action1 vulnerability cve # Details CVE (global)
action1 vulnerability endpoints # Endpoints affectes
action1 vulnerability remediation list # Remediations passees
action1 vulnerability remediation create --data @controle.json
```
### Scripts
```bash
action1 script list # Lister les scripts
action1 script create --name "Nettoyage" --type powershell --file cleanup.ps1
action1 script get
action1 script update --file cleanup_v2.ps1
action1 script delete
```
### Utilisateurs & RBAC
```bash
action1 user me # Utilisateur courant
action1 user list # Tous les utilisateurs
action1 user create --email admin@co.com --name "Admin"
action1 role list # Tous les roles
action1 role assign # Assigner un utilisateur
action1 role permissions # Templates de permissions
```
### Organisations
```bash
action1 org list # Lister les orgs
action1 org create --name "Production" # Creer
action1 org update --data '{"name":"Prod"}' # Modifier
action1 org delete # Supprimer
```
### Journal d'audit
```bash
action1 audit list # Evenements d'audit
action1 audit list --from 2026-01-01 --to 2026-01-31
action1 audit get # Details d'un evenement
action1 audit export --output-file audit.json # Exporter
```
### Autres commandes
```bash
action1 search "requete" # Recherche rapide
action1 log get # Logs diagnostiques
action1 enterprise get # Parametres enterprise
action1 subscription info # Info licence
action1 subscription usage # Statistiques d'utilisation
```
## Flags globaux
| Flag | Court | Description | Defaut |
|------|-------|-------------|--------|
| `--org` | `-o` | ID de l'organisation | depuis la config |
| `--region` | `-r` | Region serveur : `na`, `eu`, `au` | depuis la config |
| `--output` | `-O` | Format de sortie : `table`, `json`, `csv`, `yaml` | `table` |
| `--profile` | `-p` | Profil de configuration | depuis la config |
| `--quiet` | `-q` | Supprimer les en-tetes et decorations | `false` |
| `--verbose` | `-v` | Afficher les requetes HTTP | `false` |
| `--no-color` | | Desactiver les couleurs | `false` |
| `--no-keychain` | | Forcer le stockage fichier | `false` |
| `--config` | | Chemin du fichier de config | auto-detecte |
## Autocompletion shell
```bash
# Bash
action1 completion bash > /etc/bash_completion.d/action1
# Zsh (ajoutez a votre .zshrc)
action1 completion zsh > "${fpath[1]}/_action1"
# Fish
action1 completion fish > ~/.config/fish/completions/action1.fish
# PowerShell
action1 completion powershell > action1.ps1
```
## Aliases de commandes
Pour une saisie plus rapide :
| Commande | Alias |
|----------|-------|
| `endpoint` | `ep` |
| `endpoint-group` | `epg` |
| `automation` | `auto` |
| `vulnerability` | `vuln` |
| `software` | `sw` |
| `installed-software` | `isw` |
| `data-source` | `ds` |
| `subscription` | `sub` |
| `report-subscription` | `report-sub` |
## Integration MCP (Claude Code, VS Code, JetBrains)
La CLI integre un serveur [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) qui expose **50 tools** directement utilisables par les assistants IA.
### Configuration
Ajoutez dans vos settings Claude Code (ou VS Code / JetBrains avec l'extension Claude) :
```json
{
"mcpServers": {
"action1": {
"command": "action1",
"args": ["mcp-serve"]
}
}
}
```
> Le serveur MCP utilise automatiquement vos credentials depuis `action1 auth login`. Aucune configuration supplementaire necessaire.
### Tools MCP disponibles
| Tool | Description |
|------|-------------|
| `org-list` | Lister les organisations |
| `org-create` | Creer une organisation |
| `endpoint-list` | Lister les endpoints manages |
| `endpoint-get` | Details d'un endpoint |
| `endpoint-status` | Statut (online/offline) |
| `endpoint-update` | Modifier nom/commentaire |
| `endpoint-delete` | Supprimer un endpoint |
| `endpoint-missing-updates` | Patches manquants |
| `endpoint-group-list/get/members` | Groupes d'endpoints |
| `automation-schedule-list/get/delete` | Planifications |
| `automation-instance-list/get/results/stop` | Instances |
| `automation-template-list` | Templates d'actions |
| `report-list/data/export/requery` | Rapports |
| `software-list/get` | Depot logiciel |
| `update-list/get` | Mises a jour manquantes |
| `installed-software-list/get` | Inventaire logiciel |
| `vulnerability-list/get/endpoints/cve` | Vulnerabilites |
| `script-list/get` | Scripts |
| `data-source-list` | Sources de donnees |
| `user-me/list/get/roles` | Utilisateurs |
| `role-list/get/users/permissions` | Roles RBAC |
| `enterprise-get` | Parametres enterprise |
| `subscription-info/usage` | Licences et usage |
| `search` | Recherche |
| `audit-list/get` | Journal d'audit |
| `log-get` | Logs diagnostiques |
### Exemple d'utilisation dans Claude Code
Une fois configure, vous pouvez simplement dire :
- *"Liste mes endpoints Action1"*
- *"Quelles vulnerabilites affectent mon organisation ?"*
- *"Montre-moi les patches manquants pour l'endpoint X"*
- *"Quelles automations sont en cours ?"*
Claude appellera automatiquement les bons tools MCP.
## Developpement
```bash
# Cloner
git clone https://github.com/dimer47/action1-cli.git
cd action1-cli
# Compiler
go build -o action1 .
# Lancer les tests
go test ./...
# Linter
go vet ./...
```
### Creer une nouvelle release
```bash
git tag v0.1.0
git push origin v0.1.0
# GitHub Actions compile et publie automatiquement
```
## Licence
MIT