API Builder Standalone - 23 November 2018

API Builder Standalone - Istanbul

Summary

This release includes:

Features

  • #5233: Ensure that plugins only receive plugin-specific configuration instead of the global service configuration
  • #5242: Support credential management and authorization in flows (pre-release feature)

Fixes

  • #4890: Remove invisible column in Configuration list view
  • #5121: The server fails to restart when saving a flow over HTTPS with SSL enabled
  • #5165: Fix error when saving flow with special symbols in the filename
  • #5234: Support using Credentials in flow-node parameters
  • #5282: Improve localStorage detection in authorization dialog
  • #5298: Fix error when importing an endpoint using a swagger document with path-level parameters.
  • #5307: Fix swagger generation for services with models which have no primary key
  • #5308: Support proxy settings on import API
  • #5323: Replace invalid flow documentation link
  • #5325: Fix spelling error in description of Set Context flow-node

Release Notes

  • #4890: Previously, a column with no contents was displayed in the configuration list. Now, the column has been removed.

  • #5121: Previously, the sockets used by the server when SSL is enabled were not closed when the server was shut down. This cased issues in some cases where this resulted in the inability to restart the server, such as on flow update. Now, the sockets are properly closed on shutdown allowing the server to be restarted.

  • #5165: Previously, in the cases of importing of APIs or saving flows, that were coming from a swagger with special symbols in the title, was failing due to our internal validations. Now, special symbols are allowed.

  • #5233: Previously, when plugins were loaded, in certain edge cases the whole service config was passed to the plugin instead of the data in its own configuration section. Now, plugins will only receive their own configuration. This is enabled with a feature flag. See deprecation #9.

  • #5242: Added pre-release support for credential management. Oauth2 credentials will be kept evergreen if possible and these credentials can be used in flows. This feature is flagged and should not be used in production. For additional information, refer to API Builder Credentials.
  • #5298: Previously, when creating an endpoint by importing a swagger document an error would occur if the document had a path-level parameters definition. Now, this is correctly handled and will not cause an error.

  • #5307: Previously, APIs automatically generated from data connector models incorrectly specified their response type for Query and FindAll. Now, they specify the correct response schema.

  • #5308: Previously, when importing APIs from URLs in the Admin UI, the requests to retrieve the swagger URL did not use the configured proxy settings. Now, the requests will use the proxy configured in the API Builder configuration file.

  • #5323: Previously, the documentation link in the flow editor was invalid and redirected to a non-existent page. Now, the link redirects to the correct documentation.

  • #5325: Previously, there was a spelling error in the description of the "Set Context" flow-node. Now, the description is correctly spelled.

New Deprecations

When upgrading to this release, you should consider the complete list of deprecated features.

Updated modules

Updated plugins

Known Issues

  • #3825: Filtering the API Builder Console administrator access using IPv6 addresses may cause ENOTFOUND errors.

  • #3867: When attempting to create and save a flow for an imported Swagger endpoint that contains a path or paths defined by references the save will fail.

  • #3979: Attempting to delete an endpoint in the UI that was created as a result of dereferencing a JSON $ref will yield a 404 error. API Builder will fail to locate the method since it only exists when the whole Swagger document is dereferenced. An example of a Swagger document using $ref:

    {
    	"swagger": "2.0",
    	"paths" {
    		"x-path": {
    			"get": {}
    		},
    		"/find": {
    			"$ref": "#/paths/x-path"
    		},
    		"/search": {
    			"$ref": "#/paths/x-path"
    		}
    
    	}
    }
    
  • #4280: Editing large object parameters on the API Orchestration page in the API Builder Console may cause multiple, confusing flow-node configuration panel scrollbars to appear.

  • #4528: Initializing new project with api-builder init 1234 where 1234 is any number, will throw an ERR_INVALID_ARG_TYPE error rather than an "invalid npm package name".

  • #4595: When using a distinct API backed by the Memory connector and passing a field which does not exist on the model, the first record is returned instead of an error.

  • #4735: Invoking Upsert will fail for all data connectors when creating a composite model from an existing model and renaming one of the fields.

  • #4749: A query on a distinct API created from the Mongo plugin (@axway/api-builder-plugin-dc-mongo) doesn't honor the value of the order parameter.  

  • #4750: The Upsert or FindAndModify methods are not present in the APIs generated from Mongo or MySQL connector based models.   

  • #4751: The FindAndModify method from APIs created using the Mongo plugin (@axway/api-builder-plugin-dc-mongo) responds with a 404 error rather than creating a new entry when the upsert parameter is true.

  • #4752: The format of a distinct query's response depends on the type of connector.

  • #4759: Calling Update or FindAndModify on a model that uses the composite connector and contains the required fields may fail and cause the server to terminate.

  • #4795: The MongoDB plugin @axway/api-builder-plugin-dc-mongo does not correctly support primary keys that are not object identifiers. The MongoDB specification allows for primary keys of other types. As a result, trying to use the plugin will result in errors:

     { "message": "Invalid Value for Find By ID: "YOUR_STRING_PK_NAME", "success": false, "request-id": "c118f187-2090-4a68-b939-37367ac55b80" }
    
  • #4813: If the endpoint Swagger file in the /endpoints folder contains special characters in its name, for example [test].json, the endpoint is not rendered correctly in the UI.

  • #4856: Passing in an invalid column name as a parameter to certain APIs generated from data connectors will result in an exception being thrown rather than executing their callback with an error. A similar error may occur when using model flow-nodes, resulting in an error which cannot be handled by the flow.

  • #4859: When endpoints are generated from a model, the endpoint descriptions do not use the correct plurals defined by the model.

  • #4865: The Swagger flow-node plugin strips characters from valid object definition names which can result in schema ID collisions.

  • #4865: The Swagger flow-node plugin does not handle valid object definition names with ~ or / in their name and can result in an invalid schema references in swagger flow-nodes.

  • #4951: When endpoint or flow files with URL encoded characters in the filename are present in a project, unexpected things may occur. For example, the wrong flow or endpoint could be modified. Using files with these types of names is not recommended.

  • #4961: Having the % symbol in various file names can cause problems in the API Builder Console and with direct linking. It is therefore advisable to avoid using % in API, Endpoint, Flow, Model, and Configuration file names. This is a result of an issue in react-router/history. https://github.com/ReactTraining/history/issues/505

  • #4966: API Builder will generate invalid Swagger for programmatic API in ./apis that bind to a path other than the apiPrefix defined in the configuration. These API must be bound to the same root path as is defined by apiPrefix.

Related Links