Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move dashboard_client to CF catalog extension described in profile.md #483

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 39 additions & 1 deletion profile.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ or REQUIRED level requirements defined herein.
- [Cloud Foundry Bind Resource Object](#cloud-foundry-bind-resource-object)
- [Service Metadata](#service-metadata)
- [Cloud Foundry Service Metadata](#cloud-foundry-service-metadata)
- [Catalog Extensions](#catalog-extensions)
- [Cloud Foundry Catalog Extensions](#cloud-foundry-catalog-extensions)

## Notations and Terminology

Expand Down Expand Up @@ -240,7 +242,7 @@ The following properties are defined for usage within a Kubernetes deployment:
however, that is a Platform implementation choice. Brokers ought to take
care that, while atypical, it is possible for the value to change over
time.

This property MUST be a non-empty string serialized as follows:

```
Expand Down Expand Up @@ -428,3 +430,39 @@ specific behaviour.
| Broker API Field | Type | Description |
| --- | --- | --- |
| metadata.shareable | string | Allows Service Instances to be shared across orgs and spaces. |

## Catalog Extensions

In addition to the fields described in the [Catalog](spec.md#catalog-management),
Service Brokers MAY also expose the following fields to enable Platform specific behaviour.

#### Cloud Foundry Catalog Extensions

| Field | Type | Description |
| --- | --- | --- |
| services[n].dashboard_client | [DashboardClient](#dashboard-client-object) | Contains the data necessary to activate the Dashboard SSO feature for this service. |

##### Dashboard Client Object

| Response Field | Type | Description |
| --- | --- | --- |
| id | string | The id of the OAuth client that the dashboard will use. If present, MUST be a non-empty string. |
| secret | string | A secret for the dashboard client. If present, MUST be a non-empty string. |
| redirect_uri | string | A URI for the service dashboard. Validated by the OAuth token server when the dashboard requests a token. |

#### Example Catalog

```
{
"services": [{
"name": "fake-service",
"id": "acb56d7c-XXXX-XXXX-XXXX-feb140a59a66",
"description": "A fake service.",
"dashboard_client": {
"id": "398e2f8e-XXXX-XXXX-XXXX-19a71ecbcf64",
"secret": "277cabb0-XXXX-XXXX-XXXX-7822c0a90e5d",
"redirect_uri": "http://localhost:1234"
}
}]
}
```
16 changes: 1 addition & 15 deletions spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ It is therefore RECOMMENDED that implementations avoid such strings.
| instances_retrievable | boolean | Specifies whether the [Fetching a Service Instance](#fetching-a-service-instance) endpoint is supported for all plans. |
| bindings_retrievable | boolean | Specifies whether the [Fetching a Service Binding](#fetching-a-service-binding) endpoint is supported for all plans. |
| metadata | object | An opaque object of metadata for a Service Offering. It is expected that Platforms will treat this as a blob. Note that there are [conventions](profile.md#service-metadata) in existing Service Brokers and Platforms for fields that aid in the display of catalog data. |
| dashboard_client | [DashboardClient](#dashboard-client-object) | Contains the data necessary to activate the Dashboard SSO feature for this service. |
| dashboard_client | [DashboardClient](profile.md#dashboard-client-object) | A Cloud Foundry extension described in [Catalog Extensions](profile.md#catalog-extensions). Contains the data necessary to activate the Dashboard SSO feature for this service. |
| plan_updateable | boolean | Whether the service supports upgrade/downgrade for some plans. Please note that the misspelling of the attribute `plan_updatable` as `plan_updateable` was done by mistake. We have opted to keep that misspelling instead of fixing it and thus breaking backward compatibility. Defaults to false. |
| plans* | array of [Plan](#plan-object) objects | A list of plans for this service, schema is defined below. MUST contain at least one plan. |

Expand All @@ -411,15 +411,6 @@ company). Additionally, some Platforms might modify the service names before
presenting them to their users. This specification places no requirements on
how Platforms might expose these values to their users.

##### Dashboard Client Object
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If its just deprecated, I'm not sure we can fully remove it from the spec yet - don't we usually keep the old fields around?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we're still linking to it elsewhere, I'd be keen to remove this to keep things tidier. You can still find out what it is in the versioned profile.md - it's just moved. What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By that logic we should remove all CF-isms from the core spec today. :-) I think each version of a spec should be complete on its own. It feels wrong to mention something that is only defined in an old version of the spec.


| Response Field | Type | Description |
| --- | --- | --- |
| id | string | The id of the OAuth client that the dashboard will use. If present, MUST be a non-empty string. |
| secret | string | A secret for the dashboard client. If present, MUST be a non-empty string. |
| redirect_uri | string | A URI for the service dashboard. Validated by the OAuth token server when the dashboard requests a token. |


##### Plan Object

| Response Field | Type | Description |
Expand Down Expand Up @@ -491,11 +482,6 @@ schema being used.
},
"displayName": "The Fake Service Broker"
},
"dashboard_client": {
"id": "398e2f8e-XXXX-XXXX-XXXX-19a71ecbcf64",
"secret": "277cabb0-XXXX-XXXX-XXXX-7822c0a90e5d",
"redirect_uri": "http://localhost:1234"
},
"plan_updateable": true,
"plans": [{
"name": "fake-plan-1",
Expand Down