Docs Menu
Docs Home
/ /
Realm CLI

realm-cli v1

Importante

La CLI de Realm está obsoleta

realm-cli Está obsoleto y no recibirá futuras funciones ni correcciones de errores. En su lugar, utilice la CLI de App Services.

La CLI de App Services está disponible en npm. Para instalar la CLI en su sistema, asegúrese de tener Node.js instalado y luego ejecute el siguiente comando en su shell:

npm install -g atlas-app-services-cli

La interfaz de línea de comandos de Atlas App Services (realm-cli) le permite administrar sus aplicaciones mediante programación. Con realm-cli, puede crear o actualizar aplicaciones desde un directorio local, así como exportar aplicaciones existentes a un directorio local.

realm-cli Está disponible npm en. Para instalar la versión 1 de realm-cli en su sistema, asegúrese de tener instalado Node.js y ejecute el siguiente comando en su shell:

npm install -g mongodb-realm-cli@^1

Importante

Comprueba tu versión de CLI

Esta página documenta los comandos, argumentos y marcas de la versión 1 de realm-cli. Si tiene una versión más reciente de realm-cli, ejecute realm-cli --help para obtener una lista de comandos actualizados y ejemplos de uso. Para comprobar su versión de CLI, utilice: realm-cli --version.

Las siguientes opciones están disponibles para todos los comandos realm-cli:

--config-path <File System Path>
Optional.

Si se incluye con realm-cli login, almacena información sobre la sesión autenticada en un archivo en la ruta especificada. La información de la sesión incluye tu nombre de usuario de MongoDB Cloud, API Key programática de MongoDB Atlas y un token de actualización de sesión.

Si se incluye con cualquier otro comando, autentica la solicitud con la sesión guardada en la ruta especificada (si existe) en lugar del estado de autenticación CLI actual.

Advertencia

Dado que el archivo de configuración de la sesión contiene su clave privada de API programática de MongoDB Atlas, debe evitar compartir este archivo sin intención.

--disable-color
Optional.

Si se especifica, suprime todo el color del texto en la salida realm-cli.

De forma predeterminada, algunos resultados, como errores y diferencias de importación, se colorean. Use esta opción si desea evitar este comportamiento.

--yes
Optional.

Si se especifica, responderá automáticamente de forma afirmativa a cualquier solicitud de sí/no de realm-cli.

Utilice realm-cli login para autenticar un usuario de MongoDB Cloud con una clave API programática de MongoDB Atlas.

realm-cli login --api-key="<my api key>" --private-api-key="<my private api key>"
--api-key <api key>

Una clave API programática pública de MongoDB Atlas válida para la cuenta de MongoDB Cloud con la que desea iniciar sesión.

--private-api-key <private api key>

Una clave API programática privada válida de MongoDB Atlas para la cuenta de MongoDB Cloud con la que desea iniciar sesión.

--username <MongoDB Cloud username>

(Obsoleto) El nombre de usuario de la cuenta de MongoDB Cloud con la que desea iniciar sesión usando claves API personales.

Utilice realm-cli logout para cerrar la sesión del usuario que ha iniciado sesión actualmente.

realm-cli logout

Utilice realm-cli whoami para ver detalles sobre el usuario que está actualmente conectado a la CLI, si corresponde.

realm-cli whoami

Si hay un usuario actualmente conectado, su información se mostrará en la siguiente línea en el siguiente formato:

<username> [API Key: ********-****-****-****-<last 12 digits of API key>]

Si ningún usuario ha iniciado sesión, realm-cli devolverá el siguiente mensaje:

no user info available

Utilice realm-cli import para importar un directorio de aplicación local a una aplicación alojada. Si importa un directorio a una aplicación que no existe, realm-cli puede crear la aplicación por usted.

Tip

Debes ser un Project Owner para importar una aplicación. Para obtener más información, consulta: Roles de usuario de Atlas.

realm-cli import \
--app-id=myapp-abcde \
--path=./path/to/app/dir \
--strategy=merge \
--include-hosting \
--include-dependencies
--app-id <App Services Application ID>
Optional.

El ID de la aplicación de su aplicación.

Si no se especifica, realm-cli intentará usar el valor de app_id definido en config.json. Si config.json no tiene un app_id valor, lerealm-cli solicitará que cree una nueva aplicación.

Nota

Nuevas ID de aplicaciones de aplicaciones

Si crea una nueva aplicación con realm-cli, App Services genera un nuevo ID de aplicación e ignora cualquier valor que especifique para el indicador --app-id.

--path <path>
Optional.

La ruta al directorio que contiene los archivos que deseas importar. El directorio debe contener, como mínimo, un archivo config.json válido.

Si se omite el argumento path, realm-cli buscará un archivo config.json en el directorio de la aplicación actual.

--strategy ['merge|replace|replace-by-name']
Optional.
Default: Merge

La estrategia de importación que realm-cli debe utilizar al conciliar entidades importadas.

--project-id <MongoDB Cloud Project ID>
Optional.

El Project ID del proyecto Atlas en el que desea alojar una aplicación recién creada. Si se especifica, realm-cli no le solicitará que seleccione un proyecto al crear una nueva aplicación.

Nota

realm-cli ignora el valor de a --project-id menos que esté importando una nueva aplicación.

--include-hosting
Optional.

Si se especifica, carga e implementa cualquier activo estático en el directorio /hosting/files de su aplicación.

--include-dependencies
Optional.

Si se especifica, carga e implementa cualquier dependencia externa incluida en un archivo node_modules en el directorio /functions de su aplicación.

Utilice realm-cli export para guardar una configuración de aplicación en un directorio de aplicación local.

realm-cli export \
--app-id=myRealmApp-abcde \
--output=path/to/exported/app/dir \
--include-hosting \
--as-template
--app-id <App Services Application ID>
Optional.

El ID de la aplicación de su aplicación.

--output <path>
Optional.

La ruta del directorio donde App Services exportará su aplicación.

Si se especifica, realm-cli crea un directorio en la ruta indicada y exporta la configuración de la aplicación al nuevo directorio. Si ya existe un archivo o directorio en la ruta especificada, la exportación fallará.

Nota

Si se omite el argumento output, realm-cli exportará la configuración de la aplicación a un nuevo directorio dentro del directorio de trabajo actual.

--include-hosting
Optional.

Si se especifica, exporta todos los activos estáticos alojados en el directorio hosting/files de su aplicación.

--for-source-control
Optional.

Si está habilitado, realm-cli exporta la configuración de la aplicación sin ningún campo que entre en conflicto con la implementación a través del control de origen de GitHub, incluidos campos como name, app_id, location y deployment_model en el archivo config.json, así como el campo config.clusterName en el config.json de cualquier fuente de datos de Atlas vinculada a la aplicación.

--as-template
Optional.

Si está habilitado, realm-cli exporta la configuración de la aplicación sin ningún valor de ID de servicio, incluido el ID de la aplicación. Esto simplifica la creación de nuevas aplicaciones a partir de una configuración exportada.

Utilice realm-cli diff para devolver una diferencia de los archivos de configuración entre la aplicación implementada y su directorio de aplicación local.

# Diff application config files
realm-cli diff
# Diff application config files and hosted files
realm-cli diff --include-hosting

La diferencia se parece a lo siguiente:

--- functions/oldFunctionName/config.json
+++ functions/oldFunctionName/config.json
@@ -1,6 +1 @@
-{
- "id": "5d4c6a5cd28e555496a705da",
- "name": "oldFunctionName",
- "private": false
-}
--- functions/newFunctionName/config.json
+++ functions/newFunctionName/config.json
@@ -1 +1,6 @@
+{
+ "id": "5d4c6a5cd28e555496a705da",
+ "name": "newFunctionName",
+ "private": false
+}
Modified Files:
* /index.html
* /auth/confirmEmail.html
* /auth/resetPassword.html
--include-hosting
Optional.

Si se especifica, la diferencia incluye una lista de archivos en el directorio hosting/files de la aplicación que son diferentes de los archivos implementados por su aplicación.

Utiliza realm-cli secrets list para devolver una lista que contenga el nombre e ID de cada Secret en tu aplicación.

realm-cli secrets list

La lista de secretos devuelta se parece a la siguiente:

ID Name
5d5c25415e30c7ef857c6a10 test-secret-please-ignore
5d56dd453b467e2a48a6ec32 some-other-secret

Utilice realm-cli secrets add para crear un nuevo secreto con el nombre y valor especificados.

realm-cli secrets add --name=mySecret --value=SuperSecretValue!
--name <Secret Name>

Un nombre único para el nuevo secreto. Si un secreto ya tiene el nombre especificado, la operación fallará.

--value <Secret Value>

El valor del nuevo Secreto.

Utilice realm-cli secrets update para cambiar el valor de un secreto existente en su aplicación.

# Update a Secret by name
realm-cli secrets update --secret-name=mySecret --value=NewSecretValue
realm-cli secrets update --name=mySecret --value=NewSecretValue
# Update a Secret by name
realm-cli secrets update --secret-id=5ba9c5c2e707c02b38031412 --value=NewSecretValue
realm-cli secrets update --id=5ba9c5c2e707c02b38031412 --value=NewSecretValue
--secret-name <Secret Name>
--name <Secret Name>

El nombre del Secreto a actualizar.

--secret-id <Secret ID>
--id <Secret ID>

El valor de ID del secreto a actualizar.

--value <Secret Value>

El nuevo valor del Secreto.

Utilice realm-cli secrets remove para eliminar un secreto existente de su aplicación.

# Remove a Secret by name
realm-cli secrets remove --secret-name=mySecret
realm-cli secrets remove --name=mySecret
# Remove a Secret by ID
realm-cli secrets remove --secret-id=5ba9c5c2e707c02b38031412
realm-cli secrets remove --id=5ba9c5c2e707c02b38031412
--secret-name <Secret Name>
--name <Secret Name>

El nombre del secreto que deseas eliminar de tu aplicación.

--secret-id <Secret ID>
--id <Secret ID>

El valor ID del Secreto que se debe remover de tu aplicación.

Al realizar una importación de aplicaciones, existen múltiples estrategias integradas para manejar entidades existentes.

Todas las importaciones tienen como opción predeterminada la estrategia merge a menos que se especifique lo contrario.

realm-cli import --strategy=merge

Con la estrategia merge, las entidades del directorio de la aplicación se añaden a la aplicación de forma no destructiva. Las entidades existentes en una aplicación se conservan si no están representadas en el directorio de la aplicación importada.

Si el valor id de una entidad importada coincide con el id de una entidad existente, esta se actualizará para que coincida con la entidad importada. App Services asigna valores id generados por el sistema a las entidades sin valores id antes de importarlas como nuevas entidades.

Si se importa una entidad con un valor id que no coincide con una entidad existente, la importación fallará. Importar una entidad con un valor distinto de ObjectID id genera un error.

Nota

Si una entidad importada tiene un campo id, el valor debe ser un ObjectID o la fusión fallará.

Ejemplo

Una aplicación existente tiene tres funciones:

{ "id": <ObjectID 1>, "name": "FunctionA", ... }
{ "id": <ObjectID 2>, "name": "FunctionB", ... }
{ "id": <ObjectID 3>, "name": "FunctionC", ... }
A local application directory is imported with the merge strategy.
The directory contains configuration files for the following functions:
{ "id": <ObjectID 1>, "name": "FunctionA_Updated!", ... }
{ "name": "FunctionD", ... }

Después de la importación, la aplicación tiene las siguientes funciones:

{ "id": <ObjectID 1>, "name": "FunctionA_Updated!" }
{ "id": <ObjectID 2>, "name": "FunctionB", ... }
{ "id": <ObjectID 3>, "name": "FunctionC", ... }
{ "id": <ObjectID 4>, "name": "FunctionD", ... }

FunctionA se actualizó en función de su archivo de configuración importado. FunctionB y FunctionC no se incluyeron en el directorio de la aplicación importada, por lo que permanecieron sin cambios después de importar con la estrategia merge. FunctionD se importó como una nueva entidad y se le asignó un valor id generado por el sistema.

realm-cli import --strategy=replace

Con la estrategia replace, si el valor id de una entidad importada coincide con el id de una entidad existente, App Services reemplaza la entidad existente por la entidad importada. Si el valor id de una entidad importada no coincide con una entidad existente, la importación falla. Si el valor id de una entidad existente no coincide con el id de ninguna entidad importada, App Services elimina esa entidad existente.

App Services genera valores id para las entidades que carecen de valores id antes de importarlas como nuevas entidades. Importar una entidad con un valor id distinto de ObjectID no genera ningún error.

Ejemplo

Una aplicación existente tiene tres funciones:

{ "id": <ObjectID 1>, "name": "FunctionA", ... }
{ "id": <ObjectID 2>, "name": "FunctionB", ... }
{ "id": <ObjectID 3>, "name": "FunctionC", ... }
A local application directory is imported with the replace strategy.
The directory contains configuration files for the following functions:
{ "id": <ObjectID 1>, "name": "FunctionA_Updated!", ... }
{ "name": "FunctionD", ... }
{ "id": "non-ObjectID-value", "name": "FunctionE", ... }

Después de la importación, la aplicación tiene las siguientes funciones:

{ "id": <ObjectID 1>, "name": "FunctionA_Updated!" }
{ "id": <ObjectID 4>, "name": "FunctionD", ... }
{ "id": <ObjectID 5>, "name": "FunctionE", ... }

FunctionA se actualizó en función de su archivo de configuración importado. FunctionB y FunctionC no se incluyeron en el directorio de la aplicación importada, por lo que no están presentes en la aplicación después de importar con la estrategia replace. FunctionD y FunctionE se importaron como nuevas entidades y se les asignaron valores id generados por el sistema.

realm-cli import --strategy=replace-by-name

Con la estrategia replace-by-name, si el valor name de una entidad importada coincide con el name de una entidad existente, App Services reemplaza la entidad existente por la entidad importada. Si el valor name de una entidad importada no coincide con una entidad existente, la entidad se convierte en una nueva. Si el valor name de una entidad existente no coincide con el name de ninguna entidad importada, App Services elimina esa entidad existente.

Si una entidad importada no tiene valor name, realm-cli generará un error.

Ejemplo

Una aplicación existente tiene tres funciones:

{ "id": <ObjectID 1>, "name": "FunctionA", ... }
{ "id": <ObjectID 2>, "name": "FunctionB", ... }
{ "id": <ObjectID 3>, "name": "FunctionC", ... }
A local application directory is imported with the replace strategy.
The directory contains configuration files for the following functions:
{ "name": "FunctionZ", ... }
{ "name": "FunctionB", ... }
{ "name": "FunctionC", ... }

Después de la importación, la aplicación tiene las siguientes funciones:

{ "id": <ObjectID 2>, "name": "FunctionB", ... }
{ "id": <ObjectID 3>, "name": "FunctionC", ... }
{ "id": <ObjectID 4>, "name": "FunctionZ", ... }

Tanto la aplicación existente como el directorio de configuración importado contenían funciones con los nombres FunctionB y FunctionC. Como resultado, ambas funciones conservaron sus valores y nombres id anteriores. El resto de los valores de ambas funciones reflejan los valores cargados desde los archivos de configuración. FunctionA no se incluyó en el directorio de la aplicación importada, por lo que no está presente en la aplicación después de importar con la estrategia replace-by-name. FunctionZ se importó como una nueva entidad y se le asignó un valor id generado por el sistema.