Nota
Esta página describe un formato de archivo de configuración heredado. Solo debe usar esta información si está usando el formato obsoleto.
realm-cli.
Cualquier archivo de configuración que extraiga con la CLI de App Services o exporte desde la interfaz de usuario utiliza la versión más reciente. Para obtener información detallada sobre el formato actual de los archivos de configuración, consulte Configuración de la aplicación.
app/ └── http_endpoints/ ├── config.json ├── data_api_config.json └── <Service Name>/ ├── config.json ├── rules/ │ └── <Rule Name>.json └── incoming_webhooks/ └── <Webhook Name>/ ├── config.json └── source.js
Configuración personalizada de punto final HTTPS
Define las configuraciones para todos los puntos finales HTTPS personalizados de tu aplicación como una matriz http_endpoints/config.json en.
[ { "route": "<Endpoint route name>", "http_method": "<HTTP method>", "function_name": "<Endpoint function name", "validation_method": "<Authorization scheme>", "secret_name": "<Validation Secret Name>", "respond_result": <boolean>, "fetch_custom_user_data": <boolean>, "create_user_on_auth": <boolean>, "disabled": <boolean> } ]
Campo | Descripción |
|---|---|
routestring | |
http_methodstring | Uno de:
|
function_namestring | El nombre de la función asociada al punto final. La función debe usar la firma de la función del punto final. |
validation_methodstring | El esquema de autorización de punto final utilizado para validar las solicitudes entrantes. Uno de:
|
secret_namestring | El nombre de un secreto que contiene una cadena. Si |
respond_resultboolean | Si Si es |
fetch_custom_user_databoolean | Si Si es |
create_user_on_authboolean | Si es Esta configuración es útil para aplicaciones que se integran con un sistema de autenticación externo mediante el proveedor de autenticación JWT personalizado. Si una solicitud incluye un JWT válido del sistema externo que no corresponde a un usuario registrado, esto crea un nuevo usuario con el JWT como una identidad. |
disabledboolean | Habilita ( |
Configuración de la API de datos
Define la configuración para los puntos finales de API de datos generados por tu aplicación http_endpoints/data_api_config.json en.
{ "disabled": <boolean>, "versions": ["v1"], "return_type": "EJSON" | "JSON", "create_user_on_auth": <boolean>, "run_as_system": <boolean>, "run_as_user_id": "<User Account ID>", "run_as_user_id_script_source": "<Function Source Code>" }
Campo | Descripción |
|---|---|
disabledboolean | Si es |
versionsstring[] | Una lista de las versiones de la API de datos compatibles con tu aplicación. La lista puede incluir un subconjunto de todas las versiones posibles, pero debe estar en orden ascendente. No puedes habilitar una versión que no sea la más reciente, pero las versiones previamente habilitadas que se indican aquí seguirán funcionando. Versiones disponibles:
|
return_typestring | El formato de datos que se utilizará para los datos devueltos por los puntos finales en los cuerpos de respuesta HTTPS. Uno de:
|
create_user_on_authboolean | Si es Esta configuración es útil para aplicaciones que se integran con un sistema de autenticación externo mediante el proveedor de autenticación JWT personalizado. Si una solicitud incluye un JWT válido del sistema externo que no corresponde a un usuario registrado, esto crea un nuevo usuario con el JWT como una identidad. |
run_as_user_idstring | ID de cuenta de un usuario de la aplicación. Si se define, los endpoints siempre se ejecutarán con el usuario especificado. No se puede usar con |
run_as_user_id_script_sourcestring | Código fuente en cadena para una función que devuelve el ID de la cuenta de un usuario de la aplicación. Si se define, los endpoints ejecutan la función en cada solicitud y se ejecutan como el usuario con el ID devuelto por la función. No se puede usar con |
Configuración del servicio HTTP
Los servicios HTTP heredados obsoletos se agrupan en servicios con nombre dentro de /http_endpoints.
{ "name": "<Service Name>", "type": "http", "config": {} }
Campo | Descripción |
|---|---|
nameString | El nombre del servicio de puntos finales HTTP. Debe ser único entre todos los servicios de puntos finales HTTP de la aplicación y coincidir con el nombre del directorio que lo contiene. |
typeString | Para los puntos finales HTTP, este valor siempre es |
configString | Opciones de configuración adicionales para el servicio. Actualmente, los puntos finales HTTP no tienen opciones de configuración adicionales. |
Reglas de acciones del servicio
Las reglas de acción del servicio se definen en el rules/ subdirectorio del servicio. Cada regla se asigna a su propio .json archivo de configuración con el mismo nombre que la regla.
{ "name": "<Rule Name>", "actions": ["<Service Action Name>"], "when": { <JSON Rule Expression> } }
Campo | Descripción |
|---|---|
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 HTTP a las que se aplica la regla. |
whenDocument | Una expresión de regla que evalúa como |
Webhooks entrantes
Configuración
{ "name": "<Webhook Name>", "can_evaluate": { <JSON Expression> }, "run_as_authed_user": <Boolean>, "run_as_user_id": "<App Services User ID>", "run_as_user_id_script_source": "<Function Source Code>", "fetch_custom_user_data": <Boolean>, "create_user_on_auth": <Boolean>, "respond_result": <Boolean>, "options": { "httpMethod": "<HTTP Method>", "validationMethod": "<Webhook Validation Method>", "secret": "<Webhook Secret>" } }
Campo | Descripción | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nameString | El nombre del webhook. Debe ser único entre todos los webhooks del servicio de puntos finales HTTP y coincidir con el nombre del directorio que lo contiene. | |||||||||||||
can_evaluateJSON Expression (default: true) | Una expresión JSON que evalúa | |||||||||||||
disable_arg_logsBoolean | Si | |||||||||||||
run_as_authed_userBoolean | Si es TipPara obtener un ejemplo de cómo especificar credenciales, consulte Configurar webhooks de servicio. | |||||||||||||
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 con | |||||||||||||
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 con | |||||||||||||
respond_resultBoolean | Si es | |||||||||||||
fetch_custom_user_dataBoolean | Si Esta opción sólo está disponible si | |||||||||||||
create_user_on_authBoolean | Si es Esta opción sólo está disponible si | |||||||||||||
optionsDocument | Un documento que contiene opciones de configuración para el webhook.
|
Código fuente
El código fuente de una función de webhook se define en un archivo source.js dentro del directorio del webhook. Cada archivo debe exportar la función principal que se ejecuta cuando una solicitud llama al webhook.
exports = async function (payload, response) { // Convert the webhook body from BSON to an EJSON object const body = EJSON.parse(payload.body.text()); // Execute application logic, such as working with MongoDB if (body.someField) { const mdb = context.services.get("mongodb-atlas"); const requests = mdb.db("demo").collection("requests"); const { insertedId } = await requests.insertOne({ someField: body.someField, }); // Respond with an affirmative result response.setStatusCode(200); response.setBody(`Successfully saved "someField" with _id: ${insertedId}.`); } else { // Respond with a malformed request error response.setStatusCode(400); response.setBody(`Could not find "someField" in the webhook request body.`); } // This return value does nothing because we already modified the response object. // If you do not modify the response object and you enable *Respond with Result*, // App Services will include this return value as the response body. return { msg: "finished!" }; };