openservicebrokerapi / servicebroker

Open Service Broker API Specification
https://openservicebrokerapi.org/
Apache License 2.0
1.19k stars 434 forks source link

Route Service Binding phrasing #410

Closed Samze closed 6 years ago

Samze commented 6 years ago

The Route Services section of types of bindings of the spec specifies that:

If a Platform supports route services, it MUST send a routable address, or endpoint, for the application along with the request to create a Service Binding using "bind_resource":{"route":"some-address.com"}.

Taken as stated, this implies that if the platform supports route services that it must send a routable address for all service bindings for any service. CF currently only sends the routable address if "required": ["route-forwarding"] in the catalog for the service.

mattmcneeney commented 6 years ago

I think the spec. could be clearer here. What about:

When a Platform sends a request to create a Service Binding for a Service Instance for which the associated service has"required": ["route-forwarding"] in the catalog, it MUST send a routable address, or endpoint, for the application along with the request to create a Service Binding using "bind_resource":{"route":"some-address.com"}.

mattmcneeney commented 6 years ago

@duglin Need your magic wordsmithing here!

duglin commented 6 years ago

hmmm that proposal still implies that when the broker has "route-forwarding" enabled, the platform MUST use it.

How about if we replace:


There are a class of Service Offerings that intermediate requests to applications, performing functions such as rate limiting or authorization.

If a Platform supports route services, it MUST send a routable address, or endpoint, for the application along with the request to create a Service Binding using "bind_resource":{"route":"some-address.com"}. A Service Broker MAY support configuration specific to an address using parameters; exposing this feature to users would require a Platform to support binding multiple routable addresses to the same Service Instance.


with:


Routing services are a class of Service Offerings that intermediate requests to applications, performing functions such as rate limiting or authorization. To indicate support for routing services, the catalog entry for the service MUST include the "requires":["route_forwarding"] property.

When creating a routing service type of Service Binding, a Platform MUST send a routable address, or endpoint, for the application along with the request to create a Service Binding using "bind_resource":{"route":"some-address.com"}.


I think the "if" is implied (and doesn't need to be explicitly called out)