4.16.05 - Edge for Private Cloud release notes

You're viewing Apigee Edge documentation.
Go to the Apigee X documentation.

On Tuesday, May 31, 2016, we released a new version of Apigee Edge for Private Cloud.

Since the previous Edge for Private Cloud Feature Release (4.16.01), the following releases have occurred and are included in this Feature Release:

See About release numbering to understand how you can figure out whether a specific cloud release is included in your version of Edge for Private Cloud.

New features and enhancements

Following are the new features and enhancements in this release. In addition to the following enhancements, this release also contains multiple usability, performance, security, and stability enhancements.

For further details and instructions, see the Edge for Private Cloud documentation.

Installation and Operations Guides moved online

You can now access the Edge for Private Cloud Installation and Operations guide at Version 4.18.01.

Software updates

The following software updates are included in the release:

  • Java JDK 1.8 - In order to take advantage of latest Java features, this release is compatible with Java 1.8. Oracle JDK 1.8 or OpenJDK 8 is required in your environment.
    As part of the update to Java 8, some TLS ciphers are no longer available in Oracle JDK 1.8. For the complete list, see the section "Default Disabled Cipher Suites" http://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html.
  • Cassandra 2.1.13 - Updated from Cassandra 2.0.15.

Installation, upgrade, rollback

Following is a list of changes to installation, upgrade, and related scripts. For information on use, see the Edge for Private Cloud documentation.

  • New process to update from 4.16.01 - This release replaces the apigee-migrate utility with the update.sh utility to update your installation from 4.16.01 to 4.16.05. See Update Apigee Edge 4.16.01 to 4.16.05.
  • Bootstrap
    • bootstrap.sh (the 4.16.01 version) is now bootstrap_4.16.05.sh in 4.16.05.
    • You no longer need to specify uname:pword to download bootstrap_4.16.05.sh.
  • Rollback - To rollback an update to 4.16.05, you uninstall the 4.16.05 version of the component and reinstall the previous version. The previous rollback.sh utility has been removed. See 4.16.05 Rollback Process.
  • setup.sh and update.sh can write the log file to /tmp - By default, the setup.sh and update.sh utilities write log information to /opt/apigee/var/log/apigee-setup. If the user running the utility does not have access to that directory, it writes the log to the /tmp directory. If the user does not have access to /tmp, the utility fails.
  • API BaaS update procedure - In the 4.16.01 release, you had to reinstall API BaaS to migrate it. The new update.sh utility supports updating API BaaS in place. See Update Apigee Edge 4.16.01 to 4.16.05.


Following are new features for Private Cloud administration and configuration.

  • Installation validation - The apigee-validate utility used to test your Edge Private Cloud installation can now be run from the Management Server. Previously, the script needed to be run on the Message Processor. See Test the install.
  • Region name - Region can be any name. In previous releases, the name was in the form "dc-#", where # was an integer value.
  • Gateway pods - Gateway pods can have any name. In previous releases, the pod had to be named "gateway".
  • Script-based administration - A new apigee-adminapi.sh command-line utility lets you perform the same Edge configuration tasks that you perform by making calls to the Edge management API. See Using the apigee-adminapi.sh utility.
  • Virtual host SSL silent config - When creating an organization or environment, you can now pass properties to configure SSL on a virtual host. See Onboard an organization.

API Services

Following are new features for Edge API Services, which were delivered in previous cloud versions of the product.

Fixed-length prefix for syslog message logging (Cloud 16.03.30)

The Message Logging policy has a new <FormatMessage> element in the Syslog configuration. By setting <FormatMessage>true</FormatMessage>, Syslog messages begin with a fixed number of characters, which lets you filter out Apigee-inserted data. For more information, see Message Logging policy. (APIRT-1398)

Wildcard in API proxy Base Path (Cloud 16.03.09 UI)

The management UI supports the use of one or more /*/ wildcards in API proxy base paths. For example, a base path of /team/*/members allows clients to call your proxy with https://[host]/team/blue/members or https://[host]/team/green/members without you having to create a new proxy to support new teams. Note that /**/ is not allowed. (MGMT-3154)

API proxy chaining (Cloud 16.03.02, Cloud 16.03.09 UI)

Edge supports local API proxy chaining, which allows one API proxy to call another API proxy deployed in your Edge organization without additional network overhead. Previously, API proxy chaining required an http(s) call to another API proxy, which forwarded the request through a load balancer, router, and message processor.

New LocalTargetConnection elements are available on an API proxy's TargetEndpoint, allowing you to specify an API proxy name, the name of a specific ProxyEndpoint within an API proxy, or simply the Base Path to a local API proxy resource (such as /v1/myresource). The proxy editor UI also provides these options when you add or update a TargetEndpoint.

Proxy chaining is also available in Service Callout policies.

For more information, see Chaining API proxies together. The new LocalTargetConnection elements are also listed in the XML schema here: https://github.com/apigee/api-platform-samples/blob/master/schemas/configuration/configuration_schemas.xsd. (MGMT-3049, MGMT-3050)

Bugs fixed

The following bugs are fixed in this release. This list is primarily for users checking to see if their support tickets have been fixed. It's not designed to provide detailed information for all users.

Edge for Private Cloud 4.16.05

Issue ID Description
PRC-770 16.01 installer fails to register Postgres standby server in axgroup
PRC-758 User with User role is able to edit custom reports
PRC-883 Update on Postgres server with master-standby configuration is failing

Cloud 16.03.30

Issue ID Description
SECENG-584 Validation check for newline between certs in a cert chain causes issues with some certs in production
MGMT-3217 Management API calls fail if KVMap name ends in "keys"
MGMT-3214 Class conflicts can occur during JavaCallouts causing a customer's Java code to fail
MGMT-3185 Error while adding orgadmins to an org
EDGEUI-127 Getting insufficient permissions with new proxy editor
EDGEUI-119 UI session timeout issue
CORESERV-671 Seeing "No rings configured; Cannot initialize cps service" errors
AXAPP-2345 Issue in listing AX custom reports for non cps customers
AXAPP-2302 Daily Apigee Analytics Summary shows zero under developer adoption
APIRT-2750 Traffic failures high in specific org
APIRT-2516 Runtime errors in JavaScript callouts specify incorrect line numbers
APIRT-2508 Exit error when calling express listen within a vault callback
APIRT-2336 Gzip issue with Node.js
APIRT-1975 Mask Configs not working for message.content

Cloud 16.03.16 UI

Issue ID Description
MGMT-3142 Graphs not loading on Error Analysis dashboard (updated fix)

Cloud 16.03.09 UI

Issue ID Description
MGMT-3158 Insufficient permissions in UI when RBAC on individual proxies is set through the API
MGMT-3142 Graphs not loading on Error Analysis dashboard
MGMT-3118 UI displays incorrect SSL virtual host config for "clientAuthEnabled" parameter
DEVRT-2344 Single-day report definitions don't load transactions in UI

Cloud 16.03.02

Issue ID Description
MGMT-3083 Node.js Logs auto-refresh is too verbose with log messages
DEVRT-2275 Custom Attribute rate plans show only 5 attributes instead of the 10 allowed
DEVRT-1275 Not all developers are shown in the Rate Plan drop-down menu
DEVRT-1074 Prepaid Developer with zero balance throws NullpointerException when credit is applied

Cloud 16.02.17

Issue ID Description
MGMT-3083 Node.js Logs auto-refresh is too verbose with log messages
MGMT-3077 UI generates an invalid proxy bundle from a WSDL that uses the default namespace
MGMT-1642 Custom user role is missing "get" permission for Developer Apps

Known issues

This release has the following known issues.

Issue ID Description

Router fails to start Nginx or Router fails to start

If the Edge Router fails to start Nginx or fails to start at all, as shown in the /opt/apigee/var/log/edge-router/logs/system.log file, then delete all files in the /opt/nginx/conf.d directory, and restart the router:

> rm -f /opt/nginx/conf.d/*
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart

Message Processor does DNS lookup on IPv4 and IPv6

If you have installed and enabled NSCD (Name Service Cache Daemon) you might notice that Message Processors make two DNS lookups: one for IPv4 and one for IPv6.

To disable the DNS lookup on IPv6:

  1. On every Message Processor node, edit /etc/nscd.conf.
  2. Set the following property:

    enable-cache hosts no

Error when running "apigee-service apigee-postgresql pg-data-purge" command

If you run the "apigee-service apigee-postgresql pg-data-purge" command and see an error in the form:

ERROR: must be owner of relation

Edit /opt/apigee/apigee-postgresql-4.16.05-0.0.894/lib/actions/pg-data-purge and set the following property to 'apigee':


DOC-1687 Due to a known package dependency conflict, the Katello agent used in Satellite Server 6 will not install properly on Apigee Edge hosts running the Qpid daemon.

JSON payloads in Assign Message, Java Callout, and Raise Fault policies

The Assign Message, Java Callout, and Raise Fault policies allow you to generate message content using the <Set><Payload> element. As part of those messages, you can include variables whose values are auto-populated at runtime. For example, if you want to output the date from the HTTP header, you can insert {message.header.date} in your message.

If the message format is JSON, it would look something like this:

{"The date is: " : "{message.header.date}"}

However, you can see that that's malformed JSON. To work around this issue, you have two options:

  • Escape the opening curly brace with a backslash:
    \{"The date is: " : "{message.header.date}"}
  • In the Payload element configuration, use the variablePrefix and variableSuffix attributes to indicate a variable in a JSON payload. For example:
    <Payload contentType="application/json" variablePrefix="#" variableSuffix="%">{"The date is: " : "#message.header.date%"}</Payload>

In the next Edge for Private Cloud Feature Release, you will be able to use curly braces for variables in JSON messages without issue. (APIRT-1160)

Router fails to start Nginx or Router fails to start

If the Edge Router fails to start Nginx or fails to start at all, as shown in the /opt/apigee/var/log/edge-router/logs/system.log file, then delete all files in the /opt/nginx/conf.d directory, and restart the router:

> rm -f /opt/nginx/conf.d/*
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart