Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nexus-rpc/api
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: ab89853169895b17ca81e6eb1a3a2f5e454d90b5
Choose a base ref
..
head repository: nexus-rpc/api
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3e440a17102b28a5ee6aabff3d1d3355439aae83
Choose a head ref
Showing with 8 additions and 27 deletions.
  1. +8 −27 SPEC.md
35 changes: 8 additions & 27 deletions SPEC.md
Original file line number Diff line number Diff line change
@@ -97,9 +97,9 @@ Headers that start with the `Nexus-Callback-` prefix are expected to be attached
the handler. The callback request must strip away the `Nexus-Callback-` prefix. E.g if a Start Operation request
includes a `Nexus-Callback-Token: some-token` header, the callback request would include a `Token: some-token` header.

The header `Nexus-Link` contains a `Link` object. The handler can use it to associate resources from the caller to the
operations. You can pass multiple `Nexus-Link` header to send multiple links. See the [Links][#Links] section for more
details.
The `Nexus-Link` header field can be added to associate resources with the start request. A handler may attach these
links as metadata to underlying resources to provide end-to-end observabililty. See the [`Nexus-Link`](#nexus-link)
section for more information.

#### Request Body

@@ -121,7 +121,6 @@ The body may contain arbitrary data. Headers should specify content type and enc
**Headers**:

- `Content-Type: application/json`
- `Nexus-Link: <url>; type="..."`

**Body**: A JSON serialized [`OperationInfo`](#operationinfo) object.

@@ -270,32 +269,14 @@ following predefined error codes.
| `UNAVAILABLE` | 503 | The service is currently unavailable. |
| `UPSTREAM_TIMEOUT` | 520 | Used by gateways to report that a request to an upstream server has timed out. |

## Links

The `Link` object represents a link to which the receiver can use and associate the operation.
The object MUST adhere to the given schema:

```yaml
type: object
properties:
url:
type: url
description: |
The URL the link is pointing to.
type:
type: string
description: |
Type provides additional information about the URL that can be used to parse it.
```
## General Purpose Headers

The `Nexus-Link` header field provides a means for serializing one or more `Link` objects in HTTP headers. This header
is encoded the same way as the HTTP header `Link` described [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link).
### `Nexus-Link`

Handlers and callers can specify links in different Nexus requests/responses to associate an operation with arbitrary
resources.
The `Nexus-Link` header field provides a means for serializing one or more links in HTTP headers. This header is encoded
the same way as the HTTP header `Link` described [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link).

## General Purpose Headers
Handlers and callers can specify links in different Nexus requests to associate an operation with arbitrary resources.

### `Request-Timeout`