Conversation
Signed-off-by: Armand Craig <acraig@project.margo.org>
…eId-targetName Signed-off-by: Armand Craig <acraig@project.margo.org>
Signed-off-by: Armand Craig <acraig@project.margo.org>
phil-abb
reviewed
Sep 22, 2026
|
|
||
| * MUST be stable for the lifetime of the target relationship. | ||
| * MUST consist only of unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3) in each path segment. | ||
| * MAY contain `/` separators to represent a see-thru [gateway](../../concepts/gateways/gateways.md) hierarchy, in the form `{name}[/{name}[/{name}...]]`. |
Contributor
There was a problem hiding this comment.
should this be:
Suggested change
| * MAY contain `/` separators to represent a see-thru [gateway](../../concepts/gateways/gateways.md) hierarchy, in the form `{name}[/{name}[/{name}...]]`. | |
| * MAY contain `/` separators to represent a see-thru [gateway](../../concepts/gateways/gateways.md) hierarchy, in the form `{targetName}[/{targetName}[/{targetName}...]]`. |
| |Parameter | Type | Required? | Description| | ||
| |----------|------|-----------|------------| | ||
| | {deviceId} | string | Y | The unique identifier of the device reporting the capabilities. <br/>It must have the following format: "{id}[/{id}[/{id}...]]". The top-level `id` is required and must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3). If reporting capabilties for a child device, the subsequent `id`s are required and must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3). <br/>Using multiple ids in the endpoint does not register multiple devices in a single request, but indicates a hierarchy of devices, with a parent/child relationship. | | ||
| | {targetName} | string | Y | The name of the target whose capabilities are being reported or deleted. See [Target Names](./api-requirements-and-security.md#target-names). <br/>It must have the following format: "{name}[/{name}[/{name}...]]". The top-level `name` is required and must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3). If reporting capabilties for a child device, the subsequent `name`s are required and must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3). <br/>Using multiple names in the endpoint does not register multiple devices in a single request, but indicates a hierarchy of devices, with a parent/child relationship. | |
Contributor
There was a problem hiding this comment.
Should this be:
Suggested change
| | {targetName} | string | Y | The name of the target whose capabilities are being reported or deleted. See [Target Names](./api-requirements-and-security.md#target-names). <br/>It must have the following format: "{name}[/{name}[/{name}...]]". The top-level `name` is required and must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3). If reporting capabilties for a child device, the subsequent `name`s are required and must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3). <br/>Using multiple names in the endpoint does not register multiple devices in a single request, but indicates a hierarchy of devices, with a parent/child relationship. | | |
| | {targetName} | string | Y | The name of the target whose capabilities are being reported or deleted. See [Target Names](./api-requirements-and-security.md#target-names). <br/>It must have the following format: "{targetName}[/{targetName}[/{targetName}...]]". The top-level `targetName` is required and must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3). If reporting capabilities for a child device, the subsequent `targetName`s are required and must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3). <br/>Using multiple target names in the endpoint does not register multiple devices in a single request, but indicates a hierarchy of devices, with a parent/child relationship. | |
| | Field | Type | Required? | Description | | ||
| |-----------------|-----------------|-----------------|-----------------| | ||
| | id | string | Y | Unique deviceID assigned to the device via the Device Owner. It must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3) plus the path separator (i.e. '/'). In case of a device behind a gateway, the id field takes the form of a path with the id of the parent gateway, the id of the child device, and the ids of any intermediate devices, i.e., "{gatewayId}/[{intermediateDeviceId/.../]{deviceId}". | | ||
| | targetName | string | Y | The name of the target whose capabilities are described. It MUST match the `{targetName}` route parameter. It must include only unreserved characters as specified in [RFC3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3) plus the path separator (i.e. '/'). In case of a device behind a see-thru gateway, the value takes the form of a path with the name of the parent gateway, the names of any intermediate devices, and the name of the child device, i.e., "{gatewayName}/[{intermediateName}/.../]{childName}". See [Target Names](./api-requirements-and-security.md#target-names). | |
Contributor
There was a problem hiding this comment.
What should happen if the target names in the route don't match the targetName property?
Comment on lines
568
to
577
| # format: "{name}[/{name}[/{name}...]]" | ||
| # Top-level name is required and must include only unreserved characters as specified in RFC3986. | ||
| # Subsequent names are only used when referencing child devices behind a see-thru gateway, and must include only unreserved characters as specified in RFC3986 when present. | ||
| type: string | ||
| pattern: '^[A-Za-z0-9._~-]+(\/[A-Za-z0-9._~-]+)*$' | ||
| DeviceId_with_asterisk: | ||
| # format: "{id}[/{id}[/{id}...]/*]" | ||
| # Top-level id is required and must include only unreserved characters as specified in RFC3986. | ||
| # Subsequent ids are only used when referencing child devices, and must include only unreserved characters as specified in RFC3986 when present. | ||
| TargetName_with_asterisk: | ||
| # format: "{name}[/{name}[/{name}...]/*]" | ||
| # Top-level name is required and must include only unreserved characters as specified in RFC3986. | ||
| # Subsequent names are only used when referencing child devices behind a see-thru gateway, and must include only unreserved characters as specified in RFC3986 when present. | ||
| type: string |
Contributor
There was a problem hiding this comment.
Should this be:
Suggested change
| # format: "{name}[/{name}[/{name}...]]" | |
| # Top-level name is required and must include only unreserved characters as specified in RFC3986. | |
| # Subsequent names are only used when referencing child devices behind a see-thru gateway, and must include only unreserved characters as specified in RFC3986 when present. | |
| type: string | |
| pattern: '^[A-Za-z0-9._~-]+(\/[A-Za-z0-9._~-]+)*$' | |
| DeviceId_with_asterisk: | |
| # format: "{id}[/{id}[/{id}...]/*]" | |
| # Top-level id is required and must include only unreserved characters as specified in RFC3986. | |
| # Subsequent ids are only used when referencing child devices, and must include only unreserved characters as specified in RFC3986 when present. | |
| TargetName_with_asterisk: | |
| # format: "{name}[/{name}[/{name}...]/*]" | |
| # Top-level name is required and must include only unreserved characters as specified in RFC3986. | |
| # Subsequent names are only used when referencing child devices behind a see-thru gateway, and must include only unreserved characters as specified in RFC3986 when present. | |
| type: string | |
| # format: "{targetName}[/{targetName}[/{targetName}...]]" | |
| # Top-level target name is required and must include only unreserved characters as specified in RFC3986. | |
| # Subsequent target names are only used when referencing child devices behind a see-thru gateway, and must include only unreserved characters as specified in RFC3986 when present. | |
| type: string | |
| pattern: '^[A-Za-z0-9._~-]+(\/[A-Za-z0-9._~-]+)*$' | |
| TargetName_with_asterisk: | |
| # format: "{targetName}[/{targetName}[/{targetName}...]/*]" | |
| # Top-level target name is required and must include only unreserved characters as specified in RFC3986. | |
| # Subsequent target names are only used when referencing child devices behind a see-thru gateway, and must include only unreserved characters as specified in RFC3986 when present. | |
| type: string |
Contributor
|
Is there a reason we wanted to use |
…hrough with a counterpart :) Signed-off-by: Armand Craig <acraig@project.margo.org>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR started with a change to the
deviceIdtotargetNamewithin the device capabilities artifact. After making that change in the specification repo, I realized we needed to alter the concept of "Device" within our workload management focused GA1. Changes proposed in this PR align more towards workloads targeting compute surfaces, which could be a variety of form factors from single devices to multi node clusters.Issues Addressed
N/A
Change Type
Please select the relevant options:
Checklist