Arquivos de configuração de aplicativos (legado)
Nesta página
- Visão geral
- Quando usarei arquivos de configuração?
- Estrutura de Diretórios
- Configuração do aplicativo
- Configuração
- Provedores de autenticação
- Configuração
- Funções
- Configuração
- código fonte
- Serviços do MongoDB
- Configuração do serviço
- Configuração do cluster sincronizado
- Regras de coleção do MongoDB (não sincronizadas)
- Serviços externos
- Configuração do serviço
- Regras de serviço
- Webhooks recebidos
- Acionadores
- Configuração
- Hospedagem
- Configuração de metadados
- Values
- Configuração
Observação
Página legado
Esta página descreve o formato de arquivo de configuração legado utilizado pelo realm-cli
versão 1. Para uma descrição atualizada dos arquivos de configuração do Atlas App Services, consulte Configuração da aplicação.
Visão geral
O App Services usa arquivos JSON e arquivos de código-fonte para definir e configurar todos os componentes de um aplicativo. Cada componente possui um esquema de arquivo de configuração específico e cada aplicativo usa uma estrutura de arquivo padrão para organizar os arquivos de configuração.
Quando usarei arquivos de configuração?
Cada aplicação é composta por uma collection de arquivos de configuração, então você utiliza os arquivos de configuração do aplicativo sempre que criar ou modificar uma aplicação. Se você usa a interface do usuário do App Services, raramente lida diretamente com os arquivos de configuração, mas outros métodos de implantação, como o App Services CLI e o GitHub , permitem que você defina e edite os arquivos de configuração diretamente.
Estrutura de Diretórios
A figura a seguir mostra uma visualização de alto nível da estrutura de diretório de um aplicativo:
yourRealmApp/ ├── config.json ├── secrets.json ├── auth_providers/ │ └── <provider name>.json ├── functions/ │ └── <function name>/ │ ├── config.json │ └── source.js ├── services/ │ └── <service name>/ │ ├── config.json │ ├── incoming_webhooks/ │ │ ├── config.json │ │ └── source.js │ └── rules/ │ └── <rule name>.json ├── triggers/ │ └── <trigger name>.json ├── hosting/ │ ├── metadata.json │ └── files/ │ └── <files to host> └── values/ └── <value name>.json
Configuração do aplicativo
As informações de configuração no nível do aplicativo são definidas em um único documento chamado config.json
armazenado no diretório raiz do seu aplicativo.
yourRealmApp/ └── config.json
Configuração
{ "app_id": "", "name": "", "security": { "allowed_request_origins": ["<Origin URL>"] }, "hosting": { "enabled": <boolean>, "custom_domain": "<Custom Domain Name>", "app_default_domain": "<Default Domain Name>" }, "custom_user_data_config": { "enabled": <Boolean> "mongo_service_id": "<MongoDB Service ID>", "database_name": "<Database Name>", "collection_name": "<Collection Name>", "user_id_field": "<Field Name>" } "deployment_model": "<Deployment Model Type>", "location": "<Deployment Cloud Region Name>", "config_version": <Version Number> }
Campo | Descrição | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
app_id String | O App ID do aplicativo. | |||||||||||||||||||
name String | O nome do aplicativo. ObservaçãoLimitações de nome da aplicaçãoOs nomes das aplicações devem ter entre 1 e 32 caracteres e podem conter apenas letras, números, sublinhados e hifens ASCII. | |||||||||||||||||||
security Document | Um documento que contém opções de configuração para recursos de segurança em nível de aplicativo.
| |||||||||||||||||||
hosting Document | Um documento que contém opções de configuração para todos os arquivos hospedados:
| |||||||||||||||||||
config_version Number | A versão do esquema à qual todos os arquivos de configuração do aplicativo estão em conformidade. Este valor é gerado por máquina e normalmente você não deve defini-lo ou modificá-lo manualmente. | |||||||||||||||||||
custom_user_data_config Document | Um documento que contém opções de configuração para dados de usuário personalizados.
| |||||||||||||||||||
deployment_model String | O modelo de sistema do aplicativo . Os seguintes valores são válidos:
| |||||||||||||||||||
location String | O nome da região de cloud na qual a aplicação está implementado.
|
Provedores de autenticação
Os provedores de autenticação são definidos no diretório /auth_providers
do seu aplicativo.
Cada fornecedor é definido em seu próprio arquivo JSON com o nome do fornecedor. Para obter informações detalhadas sobre como configurar e usar um provedor de autenticação específico, consulte a página de referência do provedor.
yourRealmApp/ └── auth_providers/ └── <provider name>.json
Configuração
{ "id": "<Provider ID>", "name": "<Provider Name>", "type": "<Provider Type>", "disabled": <Boolean>, "config": { "<Configuration Option>": <Configuration Value> }, "secret_config": { "<Configuration Option>": "<Secret Name>" }, "metadata_fields": [{ "required": <Boolean>, "name": "Field Name" }] }
Campo | Descrição |
---|---|
id String | Um valor que identifica exclusivamente o provedor de autenticação. O Atlas App Services gera automaticamente um ID exclusivo para um fornecedor quando você o cria. |
name String | O nome do provedor de autenticação. |
type String | O tipo do provedor de autenticação. Opções válidas:
|
config Document | Um documento que contém valores de configuração específicos para o provedor de autenticação. A existência deste campo e seus campos de configuração exatos dependem do tipo de provedor. |
secret_config Document | Um documento em que cada nome de campo é um campo de configuração privada para o provedor e o valor de cada campo é o nome de um segredo que armazena o valor de configuração. |
metadata_fields Array<Document> | Uma array de documentos, onde cada documento define um campo de metadados que descreve o usuário. A existência deste campo e o formato exato de cada documento de campo de metadados dependem do tipo de fornecedor. |
disabled Boolean | Se true , este provedor de autenticação não está habilitado para a sua aplicação e não pode ser usado. |
Funções
As Função de Realm são definidas em um subdiretório do diretório /functions
da sua aplicação. Cada função mapeia para seu próprio subdiretório com o mesmo nome da função.
Cada função é configurada no config.json
e tem seu código-fonte definido no source.js
.
yourRealmApp/ └── functions/ └── <function name>/ ├── config.json └── source.js
Configuração
{ "id": "<Function ID>", "name": "<Function Name>", "private": <Boolean>, "can_evaluate": <Rule Expression>, "disable_arg_logs": <Boolean>, "run_as_system": <Boolean>, "run_as_user_id": "<App Services User ID>", "run_as_user_id_script_source": "<Function Source Code>" }
Campo | Descrição |
---|---|
id String | Um valor que identifica exclusivamente a função. O App Services gera automaticamente um ID exclusivo para uma função quando você a cria. |
name String | O nome da função. O nome deve ser exclusivo entre todas as funções do seu aplicativo. |
private Boolean | Se true , esta função só pode ser acessada a partir de HTTPS endpoints, regras e funções nomeadas. |
can_evaluate Document | Uma expressão de regra que avalia para true quando a função tem permissão para ser executada em resposta a uma determinada solicitação. |
disable_arg_logs Boolean | Se true , o App Services omite os argumentos fornecidos a uma função a partir da entrada do registro de execução da função. |
run_as_system Boolean | Se true , esta função é executada como o usuário do sistema. Isso substitui quaisquer valores definidos para run_as_user_id e run_as_user_id_script_source . |
run_as_user_id String | O ID exclusivo de um usuário do App Services com o qual a função sempre é executada. Não é possível usar com run_as_user_id_script_source . |
run_as_user_id_script_source String | Uma função em string que é executada sempre que a função é chamada e retorna o ID exclusivo de um usuário do App Services com o qual a função é executada. Não é possível usar com run_as_user_id . |
código fonte
exports = function() { // function code };
Serviços do MongoDB
Cada conjunto de dados do MongoDB Atlas vinculada ao seu aplicativo é configurada como um serviço no diretório /services
. Cada fonte de dados mapeia para seu próprio subdiretório com o mesmo nome do serviço.
A configuração de serviço primária para uma fonte de dados do MongoDB Atlas é config.json
, que define parâmetros de conexão e regras de sincronização.
Se a fonte de dados não for um cluster sincronizado ou uma instância de banco de dados federado , você poderá definir as regras em nível de coleção no subdiretório /rules
.
yourRealmApp/ └── services/ └── <MongoDB Service Name>/ ├── config.json └── rules/ └── <rule name>.json
Importante
Os nomes de serviço do MongoDB não são necessariamente iguais ao nome da fonte de dados vinculada no Atlas. Você define o nome de serviço para uma fonte de dados quando a vincula ao seu aplicativo. Para clusters vinculados, o nome padrão do serviço MongoDB é mongodb-atlas
. Para conjunto de dados federadas, o nome do serviço padrão é mongodb-datafederation
.
Configuração do serviço
O arquivo de configuração para vincular um cluster do Atlas deve ter o seguinte formulário:
{ "id": "<Service ID>", "name": "<Service Name>", "type": "mongodb-atlas", "config": { "clusterName": "<Atlas Cluster Name>", "readPreference": "<Read Preference>", "wireProtocolEnabled": <Boolean>, "sync": <Sync Configuration> } }
O arquivo de configuração de um conjunto de dados federado deve ter o seguinte formato:
{ "id": "<Service ID>", "name": "<Service Name>", "type": "datalake", "config": { "dataLakeName": "<Federated database instance name>" } }
Exatamente um de config.dataLakeName
e config.clusterName
é necessário, dependendo se você está vinculando um cluster ou uma fonte de dados federada.
Campo | Descrição | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id String | Uma string que identifica exclusivamente o serviço. O App Services gera automaticamente um ID exclusivo para um serviço MongoDB quando você o cria. | ||||||||||||
name String | O nome do serviço. O nome pode ter no máximo 64 caracteres e só pode conter letras, números, sublinhados e hífens ASCII. Para clusters, o nome padrão é mongodb-atlas . Para conjunto de dados federadas, é mongodb-datafederation . | ||||||||||||
type String | Para o MongoDB Atlas, esse valor é sempre "mongodb-atlas" . Para conjunto de dados federadas, esse valor é "datalake" . | ||||||||||||
config.clusterName String | Obrigatório ao vincular um cluster. O nome do cluster vinculado do serviço no MongoDB Atlas. | ||||||||||||
config.dataLakeName String | Obrigatório ao vincular um conjunto de dados federados. O nome da instância que você deseja vincular ao seu aplicativo. | ||||||||||||
config.readPreference String | O modo de read preference para queries enviadas por meio do serviço. Não disponível para conjunto de dados federados.
| ||||||||||||
config.sync Document | Um documento de configuração que determina se um cluster está sincronizado e, se estiver, define as regras para operações de sincronização no cluster. Não disponível para conjunto de dados federados. Para obter informações detalhadas sobre documentos de configuração de sincronização, consulte Configuração de cluster sincronizado. |
Configuração do cluster sincronizado
O campo config.sync
de config.json
determina se um cluster está sincronizado e, se estiver, define as regras para operações de sincronização no cluster.
{ ..., "config": { ..., "sync": { "state": <Boolean>, "development_mode_enabled": <Boolean>, "database_name": "<Development Mode Database Name>", "partition": { "key": "<Partition Key Field Name>", "type": "<Partition Key Value Type>", "permissions": { "read": <JSON Expression>, "write": <JSON Expression> } } } } }
Campo | Descrição |
---|---|
sync.state Boolean | Se true , a Sincronização estiver ativada para o cluster, o que significa que os aplicativos do cliente podem sincronizar dados no cluster com o banco de dados Realm e que as regras de coleção não sincronizadas não se aplicam. |
sync.development_mode_enabled Boolean | Se true , o modo de desenvolvimento está habilitado para o cluster. Enquanto habilitado, o Atlas App Services armazena objetos sincronizados em um banco de dados específico dentro do cluster e espelha os tipos de objetos nos esquemas de collection desse banco de dados. |
sync.database_name String | O nome do reconhecimento de data center no cluster sincronizado em que o App Services deve armazenar objeto sincronizados. Quando o modo de desenvolvimento está habilitado, o App Services armazena objetos sincronizados nesse banco de dados. Cada Tipo de objeto de Realm é mapeado para sua própria collection no reconhecimento de data center com um esquema que corresponde ao objeto sincronizado. |
sync.partition.key String | O nome do campo chave da partição que mapeia os dados em domínios sincronizados individuais. |
sync.partition.type String | O tipo do valor do campo chave da partição. |
sync.partition.permissions Document | Um documento que define as permissões read e write para o cluster sincronizado. As permissões são definidas com expressões de regra que os App Services avaliam por usuário, por partição. As expressões têm acesso às expansões %%user e %%partition . |
Regras de coleção do MongoDB (não sincronizadas)
Para cluster sincronizado, você pode definir regras em nível de collection que o App Services avalia dinamicamente para cada solicitação. As regras de cada coleção são armazenadas em um arquivo rules.json
no subdiretório de configuração dessa coleção, que é data_sources/<data-source-name>/<database-name>/<collection-name>/
.
Observação
As fontes de dados federadas não suportam regras ou esquemas. Você só pode acessar uma fonte de dados federada a partir de uma função do sistema.
{ "id": "<Rule ID>", "database": "<Database Name>", "collection": "<Collection Name>", "roles": [<Role>], "schema": <Document Schema>, "filters": [<Filter>], }
Campo | Descrição | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id String | Uma string que identifica exclusivamente o trigger. O App Services gera automaticamente um ID exclusivo para um trigger quando você o cria. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
database String | O nome do reconhecimento de data center que contém a collection. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
collection String | O nome da collection. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
roles Array<Document> | Uma matriz de documentos de configuração de funções, com o seguinte formato:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
schema Document | Um esquema de documento. O esquema de nível raiz deve ser um esquema de objeto, que possui o seguinte formato:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filters Array<Document> | Uma array de documentos de configuração de filtros, que têm o seguinte formato:
|
Serviços externos
os serviços de terceiros são definidos no diretório /services
. Cada serviço é mapeado para seu próprio subdiretório com o mesmo nome do serviço.
Cada diretório de serviço contém o seguinte:
config.json
: um arquivo de configuração de serviço/rules
: um subdiretório de configurações de regras de serviço/incoming_webhooks
: um subdiretório de configurações do webhook (se o serviço oferecer suporte a webhooks, ou seja, HTTP, Github ou Twilio)
yourRealmApp/ └── services/ └── <services name>/ ├── config.json ├── incoming_webhooks/ │ ├── config.json │ └── source.js └── rules/ └── <rule name>.json
Configuração do serviço
{ "id": "<Service ID>", "name": "<Service Name>", "type": "<Service Type>", "config": { "<Configuration Option>": <Configuration Value> }, "secret_config": { "<Configuration Option>": "<Secret Name>" }, }
Campo | Descrição |
---|---|
id String | Uma string que identifica exclusivamente o serviço. O Atlas App Services gera automaticamente um ID exclusivo para um serviço quando você o cria. |
name String | O nome do serviço. O nome pode ter no máximo 64 caracteres e só pode conter letras, números, sublinhados e hífens ASCII. |
type String | O tipo do serviço. Opções válidas:
|
config Document | Um documento com campos que são mapeados para opções de configuração adicionais para o serviço. Os campos de configuração exatos dependem do serviço |
secret_config Document | Um documento em que cada nome de campo é um campo de configuração privada para o serviço e o valor de cada campo é o nome de um segredo que armazena o valor de configuração. |
Regras de serviço
As regras para um serviço externo específico são definidas no subdiretório /<service
name>/rules
.
Cada regra é mapeada para seu próprio arquivo JSON com o mesmo nome da regra.
{ "id": "<Rule ID>", "name": "<Rule Name>", "actions": ["<Service Action Name>"], "when": <JSON Rule Expression> }
Campo | Descrição |
---|---|
id String | Uma string que identifica exclusivamente a regra. O App Services gera automaticamente um ID exclusivo para uma regra quando você a cria. |
name String | O nome da regra de serviço. O nome pode ter no máximo 64 caracteres e só pode conter letras, números, sublinhados e hífens ASCII. |
actions Array<String> | Uma lista de ação de serviço às quais a regra se aplica. A ação específica disponível depende do serviço type . |
when Document | Uma expressão de regra que avalia para true quando a regra se aplica a uma determinada solicitação. |
Webhooks recebidos
Os webhooks recebidos para um serviço específico são definidos no subdiretório /<service name>/incoming_webhooks/
.
Os webhooks recebidos usam o mesmo formato de configuração que a função, mas têm parâmetros de configuração adicionais.
Configuração
{ "id": "<Function ID>", "name": "<Function Name>", "private": <Boolean>, "can_evaluate": <Rule Expression>, "disable_arg_logs": <Boolean>, "run_as_system": <Boolean>, "run_as_user_id": "<App Services User ID>", "run_as_user_id_script_source": "<Function Source Code>", "respond_result": <Boolean>, "options": { "httpMethod": "<HTTP Method>", "validationMethod": "<Webhook Validation Method>", "secret": "<Webhook Secret>" } }
Campo | Descrição | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id String | Um valor que identifica exclusivamente a função. O App Services gera automaticamente um ID exclusivo para uma função quando você a cria. | |||||||||||||
name String | O nome da função. O nome deve ser exclusivo entre todas as funções do seu aplicativo. | |||||||||||||
private Boolean | Se true , esta função só pode ser acessada a partir de webhooks, regras e funções nomeadas recebidas. | |||||||||||||
can_evaluate Document | Uma expressão de regra que avalia para true se a função for permitida para executar em resposta a uma determinada solicitação. | |||||||||||||
disable_arg_logs Boolean | Se true , o App Services omite os argumentos fornecidos a uma função a partir da entrada do registro de execução da função. | |||||||||||||
run_as_system Boolean | Se true , a função do webhook é executada como usuário do sistema. Isso substitui quaisquer valores definidos para run_as_user_id e run_as_user_id_script_source . | |||||||||||||
run_as_user_id String | O ID exclusivo de um usuário do App Services com o qual a função sempre é executada. Não é possível usar com run_as_user_id_script_source . | |||||||||||||
run_as_user_id_script_source String | Uma função em string que é executada sempre que o webhook é chamado e retorna o ID exclusivo de um usuário do App Services com o qual a função é executada. Não é possível usar com run_as_user_id . | |||||||||||||
respond_result Boolean | Se true , o App Services inclui o valor de retorno da função do webhook como o corpo da resposta HTTP que envia ao cliente que iniciou a solicitação do webhook. | |||||||||||||
options Document | Um documento que contém opções de configuração para o webhook.
|
código fonte
exports = function() { // webhook function code };
Acionadores
Os Atlas Triggers são definidos no diretório /triggers
da sua aplicação.
Cada trigger é definido em seu próprio arquivo JSON com o mesmo nome do trigger.
yourRealmApp/ └── triggers/ └── <trigger name>.json
Configuração
{ "id": "<Trigger ID>", "name": "<Trigger Name>", "type": "<Trigger Type>", "function_name": "<Trigger Function Name>", "config": { "<Configuration Option>": <Configuration Value> }, "disabled": <Boolean>, }
Campo | Descrição |
---|---|
id String | Uma string que identifica exclusivamente o trigger. O Atlas App Services gera automaticamente um ID exclusivo para um trigger quando você o cria. |
name String | O nome do trigger. O nome pode ter no máximo 64 caracteres e só pode conter letras, números, sublinhados e hífens ASCII. |
type String | O tipo de evento do aplicativo que o trigger escuta. Opções válidas:
|
function_name String | O nome da Função de Realm que o trigger executa sempre que é disparado. O trigger passa automaticamente argumentos para a função dependendo do trigger type . |
config Document | Um documento com campos que são mapeados para opções de configuração adicionais para o trigger. Os campos de configuração exatos dependem do trigger |
disabled Boolean | Se true , o trigger não escutará nenhum evento e não disparará. |
Hospedagem
Os arquivos que você deseja hospedar no Atlas App Services devem ser incluídos no diretório /hosting
do seu aplicativo. Cada arquivo será carregado com os metadados definidos em metadata.json
.
Você pode configurar os metadados para cada arquivo hospedado no metadata.json
. Esse arquivo de configuração de metadados é um array de documentos que cada um corresponde aos atributos de metadados de um único arquivo hospedado.
yourRealmApp/ └── hosting/ ├── metadata.json └── files/ └── <files to host>
Configuração de metadados
[ { "path": "<File Resource Path>", "attrs": [{ "name": "<Attribute Type>", "value": "<Attribute Value>" }] } ]
Campo | Descrição | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
path String | O caminho do recurso do arquivo. | ||||||||||
attrs Array<Document> | Uma array de documentos, onde cada documento representa um único atributo de metadados. Os documentos de atributos têm o seguinte formato: Documento de atributo de metadados
|
Observação
Se você não especificar um atributo de metadados Content-Type
para um arquivo hospedado, o Atlas App Services tentará adicionar automaticamente um atributo Content-Type
a ele com base na extensão do arquivo.
Por exemplo, o App Services adicionaria automaticamente o atributo Content-Type: application/html
ao arquivo myPage.html
.
Values
Os valores são definidos no diretório /values
do seu aplicativo.
Cada valor é definido em seu próprio arquivo JSON nomeado após o valor.
yourRealmApp/ └── values/ └── <value name>.json
Configuração
{ "id": "<Value ID>", "name": "<Value Name>", "from_secret": <boolean>, "value": <Stored JSON Value|Secret Name> }
Campo | Descrição |
---|---|
id String | Uma string que identifica exclusivamente o valor. O Atlas App Services gera automaticamente um ID exclusivo para um valor quando você o cria. |
name String | Um nome exclusivo para o valor. Esse nome é como você se refere ao valor em funções e regras. |
from_secret Boolean | |
value String, Array, or Object | Os dados armazenados que o App Services expõem quando o valor é referenciado. Se Se |