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 |
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 |
can_evaluate Document | Uma expressão de regra que avalia para |
disable_arg_logs Boolean | Se |
run_as_system Boolean | Se |
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 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 |
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 é | ||||||||||||
type String | Para o MongoDB Atlas, esse valor é sempre | ||||||||||||
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 | |
sync.development_mode_enabled Boolean | Se |
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 |
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 |
when Document | Uma expressão de regra que avalia para |
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 | |||||||||||||
can_evaluate Document | Uma expressão de regra que avalia para | |||||||||||||
disable_arg_logs Boolean | Se | |||||||||||||
run_as_system Boolean | Se | |||||||||||||
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 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 | |||||||||||||
respond_result Boolean | Se | |||||||||||||
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 |
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 |
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 | Padrão: |
value String, Array, or Object | Os dados armazenados que o App Services expõem quando o valor é referenciado. Se Se |