---
title: "Update default roles and filters"
method: PUT
path: "/groups/{groupId}/apps/{appId}/services/{serviceId}/default_rule"
tags: ["rules"]
---

# Update default roles and filters

`PUT /groups/{groupId}/apps/{appId}/services/{serviceId}/default_rule`

Modify the [default roles and filters](https://www.mongodb.com/docs/atlas/app-services/rules/#default-rules) of a data source.

## Request body

- object — A data access rule that define defines fallback user roles and query filters for collection's that don't have more specific permissions defined.
  - `_id` string, required — The default rule's unique ObjectId identifier.
  - `roles` object[] — An ordered list of default user roles.
    - `document_filters` object
      - `read` union, required — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
        - object
        - boolean
      - `write` union, required — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
        - object
        - boolean
    - `name` string — The role's name.
    - `apply_when` union — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
      - object
      - boolean
    - `read` union — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
      - object
      - boolean
    - `write` union — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
      - object
      - boolean
    - `insert` union — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
      - object
      - boolean
    - `delete` union — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
      - object
      - boolean
    - `search` union — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
      - object
      - boolean
    - `fields` unknown
    - `additional_fields` FieldLevelPermissions — Read and write permissions for a field.
      - `read` union, required — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
        - object
        - boolean
      - `write` union, required — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
        - object
        - boolean
  - `filters` object[] — A list of default [query filters](https://www.mongodb.com/docs/atlas/app-services/reference/config/data_sources/#filters).
    - `_id` string — The filter's unique ObjectId identifier.
    - `name` string — The filter's name.
    - `apply_when` union — A [rule expression](https://mongodb.com/docs/atlas/app-services/rules/expressions/).
      - object
      - boolean
    - `query` Query — A MongoDB query object.
    - `projection` Projection — A MongoDB projection object.

## Response `204`

Successfully modified the default rule.

## Other responses

- `400` — Bad Request

## Changes

- **2024-02-20** (v3) `e2240dd053bd` — 2 breaking, 3 warning
  - added `#/components/schemas/DefaultRuleConstructor, subschema #1` to the `allOf[#/components/schemas/DefaultRule]/` request property `allOf` list
  - the `allOf[#/components/schemas/DefaultRule]/` request property type changed from `object` to no type
  - removed the request property `allOf[#/components/schemas/DefaultRule]/_id`
  - removed the request property `allOf[#/components/schemas/DefaultRule]/filters`
  - …1 more

[Change history](https://skmtc.dev/mongodb/apis/mongodb-atlas-app-services-admin-api/changes/groups/:groupId/apps/:appId/services/:serviceId/default_rule/put.md)

---

[API](https://skmtc.dev/mongodb/apis/mongodb-atlas-app-services-admin-api.md) · [All operations](https://skmtc.dev/mongodb/apis/mongodb-atlas-app-services-admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mongodb/mongodb-atlas-app-services-admin-api/revisions/1365ab72bc03/schema)
