You can see the latest product updates for all of Google Cloud on the Google Cloud page, browse and filter all release notes in the Google Cloud console, or programmatically access release notes in BigQuery.
To get the latest product updates delivered to you, add the URL of this page to your feed reader, or add the feed URL directly.
December 2024
v1.0.15 of Cloud Endpoints Frameworks for Java
A new version of the endpoints-management-java Java library is available. This release fixes an issue where new fields in the Google Service Configuration causes the Endpoints Frameworks Java library to fail when parsing the Service Config. The errors will similar to the following when using new service configurations created after December 5th, 2024:
Failed to parse the HTTP response as service configuration
com.google.api.config.ServiceConfigException: Failed to parse the HTTP response as service configuration
It is recommended that you upgrade to the 1.0.15
version to avoid these errors. This includes updating any references to the following dependencies:
com.google.endpoints:endpoints-management-control-appengine-all
com.google.endpoints:endpoints-management-control-appengine
com.google.endpoints:endpoints-framework-auth
com.google.endpoints:endpoints-management-config
com.google.endpoints:endpoints-management-api-client
com.google.endpoints:endpoints-management-control
com.google.endpoints:endpoints-management-control-all
When possible, we recommend that you use the endpoints-management-control-appengine-all
version of the library to
ensure that all dependencies are properly included. However, if you have:
- A specific dependency on
endpoints-management-control-appengine
and cannot use theendpoints-management-control-appengine-all
version - Are upgrading from version
1.0.11
or older
You will need to add the following additional dependencies to your project:
com.google.apis:google-api-services-servicemanagement
versionv1-rev14-1.22.0
com.google.protobuf:protobuf-java-util
version3.9.1
March 2023
Approaching shutdown of the Cloud Endpoints Portal
The shutdown of the Cloud Endpoints Portal is approaching. On or after March 21, 2023, the Cloud Endpoints Portal will no longer be available. API traffic managed by Cloud Endpoints is not affected by this change. For more information, see Cloud Endpoints Portal deprecation.
November 2020
GA launch of Extensible Service Proxy V2
ESPv2 is an Envoy-based high-performance, scalable proxy that runs in front of an OpenAPI or gRPC specification API backend. With this GA release, you can deploy ESPv2 as an API Gateway or as a sidecar.
ESPv2 supports version 2 of the OpenAPI Specification and now supports gRPC specifications.
With this GA release, Endpoints supports ESPv2 for the following platforms:
- App Engine standard (OpenAPI only)
- Cloud Run functions (OpenAPI only)
- Cloud Run (OpenAPI or gRPC)
- Knative serving (OpenAPI or gRPC)
- Google Kubernetes Engine (OpenAPI or gRPC)
- Compute Engine (OpenAPI or gRPC)
- Kubernetes (OpenAPI or gRPC)
August 2020
Extensible Service Proxy V2 support added for Compute Engine and Google Kubernetes Engine (Beta)
Extensible Service Proxy V2 (ESPv2) support added as a proxy for Compute Engine, Google Kubernetes Engine, and Kubernetes not running in Google Cloud. ESPv2 is an Envoy-based high-performance, scalable proxy that runs in front of an OpenAPI or gRPC specification API backend. With this release, you can deploy ESPv2 as an API Gateway or as a sidecar.
ESPv2 supports version 2 of the OpenAPI Specification and now supports gRPC specifications.
With this release, Endpoints supports ESPv2 for the following platforms:
- App Engine standard (OpenAPI only)
- Cloud Run functions (OpenAPI only)
- Cloud Run (OpenAPI or gRPC)
- Knative serving (OpenAPI or gRPC)
- Google Kubernetes Engine (OpenAPI or gRPC)
- Compute Engine (OpenAPI or gRPC)
- Kubernetes (OpenAPI or gRPC)
Endpoints support for ESPv2 is currently in Beta.
January 2020
gRPC support for Cloud Run added (Beta)
Added support for gRPC for Cloud Run to Cloud Endpoints. This feature requires you to use Extensible Service Proxy V2 (ESPv2) as the Endpoints API gateway.
Endpoints support for gRPC with Cloud Run and Endpoints support for ESPv2 are currently in Beta.
See Getting Started with Endpoints for Cloud Run for more.
December 2019
Extensible Service Proxy V2 support added
Extensible Service Proxy V2 (ESPv2) support added as an Endpoints API gateway for Cloud Functions and Cloud Run. ESPv2 is an Envoy-based high-performance, scalable proxy that runs in front of an OpenAPI API backend.
ESPv2 supports version 2 of the OpenAPI Specification. ESPv2 does not currently support gRPC.
ESPv2 is only supported for use for the Beta versions of Endpoints for Cloud Functions and for Cloud Run. ESPv2 is not supported for Endpoints for App Engine, GKE, Compute Engine, or Kubernetes.
ESPv2 supports all other features of Extensible Service Proxy (ESP), such as trace and logging, unless explicitly specified in the documentation.
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. Technical support will instruct you to move to ESPv2 rather than attempting to troubleshoot issues with ESP.
See Migrate to Extensible Service Proxy V2 Beta for more.
September 2018
Cloud Endpoints Frameworks v1 has been shutdown
Cloud Endpoints Frameworks v1 for the App Engine standard environment was deprecated on August 2, 2017. The service was shutdown on September 13, 2018, and the documentation has been removed.
Endpoints Frameworks Python: Changing the default logging level
The ability to the change the default logging level was added to Endpoints Frameworks Python. For more information, see Logging in Endpoints Framework for Python.
August 2018
Cloud Endpoints Portal updates
Endpoints Portal is now now generally available. This release includes the following new features and enhancements:
Sync custom documentation through an API
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:
- Endpoints OpenAPI: Sync the Custom Documentation through an API
- Endpoints gRPC: Sync the Custom Documentation through an API
- Endpoints Frameworks: Sync the Custom Documentation through an API
Include images in custom documentation
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:
Introducing SmartDocs API reference documentation
The component that displays API reference documentation in your portal and provides the Try this API panel has a name: SmartDocs API reference documentation. Originally developed for the Endpoints Portal, SmartDocs is also available in Apigee's integrated developer portal.
Shutdown of Cloud Endpoints Frameworks v1 is approaching
Cloud Endpoints Frameworks v1 for the App Engine standard environment was deprecated on August 2, 2017. The service is scheduled to be shutdown 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:
Disable trace sampling in ESP
By default, ESP samples a small number of requests to your API and sends traces to Stackdriver Trace. 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.
To learn more, see "Tracing your API" in the documentation for your API implementation:
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.
July 2018
New role and permissions for Endpoints Portal
The Identity and Access Management (IAM) role, Endpoints Portal Admin, 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.
To learn more, see "Endpoints Portal permissions" in the documentation for your API implementation:
June 2018
Library and Plugin Updates
The Endpoints Frameworks for Python library, version 4.4.0, has been enhanced such that you can import the
message_types
,messages
, and theremote
classes from theendpoints
library instead of theprotorpc
library. In the file where you define your API, we recommend that you change your import statements from:import endpoints from protorpc import message_types from protorpc import messages from protorpc import remote
to:
from endpoints import message_types from endpoints import messages from endpoints import remote
This optional change in your import statements streamlines code in the Endpoints Frameworks library.
The Endpoints Frameworks for Java libraries, version 2.1.0, 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.
Beta launch of Endpoints Portal
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.
To learn more, see "Cloud Endpoints Portal Overview" in the documentation for your API implementation:
March 2018
ESP managed rollout option
The ESP --rollout_strategy=managed
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.
This option is not available in Endpoints Frameworks.
Although the managed rollout option has been available in ESP since version
1.7.0, the gcloud CLI 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 gcloud CLI. After
you add the option to your app.yaml
, you will need to use the
gcloud beta app deploy
command to deploy your API and ESP.
For information on deploying ESP with this new option, see the documentation for your API implementation:
Library and Plugin Updates
- The Endpoints Frameworks for Python library, version
3.0.0,
contains potentially breaking changes.
- 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 Deploying and Testing an API for more details.
- Previously, API version strings were embedded in the path as-is. For example,
an API
echo
with versionv1
would have a path like/echo/v1
. This continues to be the case for API version strings that are not compatible with the SemVer standard. 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 calledecho
with version2.1.0
would have a path like/echo/v2
. If you update theecho
API to version2.2.0
and deploy a backwards-compatible change, the path remains/echo/v2
. 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 theecho
API to version3.0.0
(because you are deploying a breaking change), the path is changed to/echo/v3
.
January 2018
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:
Library and Plugin Updates
- The Endpoints Frameworks for Python library, version 2.5.0
December 2017
Endpoints DNS
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:
echo-api.endpoints.my-project-id.cloud.goog
To learn more, see the "Configuring DNS on the cloud.goog domain" page in the documentation for your API implementation:
Endpoints DNS with SSL
A sample that shows how to enable SSL for APIs configured to use the cloud.goog
domain is now available. To learn more, see the documentation for your API
implementation:
November 2017
Filter for a specific consumer project
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:
Library and Plugin Updates
The Endpoints Frameworks for Python library, version 2.4.5
The Endpoints Framework Gradle plugin, version 1.0.3
The Endpoints Framework Maven plugin, version 1.0.3
October 2017
Beta Launch of Quotas
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:
gcloud endpoints and gcloud services
The gcloud CLI command groups gcloud endpoints and gcloud services are now generally available. The gcloud endpoints and gcloud services command groups are a replacement for gcloud service-management, which is deprecated.
Library Updates
The Endpoints Frameworks for Python library, version 2.4.1 is available.
The Endpoints Frameworks for Java libraries, version 2.0.9 are available.
August 2017
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:
You will find a complete list of metrics in the Stackdriver metrics list.
July 2017
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.
May 2017
Endpoints now attributes calls to the Producer project if no API key is provided and reports the protocol used by the backend (gRPC, HTTP).
April 2017
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
echo-api.endpoints.my-project-id.cloud.goog
For details, see the OpenAPI configuration page or the gRPC configuration page.
February 2017
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.
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.
To see the new screen, navigate to your API in the Endpoints UI section of the Cloud console and click on the Deployment History tab.
January 2017
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.
Background & Current Behavior
With the CORS standard, a browser inserts an extra OPTIONS
request to the
server to determine whether it has permission to perform a cross-origin request.
Currently the ESP always accepts OPTIONS
requests. This means that currently
ESP always allows cross-origin requests through CORS.
Upcoming Changes
ESP will allow service producers to specify whether or not to allow cross-origin
traffic. By default, ESP will block cross-origin requests by rejecting all
OPTIONS
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.
...
"host": "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog",
"x-google-endpoints": [
{
"name": "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog",
"allowCors": true
}
],
...
What You Need to Do
Follow the instructions in the appropriate tab below.
App Engine Flex
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.
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.
gcloud app deploy app.yaml
Kubernetes Engine
We plan to introduce this change in the version 1.0 release of ESP on January 2, 2017.
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.
gcloud service-management deploy openapi.yaml
Note that the above step pushed your new service config to the service
manager. Note the new SERVICE_CONFIG_ID
, you will need it in the next step.
Now you need to redeploy your service. You can use the following command, replacing ESP-DEPLOYMENT with the deployment name for your service.
kubectl edit deployment/ESP-DEPLOYMENT
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.
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",
]
Compute Engine
We plan to introduce this change in the ESP version 1.0 release on January 2, 2017.
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.
gcloud service-management deploy openapi.yaml
Note that the above step pushed your new service config to the service
manager. Note the new SERVICE_CONFIG_ID
, you will need it in the next step.
Before redeploying your service, you need to update the metadata entries on the VM with the following command:
gcloud compute instances add-metadata --metadata=endpoints-service-name=SERVICE_NAME,endpoints-service-config-id=SERVICE_CONFIG_ID
Then you need to SSH to the VM and run the following command to restart ESP.
sudo /etc/init.d/nginx restart
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.
Compute Engine + Docker
We plan to introduce this change in the version 1.0 release of ESP on January 2, 2017.
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 x-google-endpoints
snippets to the OpenAPI config for your API, and
re-deploy your API configuration using the following command.
gcloud service-management deploy openapi.yaml
This pushes your new service config to Google Service
Management. That command will return a new SERVICE_CONFIG_ID
for your API.
Note it down because you will need it in the next step.
Next, redeploy your service. First stop and remove the current ESP instance
(e.g., "esp") using the following commands. You can use
sudo docker ps
command to find out the current ESP instance.
sudo docker stop esp
sudo docker rm esp
Then, run the following command to redeploy ESP. Make sure to use the new
SERVICE_CONFIG_ID
for -v
option.
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