Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 en npm. Para instalar la versión 1 de realm-cli en tu sistema, asegúrate de tener Node.js instalado y luego ejecuta el siguiente comando en tu shell:

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

Importante

Comprueba la versión de tu CLI

This page documents commands, arguments, and flags for version 1 of realm-cli. If you have a newer version of realm-cli, run realm-cli --help for a list of updated commands and usage examples. To check your CLI version, use: realm-cli --version.

The following options are available for all realm-cli commands:

--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, se autentica la solicitud con la sesión guardada en la ruta especificada (si existe) en lugar del estado de autenticación actual de la CLI.

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.

If specified, automatically respond affirmatively to any yes/no prompts from realm-cli.

Use realm-cli login to authenticate a MongoDB Cloud user with a MongoDB Atlas programmatic API Key.

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

Utiliza realm-cli whoami para ver detalles sobre el usuario que tiene sesión iniciada en 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.

If not specified, realm-cli will attempt to use the value of app_id defined in config.json. If config.json does not have an app_id value, realm-cli prompts you to create a new application.

Nota

New ID de la aplicación

If you create a new application with realm-cli, App Services generates a new App ID and ignores any value that you specify for the --app-id flag.

--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.

If the path argument is omitted, realm-cli will search for a config.json file in the current application directory.

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

The import strategy that realm-cli should use when reconciling imported entities.

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

La 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 ignores the value of --project-id unless you are importing a new application.

--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.

Usa realm-cli export para guardar una configuración de aplicación en un directorio de aplicaciones 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.

If enabled, realm-cli exports the application configuration without any fields that conflict with deployment via GitHub source control, including fields like name, app_id, location, and deployment_model in the config.json file as well as the config.clusterName field in the config.json of any Atlas data sources linked to the application.

--as-template
Optional.

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

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

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

La diferencia se asemeja a la 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

Use realm-cli secrets add to create a new Secret with the specified name and value.

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>

The value of the new Secret.

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>

The name of the Secret to update.

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

El valor de ID del secreto a actualizar.

--value <Secret Value>

El nuevo valor del Secreto.

Use realm-cli secrets remove to delete an existing Secret from your application.

# 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.

All imports default to the merge strategy unless otherwise specified.

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 combinació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 importar, 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ó según el 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 importarlos 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

Bajo la estrategia replace, si el valor id de una entidad importada coincide con la id de una entidad existente, Servicios de aplicación reemplaza la entidad existente con la importada. Si el valor id de una entidad importada no coincide con el de una entidad existente, la importación falla. Si el id de una entidad existente no coincide con el id de ninguna entidad importada, los Servicios de Aplicación eliminan esa entidad existente.

App Services generates id values for entities that lack id values before importing them as new entities. Importing an entity with a non-ObjectID id value does not throw an 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 importar, 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 importar, la aplicación tiene las siguientes funciones:

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

Both the existing application and the imported configuration directory contained functions with the names FunctionB and FunctionC. As a result, both functions retained their previous id values and names. The rest of both function's values reflect the values uploaded from the configuration files. FunctionA was not included in the imported application directory, so it is not present in the app after importing with the replace-by-name strategy. FunctionZ was imported as a new entity and assigned a system-generated id value.

En esta página