<?xml version="1.0" encoding="UTF-8"?>

<!-- AUTOGENERATED FILE. DO NOT EDIT. -->

<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:google.com,2016:cloud-endpoints-release-notes</id>
  <title>Cloud Endpoints - Release Notes</title>
  <link rel="self" href="https://docs.cloud.google.com/feeds/cloud-endpoints-release-notes.xml"/>
  <author>
    <name>Google Cloud</name>
  </author>
  <updated>2020-08-20T16:16:55.969010+00:00</updated>


  <entry>
    <title>August 2020</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#august_2020</id>
    <updated>2020-08-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#august_2020"/>
    <content type="html"><![CDATA[<h3 data-text="Extensible Service Proxy V2 Beta support added for Compute Engine and Google Kubernetes Engine" id="support_added_for_and" tabindex="0">Extensible Service Proxy V2 Beta support added for Compute Engine and Google Kubernetes Engine</h3><p><a href="https://cloud.google.com/endpoints/docs/openapi/glossary#extensible_service_proxy_v2">Extensible Service Proxy V2 Beta (ESPv2 Beta)</a> support added as a proxy for <a href="https://cloud.google.com/endpoints/docs/openapi/get-started-compute-engine-docker-espv2">Compute Engine</a>, <a href="https://cloud.google.com/endpoints/docs/openapi/get-started-kubernetes-engine-espv2">Google Kubernetes Engine</a>, and <a href="https://cloud.google.com/endpoints/docs/openapi/get-started-kubernetes-espv2">Kubernetes</a> not running in Google Cloud. ESPv2 Beta is an <a href="https://www.envoyproxy.io/docs/envoy/latest/">Envoy</a>-based high-performance, scalable proxy that runs in front of an OpenAPI or gRPC specification API backend. With this release, you can deploy ESPv2 Beta as an API Gateway or as a sidecar.</p><p>ESPv2 Beta supports version 2 of the <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md">OpenAPI Specification</a> and now supports <a href="http://www.grpc.io">gRPC</a> specifications.</p><p>With this release, Endpoints supports ESPv2 Beta for the following platforms:</p><ul><li>App Engine standard (OpenAPI only)</li>
<li>Cloud Functions (OpenAPI only)</li>
<li>Cloud Run (OpenAPI or gRPC)</li>
<li>Cloud Run for Anthos (OpenAPI or gRPC)</li>
<li>Google Kubernetes Engine (OpenAPI or gRPC)</li>
<li>Compute Engine (OpenAPI or gRPC)</li>
<li>Kubernetes (OpenAPI or gRPC)</li></ul><p>Endpoints support for ESPv2 Beta is currently in Beta.</p>]]>
    </content>
  </entry>

  <entry>
    <title>January 2020</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#january_2020</id>
    <updated>2020-01-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#january_2020"/>
    <content type="html"><![CDATA[<h3 data-text="gRPC support for Cloud Run added (Beta)" id="grpc_support_for_added_beta" tabindex="0">gRPC support for Cloud Run added (Beta)</h3><p>Added support for gRPC for <a href="https://cloud.google.com/run/docs">Cloud Run</a> to Cloud Endpoints. This feature requires you to use <a href="https://cloud.google.com/endpoints/docs/openapi/glossary#extensible_service_proxy_v2">Extensible Service Proxy V2 Beta (ESPv2 Beta)</a> as the Endpoints <a href="https://wikipedia.org/wiki/API_management">API gateway</a>.</p><p>Endpoints support for gRPC with <a href="https://cloud.google.com/run/docs">Cloud Run</a> and Endpoints support for ESPv2 Beta are currently in Beta.</p><p>See <a href="https://cloud.google.com/endpoints/docs/grpc/get-started-cloud-run">Getting Started with Endpoints for Cloud Run</a> for more.</p>]]>
    </content>
  </entry>

  <entry>
    <title>December 2019</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#december_2019</id>
    <updated>2019-12-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#december_2019"/>
    <content type="html"><![CDATA[<h3 data-text="Extensible Service Proxy V2 Beta support added" id="support_added" tabindex="0">Extensible Service Proxy V2 Beta support added</h3><p><a href="https://cloud.google.com/endpoints/docs/openapi/glossary#extensible_service_proxy_v2">Extensible Service Proxy V2 Beta (ESPv2 Beta)</a> support added as an Endpoints <a href="https://wikipedia.org/wiki/API_management">API gateway</a> for <a href="https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-functions">Cloud Functions</a> and <a href="https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-run">Cloud Run</a>. ESPv2 Beta is an <a href="https://www.envoyproxy.io/docs/envoy/latest/">Envoy</a>-based high-performance, scalable proxy that runs in front of an OpenAPI API backend.</p><p>ESPv2 Beta supports version 2 of the <a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md">OpenAPI Specification</a>. ESPv2 Beta does not currently support <a href="http://www.grpc.io">gRPC</a>.</p><p>ESPv2 Beta is only supported for use for the Beta versions of Endpoints for <a href="https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-functions">Cloud Functions</a> and for <a href="https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-run">Cloud Run</a>. ESPv2 Beta is not supported for Endpoints for App Engine, GKE, Compute Engine, or Kubernetes.</p><p>ESPv2 Beta supports all other features of <a href="https://cloud.google.com/endpoints/docs/openapi/glossary#extensible_service_proxy">Extensible Service Proxy (ESP)</a>, such as trace and logging, unless explicitly specified in the documentation.</p><p>APIs deployed on Endpoints for Cloud Functions and Cloud Run using ESP will continue to function. However, we recommend that you migrate your APIs to ESPv2 Beta. Technical support will instruct you to move to ESPv2 Beta rather than attempting to troubleshoot issues with ESP.</p><p>See <a href="https://cloud.google.com/endpoints/docs/openapi/migrate-to-esp-v2">Migrate to Extensible Service Proxy V2 Beta</a> for more.</p>]]>
    </content>
  </entry>

  <entry>
    <title>September 2018</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#september_2018</id>
    <updated>2018-09-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#september_2018"/>
    <content type="html"><![CDATA[<h3 data-text="Cloud Endpoints Frameworks v1 has been shutdown" id="cloud_endpoints_frameworks_v1_has_been_shutdown" tabindex="0">Cloud Endpoints Frameworks v1 has been shutdown</h3><p>Cloud Endpoints Frameworks v1 for the App Engine standard environment was deprecated on August 2, 2017. The <a href="https://cloud.google.com/appengine/docs/deprecations/endpoints-v1">service was shutdown</a> on September 13, 2018, and the documentation has been removed.</p><h3 data-text="Endpoints Frameworks Python: Changing the default logging level" id="endpoints_frameworks_python_changing_the_default_logging_level" tabindex="0">Endpoints Frameworks Python: Changing the default logging level</h3><p>The ability to the change the default logging level was added to Endpoints Frameworks Python. For more information, see <a href="https://cloud.google.com/endpoints/docs/frameworks/python/api_server#logging_in_endpoints_framework_for_python">Logging in Endpoints Framework for Python</a>.</p>]]>
    </content>
  </entry>

  <entry>
    <title>August 2018</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#august_2018</id>
    <updated>2018-08-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#august_2018"/>
    <content type="html"><![CDATA[<h3 data-text="Cloud Endpoints Portal updates" id="updates" tabindex="0">Cloud Endpoints Portal updates</h3><p>Endpoints Portal is now now generally available. This release includes the following new features and enhancements:</p><h4 data-text="Sync custom documentation through an API" id="sync_custom_documentation_through_an_api" tabindex="0">Sync custom documentation through an API</h4><p>An API that allows you to sync custom documentation to your portal is now available. To learn more, see the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/dev-portal-sync-custom-api">Endpoints OpenAPI: Sync the Custom Documentation through an API</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/dev-portal-sync-custom-api">Endpoints gRPC: Sync the Custom Documentation through an API</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/dev-portal-sync-custom-api">Endpoints Frameworks: Sync the Custom Documentation through an API</a></li></ul><h4 data-text="Include images in custom documentation" id="include_images_in_custom_documentation" tabindex="0">Include images in custom documentation</h4><p>You can add images to the custom content Git repository and reference them in your Markdown files. To learn more, see the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/dev-portal-add-custom-docs#add_images">Endpoints OpenAPI: Adding images</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/dev-portal-add-custom-docs#add_images">Endpoints gRPC: Adding images</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/dev-portal-add-custom-docs#add_images">Endpoints Frameworks: Adding images</a></li></ul><h4 data-text="Introducing SmartDocs API reference documentation" id="introducing" tabindex="0">Introducing SmartDocs API reference documentation</h4><p>The component that displays API reference documentation in your portal and provides the <strong>Try this API</strong> panel has a name: <em>SmartDocs API reference documentation</em>. Originally developed for the Endpoints Portal, SmartDocs is also available in <a class="external" href="https://docs-new.apigee.com/whats-new#api-doc-ui" target="_blank">Apigee’s integrated developer portal</a>.</p><h3 data-text="Shutdown of Cloud Endpoints Frameworks v1 is approaching" id="shutdown_of_cloud_endpoints_frameworks_v1_is_approaching" tabindex="0">Shutdown of Cloud Endpoints Frameworks v1 is approaching</h3><p>Cloud Endpoints Frameworks v1 for the App Engine standard environment was deprecated on August 2, 2017. The <a href="https://cloud.google.com/appengine/docs/deprecations/endpoints-v1">service is scheduled to be shutdown</a> on September 3, 2018, and the documentation will be removed. To avoid an outage, you must migrate your v1 application. For information on migrating your application to Endpoints Frameworks v2, see the following:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/frameworks/java/migrating">Java: Migration Guide</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/java/migrating-android">Java: Migrating Android Projects</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/python/migrating">Python: Migration Guide</a></li></ul><h3 data-text="Disable trace sampling in ESP" id="disable_trace_sampling_in_esp" tabindex="0">Disable trace sampling in ESP</h3><p>By default, ESP samples a small number of requests to your API and sends traces to <a href="https://cloud.google.com/trace/docs/overview">Stackdriver Trace</a>. The ESP startup option to disable trace sampling was added in ESP release 1.19.0. This option is now available for deployments on the App Engine flexible environment.</p><p>To learn more, see "Tracing your API" in the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/tracing">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/tracing">Endpoints gRPC documentation</a></li></ul><p>Endpoints Frameworks, which is used on the App Engine standard environment does not use ESP for API management and does not send trace data to Stackdriver Trace.</p>]]>
    </content>
  </entry>

  <entry>
    <title>July 2018</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#july_2018</id>
    <updated>2018-07-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#july_2018"/>
    <content type="html"><![CDATA[<h3 data-text="New role and permissions for Endpoints Portal" id="new_role_and_permissions_for" tabindex="0">New role and permissions for Endpoints Portal</h3><p>The <a href="https://cloud.google.com/iam/docs">Identity and Access Management (IAM)</a> role, <strong>Endpoints Portal Admin</strong>, and several new IAM permissions are now available. The new role and permissions allow you to control the degree of access that project members have to Endpoints Portal.</p><p>To learn more, see "Endpoints Portal permissions" in the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/api-access-overview#endpoints_portal_permissions">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/api-access-overview#endpoints_portal_permissions">Endpoints gRPC documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/api-access-overview#endpoints_portal_permissions">Endpoints Frameworks documentation</a></li></ul>]]>
    </content>
  </entry>

  <entry>
    <title>June 2018</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#june_2018</id>
    <updated>2018-06-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#june_2018"/>
    <content type="html"><![CDATA[<h3 data-text="Library and Plugin Updates" id="library_and_plugin_updates" tabindex="0">Library and Plugin Updates</h3><ul><li><p>The Endpoints Frameworks for Python library, version <a class="external" href="https://pypi.python.org/pypi/google-endpoints" target="_blank">4.4.0</a>, has been enhanced such that you can import the <code dir="ltr" translate="no">message_types</code>, <code dir="ltr" translate="no">messages</code>, and the <code dir="ltr" translate="no">remote</code> classes from the <code dir="ltr" translate="no">endpoints</code> library instead of the <code dir="ltr" translate="no">protorpc</code> library. In the file where you <a href="https://cloud.google.com/endpoints/docs/frameworks/python/create_api">define your API</a>, we recommend that you change your import statements from:</p> <pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">import endpoints
from protorpc import message_types
from protorpc import messages
from protorpc import remote
</code></pre> <p>to:</p> <pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">from endpoints import message_types
from endpoints import messages
from endpoints import remote
</code></pre> <p>This optional change in your import statements streamlines code in the Endpoints Frameworks library.</p></li>
<li><p>The Endpoints Frameworks for Java libraries, version <a class="external" href="http://search.maven.org/#search%7Cga%7C1%7Cendpoints-framework" target="_blank">2.1.0</a>, now validates that requests have required parameters. If a required parameter is omitted in a request, Endpoints Frameworks returns the status code HTTP 400, Bad Request.</p></li></ul><h3 data-text="Beta launch of Endpoints Portal" id="beta_launch_of" tabindex="0">Beta launch of Endpoints Portal</h3><p>You use Endpoints Portal to create a developer portal, a website that users of your Cloud Endpoints API can access to read documentation and to interact with your API.</p><p>To learn more, see "Cloud Endpoints Portal Overview" in the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/dev-portal-overview">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/dev-portal-overview">Endpoints gRPC documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/dev-portal-overview">Endpoints Frameworks documentation</a></li></ul>]]>
    </content>
  </entry>

  <entry>
    <title>March 2018</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#march_2018</id>
    <updated>2018-03-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#march_2018"/>
    <content type="html"><![CDATA[<h3 data-text="ESP managed rollout option" id="esp_managed_rollout_option" tabindex="0">ESP managed rollout option</h3><p>The ESP <code dir="ltr" translate="no">--rollout_strategy=managed</code> option is now available for APIs described with OpenAPI or gRPC. This option configures ESP to use the latest deployed service configuration. When you specify this option, up to 5 minutes after you deploy a new service configuration, ESP detects the change and automatically begins using it. We recommend that you specify this option instead of a specific configuration ID for ESP to use.</p><p>This option is not available in Endpoints Frameworks.</p><p>Although the managed rollout option has been available in ESP since version 1.7.0, the <code dir="ltr" translate="no">gcloud</code> command line tool has now been updated to make the option available on the App Engine flexible environment. Currently, the option is available only in the beta version of the <code dir="ltr" translate="no">gcloud</code> command line tool. After you add the option to your <code dir="ltr" translate="no">app.yaml</code>, you will need to use the <code dir="ltr" translate="no">gcloud beta app deploy</code> command to deploy your API and ESP.</p><p>For information on deploying ESP with this new option, see the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/deploy-api-backend#deploying_your_api_and_esp">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/deploy-api-backend#deploying_your_api_and_esp">Endpoints gRPC documentation</a></li></ul><h3 data-text="Library and Plugin Updates" id="library_and_plugin_updates_2" tabindex="0">Library and Plugin Updates</h3><ul><li>The Endpoints Frameworks for Python library, version <a class="external" href="https://pypi.python.org/pypi/google-endpoints" target="_blank">3.0.0</a>, contains potentially breaking changes. <ul><li>It is now possible to deploy a single service comprising multiple APIs. However, there are additional restrictions on API names when using this functionality. See <a href="https://cloud.google.com/endpoints/docs/frameworks/python/test-deploy#generating_and_deploying_an_api_configuration_file">Deploying and Testing an API</a> for more details.</li>
<li>Previously, API version strings were embedded in the path as-is. For example, an API <code dir="ltr" translate="no">echo</code> with version <code dir="ltr" translate="no">v1</code> would have a path like <code dir="ltr" translate="no">/echo/v1</code>. This continues to be the case for API version strings that are not compatible with the <a href="https://semver.org/spec/v2.0.0.html">SemVer standard</a>. If the string is compatible with the SemVer standard, the major version number will be extracted and embedded in the path when you deploy your API. So, for example, an API called <code dir="ltr" translate="no">echo</code> with version <code dir="ltr" translate="no">2.1.0</code> would have a path like <code dir="ltr" translate="no">/echo/v2</code>. If you update the <code dir="ltr" translate="no">echo</code> API to version <code dir="ltr" translate="no">2.2.0</code> and deploy a backwards-compatible change, the path remains <code dir="ltr" translate="no">/echo/v2</code>. This allows you to update the API version number when you make a backwards-compatible change without breaking existing paths for your clients. But if you update the <code dir="ltr" translate="no">echo</code> API to version <code dir="ltr" translate="no">3.0.0</code> (because you are deploying a breaking change), the path is changed to <code dir="ltr" translate="no">/echo/v3</code>.</li></ul></li></ul>]]>
    </content>
  </entry>

  <entry>
    <title>January 2018</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#january_2018</id>
    <updated>2018-01-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#january_2018"/>
    <content type="html"><![CDATA[<p>The Endpoints dashboard now provides the ability to compare a configuration file with the previous version. Viewing the differences in your configuration files might be helpful when troubleshooting a problem with a particular deployment. To learn more, see the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/config-file-compare">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/config-file-compare">Endpoints gRPC documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/config-file-compare">Endpoints Frameworks documentation</a></li></ul><h3 data-text="Library and Plugin Updates" id="library_and_plugin_updates_3" tabindex="0">Library and Plugin Updates</h3><ul><li>The Endpoints Frameworks for Python library, version <a class="external" href="https://pypi.python.org/pypi/google-endpoints" target="_blank">2.5.0</a></li></ul>]]>
    </content>
  </entry>

  <entry>
    <title>December 2017</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#december_2017</id>
    <updated>2017-12-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#december_2017"/>
    <content type="html"><![CDATA[<h3 data-text="Endpoints DNS" id="endpoints_dns" tabindex="0">Endpoints DNS</h3><p>The Endpoints DNS feature is now generally available. You can configure Endpoints to register a URL that you can use to call your APIs. For people not using App Engine, this provides a convenient way to call APIs without using your IP address or registering a domain name. The API can be called with a URL such as:</p><pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">echo-api.endpoints.my-project-id.cloud.goog
</code></pre><p>To learn more, see the "Configuring DNS on the cloud.goog domain" page in the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/cloud-goog-dns-configure">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/cloud-goog-dns-configure">Endpoints gRPC documentation</a>.</li></ul><h3 data-text="Endpoints DNS with SSL" id="endpoints_dns_with_ssl" tabindex="0">Endpoints DNS with SSL</h3><p>A sample that shows how to enable SSL for APIs configured to use the <code dir="ltr" translate="no">cloud.goog</code> domain is now available. To learn more, see the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/enabling-ssl#enabling_ssl_using_lets_encrypt">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/enabling-ssl#enabling_ssl_using_lets_encrypt">Endpoints gRPC documentation</a></li></ul>]]>
    </content>
  </entry>

  <entry>
    <title>November 2017</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#november_2017</id>
    <updated>2017-11-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#november_2017"/>
    <content type="html"><![CDATA[<h3 data-text="Filter for a specific consumer project" id="filter_for_a_specific_consumer_project" tabindex="0">Filter for a specific consumer project</h3><p>The ability to filter metrics for a specific consumer project is now available as an Alpha feature in the Endpoints dashboard. To learn more, see the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/monitoring-your-api#filter_for_a_specific_consumer_project">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/monitoring-your-api#filter_for_a_specific_consumer_project">Endpoints gRPC documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/monitoring-your-api#filter_for_a_specific_consumer_project">Endpoints Frameworks documentation</a></li></ul><h3 data-text="Library and Plugin Updates" id="library_and_plugin_updates_4" tabindex="0">Library and Plugin Updates</h3><ul><li><p>The Endpoints Frameworks for Python library, version <a class="external" href="https://pypi.python.org/pypi/google-endpoints" target="_blank">2.4.5</a></p></li>
<li><p>The Endpoints Framework Gradle plugin, version <a class="external" href="https://github.com/GoogleCloudPlatform/endpoints-framework-gradle-plugin/blob/master/CHANGELOG.md" target="_blank">1.0.3</a></p></li>
<li><p>The Endpoints Framework Maven plugin, version <a class="external" href="https://github.com/GoogleCloudPlatform/endpoints-framework-maven-plugin/blob/master/CHANGELOG.md" target="_blank">1.0.3</a></p></li></ul>]]>
    </content>
  </entry>

  <entry>
    <title>October 2017</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#october_2017</id>
    <updated>2017-10-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#october_2017"/>
    <content type="html"><![CDATA[<h3 data-text="Beta Launch of Quotas" id="beta_launch_of_quotas" tabindex="0">Beta Launch of Quotas</h3><p>Quotas let you specify usage limits to protect your API from an excessive number of requests. To learn more about quotas, see the "About Quotas" page in the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/quotas-overview">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/quotas-overview">Endpoints gRPC documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/quotas-overview">Endpoints Frameworks documentation</a></li></ul><h3 data-text="gcloud endpoints and gcloud services" id="gcloud_endpoints_and_gcloud_services" tabindex="0">gcloud endpoints and gcloud services</h3><p>The Cloud SDK command groups <a href="https://cloud.google.com/sdk/gcloud/reference/endpoints">gcloud endpoints</a> and <a href="https://cloud.google.com/sdk/gcloud/reference/services">gcloud services</a> are now generally available. The gcloud endpoints and gcloud services command groups are a replacement for gcloud service-management, which is deprecated.</p><h3 data-text="Library Updates" id="library_updates" tabindex="0">Library Updates</h3><ul><li><p>The Endpoints Frameworks for Python library, version <a class="external" href="https://pypi.python.org/pypi/google-endpoints" target="_blank">2.4.1</a> is available.</p></li>
<li><p>The Endpoints Frameworks for Java libraries, version <a class="external" href="http://search.maven.org/#search%7Cga%7C1%7Cendpoints-framework" target="_blank">2.0.9</a> are available.</p></li></ul>]]>
    </content>
  </entry>

  <entry>
    <title>August 2017</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#august_2017</id>
    <updated>2017-08-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#august_2017"/>
    <content type="html"><![CDATA[<p>API metrics are now published in Stackdriver. You can monitor request rates, latencies and much more. For information on setting up alerts, see the "Monitoring your API" page in the documentation for your API implementation:</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/monitoring-your-api">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/monitoring-your-api">Endpoints gRPC documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/monitoring-your-api">Endpoints Frameworks documentation</a>,</li></ul><p>You will find a complete list of metrics in the <a href="https://cloud.google.com/monitoring/api/metrics_gcp#gcp-serviceruntime">Stackdriver metrics list</a>.</p>]]>
    </content>
  </entry>

  <entry>
    <title>July 2017</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#july_2017</id>
    <updated>2017-07-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#july_2017"/>
    <content type="html"><![CDATA[<p>You can now programmatically grant access to individual APIs via the IAM API. See the "API Access Overview" page for your API implementation to find details.</p><ul><li><a href="https://cloud.google.com/endpoints/docs/openapi/api-access-overview">Endpoints OpenAPI documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/grpc/api-access-overview">Endpoints gRPC documentation</a></li>
<li><a href="https://cloud.google.com/endpoints/docs/frameworks/api-access-overview">Endpoints Frameworks documentation</a></li></ul>]]>
    </content>
  </entry>

  <entry>
    <title>May 2017</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#may_2017</id>
    <updated>2017-05-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#may_2017"/>
    <content type="html"><![CDATA[<p>Endpoints now attributes calls to the Producer project if no API key is provided and reports the protocol used by the backend (gRPC, HTTP).</p>]]>
    </content>
  </entry>

  <entry>
    <title>April 2017</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#april_2017</id>
    <updated>2017-04-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#april_2017"/>
    <content type="html"><![CDATA[<p>Endpoints can now optionally register a URL that you can use to call your APIs. For people not using App Engine, this gives a convenient way to call APIs without using your IP address. The API can be called with a URL such as</p><pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">echo-api.endpoints.my-project-id.cloud.goog
</code></pre><p>For details, see the <a href="https://cloud.google.com/endpoints/docs/openapi/cloud-goog-dns-configure">OpenAPI configuration page</a> or the <a href="https://cloud.google.com/endpoints/docs/grpc/cloud-goog-dns-configure">gRPC configuration page</a>.</p>]]>
    </content>
  </entry>

  <entry>
    <title>February 2017</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#february_2017</id>
    <updated>2017-02-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#february_2017"/>
    <content type="html"><![CDATA[<p>API Deployment History is now available in the Google Cloud Console, allowing you to view the history of API config deployments. This functionality is currently in Beta.</p><p>The API deployment history shows you who uploaded a particular configuration, when it was uploaded, and what its configuration ID is. This is helpful for finding configuration IDs and attribution of configuration changes for your API.</p><p>To see the new screen, navigate to your API in the Endpoints UI section of the <a href="https://console.cloud.google.com/endpoints">Cloud Console</a> and click on the Deployment History tab.</p>]]>
    </content>
  </entry>

  <entry>
    <title>January 2017</title>
    <id>tag:google.com,2016:cloud-endpoints-release-notes#january_2017</id>
    <updated>2017-01-20T00:00:00+00:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/endpoints/docs/release-notes#january_2017"/>
    <content type="html"><![CDATA[<p>We are changing the behavior of the Extensible Service Proxy (ESP) to deny cross-origin resource sharing (CORS) requests by default; if you rely on CORS requests, you must change your configuration to explicitly allow them and redeploy by January 2, 2017.</p><aside class="special"><strong>Important:</strong><span> This announcements affects CORS requests. If you are NOT using CORS requests to your APIs, please ignore this announcement.</span></aside><aside class="special"><strong>Important:</strong><span> The changes in this release do not effect deployments on Google App Engine Standard.</span></aside><h3 data-text="Background &amp; Current Behavior" id="background_current_behavior" tabindex="0">Background &amp; Current Behavior</h3><p>With the CORS standard, a browser inserts an extra <code dir="ltr" translate="no">OPTIONS</code> request to the server to determine whether it has permission to perform a cross-origin request. Currently the ESP always accepts <code dir="ltr" translate="no">OPTIONS</code> requests. This means that currently ESP always allows cross-origin requests through CORS.</p><h3 data-text="Upcoming Changes" id="upcoming_changes" tabindex="0">Upcoming Changes</h3><p>ESP will allow service producers to specify whether or not to allow cross-origin traffic. By default, ESP will <strong>block</strong> cross-origin requests by rejecting all <code dir="ltr" translate="no">OPTIONS</code> requests. If you want to allow cross-origin requests for your API, you will need to add the following snippet to the service's OpenAPI configuration.</p><pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">...
"host": "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog",
"x-google-endpoints": [
  {
    "name": "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog",
    "allowCors": true
  }
],
...
</code></pre><aside class="special"><strong>Important:</strong><span> This is <strong>a breaking change</strong>. By default ESP will now reject cross-origin calls unless the above <code dir="ltr" translate="no">"allowCors"</code> setting is applied.</span></aside><h3 data-text="What You Need to Do" id="what_you_need_to_do" tabindex="0">What You Need to Do</h3><aside class="note"><strong>Note:</strong><span> This change does not apply to App Engine Standard Environment. Standard Environment uses Endpoints Frameworks. CORS traffic is allowed on this platform.</span></aside><p>Follow the instructions in the appropriate tab below.</p>
<section><h3 data-text="App Engine Flex" id="app-engine-flex" tabindex="0">App Engine Flex</h3><p>After ESP 1.0 is released on January 2, 2017, all Flexible Environment API deployments will feature the new version of ESP and will automatically disallow CORS requests by default. App Engine applications are automatically redeployed every 7 days, so sometime in the 7 days following the release of ESP 1.0, your app will be restarted with the latest version and will automatically be protected from unintended cross origin sharing.</p>
<p>If you are using Flexible Environments and would like to continue to allow CORS requests, you must add the "x-google-endpoints" snippet above to your API configuration (aka OpenAPI specification aka Swagger file). If you are relying on CORS, we recommend that you add the snippet as soon as possible and redeploy your service using the following command to avoid service interruption. Then you will not see changed behavior when the new version of ESP rolls out.</p>
<pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">gcloud app deploy app.yaml
</code></pre></section>
<section><h3 data-text="Kubernetes Engine" id="kubernetes-engine" tabindex="0">Kubernetes Engine</h3><p>We plan to introduce this change in the version 1.0 release of ESP on January 2, 2017.</p>
<aside class="note"><strong>Note:</strong><span> If you do not use CORS to allow cross-origin traffic to your API, you do not need to change your API configuration. You may wish to upgrade your ESP to block any CORS requests.</span></aside>
<p>If you are currently using CORS to enable cross-origin traffic to your API, you will need to make changes to your API configuration (aka OpenAPI specification aka Swagger file) when you upgrade ESP to version 1.0 after January 2. Add the above "x-google-endpoints" snippets to the OpenAPI config for your API, and re-deploy your API configuration using the following command.</p>
<pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">gcloud service-management deploy openapi.yaml
</code></pre>
<p>Note that the above step pushed your new service config to the service manager. Note the new <code dir="ltr" translate="no">SERVICE_CONFIG_ID</code>, you will need it in the next step.</p>
<p>Now you need to redeploy your service. You can use the following command, replacing ESP-DEPLOYMENT with the deployment name for your service.</p>
<pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">kubectl edit deployment/ESP-DEPLOYMENT
</code></pre>
<p>This command opens up your GKE configuration YAML and let you update the deployment. Make sure to change your version of ESP to 1.0 and update the SERVICE_CONFIG_ID to the new SERVICE_CONFIG_ID, and save the deployment.</p>
<pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">containers:
    - name: esp
      image: gcr.io/endpoints-release/endpoints-runtime:1.0
      args: [
        "--http_port", "8080",
        "--backend", "localhost:8081",
        "--service", "SERVICE_NAME",
        "--version", "SERVICE_CONFIG_ID",
      ]
</code></pre></section>
<section><h3 data-text="Compute Engine" id="compute-engine" tabindex="0">Compute Engine</h3><p>We plan to introduce this change in the ESP version 1.0 release on January 2, 2017.</p>
<aside class="note"><strong>Note:</strong><span> If you do not use CORS to allow cross-origin traffic to your API, you do not need to change your API configuration. You may wish to upgrade your ESP to block any CORS requests.</span></aside>
<p>If you are currently using CORS to enable cross-origin traffic to your API, you will need to make changes to your API configuration (aka OpenAPI specification aka Swagger file) when you upgrade ESP to version 1.0. Add the above "x-google-endpoints" snippets to the OpenAPI config for your API, and re-deploy your API configuration using the following command.</p>
<p>gcloud service-management deploy openapi.yaml</p>
<p>Note that the above step pushed your new service config to the service manager. Note the new <code dir="ltr" translate="no">SERVICE_CONFIG_ID</code>, you will need it in the next step.</p>
<p>Before redeploying your service, you need to update the metadata entries on the VM with the following command:</p>
<pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">gcloud compute instances add-metadata --metadata=endpoints-service-name=SERVICE_NAME,endpoints-service-config-id=SERVICE_CONFIG_ID
</code></pre>
<p>Then you need to SSH to the VM and run the following command to restart ESP.</p>
<pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">sudo /etc/init.d/nginx restart
</code></pre>
<p>Alternatively, if you use the start_esp.py script to start ESP (instead of the init.d script), you can stop ESP and re-run the start_esp.py command with the updated SERVICE_CONFIG_ID.</p></section>
<section><h3 data-text="Compute Engine + Docker" id="compute-engine-+-docker" tabindex="0">Compute Engine + Docker</h3><p>We plan to introduce this change in the version 1.0 release of ESP on January 2, 2017.</p>
<aside class="note"><strong>Note:</strong><span> If you do not use CORS to allow cross-origin traffic to your API, you do not need to change your API configuration. You may wish to upgrade your ESP to block any CORS requests.</span></aside>
<p>If you are currently using CORS to enable cross-origin traffic to your API, you will need to make changes to your API configuration (known as the OpenAPI specification or Swagger file) when you upgrade ESP to version 1.0. Add the above <code dir="ltr" translate="no">x-google-endpoints</code> snippets to the OpenAPI config for your API, and re-deploy your API configuration using the following command.</p>
<pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">gcloud service-management deploy openapi.yaml
</code></pre>
<p>This pushes your new service config to Google Service Management. That command will return a new <code dir="ltr" translate="no">SERVICE_CONFIG_ID</code> for your API. Note it down because you will need it in the next step.</p>
<p>Next, redeploy your service. First stop and remove the current ESP instance (e.g., "esp") using the following commands. You can use <code dir="ltr" translate="no">sudo docker ps</code> command to find out the current ESP instance.</p>
<pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">sudo docker stop esp
sudo docker rm esp
</code></pre>
<p>Then, run the following command to redeploy ESP. Make sure to use the new <code dir="ltr" translate="no">SERVICE_CONFIG_ID</code> for <code dir="ltr" translate="no">-v</code> option.</p>
<pre class="prettyprint" dir="ltr" translate="no"><code dir="ltr" translate="no">sudo docker run --name=esp -d -p 80:8080 --link=echo:echo gcr.io/endpoints-release/endpoints-runtime:1.0 -s [SERVICE_NAME] -v [SERVICE_CONFIG_ID] -a echo:8081
</code></pre></section>
]]>
    </content>
  </entry>


</feed>
