拉取应用配置文件

获取 /groups/{groupId}/apps/{appId}/pull

下载当前应用配置。可以选择以两种不同的格式下载:

  • 包含配置文件目录的压缩 zip 文件。当您使用 CLI、版本控制系统或其他基于文件系统的环境时,这非常有用。

  • 包含整个配置的单个 JSON 对象。当您使用 API 或其他可以解析 JSON 的环境时,这非常有用。

可以通过设置 Accept 标头来指定要下载的格式。

路径参数

响应

  • 拉取成功

    隐藏响应属性 显示响应属性 对象
    • 名称 字符串 必需

      应用的名称。

    • provider_region 字符串 必需

      以下之一:

      取值为 aws-us-east-1aws-us-west-2aws-us-east-2aws-eu-central-1aws-eu-west-1aws-eu-west-2aws-ap-southeast-1aws-ap-southeast-2aws-ap-south-1aws-sa-east-1

      取值为 azure-eastus2azure-westusazure-westeuropeazure-eastasiaazure-southeastasia

      取值为 gcp-us-central1gcp-us-east4gcp-us-west1gcp-europe-west1gcp-asia-south1

    • deployment_model 字符串 必需

      应用程序部署模型

      值为 GLOBALLOCAL

    • environment 字符串

      应用程序的环境。

      取值为 developmenttestingqaproduction

    • auth_providers 大量[对象] 必需
      以下任何一项:
    • custom_user_data 对象| null
      隐藏 custom_user_data 属性 显示 custom_user_data 属性 对象| null
      • database_name 字符串

        包含自定义用户数据的数据库名称。

      • collection_name 字符串

        包含自定义用户数据的集合名称。

      • user_id_field 字符串

        每个自定义用户数据文档中显示的字段名称,其中包含每个文档相应用户的用户帐户 ID。

      • enabled 布尔

        如果为 true,则启用自定义用户数据。

      • mongo_service_name 字符串 必需

        包含自定义用户数据的链接MongoDB数据源的名称。

      • on_user_creation_function_name 字符串
    • data_api_config 对象| null
      隐藏 data_api_config 属性 显示 data_api_config 属性 对象| null
      • 残疾人 布尔 必需
      • versions array[string] 必需

        受支持的数据API版本。

        值为 v1

      • return_type 字符串 必需

        数据API和自定义端点支持的数据格式。

        值为 JSONEJSON

      • create_user_on_auth 布尔
      • run_as_user_id 字符串

        应用程序用户的帐号 ID。如果已定义,端点将始终以指定的用户身份运行。

      • run_as_user_id_script_source 字符串

        返回应用程序用户帐户 ID 的函数的字符串化源代码。如果已定义,端点将在每个请求时执行该函数,并以其 ID 为该函数所返回 ID 的对应用户的身份运行。

      • validation_method 字符串 必需

        值为 NO_VALIDATIONSECRET_AS_QUERY_PARAMVERIFY_PAYLOAD

      • secret_name 字符串

        如果 validation_method 设置为 "SECRET_AS_QUERY_PARAM""VERIFY_PAYLOAD",则这是授权请求的密钥name

      • can_evaluate 对象

        如果允许端点运行以响应传入请求,则 JSON 表达式的计算结果为 true

    • data_sources 大量[对象] 必需
      以下之一:
    • 端点 大量[对象] 必需
      隐藏端点属性 显示端点属性 对象
      • route 字符串 必需
      • http_method 字符串 必需

        取值为 GETPOSTPUTPATCHDELETE*

      • function_id 字符串 必需
      • validation_method 字符串 必需

        值为 NO_VALIDATIONSECRET_AS_QUERY_PARAMVERIFY_PAYLOAD

      • secret_id 字符串

        如果 validation_method 设置为 "SECRET_AS_QUERY_PARAM""VERIFY_PAYLOAD",则这是授权请求的密钥_id

      • return_type 字符串 必需

        数据API和自定义端点支持的数据格式。

        值为 JSONEJSON

      • respond_result 布尔 必需
      • fetch_custom_user_data 布尔
      • create_user_on_auth 布尔
      • 残疾人 布尔 必需
      • function_name 字符串 必需

        端点函数的名称。

    • 环境 对象 必需
      隐藏环境属性 显示环境属性 对象
      • values 对象

        一个对象,它将每个可能的环境名称映射到该环境中可用的环境值的定义。

        Hide values attributes 显示值属性 对象
        • 对象
          不隐藏任何属性 不显示任何属性 对象
          • values 对象
        • 开发中 对象
          隐藏开发属性 显示开发属性 对象
          • values 对象
        • 测试 对象
          隐藏测试属性 显示测试属性 对象
          • values 对象
        • qa 对象
          Hide qa attribute 显示 qa 属性 对象
          • values 对象
        • 生产 对象
          隐藏生产属性 显示生产属性 对象
          • values 对象
    • 功能 大量[对象] 必需
      隐藏函数属性 显示函数属性 对象
      • can_evaluate 对象

        如果允许运行函数以响应传入请求,则 JSON 表达式的计算结果为 true

      • 名称 字符串 必需

        函数的唯一名称。

      • private 布尔 必需

        如果为 true ,则该函数对客户端应用程序隐藏。您仍然可以从 JSON 表达式和其他函数(包括传入的 webhook 和触发器)中调用私有函数。

      • 来源 字符串 必需

        函数的字符串化源代码。代码必须是有效的 ES6。

      • run_as_system 布尔

        如果为 true,则该函数以完全权限执行,会绕过所有服务的规则。

      • run_as_user_id 字符串

        应用程序用户的帐户 ID。如果已定义,端点将始终以指定的用户身份运行。不能与 run_as_user_id_script_source 一起使用。

      • run_as_user_id_script_source 字符串

        返回应用程序用户帐户ID 的函数的字符串化源代码。如果已定义,端点将在每个请求时执行该函数,并以具有该函数返回的ID的用户身份运行。不能与 run_as_user_id 一起使用。

    • GraphQL 对象 必需
      隐藏GraphQL属性 显示GraphQL属性 对象
      • config 对象 必需
        隐藏配置属性 显示配置属性 对象
        • use_natural_pluralization 布尔

          如果 true,生成的模式类型名称将尽可能使用常见的英语复数形式。

          如果为 false,或者无法确定自然复数,则复数类型使用单数类型名称,并在末尾附加 "s"

          创建应用程序后不能更改此值。对于所有新应用程序,该值均为 true

        • disable_schema_introspection 布尔

          如果为 true,则 GraphQL API 会阻止客户端的内省查询

      • validation_settings 对象 必需
        隐藏 validation_settings 属性 显示 validation_settings 属性 对象
        • read_validation_action 字符串

          值为 ERRORWARN

        • read_validation_level 字符串

          值为 STRICTOFF

        • write_validation_action 字符串

          值为 ERRORWARN

        • write_validation_level 字符串

          值为 STRICTOFF

      • custom_resolvers 大量[对象] 必需
        隐藏 custom_resolvers 属性 显示 custom_resolvers 属性 对象
        • on_type 字符串 必需

          解析程序父类型的名称。可以是 "Query""Mutation",如果是计算属性,则可以是生成类型的名称。

        • field_name 字符串 必需

          GraphQL 模式中出现的自定义解析程序字段的名称。

        • input_type 字符串 |对象

          自定义解析程序的 input 参数的类型。它可为标量、现有生成类型的名称或自定义 JSON 架构对象。如果未定义,则解析程序不接受输入。

        • input_type_format 字符串

          自定义解析程序使用的输入类型。此值必须与 input_type 的值一致:

          • 标量输入类型必须使用 "scalar""scalar-list"
          • 生成的输入类型必须使用 "generated""generated-list"
          • 自定义输入类型必须使用 "custom"

          如果未定义,则解析程序不接受输入。

          取值为 scalarscalar-listgeneratedgenerated-listcustom

        • payload_type 字符串 |对象

          自定义解析程序返回值的类型。它可为标量、现有生成类型的名称或自定义 JSON 架构对象。

          如果未定义,则解析程序将返回一个 DefaultPayload 对象:

          type DefaultPayload {
            status: String!
          }
          
        • payload_type_format 字符串

          自定义解析程序使用的有效负载类型。此值必须与 payload_type 的值一致:

          • 标量有效载荷类型必须使用 "scalar""scalar-list"
          • 生成的有效负载类型必须使用 "generated""generated-list"
          • 自定义有效载荷类型必须使用 "custom"

          如果未定义,解析程序将返回 DefaultPayload 对象:

          取值为 scalarscalar-listgeneratedgenerated-listcustom

        • function_name 字符串 必需

          解析程序函数的名称。

    • 托管 对象 必需
      隐藏托管属性 显示托管属性 对象
      • enabled 布尔 必需
      • custom_domain 字符串
      • default_error_path 字符串
      • default_error_code 字符串
    • https_endpoints 大量[对象] 必需

      [已弃用] 旧版 HTTP 服务的列表。这仅用于向后兼容。

      隐藏 https_endpoints 属性 显示 https_endpoints 属性 对象
      • 名称 字符串

        服务名称。

      • 类型 字符串

        服务类型。

        取值为 awstwiliogithubgcmhttp

      • incoming_webhooks 大量[对象]
        隐藏传入网络钩子属性 显示传入网络钩子属性 对象
        • 名称 字符串 必需
        • function_source 字符串 必需
        • respond_result 布尔 必需
        • 选项 对象
          隐藏选项属性 显示选项属性 对象
          • 秘密 字符串
          • secretAsQueryParam 布尔
      • 版本 整型
    • log_forwarders 大量[对象] 必需
      隐藏 log_forwarders 属性 显示 log_forwarders 属性 对象
      • 名称 字符串 必需
      • 残疾人 布尔 必需
      • log_types array[string] 必需

        取值为 authendpointfunctiongraphqlpushschemaservicesynctriggertrigger_error_handler

      • log_statuses array[string] 必需

        值为 errorsuccess

      • policy 对象 必需
        隐藏策略属性 显示策略属性 对象
        • 类型 字符串

          值为 singlebatch

      • 操作 对象 必需
        隐藏动作属性 显示动作属性 对象
        • 类型 字符串

          值为 collectionfunction

        • 名称 字符串
        • data_source 字符串
        • database 字符串
        • 集合 字符串
    • schemas 大量[对象] 必需
      隐藏模式属性 显示模式属性 对象
      • metadata 对象

        用于描述模式适用于哪个链接集合的元数据。

        Hide metadata attributes 显示元数据属性 对象
        • data_source 字符串

          数据源名称。

        • database 字符串

          数据库名称。

        • 集合 字符串

          collection名称。

      • 模式 对象

        集合的有效模式

        隐藏模式属性 显示模式属性 对象
        • bsonType 字符串

          字段的BSON类型

          值为 objectarraystringnumberintlongdoubledecimaldatetimestampboolnullregexobjectIdbinaryuuidfunctionjavascriptsymbolminKeymaxKey

        • 标题 字符串

          人类可读的模式标题。

        • 必需 array[string]

          对于 object 模式,为对象实例中所需字段名称的大量。

        • 属性 对象

          一个对象,其中每个字段名称都是模式中的一个属性。相应的值是该字段的模式定义。

          隐藏属性 (Attribute) 显示属性 (Attribute) 对象
          • * 对象

            集合的有效模式

      • 关系 对象

        与外部集合的关系。每个字段名称都是模式中的一个属性。相应的值是该字段的关系定义。

        隐藏关系属性 显示关系属性 对象
        • * 对象 additionalProperties

          关系定义

          隐藏 * 属性 显示 * 属性 对象
          • ref 字符串

            外部集合的引用字符串。

          • foreign_key 字符串

            该关系指向的外部集合中的字段名称。

          • is_list 布尔

            如果为 true

            • 该关系可能会点许多外部文档。
            • 本地字段必须定义为集合模式中的大量。
    • 服务 大量[对象] 必需

      [已弃用] 旧版第三方非 HTTP 服务的列表。这仅用于向后兼容。

      隐藏服务属性 显示服务属性 对象
      • 名称 字符串

        服务名称。

      • 类型 字符串

        服务类型。

        取值为 awstwiliogithubgcmhttp

      • incoming_webhooks 大量[对象]
        隐藏传入网络钩子属性 显示传入网络钩子属性 对象
        • 名称 字符串 必需
        • function_source 字符串 必需
        • respond_result 布尔 必需
        • 选项 对象
          隐藏选项属性 显示选项属性 对象
          • 秘密 字符串
          • secretAsQueryParam 布尔
      • 版本 整型
    • 同步 对象 必需
      隐藏同步属性 显示同步属性 对象
      • 字符串 必需

        同步服务的状态("enabled""disabled";如果未配置同步,则为空)。

      • database_name 字符串

        App Services 在开发模式下存储数据的同步集群中数据库的名称。App Services 自动为每个同步类型生成模式,并将每个对象类型映射到数据库内的集合。

      • queryable_fields_names array[string]

        任何集合上的可查询字段名称的大量。

      • indexed_queryable_fields_names array[string]

        用作索引可查询字段的字段名称列表。尽管此属性是一个大量,但 Sync 目前仅支持一个索引可查询字段。因此,该大量最多可以包含一个元素。

        索引化可查询字段必须存在于模式中,并且在您同步的每个集合中具有相同的符合条件的字段类型。索引可查询字段名称也必须出现在 queryable_fields_names 中,因为这是一个全局可查询字段。

      • collection_queryable_fields_names 对象

        指定集合上的可查询字段名称的大量。

        隐藏 collection_queryable_fields_names 属性 显示 collection_queryable_fields_names 属性 对象
        • * 对象 additionalProperties
          隐藏 * 属性 显示 * 属性 对象
          • * 字符串 additionalProperties

            可查询字段的名称。

      • 权限 对象

        已弃用

      • last_disabled 字符串

        上次禁用同步的时间,用自 UNIX 纪元以来的秒数表示。

      • client_max_offline_days 整型

        在需要进行客户端重置之前,客户端可以离线的天数。

      • is_recovery_mode_disabled 布尔

        指定是否禁用客户端重置模式。默认下,启用客户端重置模式,该值为 false

      • asymmetric_tables array[string]

        定义为与数据导入不对称的集合名称的大量,客户端可以写入但不能读取数据。

    • 触发器 大量[对象] 必需
      以下之一:
    • values 大量[对象] 必需
      Hide values attributes 显示值属性 对象
      • 名称 字符串 必需
      • private 布尔 必需
      • from_secret 布尔 必需

        如果为 true,则该值是按名称对 Secret 的引用。

    包含应用配置文件目录的zip文件

  • 400

    Invalid request

  • 500

    拉取配置时出错

GET /groups/{groupId}/apps/{appId}/pull
curl \
 --request GET 'https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/pull' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
响应示例 (200)
{
  "name": "string",
  "provider_region": "aws-us-east-1",
  "deployment_model": "GLOBAL",
  "environment": "production",
  "auth_providers": [
    {
      "name": "anon-user",
      "type": "anon-user",
      "disabled": true
    }
  ],
  "custom_user_data": {
    "database_name": "myapp",
    "collection_name": "users",
    "user_id_field": "user_account_id",
    "enabled": true,
    "mongo_service_name": "mongodb-atlas",
    "on_user_creation_function_name": "myFunction"
  },
  "data_api_config": {
    "disabled": true,
    "versions": [
      "v1"
    ],
    "return_type": "JSON",
    "create_user_on_auth": true,
    "run_as_user_id": "string",
    "run_as_user_id_script_source": "string",
    "validation_method": "NO_VALIDATION",
    "secret_name": "string",
    "can_evaluate": {}
  },
  "data_sources": [
    {
      "name": "string",
      "type": "string",
      "config": {
        "clusterName": "Cluster0",
        "readPreference": "primary",
        "readPreferenceTagSets": [
          "server1"
        ],
        "wireProtocolEnabled": true
      },
      "default_rule": {
        "roles": [
          {
            "document_filters": {
              "read": {},
              "write": {}
            },
            "name": "string",
            "apply_when": {},
            "read": {},
            "write": {},
            "insert": {},
            "delete": {},
            "search": {},
            "fields": {},
            "additional_fields": {
              "read": {},
              "write": {}
            }
          }
        ],
        "filters": [
          {
            "name": "string",
            "apply_when": {},
            "query": {},
            "projection": {
              "additionalProperty1": 0,
              "additionalProperty2": 0
            }
          }
        ]
      },
      "rules": [
        {
          "database": "string",
          "collection": "string",
          "roles": [
            {
              "document_filters": {
                "read": {},
                "write": {}
              },
              "name": "string",
              "apply_when": {},
              "read": {},
              "write": {},
              "insert": {},
              "delete": {},
              "search": {},
              "fields": {},
              "additional_fields": {
                "read": {},
                "write": {}
              }
            }
          ],
          "filters": [
            {
              "name": "string",
              "apply_when": {},
              "query": {},
              "projection": {
                "additionalProperty1": 0,
                "additionalProperty2": 0
              }
            }
          ]
        }
      ]
    }
  ],
  "endpoints": [
    {
      "route": "string",
      "http_method": "GET",
      "function_id": "string",
      "validation_method": "NO_VALIDATION",
      "secret_id": "string",
      "return_type": "JSON",
      "respond_result": true,
      "fetch_custom_user_data": true,
      "create_user_on_auth": true,
      "disabled": true,
      "function_name": "string"
    }
  ],
  "environments": {
    "values": {
      "none": {
        "values": {}
      },
      "development": {
        "values": {}
      },
      "testing": {
        "values": {}
      },
      "qa": {
        "values": {}
      },
      "production": {
        "values": {}
      }
    }
  },
  "functions": [
    {
      "can_evaluate": {},
      "name": "string",
      "private": true,
      "source": "string",
      "run_as_system": true,
      "run_as_user_id": "string",
      "run_as_user_id_script_source": "string"
    }
  ],
  "graphql": {
    "config": {
      "use_natural_pluralization": true,
      "disable_schema_introspection": true
    },
    "validation_settings": {
      "read_validation_action": "ERROR",
      "read_validation_level": "STRICT",
      "write_validation_action": "ERROR",
      "write_validation_level": "STRICT"
    },
    "custom_resolvers": [
      {
        "on_type": "string",
        "field_name": "string",
        "input_type": "string",
        "input_type_format": "scalar",
        "payload_type": "string",
        "payload_type_format": "scalar",
        "function_name": "string"
      }
    ]
  },
  "hosting": {
    "enabled": true,
    "custom_domain": "example.com",
    "default_error_path": "/404.html",
    "default_error_code": "404"
  },
  "https_endpoints": [
    {
      "name": "string",
      "type": "aws",
      "incoming_webhooks": [
        {
          "name": "string",
          "function_source": "string",
          "respond_result": true,
          "options": {
            "secret": "string",
            "secretAsQueryParam": true
          }
        }
      ],
      "version": 42
    }
  ],
  "log_forwarders": [
    {
      "name": "string",
      "disabled": true,
      "log_types": [
        "auth"
      ],
      "log_statuses": [
        "error"
      ],
      "policy": {
        "type": "single"
      },
      "action": {
        "type": "collection",
        "name": "string",
        "data_source": "string",
        "database": "string",
        "collection": "string"
      }
    }
  ],
  "schemas": [
    {
      "metadata": {
        "data_source": "string",
        "database": "string",
        "collection": "string"
      },
      "schema": {
        "bsonType": "object",
        "title": "string",
        "required": [
          "string"
        ],
        "properties": {
          "*": {}
        }
      },
      "relationships": {
        "additionalProperty1": {
          "ref": "string",
          "foreign_key": "string",
          "is_list": true
        },
        "additionalProperty2": {
          "ref": "string",
          "foreign_key": "string",
          "is_list": true
        }
      }
    }
  ],
  "services": [
    {
      "name": "string",
      "type": "aws",
      "incoming_webhooks": [
        {
          "name": "string",
          "function_source": "string",
          "respond_result": true,
          "options": {
            "secret": "string",
            "secretAsQueryParam": true
          }
        }
      ],
      "version": 42
    }
  ],
  "sync": {
    "state": "string",
    "database_name": "string",
    "queryable_fields_names": [
      "string"
    ],
    "indexed_queryable_fields_names": [
      "string"
    ],
    "collection_queryable_fields_names": {
      "additionalProperty1": {
        "additionalProperty1": "string",
        "additionalProperty2": "string"
      },
      "additionalProperty2": {
        "additionalProperty1": "string",
        "additionalProperty2": "string"
      }
    },
    "permissions": {},
    "last_disabled": "string",
    "client_max_offline_days": 42,
    "is_recovery_mode_disabled": true,
    "asymmetric_tables": [
      "string"
    ]
  },
  "triggers": [
    {
      "name": "onNewEmployee",
      "type": "DATABASE",
      "config": {
        "match": {},
        "project": {},
        "database": "HR",
        "collection": "employees",
        "service_id": "5adeb649b8b998486770ae7c",
        "full_document": true,
        "operation_types": [
          "INSERT"
        ]
      },
      "function_id": "5eea9ca4ca0e356e2c2a148a",
      "event_processors": {
        "FUNCTION": {
          "config": {
            "function_id": "6841b8d3e71dc81bed89dbba",
            "function_name": "Atlas_Triggers_DatabaseInsert_1749137618"
          }
        }
      }
    }
  ],
  "values": [
    {
      "name": "string",
      "private": true,
      "from_secret": true
    }
  ]
}