[[breaking_60_plugins_changes]] === Plugins changes ==== Mapper attachments plugin * The mapper attachments plugin has been deprecated in elasticsearch 5.0 and is now removed. You can use {plugins}/ingest-attachment.html[ingest attachment plugin] instead. ==== S3 Repository plugin * The bucket an s3 repository is configured with will no longer be created automatically. It must exist before the s3 repository is created. * Support for specifying s3 credentials through environment variables and system properties has been removed. Use the `elasticsearch-keystore` tool to securely store the credentials. * Specifying region has been removed. This includes the settings `cloud.aws.region`, `cloud.aws.s3.region`, `repositories.s3.region`, and specifying region inside the repository settings. Instead, specify the full endpoint if a custom s3 location is needed, or rely on the default behavior which automatically locates the region of the configured bucket. * Specifying s3 signer type has been removed, including `cloud.aws.signer` and `cloud.aws.s3.signer`. * Global repositories settings have been removed. This includes `repositories.s3.bucket`, `repositories.s3.server_side_encryption`, `repositories.s3.buffer_size`, `repositories.s3.max_retries`, `repositories.s3.use_throttle_retries`, `repositories.s3.chunk_size`, `repositories.s3.compress`, `repositories.s3.storage_class`, `repositories.s3.canned_acl`, `repositories.s3.base_path`, and `repositories.s3.path_style_access`. Instead, these settings should be set directly in the settings per repository. See {plugins}/repository-s3-repository.html[S3 Repository settings]. * Shared client settings have been removed. This includes `cloud.aws.access_key`, `cloud.aws.secret_key`, `cloud.aws.protocol`, `cloud.aws.proxy.host`, `cloud.aws.proxy.port`, `cloud.aws.proxy.username`, `cloud.aws.proxy.password`, `cloud.aws.signer`, `cloud.aws.read_timeout`, `cloud.aws.s3.access_key`, `cloud.aws.s3.secret_key`, `cloud.aws.s3.protocol`, `cloud.aws.s3.proxy.host`, `cloud.aws.s3.proxy.port`, `cloud.aws.s3.proxy.username`, `cloud.aws.s3.proxy.password`, `cloud.aws.s3.signer`, `cloud.aws.s3.read_timeout`, `repositories.s3.access_key`, `repositories.s3.secret_key`, `repositories.s3.endpoint` and `repositories.s3.protocol`. Instead, use the new named client settings under `s3.client.CLIENT_NAME.*`. ==== Azure Repository plugin * The container an azure repository is configured with will no longer be created automatically. It must exist before the azure repository is created. * Global repositories settings you are able to set in elasticsearch config file under `repositories.azure` name space have been removed. This includes `repositories.azure.account`, `repositories.azure.container`, `repositories.azure.base_path`, `repositories.azure.location_mode`, `repositories.azure.chunk_size` and `repositories.azure.compress`. You must set those settings per repository instead. Respectively `account`, `container`, `base_path`, `location_mode`, `chunk_size` and `compress`. See {plugins}/repository-azure-usage.html#repository-azure-repository-settings[Azure Repository settings]. ==== GCS Repository plugin * The `service_account` setting has been removed. A service account json credential file must now be specified in the <>. ==== EC2 Discovery plugin * Specifying ec2 signer type has been removed, including `cloud.aws.signer` and `cloud.aws.ec2.signer`. * The region setting has been removed. This includes the settings `cloud.aws.region` and `cloud.aws.ec2.region`. Instead, specify the full endpoint. * All `cloud.aws.*` and `cloud.aws.ec2.*` settings have been removed. Use `discovery.ec2.*` settings instead. ==== Ignoring hidden folders Previous versions of Elasticsearch would skip hidden files and directories when scanning the plugins folder. This leniency has been removed. ==== ICU Analysis plugin The icu4j library has been upgraded to 59.1, Indices created in the previous major version will need to be reindexed in order to return correct (and correctly ordered) results, and to take advantage of new characters. ==== Plugins should not construct `Environment` instances from `Settings` Previously, plugins could construct an `Environment` instance from `Settings` to discover the path to plugin-specific config files. This will no longer work in all situations as the `Settings` object does not carry the necessary information for the config path to be set correctly. Instead, plugins that need to know the config path should have a single constructor that accepts a pair of `Settings` and `Path` instances, and construct an `Environment` using the corresponding constructor on `Environment`.