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/ └── data_sources/ └── <service name>/ ├── config.json └── <database>/ └── <collection>/ ├── schema.json ├── relationships.json └── rules.json
Configuración del Servicio
Clústeres de MongoDB
{ "name": "<Service Name>", "type": "mongodb-atlas", "config": { "clusterName": "<Atlas Cluster Name>", "readPreference": "<Read Preference>", "wireProtocolEnabled": <Boolean> } }
Campo | Descripción | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nameString | Obligatorio. Predeterminado: El nombre del servicio utilizado para referirse al clúster dentro de esta aplicación Atlas App Services. El nombre puede tener un máximo de 64 caracteres y solo debe contener letras ASCII, números, guiones bajos y guiones. | ||||||||||||
typeString | Required. For MongoDB Atlas clusters, this value is always | ||||||||||||
config.clusterNameString | Obligatorio. El nombre del clúster en Atlas. | ||||||||||||
config.readPreferenceString | The read preference mode for queries sent through the service.
| ||||||||||||
config.wireProtocolEnabledBoolean | If |
instancia federada de base de datos
{ "name": "<Service Name>", "type": "datalake", "config": { "dataLakeName": "<Federated database instance name>" } }
Campo | Descripción |
|---|---|
nameString | Obligatorio. Predeterminado: El nombre del servicio utilizado para referirse a la instancia de base de datos federada dentro de esta aplicación de Servicios de Aplicaciones. El nombre puede tener un máximo de 64 caracteres y solo debe contener letras ASCII, números, guiones bajos y guiones. |
typeString | Obligatorio. Para una instancia de base de datos federada, este valor es siempre |
config.dataLakeNameString | Obligatorio. El nombre de la instancia de base de datos federada en Atlas. |
Bases de datos y colecciones
Esquema de la Colección
Si desea aplicar un esquema a una colección, defina un schema.json archivo de configuración que contenga un esquema JSON para los documentos. El esquema de nivel raíz debe ser un esquema de objeto, con el siguiente formato:
{ "title": "<Object Type Name>", "bsonType": "object", "properties": { "<Property Name>": { <Schema> }, ... } }
Relaciones
{ "<Source Field Name>": { "ref": "#/relationship/<Data Source Name>/<Database Name>/<Collection Name>", "source_key": "<Source Field Name>", "foreign_key": "<Foreign Field Name>", "is_list": <Boolean> }, ... }
Campo | Descripción | |
|---|---|---|
refString | A JSON schema | |
source_keyString | El nombre del campo en el esquema de esta colección que especifica qué documentos de la colección externa incluir en la relación. Se incluye un documento externo si | |
foreign_keyString | El nombre del campo en el esquema de la colección externa que contiene el valor al que hace referencia | |
is_listBoolean | If Si es |
Ejemplo
An ecommerce app defines a relationship between two collections: each document in store.orders references one or more documents in the store.items collection by including item _id values in the order's items array. Both collection are in the same linked cluster (mongodb-atlas) and database (store).
La relación se define para la colección orders:
{ "items": { "ref": "#/relationship/mongodb-atlas/store/items", "source_key": "items", "foreign_key": "_id", "is_list": true } }
Reglas predeterminadas
Puedes definir reglas predeterminadas que se apliquen a todas las colecciones de una fuente de datos que no tengan definidas reglas a nivel de colección más específicas.
Defina reglas por defecto en el archivo de configuración default_rule.json de la fuente de datos en data_sources/<data-source-name>/default_rule.json.
{ "roles": [<Role>], "filters": [<Filter>] }
Campo | Descripción |
|---|---|
rolesArray<Role> | Un arreglo de configuraciones de rol. |
filtersArray<Filter> |
Reglas de colección
If the data source is not a Federated data source, then you can define collection-level rules in a collection's rules.json configuration file.
{ "database": "<Database Name>", "collection": "<Collection Name>", "roles": [<Role>], "filters": [<Filter>] }
Campo | Descripción |
|---|---|
databaseString | El nombre de la base de datos que contiene la colección. |
collectionString | El nombre de la colección. |
rolesArray<Role> | Un arreglo de configuraciones de rol. |
filtersArray<Filter> |
Configuraciones de reglas
Roles
{ "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 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
namestring | 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_whenobject | 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 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 | ||||||||
document_filtersDocument 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, Si Sync de dispositivos no está habilitado, | ||||||||
document_filters.readobject?Default: undefined | Una expresión que especifica Para mantener la compatibilidad de Sync, la expresión debe estar definida y solo puede hacer referencia a campos consultables. | ||||||||
document_filters.writeobject?Default: undefined | Una expresión que especifica Para mantener la compatibilidad de Sync, la expresión debe estar definida y solo puede hacer referencia a campos consultables. | ||||||||
readobject?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 ( 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 Para definir una alternativa predeterminada junto con las reglas a nivel de campo, deje | ||||||||
writeobject?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 ( 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 Para definir una alternativa predeterminada junto con las reglas a nivel de campo, deje You can use expansions like ImportantePermiso de lectura implícitoCada vez que un rol tiene permiso | ||||||||
insertobject?Default: true | Una expresión que evalúa a App Services solo evalúa esta expresión para operaciones de inserción y solo después de determinar que el rol tiene permiso | ||||||||
deleteobject?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 | ||||||||
searchBoolean 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. ImportanteApp Services realiza | ||||||||
fieldsDocument Default: {} | Un documento donde cada clave corresponde a un nombre de campo y cada valor define los permisos de nivel de campo Para mantener la compatibilidad de sincronización, las expresiones NotaPrioridad del permisoLos permisos | ||||||||
fields.<Field Name>.readobject?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 ( | ||||||||
fields.<Field Name>.writeobject?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 ( | ||||||||
fields.<Field Name>.fieldsDocument Default: {} | A Consulte el patrón de función Permisos a nivel de campo para documentos incrustados para obtener más información. | ||||||||
additional_fieldsDocument Default: {} | Un documento que define los permisos de nivel de campo Para mantener la compatibilidad de sincronización, las expresiones | ||||||||
additional_fields.readobject?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 Para mantener la compatibilidad con Sync, la expresión debe ser booleana ( | ||||||||
additional_fields.writeobject?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 Para mantener la compatibilidad con Sync, la expresión debe ser booleana ( |
Filtros
{ "name": "<Filter Name>", "apply_when": { Expression }, "query": { MongoDB Query }, "projection": { MongoDB Projection } }
Campo | Descripción | |
|---|---|---|
namestring | Requerido. El nombre del filtro. Los nombres de filtro son útiles para identificar y diferenciar los filtros. Limitado a 100 caracteres o menos. | |
apply_whenobject | An expression that determines when this filter applies to an incoming MongoDB operation. ImportanteAtlas 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 | |
queryobjectDefault: {} | Una consulta de MongoDB que App Services fusiona en la consulta existente de una operación filtrada. EjemploUn filtro retiene documentos que tengan un | |
projectionobjectDefault: {} | Una proyección de MongoDB que App Services fusiona con la proyección existente de una operación filtrada. ImportanteConflictos de proyecciónMongoDB 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. EjemploA filter withholds the |