Learn the "why" behind slow queries and how to fix them in our 2-Part Webinar.
Register now >
Docs Menu
Docs Home
/ /

Amplía la Atlas CLI con complementos personalizados

La Atlas CLI admite plugins que permiten ampliar su funcionalidad con comandos personalizados. Puedes desarrollar plugins en cualquier lenguaje de programación que se compile en un binario autónomo.

Este tutorial te guía a través de la creación de tu primer complemento de Atlas CLI usando Go y la librería Cobra.

Para aprender sobre cómo instalar y administrar complementos existentes, consulte atlas plugin.

Cada plugin de Atlas CLI consta de dos componentes:

  • A manifest.yml archivo que describe el complemento y sus comandos

  • Un binario ejecutable que Atlas CLI invoca cuando un usuario ejecuta un comando de plugin

Cuando ejecutas un comando de plugin, Atlas CLI lee el archivo manifiesto, identifica el binario correcto y lo ejecuta con los argumentos adecuados. El binario del plugin maneja toda la lógica de comandos de forma independiente.

Antes de comenzar, asegúrese de tener instalado lo siguiente:

1

MongoDB proporciona un repositorio de complementos de ejemplo que puede utilizar como punto de partida:

git clone https://github.com/mongodb/atlas-cli-plugin-example.git
cd atlas-cli-plugin-example
2

El plugin de ejemplo tiene la siguiente estructura:

atlas-cli-plugin-example/
├── cmd/
│ └── plugin/
│ └── main.go
├── internal/
├── manifest.template.yml
├── go.mod
├── go.sum
├── Makefile
├── .goreleaser.yaml
└── .github/
└── workflows/
└── release.yml
3

Abra manifest.template.yml para ver la configuración del complemento:

name: atlas-cli-plugin-example
description: this is an example plugin
version: $VERSION
github:
owner: $GITHUB_REPOSITORY_OWNER
name: $GITHUB_REPOSITORY_NAME
binary: $BINARY
commands:
example:
description: Root command of the atlas cli plugin example
aliases:
- example-alias-1
- example-alias-2

manifest.template.yml Define el archivo de manifiesto para el complemento. El manifiesto le indica a la CLI de Atlas qué comandos proporciona el complemento y qué binario ejecutar.

4

Abre cmd/plugin/main.go para ver la implementación del plugin:

package main
import (
"fmt"
"os"
"github.com/spf13/cobra"
)
func main() {
rootCmd := &cobra.Command{
Use: "example",
Short: "An example Atlas CLI plugin",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("Hello from the Atlas CLI plugin!")
},
}
if err := rootCmd.Execute(); err != nil {
os.Exit(1)
}
}

El plugin utiliza Cobra para definir comandos. Cuando la Atlas CLI ejecuta el plugin, pasa el nombre del comando y los argumentos al binario.

5

Desde la raíz del repositorio, compila el binario del plugin y genera el archivo manifiesto:

go build -o bin/binary ./cmd/plugin
BINARY=binary VERSION=1.0.0 \
GITHUB_REPOSITORY_OWNER=$(git remote get-url origin | sed 's/.*[:/]\(.*\)\/.*/\1/') \
GITHUB_REPOSITORY_NAME=$(basename -s .git $(git remote get-url origin)) \
envsubst < manifest.template.yml > manifest.yml

Crea el directorio del plugin y copia los archivos. El directorio predeterminado del plugin depende de tu sistema operativo:

PLUGIN_DIR=~/Library/Application\ Support/atlascli/plugins/atlas-cli-plugin-example
mkdir -p "$PLUGIN_DIR"
cp manifest.yml bin/binary "$PLUGIN_DIR/"
PLUGIN_DIR=~/.config/atlascli/plugins/atlas-cli-plugin-example
mkdir -p "$PLUGIN_DIR"
cp manifest.yml bin/binary "$PLUGIN_DIR/"
6

Verifique que el plugin funcione:

atlas example

La salida es similar a la siguiente:

Hello from the Atlas CLI plugin!

Para crear tu propio plugin, modifica el ejemplo o empieza desde cero:

  1. Actualiza manifest.template.yml con el nombre, la descripción y los comandos de tu plugin.

  2. Implementa tu lógica de comando en Go (o en cualquier lenguaje que compile a un binario autónomo).

  3. Asegúrate de que tu nombre de binario coincide con el campo binary en manifest.template.yml.

Importante

Los nombres de comandos en tu archivo manifest no deben generar conflictos con los comandos existentes de Atlas CLI ni con los comandos de otros plugins instalados.

Para distribuir tu plugin de manera que otras personas puedan instalarlo con el comando atlas plugin install, sigue estos pasos:

  1. Haga el hosting de su plugin en un repositorio de GitHub.

  2. Utiliza GoReleaser o una herramienta similar para crear lanzamientos en GitHub con binarios compilados para múltiples plataformas. El repositorio de ejemplo incluye una configuración de .goreleaser.yaml y un flujo de trabajo de GitHub Actions para lanzamientos automatizados.

  3. Cree una etiqueta de lanzamiento siguiendo el versionado semántico (por ejemplo, v1.0.0).

Después de crear una versión de GitHub, los usuarios pueden instalar tu plugin:

atlas plugin install <github-owner>/<repository-name>

Si bien recomendamos Go con Cobra, puedes escribir plugins en cualquier lenguaje que compile a un binario ejecutable autónomo. Para un ejemplo de un plugin escrito en otro lenguaje, consulta el plugin de Rust de ejemplo repositorio en Github.

Tu plugin debe cumplir con los siguientes requisitos:

  • Su binario debe aceptar el nombre del comando como el primer argumento.

  • Su binario debe ser un ejecutable autónomo (sin dependencias de tiempo de ejecución externas).

  • El campo binary en manifest.yml debe coincidir con el nombre del archivo binario.

Volver

Ejecute comandos con la API de administración

En esta página