Nota
Página heredada
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.
Overview
App Services utiliza archivos JSON y de código fuente para definir y configurar cada componente de una aplicación. Cada componente tiene un esquema de archivo de configuración específico y cada aplicación utiliza una estructura de archivos estándar para organizar los archivos de configuración.
¿Cuándo utilizaré archivos de configuración?
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.
Estructura del directorio
La siguiente figura muestra una vista de alto nivel de la estructura de directorio de una aplicación:
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
Configuración de la aplicación
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
Configuración
{ "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_idString | La aplicación App ID. | |||||||||||||||||||
nameString | El nombre de la aplicación. NotaLimitaciones del nombre de la aplicaciónLos nombres de las aplicaciones deben tener entre 1 y 32 caracteres y solo pueden contener letras ASCII, números, guiones bajos y guiones. | |||||||||||||||||||
securityDocument | Un documento que contiene opciones de configuración para las funcionalidades de seguridad a nivel de aplicación.
| |||||||||||||||||||
hostingDocument | Un documento que contiene opciones de configuración para todos los archivos alojados:
| |||||||||||||||||||
config_versionNumber | La versión del esquema a la que se ajustan todos los archivos de configuración de la aplicación. Este valor se genera automáticamente y, por lo general, no se recomienda configurarlo ni modificarlo manualmente. | |||||||||||||||||||
custom_user_data_configDocument | Un documento que contiene opciones de configuración para datos de usuario personalizados.
| |||||||||||||||||||
deployment_modelString | Modelo de implementación de la aplicación. Los siguientes valores son válidos:
| |||||||||||||||||||
locationString | El nombre de la región de nube en la que está implementada la aplicación.
|
Proveedores de autenticación
Los proveedores de autenticación se definen en el /auth_providers directorio de su aplicación.
Cada proveedor se define en su propio archivo JSON, que lleva su nombre. Para obtener información detallada sobre la configuración y el uso de un proveedor de autenticación específico, consulte su página de referencia.
yourRealmApp/ └── auth_providers/ └── <provider name>.json
Configuración
{ "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 |
|---|---|
idString | Un valor que identifica de forma única al proveedor de autenticación. Atlas App Services genera automáticamente un ID único para un proveedor al crearlo. |
nameString | El nombre del proveedor de autenticación. |
typeString | El tipo de proveedor de autenticación. Opciones válidas:
|
configDocument | Un documento que contiene valores de configuración específicos del proveedor de autenticación. La existencia de este campo y sus campos de configuración exactos dependen del tipo de proveedor. |
secret_configDocument | Un documento donde cada nombre de campo es un campo de configuración privado para el proveedor y el valor de cada campo es el nombre de un secreto que almacena el valor de configuración. |
metadata_fieldsArray<Document> | Una matriz de documentos donde cada documento define un campo de metadatos que describe al usuario. La existencia de este campo y el formato exacto de cada documento de campo de metadatos dependen del tipo de proveedor. |
disabledBoolean | Si es |
Funciones
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
Configuración
{ "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 |
|---|---|
idString | Un valor que identifica de forma única la función. App Services genera automáticamente un ID único para una función al crearla. |
nameString | El nombre de la función. Debe ser único entre todas las funciones de la aplicación. |
privateBoolean | Si es |
can_evaluateDocument | Una expresión de regla que evalúa como |
disable_arg_logsBoolean | Si |
run_as_systemBoolean | Si |
run_as_user_idString | 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_sourceString | Una función convertida en cadena que se ejecuta al llamarse y devuelve el ID único del usuario de App Services que la ejecuta. No se puede usar |
Código fuente
exports = function() { // function code };
Servicios de MongoDB
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.
Configuración del Servicio
El archivo de configuración para vincular un clúster Atlas debe tener el siguiente formato:
{ "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:
{ "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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
idString | Una cadena que identifica de forma única el servicio. App Services genera automáticamente un ID único para un servicio MongoDB al crearlo. | ||||||||||||
nameString | El nombre del servicio. El nombre puede tener como máximo 64 caracteres y solo puede contener letras ASCII, números, guiones bajos y guiones. Para los clústeres, el nombre predeterminado es | ||||||||||||
typeString | Para los clústeres de MongoDB Atlas, este valor siempre es | ||||||||||||
config.clusterNameString | Obligatorio al vincular un clúster. El nombre del clúster vinculado del servicio en MongoDB Atlas. | ||||||||||||
config.dataLakeNameString | Obligatorio al vincular fuentes de datos federadas. El nombre de la instancia que desea vincular a su aplicación. | ||||||||||||
config.readPreferenceString | El modo de preferencia de lectura para las consultas enviadas a través del servicio. No disponible para fuentes de datos federadas.
| ||||||||||||
config.syncDocument | 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. |
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": { ..., "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.stateBoolean | |
sync.development_mode_enabledBoolean | Si es |
sync.database_nameString | El nombre de la base de datos en el clúster sincronizado donde App Services debe almacenar los objetos sincronizados. 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.keyString | El nombre del campo de clave de partición que asigna datos a reinos sincronizados individuales. |
sync.partition.typeString | El tipo de valor del campo de clave de partición. |
sync.partition.permissionsDocument | Un documento que define los permisos de |
Reglas de recopilación de MongoDB (sin sincronización)
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.
{ "id": "<Rule ID>", "database": "<Database Name>", "collection": "<Collection Name>", "roles": [<Role>], "schema": <Document Schema>, "filters": [<Filter>], }
Campo | Descripción | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
idString | Una cadena que identifica de forma única el disparador. App Services genera automáticamente un ID único para un disparador al crearlo. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
databaseString | El nombre de la base de datos que contiene la colección. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
collectionString | El nombre de la colección. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rolesArray<Document> | Una matriz de documentos de configuración de roles, que tienen el siguiente formato:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
schemaDocument | Un esquema de documento. El esquema de nivel raíz debe ser un esquema de objeto, con la siguiente forma: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filtersArray<Document> | Un arreglo de documentos de configuración de filtro, que tienen el siguiente formato:
|
Servicios externos
3Los servicios de terceros se definen en el /services directorio. Cada servicio se asigna a su propio subdirectorio con el mismo nombre.
Cada directorio de servicios contiene lo siguiente:
config.json:un archivo de configuración de servicio/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
Configuración del Servicio
{ "id": "<Service ID>", "name": "<Service Name>", "type": "<Service Type>", "config": { "<Configuration Option>": <Configuration Value> }, "secret_config": { "<Configuration Option>": "<Secret Name>" }, }
Campo | Descripción |
|---|---|
idString | Una cadena que identifica de forma única el servicio. Atlas App Services genera automáticamente un ID único para un servicio al crearlo. |
nameString | El nombre del servicio. El nombre puede tener como máximo 64 caracteres y solo puede contener letras ASCII, números, guiones bajos y guiones. |
typeString | El tipo de servicio. Opciones válidas:
|
configDocument | Un documento con campos que asignan opciones de configuración adicionales para el servicio. Los campos de configuración exactos dependen del servicio |
secret_configDocument | 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. |
Reglas de servicio
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.
{ "id": "<Rule ID>", "name": "<Rule Name>", "actions": ["<Service Action Name>"], "when": <JSON Rule Expression> }
Campo | Descripción |
|---|---|
idString | Una cadena que identifica de forma única la regla. App Services genera automáticamente un ID único para una regla al crearla. |
nameString | El nombre de la regla de servicio. El nombre puede tener como máximo 64 caracteres y solo puede contener letras ASCII, números, guiones bajos y guiones. |
actionsArray<String> | Una lista de acciones de servicio a las que se aplica la regla. Las acciones específicas disponibles dependen del servicio |
whenDocument | Una expresión de regla que evalúa como |
Webhooks entrantes
Los webhooks entrantes para un servicio específico se definen en el subdirectorio /<service name>/incoming_webhooks/.
Los webhooks entrantes utilizan el mismo formato de configuración que la función, pero tienen parámetros de configuración adicionales.
Configuración
{ "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 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
idString | Un valor que identifica de forma única la función. App Services genera automáticamente un ID único para una función al crearla. | |||||||||||||
nameString | El nombre de la función. Debe ser único entre todas las funciones de la aplicación. | |||||||||||||
privateBoolean | Si es | |||||||||||||
can_evaluateDocument | Una expresión de regla que evalúa | |||||||||||||
disable_arg_logsBoolean | Si | |||||||||||||
run_as_systemBoolean | Si | |||||||||||||
run_as_user_idString | 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_sourceString | 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 | |||||||||||||
respond_resultBoolean | Si es | |||||||||||||
optionsDocument | Un documento que contiene opciones de configuración para el webhook.
|
Código fuente
exports = function() { // webhook function code };
Activadores
Los activadores se definen en el /triggers directorio de su aplicación.
Cada disparador se define en su propio archivo JSON con el mismo nombre que el disparador.
yourRealmApp/ └── triggers/ └── <trigger name>.json
Configuración
{ "id": "<Trigger ID>", "name": "<Trigger Name>", "type": "<Trigger Type>", "function_name": "<Trigger Function Name>", "config": { "<Configuration Option>": <Configuration Value> }, "disabled": <Boolean>, }
Campo | Descripción |
|---|---|
idString | Una cadena que identifica de forma única el disparador. Atlas App Services genera automáticamente un ID único para un disparador al crearlo. |
nameString | El nombre del disparador. El nombre puede tener como máximo 64 caracteres y solo puede contener letras ASCII, números, guiones bajos y guiones. |
typeString | El tipo de evento de aplicación que el disparador escucha. Opciones válidas:
|
function_nameString | 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 |
configDocument | Un documento con campos que asignan opciones de configuración adicionales para el disparador. Los campos de configuración exactos dependen del disparador |
disabledBoolean | Si es |
Alojamiento
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.
Puede configurar los metadatos de cada archivo alojado metadata.json en. Este archivo de configuración de metadatos es una matriz de documentos que corresponden a los atributos de metadatos de un archivo alojado.
yourRealmApp/ └── hosting/ ├── metadata.json └── files/ └── <files to host>
Configuración de metadatos
[ { "path": "<File Resource Path>", "attrs": [{ "name": "<Attribute Type>", "value": "<Attribute Value>" }] } ]
Campo | Descripción | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
pathString | La ruta de recursos del archivo. | ||||||||||
attrsArray<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
|
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.
Values
Los valores se definen en el directorio /values de su aplicación.
Cada valor se define en su propio archivo JSON que lleva el nombre del valor.
yourRealmApp/ └── values/ └── <value name>.json
Configuración
{ "id": "<Value ID>", "name": "<Value Name>", "from_secret": <boolean>, "value": <Stored JSON Value|Secret Name> }
Campo | Descripción |
|---|---|
idString | Una cadena que identifica de forma única el valor. Atlas App Services genera automáticamente un ID único para un valor al crearlo. |
nameString | Un nombre único para el valor. Este nombre es el que se utiliza para referirse al valor en funciones y reglas. |
from_secretBoolean | Valor |
valueString, Array, or Object | Los datos almacenados que App Services expone cuando se hace referencia al valor. Si Si |