_oci Extension Endpoints

January 31, 2022 ยท View on GitHub

Summary

This base extension namespace for OCI namespaced extension endpoints.

Reference Explanation

Component: ext

This component is for endpoints relating to extensions on the registry API being queried.

Module: discover

This endpoint may be queried to discover extensions available on this registry API.

Registry-level extensions may be discovered with a standard GET as follows.

GET /v2/_oci/ext/discover

Repository-level extensions may be discovered with a standard GET as follows.

    GET /v2/{name}/_oci/ext/discover

The base extension returns an array of supported extensions with details of the endpoints as shown below.

200 OK
Content-Length: <length>
Content-Type: application/json

{
    "extensions": [
        {
            "name": "_<extension>",
            "description": "",
            "url": "..."
        }
    ]    
}

Extensions Property Descriptions

  • extensions array of extension objects, REQUIRED

    This property contains a list of supported extension endpoints.

    • name string, REQUIRED

      The name of the extension (i.e. '_oci') as it will appear in the URL path.

    • url string, REQUIRED

      URL link to the documentation defining this extension and its endpoints.

    • description string, OPTIONAL

      Human readable description of this endpoint.

    • endpoints array of strings, REQUIRED

      Enumeration of the endpoints provided on this registry (as not all "OPTIONAL" endpoints may be present in all registries)

Code representations

Golang structures for these JSON structures is available at github.com/opencontainers/distribution-spec/specs-go/v1/extensions

Error Codes

Registry implementations MAY chose to not support any extension and the base extension MAY return the following error message.

CodeMessageDescription
UNSUPPORTEDThe operation is unsupported.The operation was unsupported due to a missing implementation or invalid set of parameters.