Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Archivos de configuración de la aplicación

Application Configuration Files (Legacy)

Nota

Legacy Page

Esta página describe el formato de archivo de configuración heredado utilizado por realm-cli 1Versión. Para obtener una descripción actualizada de los archivos de configuración de Atlas App Services, consulte Configuración de la aplicación.

App Services uses JSON files and source code files to define and configure every component of an application. Each component has a specific configuration file schema and every application uses a standard file structure to organize the configuration files.

Cada aplicación se compone de una colección de archivos de configuración, por lo que se utilizan estos archivos al crear o modificar una aplicación. Si se utiliza la interfaz de usuario de App Services, rara vez se trabaja directamente con los archivos de configuración, pero otros métodos de implementación, como la CLI de App Services y GitHub, permiten definir y editar los archivos de configuración directamente.

The following figure shows a high-level view of an App's directory structure:

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

La información de configuración a nivel de aplicación se define en un único documento llamado config.json almacenado en el directorio raíz de su aplicación.

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
Descripción
app_id
String

La aplicación App ID.

name
String

El nombre de la aplicación.

Nota

Limitaciones del nombre de la aplicación

Los nombres de las aplicaciones deben tener entre 1 y 32 caracteres y solo pueden contener letras ASCII, números, guiones bajos y guiones.

security
Document

Un documento que contiene opciones de configuración para las funcionalidades de seguridad a nivel de aplicación.

"security": {
"allowed_request_origins": ["<Origin URL>"]
}
Nombre de campo
Descripción
allowed_request_origins
Array<String>

Una matriz de URL de las que pueden provenir las solicitudes entrantes. Si define orígenes de solicitud permitidos, Atlas App Services bloqueará cualquier solicitud entrante de un origen que no esté en la lista.

Los orígenes de las solicitudes son URL con el siguiente formato:

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

Un documento que contiene opciones de configuración para todos los archivos alojados:

"hosting": {
"enabled": <boolean>,
"custom_domain": "<Custom Domain Name>",
"app_default_domain": "<Default Domain Name>"
}
Nombre de campo
Descripción
enabled
Boolean

If true, indicates that your application can host static files.

custom_domain
String

Un nombre de dominio personalizado para los archivos alojados de su aplicación.

app_default_domain
String

The default domain for your application's hosted files. App Services automatically sets this value and you cannot change it.

config_version
Number

The schema version that all configuration files in the application conform to. This value is machine generated and you typically should not manually set or modify it.

custom_user_data_config
Document

Un documento que contiene opciones de configuración para datos de usuario 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>"
}
Nombre de campo
Descripción
enabled
Boolean

If true, App Services associates each user with a document that contains their data stored in the specified collection.

mongo_service_id
String

El ID de servicio de la fuente de datos de MongoDB Atlas que contiene los datos de usuario personalizados. Puedes encontrar este valor en el campo id del archivo de configuración del servicio.

database_name
String

El nombre de la base de datos que contiene la recopilación de datos de usuario personalizados.

collection_name
String

El nombre de la colección que contiene los datos de usuario personalizados.

user_id_field
String

El nombre del campo en cada documento personalizado que contiene el ID de usuario de la persona usuaria de la aplicación que el documento describe.

deployment_model
String

Modelo de implementación de la aplicación. Los siguientes valores son válidos:

Modelo de implementación
Valor

"GLOBAL"

"LOCAL"

location
String

El nombre de la región de nube en la que está implementada la aplicación.

  • Las aplicaciones locales procesan toda
    application requests and database writes in this region.
  • Las aplicaciones globales procesan todas las escrituras de bases de datos en esta región, pero atienden otras solicitudes de aplicaciones en la región de implementación más cercana.

Los proveedores de autenticación se definen en el /auth_providers directorio de su aplicación.

Each provider is defined in its own JSON file named after the provider. For detailed information on configuring and using a specific authentication provider, see that provider's reference page.

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
Descripción
id
String

A value that uniquely identifies the authentication provider. Atlas App Services automatically generates a unique ID for a provider when you create it.

name
String

The name of the authentication provider.

type
String

El tipo de proveedor de autenticación.

Opciones válidas:

  • "anon-user"

  • "local-userpass"

  • "api-key"

  • "oauth2-apple"

  • "oauth2-google"

  • "oauth2-facebook"

  • "custom-token"

  • "custom-function"

config
Document

A document that contains configuration values that are specific to the authentication provider. The existence of this field and its exact configuration fields depend on the provider type.

secret_config
Document

A document where each field name is a private configuration field for the provider and the value of each field is the name of a Secret that stores the configuration value.

metadata_fields
Array<Document>

An array of documents where each document defines a metadata field that describes the user. The existence of this field and the exact format of each metadata field document depends on the provider type.

disabled
Boolean

Si es true, este proveedor de autenticación no está habilitado para su aplicación y no se puede utilizar.

Las funciones Atlas se definen en un subdirectorio del directorio /functions de la aplicación. Cada función se asigna a su propio subdirectorio con el mismo nombre.

Cada función está configurada en config.json y tiene su código fuente definido en 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
Descripción
id
String

Un valor que identifica de forma única la función. App Services genera automáticamente un ID único para una función al crearla.

name
String

El nombre de la función. Debe ser único entre todas las funciones de la aplicación.

private
Boolean

If true, this function may only be accessed from HTTPS endpoints, rules, and named functions.

can_evaluate
Document

A rule expression that evaluates to true when the function is allowed to execute in response to a given request.

disable_arg_logs
Boolean

Si true es, App Services omite los argumentos proporcionados a una función de la entrada del registro de ejecución de la función.

run_as_system
Boolean

Si true, esta función se ejecuta como el usuario del sistema. Esto reemplaza cualquier valor definido para run_as_user_id y run_as_user_id_script_source.

run_as_user_id
String

El ID único de un usuario de App Services con el que siempre se ejecuta la función. No se puede usar run_as_user_id_script_source con.

run_as_user_id_script_source
String

Una función convertida a string que se ejecuta cada vez que se llama la función y retorna el ID único de un usuario de App Services bajo cuyos permisos se ejecuta esta función. No se puede utilizar con run_as_user_id.

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

Cada fuente de datos de MongoDB Atlas vinculada a tu aplicación se configura como un servicio en el /services directorio. Cada fuente de datos se asigna a su propio subdirectorio con el mismo nombre que el servicio.

La configuración del servicio principal para una fuente de datos MongoDB Atlas es config.json, que define los parámetros de conexión y las reglas de sincronización.

Si la fuente de datos no es un clúster sincronizado o una instancia de base de datos federada, puede definir reglas a nivel de colección en el /rules subdirectorio.

yourRealmApp/
└── services/
└── <MongoDB Service Name>/
├── config.json
└── rules/
└── <rule name>.json

Importante

Los nombres de los servicios de MongoDB no coinciden necesariamente con el nombre de su fuente de datos vinculada en Atlas. El nombre del servicio de una fuente de datos se define al vincularla a la aplicación. Para clústeres vinculados, el nombre predeterminado del servicio de MongoDB es mongodb-atlas. Para fuentes de datos federadas, el nombre predeterminado es mongodb-datafederation.

El archivo de configuración para enlazar un clúster de Atlas debe tener el siguiente formato:

config.json
{
"id": "<Service ID>",
"name": "<Service Name>",
"type": "mongodb-atlas",
"config": {
"clusterName": "<Atlas Cluster Name>",
"readPreference": "<Read Preference>",
"wireProtocolEnabled": <Boolean>,
"sync": <Sync Configuration>
}
}

El archivo de configuración de una fuente de datos federada debe tener el siguiente formato:

config.json
{
"id": "<Service ID>",
"name": "<Service Name>",
"type": "datalake",
"config": {
"dataLakeName": "<Federated database instance name>"
}
}

Se requiere exactamente uno de config.dataLakeName y config.clusterName, dependiendo de si está vinculando un clúster o una fuente de datos federada.

Campo
Descripción
id
String

Una cadena que identifica de forma única el servicio. App Services genera automáticamente un ID único para un servicio MongoDB al crearlo.

name
String

The name of the service. The name may be at most 64 characters long and can only contain ASCII letters, numbers, underscores, and hyphens. For clusters, the default name is mongodb-atlas. For Federated data sources, it is mongodb-datafederation.

type
String

For MongoDB Atlas clusters, this value is always "mongodb-atlas". For Federated data sources, this value is "datalake".

config.clusterName
String

Obligatorio al vincular un clúster. El nombre del clúster vinculado al servicio en MongoDB Atlas.

config.dataLakeName
String

Obligatorio al vincular fuentes de datos federadas. El nombre de la instancia que desea vincular a su aplicación.

config.readPreference
String

El modo de preferencia de lectura para las consultas enviadas a través del servicio. No disponible para fuentes de datos federadas.

Modo
Descripción

primario

App Services dirige todas las operaciones de lectura al nodo principal del conjunto de réplicas actual. Este es el modo de preferencia de lectura predeterminado.

App Services dirige todas las operaciones de lectura al nodo principal del conjunto de réplicas actual, si está disponible. Si el nodo principal no está disponible, como durante una conmutación por error automática, las solicitudes de lectura se dirigen a un nodo secundario.

App Services asigna todas las operaciones de lectura a uno de los nodos secundariosactuales del set de réplicas.

App Services dirige todas las operaciones de lectura a uno de los nodos secundarios disponibles en el set de réplicas. Si no hay nodos secundarios disponibles, las solicitudes de lectura se dirigen al primario del set de réplicas.

App Services routes read operations to the replica set member that has the lowest network latency relative to the client.

config.sync
Document

Un documento de configuración que determina si un clúster está sincronizado y, de ser así, define las reglas para las operaciones de sincronización en él. No disponible para orígenes de datos federados.

Para obtener información detallada sobre los documentos de configuración de sincronización, consulte Configuración de clúster sincronizado.

El campo config.sync de config.json determina si un clúster está sincronizado y, de ser así, define las reglas para las operaciones de sincronización en el clúster.

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
Descripción
sync.state
Boolean
sync.development_mode_enabled
Boolean

Si es true, el modo de desarrollo está habilitado para el clúster. Mientras esté habilitado, Atlas App Services almacena los objetos sincronizados en una base de datos específica dentro del clúster y refleja los tipos de objeto en los esquemas de colección de esa base de datos.

sync.database_name
String

The name of the database in the synced cluster where App Services should store synced objects.

Cuando el modo de desarrollo está habilitado, App Services almacena los objetos sincronizados en esta base de datos. Cada tipo de objeto se asigna a su propia colección en la base de datos con un esquema que coincide con los objetos sincronizados.

sync.partition.key
String

El nombre del campo de clave de partición que asigna datos a reinos sincronizados individuales.

sync.partition.type
String

El tipo de valor del campo de clave de partición.

sync.partition.permissions
Document

Un documento que define los permisos de read y write para el clúster sincronizado. Los permisos se definen con expresiones de reglas que App Services evalúa por usuario y por partición. Las expresiones tienen acceso a las expansiones %%user y %%partition.

Para clústeres no sincronizados, puedes definir reglas a nivel de colección que App Services evalúa dinámicamente para cada solicitud. Las reglas de cada colección se almacenan en un archivo rules.json en su subdirectorio de configuración (data_sources/<data-source-name>/<database-name>/<collection-name>/).

Nota

Las fuentes de datos federadas no admiten reglas ni esquemas. Solo se puede acceder a ellas desde una función del sistema.

<database.collection>.json
{
"id": "<Rule ID>",
"database": "<Database Name>",
"collection": "<Collection Name>",
"roles": [<Role>],
"schema": <Document Schema>,
"filters": [<Filter>],
}
Campo
Descripción
id
String

Una cadena que identifica de forma única el disparador. App Services genera automáticamente un ID único para un disparador al crearlo.

database
String

El nombre de la base de datos que contiene la colección.

collection
String

El nombre de la colección.

roles
Array<Document>

Una matriz de documentos de configuración de roles, que tienen el siguiente 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
Descripción
name
string

El nombre del rol. Los nombres de rol identifican y distinguen entre roles de la misma colección. Limitado a 100 caracteres o menos.

apply_when
object

An expression that evaluates to true when this role applies to a user.

Cuando Device Sync (Modo Flexible) no está habilitado, App Services asigna un rol por documento. Cuando se habilita Device Sync (modo flexible), App Services asigna roles por colección y sesión, es decir, para cada colección sincronizada cuando un cliente abre una conexión de sincronización.

Para asignar un rol, App Services evalúa el apply_when de cada rol potencial hasta que uno se evalúa como verdadero. Los roles potenciales son cualquier rol especificado en el rules.json archivo de configuración para la colección dada o, si no rules.json se encuentra ningún archivo para la colección dada, los roles predeterminados. App Services evalúa los roles en el orden en que los especifique en su configuración. Si ningún rol coincide, se deniega el acceso. Para obtener más información, consulte Permisos basados ​​en roles.

Si la sincronización de dispositivos (Moda Flexible) está activada, los roles asignados deben ser compatibles con la sincronización. Si el rol no es compatible con sincronizar, pero su apply_when se evalúa como verdadero, no se consideran otros roles; se deniega el acceso.

document_filters
Document
Default: undefined

A document with read and write expressions that determine whether the role's other permissions may be evaluated.

Si la sincronización de dispositivos está habilitada,document_filters.read document_filters.write se deben definir y para que el rol sea compatible con la sincronización. Los roles incompatibles con la sincronización deniegan todo acceso a las solicitudes de sincronización.

Si Sync de dispositivos no está habilitado, document_filters, document_filters.read y document_filters.write son todos opcionales; una document_filters.read o document_filters.write indefinidos por defecto serán verdaderos, lo que permitirá que se evalúen los permisos posteriores.

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

Una expresión que especifica read fields additional_fields si se pueden evaluar los permisos de lectura de, y. Si es falso (y document_filters.write no está definido o es falso), se deniega el acceso de lectura para todo el documento.

Para mantener la compatibilidad de Sync, la expresión debe estar definida y solo puede hacer referencia a campos consultables.

document_filters.write
object?
Default: undefined

Una expresión que especifica write fieldssi additional_fields se pueden evaluar los permisos de escritura de, y. Si es falso, se deniega el acceso de escritura a todo el documento.

Para mantener la compatibilidad de Sync, la expresión debe estar definida y solo puede hacer referencia a campos consultables.

read
object?
Default: undefined

An expression that evaluates to true if the role has permission to read all fields in the document.

Para mantener la compatibilidad con Sync, la expresión debe ser un literal booleano (true falseo).

Los permisos de lectura a nivel de documento tienen prioridad sobre cualquier permiso a nivel de campo. Si un rol tiene permisos a nivel de documento read, este se aplica a todos los campos del documento. Los permisos de lectura especificados por fields o additional_fields no anulan los permisos a nivel de documento read.

Para definir una alternativa predeterminada junto con las reglas a nivel de campo, deje read sin definir y utilice additional_fields.

write
object?
Default: undefined

Una expresión que evalúa como verdadera si el rol tiene permiso para agregar, modificar o remover todos los campos del documento.

Para mantener la compatibilidad con Sync, la expresión debe ser un literal booleano (true falseo).

Los permisos de escritura a nivel de documento tienen prioridad sobre los permisos a nivel de campo. Si un rol tiene permisos a nivel de documento write, estos se aplican a todos los campos del documento. Los permisos de escritura especificados por fields o additional_fields no anulan los permisos a nivel de documento write.

Para definir una alternativa predeterminada junto con las reglas a nivel de campo, deje write sin definir y utilice additional_fields.

You can use expansions like %%root and %%prevRoot in write JSON expressions.

Importante

Permiso de lectura implícito

Cada vez que un rol tiene permiso write para un ámbito particular, también tiene permiso read incluso si este no está definido explícitamente.

insert
object?
Default: true

Una expresión que evalúa a true si el rol tiene permiso para insertar un nuevo documento en la colección.

App Services solo evalúa esta expresión para operaciones de inserción y solo después de determinar que el rol tiene permiso write para todos los campos en el nuevo documento.

delete
object?
Default: true

Una expresión que se evalúa como verdadera si el rol tiene permiso para eliminar un documento de la colección.

App Services solo evalúa esta expresión para las operaciones de eliminación y solo después de determinar que el rol tiene permiso de write para todos los campos en el documento que se eliminarán.

search
Boolean
Default: true

Una expresión que se evalúa como verdadera si el rol tiene permiso para buscar en la colección mediante Atlas Search.

Importante

App Services realiza $search operaciones como usuario del sistema e impone reglas a nivel de campo sobre los resultados de búsqueda devueltos. Esto significa que un usuario puede buscar en un campo al que no tiene acceso de lectura. En este caso, la búsqueda se basa en el campo especificado, pero ningún documento devuelto incluye el campo.

fields
Document
Default: {}

Un documento donde cada clave corresponde a un nombre de campo y cada valor define los permisos de nivel de campo read y write del rol para el campo correspondiente en un documento consultado.

Para mantener la compatibilidad de sincronización, las expresiones read y write internas deben ser literales booleanos (ya sea true o false).

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

Nota

Prioridad del permiso

Los permisos read o write a nivel de documento anulan todos los permisos a nivel de campo del mismo tipo. Si se definen permisos para un campo que contiene un documento incrustado, estos permisos anulan cualquier permiso definido para los campos incrustados del documento.

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

An expression that evaluates to true if the role has permission to read the field.

Para mantener la compatibilidad con Sync, la expresión debe ser un literal booleano (true falseo).

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

Una expresión que se evalúa como verdadera si el rol tiene permiso para agregar, modificar o eliminar el campo.

Para mantener la compatibilidad con Sync, la expresión debe ser un literal booleano (true falseo).

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

A fields document that defines read and write permissions for fields that are embedded within this field in a queried document.

Consulte el patrón de función Permisos a nivel de campo para documentos incrustados para obtener más información.

additional_fields
Document
Default: {}

Un documento que define los permisos de nivel de campo read y write del rol para cualquier campo en un documento consultado que no tenga permisos definidos explícitamente en el documento fields.

Para mantener la compatibilidad de sincronización, las expresiones read y write internas deben ser literales booleanos (ya sea true o false).

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

An expression that evaluates to true if the role has permission to read any field that does not have a field-level permission definition in fields.

Para mantener la compatibilidad con Sync, la expresión debe ser booleana (true falseo).

additional_fields.write
object?
Default: false

Una expresión que se evalúa como verdadera si el rol tiene permiso para agregar, modificar o eliminar cualquier campo que no tenga una definición de permiso a nivel de campo fields en.

Para mantener la compatibilidad con Sync, la expresión debe ser booleana (true falseo).

schema
Document

Un esquema de documento. El esquema de nivel raíz debe ser un esquema de objeto, con la siguiente forma:

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

Un arreglo de documentos de configuración de filtro, que tienen el siguiente formato:

{
"name": "<Filter Name>",
"apply_when": { Expression },
"query": { MongoDB Query },
"projection": { MongoDB Projection }
}
Campo
Descripción
name
string

Requerido. El nombre del filtro. Los nombres de filtro son útiles para identificar y diferenciar los filtros. Limitado a 100 caracteres o menos.

apply_when
object

An expression that determines when this filter applies to an incoming MongoDB operation.

Importante

Atlas App Services evalúa y aplica filtros antes de leer cualquier documento, por lo que no se pueden usar expansiones de documentos de MongoDB en la expresión "Aplicar cuando" de un filtro. Sin embargo, sí se pueden usar otras expansiones %%user como, %%values y.%function

query
object
Default: {}

Una consulta de MongoDB que App Services fusiona en la consulta existente de una operación filtrada.

Ejemplo

Un filtro retiene documentos que tengan un score por debajo de 20 usando la siguiente query:

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

Una proyección de MongoDB que App Services fusiona con la proyección existente de una operación filtrada.

Importante

Conflictos de proyección

MongoDB projections can be either inclusive or exclusive, i.e. they can either return only specified fields or withhold fields that are not specified. If multiple filters apply to a query, the filters must all specify the same type of projection, or the query will fail.

Ejemplo

A filter withholds the _internal field from all documents using the following projection:

{ "_internal": 0 }

3rd party services are defined in the /services directory. Each service maps to its own sub-directory with the same name as the service.

Cada directorio de servicios contiene lo siguiente:

  • config.json: a service configuration file

  • /rules: un subdirectorio de configuraciones de reglas de servicio

  • /incoming_webhooks: un subdirectorio de configuraciones de webhook (si el servicio admite webhooks, es decir, HTTP, GitHub o 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
Descripción
id
String

Una cadena que identifica de forma única el servicio. Atlas App Services genera automáticamente un ID único para un servicio al crearlo.

name
String

El nombre del servicio. El nombre puede tener un máximo de 64 caracteres y solo puede contener letras ASCII, números, guiones bajos y guiones.

type
String

El tipo de servicio.

Opciones válidas:

  • "http"

  • "aws"

  • "twilio"

  • "github"

  • "gcm"

config
Document

Un documento con campos que asignan opciones de configuración adicionales para el servicio. Los campos de configuración exactos dependen del servicio type.

secret_config
Document

Un documento donde cada nombre de campo es un campo de configuración privado para el servicio y el valor de cada campo es el nombre de un secreto que almacena el valor de configuración.

Las reglas para un servicio externo específico se definen en el subdirectorio /<service name>/rules.

Cada regla se asigna a su propio archivo JSON con el mismo nombre que la regla.

<rule name>.json
{
"id": "<Rule ID>",
"name": "<Rule Name>",
"actions": ["<Service Action Name>"],
"when": <JSON Rule Expression>
}
Campo
Descripción
id
String

Una cadena que identifica de forma única la regla. App Services genera automáticamente un ID único para una regla al crearla.

name
String

El nombre de la regla de servicio. El nombre puede tener un máximo de 64 caracteres y solo puede contener letras ASCII, números, guiones bajos y guiones.

actions
Array<String>

Una lista de acciones de servicio a las que se aplica la regla. Las acciones específicas disponibles dependen del servicio type.

when
Document

Una expresión de regla que evalúa como true cuando la regla se aplica a una solicitud determinada.

Incoming webhooks for a specific service are defined in the /<service name>/incoming_webhooks/ sub-directory.

Los webhooks entrantes utilizan el mismo formato de configuración que la función, pero tienen parámetros de configuración adicionales.

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
Descripción
id
String

Un valor que identifica de forma única la función. App Services genera automáticamente un ID único para una función al crearla.

name
String

El nombre de la función. Debe ser único entre todas las funciones de la aplicación.

private
Boolean

Si es true, solo se podrá acceder a esta función desde webhooks entrantes, reglas y funciones con nombre.

can_evaluate
Document

A rule expression that evaluates to true if the function is allowed to execute in response to a given request.

disable_arg_logs
Boolean

Si true es, App Services omite los argumentos proporcionados a una función de la entrada del registro de ejecución de la función.

run_as_system
Boolean

Si true, la función webhook se ejecuta como el usuario del sistema. Esto anula cualquier valor definido para run_as_user_id y run_as_user_id_script_source.

run_as_user_id
String

El ID único de un usuario de App Services con el que siempre se ejecuta la función. No se puede usar run_as_user_id_script_source con.

run_as_user_id_script_source
String

Una función convertida en cadena que se ejecuta al llamar al webhook y devuelve el ID único del usuario de App Services que la ejecuta. No se puede usar run_as_user_id con.

respond_result
Boolean

Si es true, App Services incluye el valor de retorno de la función webhook como el cuerpo de la respuesta HTTP que envía al cliente que inició la solicitud de webhook.

options
Document

A document that contains configuration options for the webhook.

{
"httpMethod": "<HTTP Method>",
"validationMethod": "<Webhook Validation Method>",
"secret": "<Webhook Secret>"
}
Campo
Descripción
httpMethod
String

The HTTP method type that the webhook accepts. Incoming webhook requests must use this method.

validationMethod
String

El nombre del método de validación de solicitudes utilizado por el webhook.

Opciones válidas:

  • "VERIFY_PAYLOAD"

  • "SECRET_AS_QUERY_PARAM"

  • "NO_VALIDATION"

secret
String

El valor secreto utilizado para validar las solicitudes entrantes de webhook.

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

Triggers are defined in your application's /triggers directory.

Each trigger is defined in its own JSON file with the same name as the 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
Descripción
id
String

Una cadena que identifica de forma única el disparador. Atlas App Services genera automáticamente un ID único para un disparador al crearlo.

name
String

El nombre del activador. El nombre puede tener como máximo 64 caracteres y solo puede contener letras ASCII, números, guiones bajos y guiones.

type
String

El tipo de evento de aplicación para el que el activador escucha.

Opciones válidas:

  • "DATABASE"

  • "AUTHENTICATION"

  • "SCHEDULED"

function_name
String

Nombre de la función Atlas que el disparador ejecuta al activarse. El disparador pasa argumentos automáticamente a la función según el disparador type.

config
Document

Un documento con campos que asignan opciones de configuración adicionales para el disparador. Los campos de configuración exactos dependen del disparador type.

disabled
Boolean

If true, the trigger will not listen for any events and will not fire.

Los archivos que desee alojar en Atlas App Services deben incluirse en el directorio de su /hosting aplicación. Cada archivo se cargará con los metadatos definidos metadata.json en.

Puedes configurar los metadatos para cada archivo alojado en metadata.json. Este archivo de configuración de metadatos es un arreglo de documentos, cada uno correspondiente a los atributos de metadatos de un solo archivo alojado.

yourRealmApp/
└── hosting/
├── metadata.json
└── files/
└── <files to host>
metadata.json
[
{
"path": "<File Resource Path>",
"attrs": [{
"name": "<Attribute Type>",
"value": "<Attribute Value>"
}]
}
]
Campo
Descripción
path
String

La ruta de recursos del archivo.

attrs
Array<Document>

Un arreglo de documentos en la que cada documento representa un solo atributo de metadatos. Los documentos de atributos tienen la siguiente forma:

Metadata Attribute Document
{
"name": "<Attribute Type>",
"value": "<Attribute Value>"
}
Campo
Descripción
name
String

El nombre del atributo de metadatos. Debe ser uno de los atributos de metadatos de archivo compatibles con App Services.

value
String

The value of the metadata attribute.

Nota

Si no especifica un atributo de metadatos Content-Type para un archivo alojado, Atlas App Services intentará agregarle automáticamente un atributo Content-Type según la extensión del archivo.

Por ejemplo, App Services agregaría automáticamente el atributo Content-Type: application/html al archivo myPage.html.

Los valores se definen en el directorio /values de tu aplicación.

Cada valor se define en su propio archivo JSON que lleva el nombre del 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
Descripción
id
String

Una string que identifica de manera única el valor. Atlas App Services genera automáticamente un ID único para un valor cuando lo creas.

name
String

A unique name for the value. This name is how you refer to the value in functions and rules.

from_secret
Boolean

Valorfalse predeterminado:. Si true es, el valor expone un secreto en lugar de un valor JSON de texto sin formato.

value
String, Array, or Object

Los datos almacenados que App Services expone cuando se hace referencia al valor.

Si from_secret es false, value puede ser una cadena JSON estándar, un arreglo o un objeto.

Si from_secret es true, value es un string que contiene el nombre del Secret que el valor expone.

Volver

v20210101