basaltic es el cliente de línea de comandos. Es el camino más corto para conducir la plataforma desde un terminal o un trabajo de CI, y habla la misma API que los SDK.
Instalar
El script elige la compilación para su plataforma, la verifica con la suma de comprobación publicada con la versión, e instala en /usr/local/bin cuando es escriturable o ~/.local/bin de lo contrario. Léalo primero si lo prefieres — es install.sh en el repositorio, y esa URL sirve el mismo archivo.
Las compilaciones para Linux, macOS y Windows en amd64 y arm64 están en la página releases, y go install github.com/basaltic-sh/cli@latest funciona si tienes Go.
Para actualizar:
La CLI menciona cuando hay una versión más nueva disponible y nunca la instala por usted. El aviso va a stderr, solo en un terminal, y nunca cuando la salida es JSON o YAML — por lo que no puede aterrizar en algo que se está analizando. BASALTIC_NO_UPDATE_CHECK=1 lo desactiva.
Los argumentos posicionales son los identificadores del recurso, en el orden en que la ruta de la API los toma. Todo lo demás es una bandera.
Los nombres de servicio más largos tienen alias cortos, y cada recurso acepta su plural: basaltic lb es basaltic loadbalancer, basaltic net es basaltic network, y basaltic compute instances list es basaltic compute instance list. Las formas a continuación son las que se deben escribir.
Un servicio con un solo recurso del mismo nombre deja caer la palabra intermedia: basaltic certificate list, no basaltic certificate certificate list.
basaltic --help lista los servicios; basaltic <service> --help y basaltic <service> <resource> --help bajan desde allí.
Autenticación
El descubrimiento de regiones funciona antes de iniciar sesión:
Estos comandos utilizan el catálogo público region sin enviar credenciales ni una selección de cuenta. Inicie sesión para administrar sus recursos.
La configuración se encuentra en un perfil en ~/.config/basaltic/config.yaml. Los tokens no: se escriben en ~/.config/basaltic/credentials.yaml, modo 0600, por lo que un archivo de configuración permanece seguro para copiar entre máquinas o verificar en archivos de puntos.
basaltic login te inicia sesión como una persona — imprime una URL donde apruebas la CLI y eliges una organización, te muestra un código para pegar en el terminal, y almacena un token de corta duración que actúa como tú. Esto es lo que le permite crear una organización, aceptar una invitación o cambiar de organización desde la CLI; una cuenta de servicio no puede hacer nada de eso. El navegador no tiene que estar en la misma máquina, por lo que esto funciona a través de SSH. Consulte iniciar sesión como usted mismo.
Los comandos de espacio de trabajo administran los recursos de la organización, como usuarios, grupos, cuentas y directivas de la organización. Los comandos de IAM administran roles, cuentas de servicio, políticas y sesiones en la cuenta seleccionada. Estos son dominios de políticas separados, aunque ambos servicios son globales.
Un inicio de sesión personal no otorga automáticamente acceso a los recursos de la cuenta a una persona, incluido el propietario de la organización.Utilice un rol asignado y la API AssumeRole para trabajar con la cuenta.Cambiar la cuenta de un perfil por sí solo no puede cambiar el alcance de la cuenta de una credencial. Acceso a cuenta.
Para un programa que tiene que ejecutarse sin usted, utilice una tecla de acceso de una
Cuenta de servicio en su lugar:
Esto almacena la clave en el perfil activo y la verifica antes de informar el éxito. El par de claves sigue siendo su única credencial de larga duración: la CLI la intercambia por un token de corta duración en cada ejecución y lo almacena en caché por separado.
Prefiere almacenar una clave sobre pasar --api-key en cada invocación. La bandera pone el secreto en el historial de su shell y en la lista de procesos de cada usuario de la máquina.
Producto
--output text es la opción por defecto y imprime tablas. --output json y --output yaml imprimen los nombres de los campos propios de la API, para la canalización.
Paging
Los comandos de lista devuelven una página y dicen cuando hay más. --all recorre todas las páginas:
Creando cosas nuevas
Los campos escalares son banderas. Cualquier cosa estructurada toma JSON, porque un objeto anidado no tiene una representación plana honesta:
Para cualquier cosa más grande, --from-file toma todo el cuerpo como JSON o YAML, y los indicadores sobrescriben los campos individuales de él:
El archivo contiene los campos requeridos — networks entre ellos — y las banderas al lado de él sobrescriben las claves individuales.
Reintentar una creación
Una creación que ha superado el tiempo de espera puede haber tenido éxito, por lo que la CLI no repetirá una por sí sola. Dale una clave y se vuelve seguro volver a intentarlo — la plataforma devuelve el resultado original en lugar de crear un segundo recurso:
Banderas globales
--output json es el que se debe usar en los scripts.
--account-id es requerido para llegar a otra cuenta para la que está autorizado. Sin ella, los recursos de esa cuenta responden “no encontrado” en lugar de “no permitido” — una cuenta en la que no estás actuando es una en la que no puedes ver los recursos.
Las variables de entorno sobrescriben el perfil: BASALTIC_API_KEY, BASALTIC_REGION, BASALTIC_ACCOUNT_ID, BASALTIC_PROFILE. Una bandera anula ambas.
Configuración
Las claves son region, api_key, account_id y domain. Use --profile para escribir en un perfil distinto al activo:
Los archivos están en ~/.config/basaltic/, respetando XDG_CONFIG_HOME.
Consola de serie
Abre una consola serie interactiva. El terminal se pone en modo raw, por lo que cada tecla llega al invitado — incluyendo Ctrl-C, que es usualmente para lo que se quiere. Presione Ctrl-] para desconectarse.
Es un terminal en vivo, no un registro. Para lo que la instancia ya ha impreso: