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.
Overview
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.
¿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 de directorios
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
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 | 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_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.
|
Authentication Providers
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
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 | A value that uniquely identifies the authentication provider. Atlas App Services automatically generates a unique ID for a provider when you create it. |
nameString | The name of the authentication provider. |
typeString | El tipo de proveedor de autenticación. Opciones válidas:
|
configDocument | 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_configDocument | 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_fieldsArray<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. |
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 | If |
can_evaluateDocument | A rule expression that evaluates to |
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 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 |
Código fuente
exports = function() { // function code };
MongoDB Services
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 enlazar un clúster de 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 | 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 | ||||||||||||
typeString | For MongoDB Atlas clusters, this value is always | ||||||||||||
config.clusterNameString | Obligatorio al vincular un clúster. El nombre del clúster vinculado al 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 | 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.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
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
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 un máximo de 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 un máximo de 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
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.
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 | A rule expression that evaluates to | |||||||||||||
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 | A document that contains configuration options for the webhook.
|
Código fuente
exports = function() { // webhook function code };
Activadores
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
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 activador. 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 para el que el activador 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 | If |
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.
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>
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 tu 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 string que identifica de manera única el valor. Atlas App Services genera automáticamente un ID único para un valor cuando lo creas. |
nameString | A unique name for the value. This name is how you refer to the value in functions and rules. |
from_secretBoolean | Valor |
valueString, Array, or Object | Los datos almacenados que App Services expone cuando se hace referencia al valor. Si Si |