Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/ /

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.

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.

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.

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

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
config.json
{
"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ção

Limitações de nome da aplicação

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

"security": {
"allowed_request_origins": ["<Origin URL>"]
}
Nome do campo
Descrição
allowed_request_origins
Array<String>

Uma array de URL das quais as solicitações de entrada podem se originar. Se você definir quaisquer origens de solicitação permitidas, o Atlas App Services bloqueará qualquer solicitação de entrada de uma origem que não esteja listada.

As origens da solicitação são URL com o seguinte formato:

<scheme>://<host>[:port]
hosting
Document

Um documento que contém opções de configuração para todos os arquivos hospedados:

"hosting": {
"enabled": <boolean>,
"custom_domain": "<Custom Domain Name>",
"app_default_domain": "<Default Domain Name>"
}
Nome do campo
Descrição
enabled
Boolean
Se true, indica que seu aplicativo pode hospedar arquivos estáticos.
custom_domain
String
Um nome de domínio personalizado para os arquivos hospedados do seu aplicativo.
app_default_domain
String
O domínio padrão para os arquivos hospedados do seu aplicativo. O App Services define automaticamente esse valor e você não pode alterá-lo.
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.

"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>"
}
Nome do campo
Descrição
enabled
Boolean
Se true, o App Services associa cada usuário a um documento que contém seus dados armazenados na coleção especificada.
mongo_service_id
String
O ID de serviço do conjunto de dados do MongoDB Atlas que contém os dados personalizados do usuário. Você pode encontrar este valor no campo id do arquivo de configuração do serviço.
database_name
String
O nome do reconhecimento de data center que contém a collection de dados de usuário personalizada.
collection_name
String
O nome da collection que contém os dados de usuário personalizados.
user_id_field
String
O nome do campo em cada documento de dados personalizado que contém o ID do usuário da aplicação que o documento descreve.
deployment_model
String

O modelo de sistema do aplicativo . Os seguintes valores são válidos:

Modelo de sistema
Valor
"GLOBAL"
"LOCAL"
location
String

O nome da região de cloud na qual a aplicação está implementado.

  • Os aplicativos locais processam todos
    solicitações de aplicação e gravações de reconhecimento de data center nessa região.
  • Aplicação global processa todas as gravações de reconhecimento de data center nessa região, mas atendem a outras solicitações de aplicação na região de implantação mais próxima.

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
<provider name>JSON
{
"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:

  • "anon-user"

  • "local-userpass"

  • "api-key"

  • "oauth2-apple"

  • "oauth2-google"

  • "oauth2-facebook"

  • "custom-token"

  • "custom-function"

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.

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
config.json
{
"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.
source.js
exports = function() {
// function code
};

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.

O arquivo de configuração para vincular um cluster do Atlas deve ter o seguinte formulário:

config.json
{
"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:

config.json
{
"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.

Modo
Descrição
Principal
Atlas App Services roteia todas as operações de leitura para o nó primário do conjunto de réplicas atual. Este é o modo de read preference padrão.
Atlas App Services roteia todas as operações de leitura para o nó primário do conjunto de réplicas atual, se ele estiver disponível. Se o primário não estiver disponível, como durante um failover automático, as solicitações de leitura serão roteadas para um nó secundário .
Atlas App Services roteia todas as operações de leitura para um dos nós secundários do conjunto de réplicas atual.
Atlas App Services roteia todas as operações de leitura para um dos nós secundários disponíveis do conjunto de réplicas. Se nenhum secundário estiver disponível, as solicitações de leitura serão roteadas para o conjunto de réplicas primário .
Atlas App Services roteia as operações de leitura para o membro do conjunto de réplicas que tenha a menor latência de rede em relação ao cliente.
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.

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.json
{
...,
"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 .

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.

<database.collection>.json
{
"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:

{
"name": "<Role Name>",
"apply_when": { Expression },
"document_filters": {
"read": { Expression },
"write": { Expression }
},
"read": { Expression },
"write": { Expression },
"insert": { Expression },
"delete": { Expression },
"search": <Boolean>,
"fields": {
"<Field Name>": {
"read": { Expression },
"write": { Expression },
"fields": { Embedded Fields }
},
...
},
"additional_fields": {
"read": { Expression },
"write": { Expression }
}
}
Campo
Descrição
name
string
O nome da role. Os nomes de roles identificam e distinguem entre roles na mesma collection. Limitado a 100 caracteres ou menos.
apply_when
object

Uma expressão avaliada como verdadeira quando essa role se aplica a um usuário.

Quando o Device Sync (modo flexível) não está ativado, o App Services atribui uma função por documento. Quando o Realm Mobile Sync (modo flexível) está habilitado, o App Services atribui funções por collection e por sessão, ou seja, para cada collection sincronizada quando um cliente abre uma conexão de sincronização.

Para atribuir uma função, o App Services avalia o apply_when de cada função potencial até que uma seja avaliada como verdadeira. Funções possíveis são quaisquer funções especificadas no arquivo de configuração rules.json para a collection fornecida ou, se nenhum arquivo rules.json for encontrado para a collection fornecida, a(s) função(ões) padrão. O App Services avalia as funções na ordem em que você as especifica em sua configuração. Se nenhuma função corresponder, o acesso será negado. Para obter mais informações, consulte Permissões baseadas em roles.

Se o Device Sync (modo flexível) estiver ativado, as funções atribuídas deverão ser compatíveis com a sincronização. Se a role não for compatível com a sincronização, mas seu apply_when for avaliado como verdadeiro, as outras roles não serão consideradas; o acesso é negado.

document_filters
Document
Default: undefined

Um documento com expressões de leitura e gravação que determinam se as outras permissões da role podem ser avaliadas.

Se o Device Sync estiver habilitadoo, document_filters.read e document_filters.write deverão ser definidos para tornar a role Sync compatível. A sincronização de roles incompatíveis nega o acesso a todas as solicitações de sincronização.

Se o Realm Mobile Sync não estiver habilitado, document_filters, document_filters.read e document_filters.write serão opcionais; um document_filters.read ou document_filters.write indefinido tem como padrão verdadeiro, permitindo que as permissões subsequentes sejam avaliadas.

"document_filters": {
"read": { Expression },
"write": { Expression }
}
document_filters.read
object?
Default: undefined

Uma expressão que especifica se read, as permissões de leitura em fields e as permissões de leitura em additional_fields podem ser avaliadas. Se falso (e document_filters.write for indefinido ou falso), o acesso de leitura será negado para todo o documento.

Para manter a compatibilidade do Sync, a expressão deve ser definida e só pode fazer referência a campos de query .

document_filters.write
object?
Default: undefined

Uma expressão que especifica se write, as permissões de escrita em fields e as permissões de escrita em additional_fields podem ser avaliadas. Se falso, o acesso de escrita será negado para todo o documento.

Para manter a compatibilidade do Sync, a expressão deve ser definida e só pode fazer referência a campos de query .

read
object?
Default: undefined

Uma expressão que avalia para verdadeira se a função tiver permissão para ler todos os campos no documento.

Para manter a compatibilidade de sincronização, a expressão deve ser um literal booleano ( true ou false).

As permissões de leitura no nível do documento têm prioridade sobre quaisquer permissões no nível do campo. Se uma função tiver permissões read em nível de documento, ela se aplicará a todos os campos do documento. As permissões de leitura especificadas por fields ou additional_fields não substituem as permissões read no nível do documento.

Para definir um fallback padrão junto com as regras em nível de campo, deixe read indefinido e use additional_fields.

write
object?
Default: undefined

Uma expressão avaliada como verdadeira se a role tiver permissão para adicionar, modificar ou remover todos os campos no documento.

Para manter a compatibilidade de sincronização, a expressão deve ser um literal booleano ( true ou false).

As permissões de gravação no nível do documento têm prioridade sobre quaisquer permissões no nível do campo. Se uma função tiver permissões write em nível de documento, ela se aplicará a todos os campos do documento. As permissões de gravação especificadas por fields ou additional_fields não substituem as permissões write no nível do documento.

Para definir um fallback padrão junto com as regras em nível de campo, deixe write indefinido e use additional_fields.

Você pode utilizar expansões como %%root e %%prevRoot em write expressões JSON.

Importante

Permissão de leitura implícita

Sempre que uma função tem permissão write para um escopo específico, ela também tem permissão read , mesmo que isso não seja explicitamente definido.

insert
object?
Default: true

Uma expressão que avalia para true se o papel tem permissão para inserir um novo documento na collection.

O App Services só avalia essa expressão para operações de inserção e somente após determinar que a role tem permissão write para todos os campos no novo documento.

delete
object?
Default: true

Uma expressão que é avaliada como verdadeira se a role tiver permissão para excluir um documento da collection.

O App Services só avalia essa expressão para operações de exclusão e somente após determinar que a role tem permissão write para que todos os campos do documento sejam excluídos.

search
Boolean
Default: true

Uma expressão que é avaliada como verdadeira se a função tiver permissão para fazer o Atlas Search na collection usando o Atlas Search.

Importante

O App Services $search executa as operações como um usuário do sistema e o impõe regras de nível de campo nos resultados de pesquisa retornados. Isso significa que um usuário pode pesquisar em um campo para o qual ele não tem acesso de leitura. Nesse caso, a pesquisa é baseada no campo especificado, mas nenhum documento retornado inclui o campo.

fields
Document
Default: {}

Um documento em que cada chave corresponde a um nome de campo e cada valor define as permissões read e write em nível de campo da função para o campo correspondente em um documento consultado.

Para manter a compatibilidade de sincronização, as expressões read e write internas devem ser literais booleanos ( true ou false).

"fields": {
"<Field Name>": {
"read": { Expression },
"write": { Expression },
"fields": <Fields Document>
},
...
}

Observação

Prioridade de permissão

As permissões read ou write em nível de documento substituem todas as permissões em nível de campo do mesmo tipo. Se as permissões forem definidas para um campo que contém um documento incorporado, essas permissões substituirão quaisquer permissões definidas para os campos incorporados do documento.

fields.<Field Name>.read
object?
Default: false

Uma expressão avaliada como verdadeira se a role tiver permissão para ler o campo.

Para manter a compatibilidade de sincronização, a expressão deve ser um literal booleano ( true ou false).

fields.<Field Name>.write
object?
Default: false

Uma expressão avaliada como verdadeira se a role tiver permissão para adicionar, modificar ou remover o campo.

Para manter a compatibilidade de sincronização, a expressão deve ser um literal booleano ( true ou false).

fields.<Field Name>.fields
Document
Default: {}

Um documento fields que define permissões read e write para campo incorporados a este campo em um documento query.

Consulte o padrão de função Permissões de nível de campo para documentos incorporados para obter mais informações.

additional_fields
Document
Default: {}

Um documento que define as permissões read e write em nível de campo da função para quaisquer campos em um documento consultado que não têm permissões explicitamente definidas no documento fields .

Para manter a compatibilidade de sincronização, as expressões read e write internas devem ser literais booleanos ( true ou false).

"additional_fields": {
"read": { Expression },
"write": { Expression }
}
additional_fields.read
object?
Default: false

Uma expressão avaliada como verdadeira se a role tiver permissão para ler qualquer campo que não tenha uma definição de permissão de nível de campo em fields.

Para manter a compatibilidade de sincronização, a expressão deve ser booleana ( true ou false).

additional_fields.write
object?
Default: false

Uma expressão avaliada como verdadeira se a role tiver permissão para adicionar, modificar ou remover qualquer campo que não tenha uma definição de permissão de nível de campo em fields.

Para manter a compatibilidade de sincronização, a expressão deve ser booleana ( true ou false).

schema
Document

Um esquema de documento. O esquema de nível raiz deve ser um esquema de objeto, que possui o seguinte formato:

{
"bsonType": "object",
"properties": {
"<Field Name>": <Schema Document>
}
}
filters
Array<Document>

Uma array de documentos de configuração de filtros, que têm o seguinte formato:

{
"name": "<Filter Name>",
"apply_when": { Expression },
"query": { MongoDB Query },
"projection": { MongoDB Projection }
}
Campo
Descrição
name
string
Obrigatório. O nome do filtro. Os nomes de filtros são úteis para identificar e distinguir entre filtros. Limitado a 100 caracteres ou menos.
apply_when
object

Uma expressão que determina quando esse filtro se aplica a uma operação MongoDB de entrada.

Importante

O Atlas App Services avalia e aplica filtros antes de ler qualquer tipo de documento, portanto, você não pode usar expansões de documentos do MongoDB em uma expressão Apply When de um filtro. No entanto, você pode usar outras expansões, como %%user, %%valuese %function.

query
object
Default: {}

Uma query doMongoDB que o Atlas App Services mescla à query existente de uma operação filtrada.

Exemplo

Um filtro retém documentos que tenham score abaixo 20 usando a seguinte query:

{ "score": { "$gte": 20 } }
projection
object
Default: {}

Uma projeção doMongoDB que o Atlas App Services mescla na projeção existente de uma operação filtrada.

Importante

Conflitos de projeção

As projeção do MongoDB podem ser inclusivas ou exclusivas, ou seja, podem retornar apenas campo especificados ou reter campo que não são especificados. Se vários filtros se aplicarem a uma query, todos os filtros deverão especificar o mesmo tipo de projeção, ou a query falhará.

Exemplo

Um filtro retém o campo _internal de todos os documentos usando a seguinte projeção:

{ "_internal": 0 }

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
config.json
{
"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:

  • "http"

  • "aws"

  • "twilio"

  • "github"

  • "gcm"

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

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.

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.

<rule name>JSON
{
"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.

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.

config.json
{
"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.

{
"httpMethod": "<HTTP Method>",
"validationMethod": "<Webhook Validation Method>",
"secret": "<Webhook Secret>"
}
Campo
Descrição
httpMethod
String
O tipo de método HTTP que o webhook aceita. As solicitações de webhook recebidas devem usar este método.
validationMethod
String

O nome do método de validação de solicitação que o webhook usa.

Opções válidas:

  • "VERIFY_PAYLOAD"

  • "SECRET_AS_QUERY_PARAM"

  • "NO_VALIDATION"

secret
String
source.js
exports = function() {
// webhook function code
};

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
<trigger name>JSON
{
"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:

  • "DATABASE"

  • "AUTHENTICATION"

  • "SCHEDULED"

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

disabled
Boolean
Se true, o trigger não escutará nenhum evento e não disparará.

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>
metadata.json
[
{
"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
{
"name": "<Attribute Type>",
"value": "<Attribute Value>"
}
Campo
Descrição
name
String
O nome do atributo de metadados. Esse deve ser um dos atributos de metadados de arquivos compatíveis com o App Services.
value
String
O valor do 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.

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
<value name>JSON
{
"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: false. Se true, o valor expõe um segredo em vez de um valor JSON de texto simples.
value
String, Array, or Object

Os dados armazenados que o App Services expõem quando o valor é referenciado.

Se from_secret for false, value poderá ser uma string, array ou objeto JSON padrão.

Se from_secret for true, value é uma string que contém o nome do Segredo que o valor expõe.

Voltar

v20210101 [Obsoleto]