realm-cli
v1 [Obsoleto]
Nesta página
- Visão geral
- Instalação
- Opções gerais
- Autenticação
- Autenticar um usuário CLI
- Desconecte o usuário CLI atual
- Visualizar o usuário atualmente conectado
- apps
- Importar um aplicativo
- Exportar um aplicativo
- Diferença entre alterações pendentes no aplicativo
- Segredos
- Listar todos os segredos
- Crie um segredo
- Atualizar o valor de um segredo
- Remover um segredo
- Estratégias de importação
- Merge
- Substituir
- Substituir por nome
Importante
O Realm CLI está obsoleto
realm-cli
está obsoleto e não receberá recursos futuros ou correções de erros. Em vez disso, use a App Services CLI.
O App Services CLI está disponível em npm
. Para instalar a CLI no seu sistema, verifique se você tem Node.js instalado e, em seguida, execute o seguinte comando em sua shell:
npm install -g atlas-app-services-cli
Visão geral
A Interface da linha de comando do Atlas App Services (realm-cli
) permite a você gerenciar seus aplicativos de forma programática. Com o realm-cli
, você pode criar ou atualizar aplicativos a partir de um diretório local, bem como exportar aplicativos existentes para um diretório local.
Instalação
realm-cli
está disponível em npm
. Para instalar 1 a versão do realm-cli
no seu sistema, verifique se você tem o Node.js instalado e, em seguida, execute o seguinte comando em sua shell:
npm install -g mongodb-realm-cli@^1
Opções gerais
Importante
Verificar sua versão da CLI
Esta página documenta comandos, argumentos e sinalizadores para a versão 1 de realm-cli
. Se você tiver uma versão mais recente do realm-cli
, execute o realm-cli
--help
para obter uma lista de comandos atualizados e exemplos de uso. Para verificar sua versão CLI, use: realm-cli --version
.
As seguintes opções estão disponíveis para todos os comandos do realm-cli
:
--config-path <File System Path>
- Optional.
Se incluído com
realm-cli login
, armazena informações sobre a sessão autenticada em um arquivo no caminho especificado. As informações da sessão incluem seu nome de usuário do MongoDB Cloud, a chave de API programática do MongoDB Atlas e um token de atualização da sessão.Se incluído com qualquer outro comando, autentica a solicitação com a sessão salva no caminho especificado (se existir) em vez do estado de autenticação CLI atual.
Aviso
Como o arquivo de configuração da sessão contém sua chave privada da API programática do MongoDB Atlas, você deve evitar compartilhar esse arquivo involuntariamente.
Autenticação
Autenticar um usuário CLI
Use realm-cli login
para autenticar um usuário do MongoDB Cloud com uma chave de API programática do MongoDB Atlas.
realm-cli login --api-key="<my api key>" --private-api-key="<my private api key>"
--api-key <api key>
Uma chave de API programática pública válida do MongoDB Atlas para a conta do MongoDB Cloud com a qual você deseja fazer login.
--private-api-key <private api key>
Uma chave de API programática MongoDB Atlas privada válida para a conta MongoDB Cloud com a qual você deseja fazer login.
--username <MongoDB Cloud username>
(Obsoleto) O nome de usuário da conta do MongoDB Cloud com a qual você deseja fazer login usando chaves de API pessoais.
Desconecte o usuário CLI atual
Use realm-cli logout
para desconectar o usuário atualmente conectado.
realm-cli logout
Visualizar o usuário atualmente conectado
Use realm-cli whoami
para visualizar detalhes sobre o usuário que está atualmente conectado à CLI, se aplicável.
realm-cli whoami
Se houver um usuário conectado no momento, suas informações serão exibidas na próxima linha no seguinte formato:
<username> [API Key: ********-****-****-****-<last 12 digits of API key>]
Se nenhum usuário estiver conectado, o realm-cli
retornará a seguinte mensagem:
no user info available
apps
Importar um aplicativo
Use realm-cli import
para importar um diretório de aplicativos local para um aplicativo hospedado. Se você importar um diretório para um aplicativo que não existe, o realm-cli
poderá criar o aplicativo para você.
Dica
Você deve ser um Project Owner
para importar um aplicativo. Para obter mais informações, consulte: FunçõesAtlas user .
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.
O ID do aplicativo da sua aplicação.
Se não for especificado, o
realm-cli
tentará utilizar o valor deapp_id
definido em config.json. Seconfig.json
não tiver um valorapp_id
, orealm-cli
solicitará que você crie um novo aplicativo.Observação
Nova aplicação ID do aplicativo
Se você criar um novo aplicativo com
realm-cli
, o App Services gerará uma nova ID do aplicativo e ignorará qualquer valor especificado para o sinalizador--app-id
.
--path <path>
- Optional.
O caminho para o diretório que contém os arquivos que você deseja importar. O diretório deve conter, no mínimo, um arquivo config.json válido.
Se o argumento
path
for omitido, orealm-cli
vai pesquisar um arquivoconfig.json
no diretório da aplicação atual.
--strategy ['merge|replace|replace-by-name']
- Optional.Default: Merge
A estratégia de importação que
realm-cli
deve usar ao reconciliar entidades importadas.
--project-id <MongoDB Cloud Project ID>
- Optional.
O Project ID do projeto Atlas no qual você deseja hospedar um aplicativo recém-criado. Se especificado,
realm-cli
não solicitará que você selecione um projeto ao criar um novo aplicativo.Observação
realm-cli
ignora o valor de--project-id
, a menos que você esteja importando um novo aplicativo.
Exportar um aplicativo
Use realm-cli export
para salvar uma configuração de aplicação em um diretório de aplicativo local.
realm-cli export \ --app-id=myRealmApp-abcde \ --output=path/to/exported/app/dir \ --include-hosting \ --as-template
--output <path>
- Optional.
O caminho do diretório para onde o App Services exportará seu aplicativo.
Se especificado, o
realm-cli
cria um diretório no caminho fornecido e exporta a configuração do aplicativo para o novo diretório. Se um arquivo ou diretório já existir no caminho especificado, a exportação falhará.Observação
Se o argumento
output
for omitido,realm-cli
exportará a configuração do aplicativo para um novo diretório dentro do diretório de trabalho atual.
--include-hosting
- Optional.
Se especificado, exporta todos os ativos estáticos hospedados no diretório
hosting/files
da sua aplicação.
--for-source-control
- Optional.
Se ativado,
realm-cli
exporta a configuração da aplicação sem nenhum campo que entre em conflito com a implantação por meio do controle de origem do Github, incluindo campos comoname
,app_id
,location
edeployment_model
no arquivoconfig.json
, bem como o campoconfig.clusterName
noconfig.json
de quaisquer conjunto de dados do Atlas vinculadas à aplicação.
Diferença entre alterações pendentes no aplicativo
Utilize o realm-cli diff
para retornar um desvio dos arquivos de configuração entre o aplicativo implementado e seu diretório de aplicativo local.
Diff application config files realm-cli diff Diff application config files and hosted files realm-cli diff --include-hosting
O diff se assemelha ao seguinte:
--- 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
Segredos
Listar todos os segredos
Use realm-cli secrets list
para retornar uma lista que contém o Nome e ID de cada Segredo em seu aplicativo.
realm-cli secrets list
A lista de segredos retornada é semelhante ao seguinte:
ID Name 5d5c25415e30c7ef857c6a10 test-secret-please-ignore 5d56dd453b467e2a48a6ec32 some-other-secret
Crie um segredo
Use realm-cli secrets add
para criar um novo segredo com o nome e valor especificados.
realm-cli secrets add --name=mySecret --value=SuperSecretValue!
Atualizar o valor de um segredo
Use realm-cli secrets update
para alterar o valor de um segredo existente em seu aplicativo.
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
Remover um segredo
Use realm-cli secrets remove
para excluir um segredo existente do seu aplicativo.
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
Estratégias de importação
Ao realizar uma importação de aplicativo, existem várias estratégias internas para lidar com entidades existentes.
Todas as importações são padronizadas para a estratégia merge
, a menos que especificado de outra forma.
Merge
realm-cli import --strategy=merge
Na estratégia merge
, as entidades no diretório do aplicativo são adicionadas ao aplicativo de forma não destrutiva. Todas as entidades existentes em um aplicativo permanecerão inalteradas se não forem representadas no diretório de aplicativos importado.
Se o valor id
de uma entidade importada corresponder ao id
de uma entidade existente, a entidade existente será atualizada para corresponder à entidade importada. O App Services atribui valores id
gerados pelo sistema a entidades sem valores id
antes de importá-los como novas entidades.
Se uma entidade for importada com um id
que não corresponda a uma entidade existente, a importação falhará. Importar uma entidade com um valor que não seja ObjectID id
causa um erro.
Observação
Se uma entidade importada tiver um campo id
, o valor deverá ser um ObjectId ou a mesclagem falhará.
Exemplo
Um aplicativo existente tem três funções:
{ "id": <ObjectID 1>, "name": "FunctionA", ... } { "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... }
merge
strategy.{ "id": <ObjectID 1>, "name": "FunctionA_Updated!", ... } { "name": "FunctionD", ... }
Após a importação, o aplicativo tem as seguintes funções:
{ "id": <ObjectID 1>, "name": "FunctionA_Updated!" } { "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... } { "id": <ObjectID 4>, "name": "FunctionD", ... }
FunctionA
foi atualizado com base no arquivo de configuração importado. FunctionB
e FunctionC
não foram incluídos no diretório de aplicativos importados, portanto, permaneceram inalterados após a importação com a estratégia merge
. FunctionD
foi importado como uma nova entidade e foi atribuído um valor id
gerado pelo sistema.
Substituir
realm-cli import --strategy=replace
Na replace
estratégia , se o valor de uma entidade importada id
corresponder ao id
de uma entidade existente, o App Services substituirá a entidade existente pela entidade importada. Se o valor id
de uma entidade importada não corresponder a uma entidade existente, a importação falhará. Se o id
de uma entidade existente não corresponder ao id
de nenhuma entidade importada, o App Services excluirá essa entidade existente.
O App Services gera valores id
para entidades que não têm valores id
antes de importá-las como novas entidades. Importar uma entidade com um valor que não seja ObjectID id
não gera um erro.
Exemplo
Um aplicativo existente tem três funções:
{ "id": <ObjectID 1>, "name": "FunctionA", ... } { "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... }
replace
strategy.{ "id": <ObjectID 1>, "name": "FunctionA_Updated!", ... } { "name": "FunctionD", ... } { "id": "non-ObjectID-value", "name": "FunctionE", ... }
Após a importação, o aplicativo tem as seguintes funções:
{ "id": <ObjectID 1>, "name": "FunctionA_Updated!" } { "id": <ObjectID 4>, "name": "FunctionD", ... } { "id": <ObjectID 5>, "name": "FunctionE", ... }
FunctionA
foi atualizado com base no arquivo de configuração importado. FunctionB
e FunctionC
não foram incluídos no diretório de aplicativos importados, portanto, não estão presentes no aplicativo após a importação com a estratégia replace
. FunctionD
e FunctionE
foram importados como novas entidades e atribuídos valores id
gerados pelo sistema.
Substituir por nome
realm-cli import --strategy=replace-by-name
Na replace-by-name
estratégia , se o valor de uma entidade importada name
corresponder ao name
de uma entidade existente, o App Services substituirá a entidade existente pela entidade importada. Se o valor name
de uma entidade importada não corresponder a uma entidade existente, a entidade se tornará uma nova entidade. Se o name
de uma entidade existente não corresponder ao name
de nenhuma entidade importada, o App Services excluirá essa entidade existente.
Se uma entidade importada não tiver valor name
, realm-cli
lançará um erro.
Exemplo
Um aplicativo existente tem três funções:
{ "id": <ObjectID 1>, "name": "FunctionA", ... } { "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... }
replace
strategy.{ "name": "FunctionZ", ... } { "name": "FunctionB", ... } { "name": "FunctionC", ... }
Após a importação, o aplicativo tem as seguintes funções:
{ "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... } { "id": <ObjectID 4>, "name": "FunctionZ", ... }
Tanto o aplicativo existente quanto o diretório de configuração importado continham funções com os nomes FunctionB
e FunctionC
. Como resultado, ambas as funções mantêm seus valores e nomes id
anteriores. O restante dos valores de ambas as funções reflete os valores carregados dos arquivos de configuração. FunctionA
não foi incluído no diretório de aplicativos importados, portanto, não está presente no aplicativo após a importação com a estratégia replace-by-name
. FunctionZ
foi importado como uma nova entidade e foi atribuído um valor id
gerado pelo sistema.