Skip to content

Latest commit

 

History

History
3021 lines (2721 loc) · 69.9 KB

registry-REST-API.adoc

File metadata and controls

3021 lines (2721 loc) · 69.9 KB

Registry REST API

Gets registry index of stack devfile type

Gets the registry index file content of stack devfile type from HTTP response

HTTP request

GET http://{registry host}/index

Request parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/index

Response example

[
  {
    "name": "java-maven",
    "version": "1.1.0",
    "displayName": "Maven Java",
    "description": "Upstream Maven and OpenJDK 11",
    "type": "stack",
    "tags": [
      "Java",
      "Maven"
    ],
    "projectType": "maven",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-maven:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "springbootproject"
    ]
  },
  {
    "name": "java-openliberty",
    "version": "0.5.0",
    "displayName": "Open Liberty",
    "description": "Java application stack using Open Liberty runtime",
    "type": "stack",
    "projectType": "docker",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-openliberty:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "user-app"
    ]
  },
  {
    "name": "java-quarkus",
    "version": "1.1.0",
    "displayName": "Quarkus Java",
    "description": "Upstream Quarkus with Java+GraalVM",
    "type": "stack",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "projectType": "quarkus",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-quarkus:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "community",
      "redhat-product"
    ]
  },
  {
    "name": "java-springboot",
    "version": "1.1.0",
    "displayName": "Spring Boot®",
    "description": "Spring Boot® using Java",
    "type": "stack",
    "tags": [
      "Java",
      "Spring"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/spring.svg",
    "globalMemoryLimit": "2674Mi",
    "projectType": "spring",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-springboot:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "springbootproject"
    ]
  },
  {
    "name": "java-vertx",
    "version": "1.1.0",
    "displayName": "Vert.x Java",
    "description": "Upstream Vert.x using Java",
    "type": "stack",
    "tags": [
      "Java",
      "Vert.x"
    ],
    "projectType": "vertx",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-vertx:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "vertx-http-example",
      "vertx-istio-circuit-breaker-booster",
      "vertx-istio-routing-booster",
      "vertx-secured-http-example-redhat",
      "vertx-crud-example-redhat",
      "vertx-istio-security-booster",
      "vertx-crud-example",
      "vertx-circuit-breaker-example",
      "vertx-configmap-example",
      "vertx-circuit-breaker-example-redhat",
      "vertx-cache-example-redhat",
      "vertx-cache-example",
      "vertx-secured-http-example",
      "vertx-health-checks-example-redhat",
      "vertx-http-example-redhat",
      "vertx-health-checks-example",
      "vertx-configmap-example-redhat",
      "vertx-messaging-work-queue-booster",
      "vertx-istio-distributed-tracing-booster"
    ]
  },
  {
    "name": "java-wildfly",
    "version": "1.0.2",
    "displayName": "WildFly Java",
    "description": "Upstream WildFly",
    "type": "stack",
    "tags": [
      "Java",
      "WildFly"
    ],
    "projectType": "wildfly",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-wildfly:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "microprofile-config",
      "microprofile-fault-tolerance",
      "microprofile-health",
      "microprofile-jwt",
      "microprofile-metrics",
      "microprofile-openapi",
      "microprofile-opentracing",
      "microprofile-rest-client"
    ]
  },
  {
    "name": "java-wildfly-bootable-jar",
    "version": "1.0.2",
    "displayName": "WildFly Bootable Jar",
    "description": "Java stack with WildFly in bootable Jar mode, OpenJDK 11 and Maven 3.5",
    "type": "stack",
    "tags": [
      "RHEL8",
      "Java",
      "OpenJDK",
      "Maven",
      "WildFly",
      "Microprofile",
      "WildFly Bootable"
    ],
    "projectType": "WildFly",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-wildfly-bootable-jar:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "microprofile-config",
      "microprofile-fault-tolerance",
      "microprofile-health",
      "microprofile-jwt",
      "microprofile-metrics",
      "microprofile-openapi",
      "microprofile-opentracing",
      "microprofile-rest-client"
    ]
  },
  {
    "name": "nodejs",
    "version": "1.0.0",
    "displayName": "NodeJS Runtime",
    "description": "Stack with NodeJS 12",
    "type": "stack",
    "tags": [
      "NodeJS",
      "Express",
      "ubi8"
    ],
    "projectType": "nodejs",
    "language": "nodejs",
    "links": {
      "self": "devfile-catalog/nodejs:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "nodejs-starter"
    ]
  },
  {
    "name": "python",
    "version": "1.0.0",
    "displayName": "Python",
    "description": "Python Stack with Python 3.7",
    "type": "stack",
    "tags": [
      "Python",
      "pip"
    ],
    "projectType": "python",
    "language": "python",
    "links": {
      "self": "devfile-catalog/python:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "python-example"
    ]
  },
  {
    "name": "python-django",
    "version": "1.0.0",
    "displayName": "Django",
    "description": "Python3.7 with Django",
    "type": "stack",
    "tags": [
      "Python",
      "pip",
      "Django"
    ],
    "projectType": "django",
    "language": "python",
    "links": {
      "self": "devfile-catalog/python-django:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "django-example"
    ]
  }
]

Query parameters

Parameter Description

Name

Search string to filter stacks by their name

DisplayName

Search string to filter stacks by their display names

Description

Search string to filter stacks by the description text

AttributeNames

Collection of search strings to filter stacks by the names of defined free-form attributes

Arch

Collection of search strings to filter stacks by their architectures

Tags

Collection of search strings to filter stacks by their tags

Icon

Toggle on encoding content passed

IconUri

Search string to filter stacks by their icon uri

ProjectType

Search string to filter stacks by their project type

Language

Search string to filter stacks by their programming language

Resources

Collection of search strings to filter stacks by their resource files

StarterProjects

Collection of search strings to filter stacks by the names of the starter projects

LinkNames

Collection of search strings to filter stacks by the names of the link sources

Links

Collection of search strings to filter stacks by their link sources

GitRemoteNames

Collection of search strings to filter stacks by the names of the git remotes

GitRemotes

Collection of search strings to filter stacks by the URIs of the git remotes

GitUrl

Search string to filter stacks by their git urls

GitRemoteName

Search string to filter stacks by their git remote name

GitSubDir

Search string to filter stacks by their target subdirectory of the git repository

GitRevision

Search string to filter stacks by their git revision

Provider

Search string to filter stacks by the stack provider

SupportUrl

Search string to filter stacks by their given support url

Request example

curl 'http://devfile-registry.192.168.1.1.nip.io/index?provider=Red%22Hat&resources=.zip'

Note: Field filter parameters accept fuzzy search strings, meaning if .zip is passed into resources parameter, the results will be any stack with resource entries which contain .zip as partial matches.

Response example

[
  {
    "name": "go",
    "version": "1.2.0",
    "displayName": "Go Runtime",
    "description": "Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.",
    "type": "stack",
    "tags": [
      "testtag"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
    "projectType": "Go",
    "language": "Go",
    "links": {
      "self": "devfile-catalog/go:1.2.0"
    },
    "resources": [
      "devfile.yaml",
      "go-starter-offline.zip"
    ],
    "starterProjects": [
      "go-starter",
      "go-starter-offline"
    ],
    "provider": "Red Hat"
  }
]

Gets registry index of sample devfile type

Gets the registry index file content of sample devfile type from HTTP response

HTTP request

GET http://{registry host}/index/sample

Request parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/index/sample

Response example

---
[
  {
    "name": "nodejs-basic",
    "displayName": "Basic NodeJS",
    "description": "A simple Hello World Node.js application",
    "type": "sample",
    "tags": [
      "NodeJS",
      "Express"
    ],
    "icon": "https://github.com/maysunfaisal/node-bulletin-board-2/blob/main/nodejs-icon.png",
    "projectType": "nodejs",
    "language": "nodejs",
    "git": {
      "remotes": {
        "origin": "https://github.com/redhat-developer/devfile-sample.git"
      }
    }
  },
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": ".devfile/icon/quarkus.png",
    "projectType": "quarkus",
    "language": "java",
    "git": {
      "remotes": {
        "origin": "https://github.com/elsony/devfile-sample-code-with-quarkus.git"
      }
    }
  },
  {
    "name": "java-springboot-basic",
    "displayName": "Basic Spring Boot",
    "description": "A simple Hello World Java Spring Boot application using Maven",
    "type": "sample",
    "tags": [
      "Java",
      "Spring"
    ],
    "icon": ".devfile/icon/spring-logo.png",
    "projectType": "springboot",
    "language": "java",
    "git": {
      "remotes": {
        "origin": "https://github.com/elsony/devfile-sample-java-springboot-basic.git"
      }
    }
  },
  {
    "name": "python-basic",
    "displayName": "Basic Python",
    "description": "A simple Hello World application using Python",
    "type": "sample",
    "tags": [
      "Python"
    ],
    "icon": ".devfile/icon/python.png",
    "projectType": "python",
    "language": "python",
    "git": {
      "remotes": {
        "origin": "https://github.com/elsony/devfile-sample-python-basic.git"
      }
    }
  }
]
---

Query parameters

Parameter Description

Name

Search string to filter samples by their name

DisplayName

Search string to filter samples by their display names

Description

Search string to filter samples by the description text

AttributeNames

Collection of search strings to filter samples by the names of defined free-form attributes

Arch

Collection of search strings to filter samples by their architectures

Tags

Collection of search strings to filter samples by their tags

Icon

Toggle on encoding content passed

IconUri

Search string to filter samples by their icon uri

ProjectType

Search string to filter samples by their project type

Language

Search string to filter samples by their programming language

Resources

Collection of search strings to filter samples by their resource files

StarterProjects

Collection of search strings to filter samples by the names of the starter projects

LinkNames

Collection of search strings to filter samples by the names of the link sources

Links

Collection of search strings to filter samples by their link sources

GitRemoteNames

Collection of search strings to filter samples by the names of the git remotes

GitRemotes

Collection of search strings to filter samples by the URIs of the git remotes

GitUrl

Search string to filter samples by their git urls

GitRemoteName

Search string to filter samples by their git remote name

GitSubDir

Search string to filter samples by their target subdirectory of the git repository

GitRevision

Search string to filter samples by their git revision

Provider

Search string to filter samples by the stack provider

SupportUrl

Search string to filter samples by their given support url

Request example

curl 'http://devfile-registry.192.168.1.1.nip.io/index/sample?description=Hello%22World'

Note: Field filter parameters accept fuzzy search strings, meaning if Hello World is passed into description parameter, the results will be any sample with resource entries which contain Hello World as partial matches.

Response example

[
  {
    "name": "python-basic",
    "displayName": "Basic Python",
    "description": "A simple Hello World application using Python",
    "type": "sample",
    "tags": [
      "Python"
    ],
    "icon": "https://www.python.org/static/community_logos/python-logo-generic.svg",
    "projectType": "python",
    "language": "python",
    "git": {
      "remotes": {
        "origin": "https://github.com/devfile-samples/devfile-sample-python-basic.git"
      }
    }
  },
  {
    "name": "nodejs-basic",
    "displayName": "Basic Node.js",
    "description": "A simple Hello World Node.js application",
    "type": "sample",
    "tags": [
      "NodeJS",
      "Express"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/node-js.svg",
    "projectType": "nodejs",
    "language": "nodejs",
    "git": {
      "remotes": {
        "origin": "https://github.com/nodeshift-starters/devfile-sample.git"
      }
    }
  },
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
    "projectType": "quarkus",
    "language": "java",
    "git": {
      "remotes": {
        "origin": "https://github.com/devfile-samples/devfile-sample-code-with-quarkus.git"
      }
    }
  },
  {
    "name": "java-springboot-basic",
    "displayName": "Basic Spring Boot",
    "description": "A simple Hello World Java Spring Boot application using Maven",
    "type": "sample",
    "tags": [
      "Java",
      "Spring"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/spring.svg",
    "projectType": "springboot",
    "language": "java",
    "git": {
      "remotes": {
        "origin": "https://github.com/devfile-samples/devfile-sample-java-springboot-basic.git"
      }
    }
  }
]

Gets registry index of all devfile types

Gets the registry index file content of all devfile types from HTTP response

HTTP request

GET http://{registry host}/index/all

Request parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/index/all

Response example

[
  {
    "name": "java-maven",
    "version": "1.1.0",
    "displayName": "Maven Java",
    "description": "Upstream Maven and OpenJDK 11",
    "type": "stack",
    "tags": [
      "Java",
      "Maven"
    ],
    "projectType": "maven",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-maven:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "springbootproject"
    ]
  },
  {
    "name": "java-openliberty",
    "version": "0.5.0",
    "displayName": "Open Liberty",
    "description": "Java application stack using Open Liberty runtime",
    "type": "stack",
    "projectType": "docker",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-openliberty:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "user-app"
    ]
  },
  {
    "name": "java-quarkus",
    "version": "1.1.0",
    "displayName": "Quarkus Java",
    "description": "Upstream Quarkus with Java+GraalVM",
    "type": "stack",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "projectType": "quarkus",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-quarkus:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "community",
      "redhat-product"
    ]
  },
  {
    "name": "java-springboot",
    "version": "1.1.0",
    "displayName": "Spring Boot®",
    "description": "Spring Boot® using Java",
    "type": "stack",
    "tags": [
      "Java",
      "Spring"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/spring.svg",
    "globalMemoryLimit": "2674Mi",
    "projectType": "spring",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-springboot:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "springbootproject"
    ]
  },
  {
    "name": "java-vertx",
    "version": "1.1.0",
    "displayName": "Vert.x Java",
    "description": "Upstream Vert.x using Java",
    "type": "stack",
    "tags": [
      "Java",
      "Vert.x"
    ],
    "projectType": "vertx",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-vertx:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "vertx-http-example",
      "vertx-istio-circuit-breaker-booster",
      "vertx-istio-routing-booster",
      "vertx-secured-http-example-redhat",
      "vertx-crud-example-redhat",
      "vertx-istio-security-booster",
      "vertx-crud-example",
      "vertx-circuit-breaker-example",
      "vertx-configmap-example",
      "vertx-circuit-breaker-example-redhat",
      "vertx-cache-example-redhat",
      "vertx-cache-example",
      "vertx-secured-http-example",
      "vertx-health-checks-example-redhat",
      "vertx-http-example-redhat",
      "vertx-health-checks-example",
      "vertx-configmap-example-redhat",
      "vertx-messaging-work-queue-booster",
      "vertx-istio-distributed-tracing-booster"
    ]
  },
  {
    "name": "java-wildfly",
    "version": "1.0.2",
    "displayName": "WildFly Java",
    "description": "Upstream WildFly",
    "type": "stack",
    "tags": [
      "Java",
      "WildFly"
    ],
    "projectType": "wildfly",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-wildfly:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "microprofile-config",
      "microprofile-fault-tolerance",
      "microprofile-health",
      "microprofile-jwt",
      "microprofile-metrics",
      "microprofile-openapi",
      "microprofile-opentracing",
      "microprofile-rest-client"
    ]
  },
  {
    "name": "java-wildfly-bootable-jar",
    "version": "1.0.2",
    "displayName": "WildFly Bootable Jar",
    "description": "Java stack with WildFly in bootable Jar mode, OpenJDK 11 and Maven 3.5",
    "type": "stack",
    "tags": [
      "RHEL8",
      "Java",
      "OpenJDK",
      "Maven",
      "WildFly",
      "Microprofile",
      "WildFly Bootable"
    ],
    "projectType": "WildFly",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-wildfly-bootable-jar:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "microprofile-config",
      "microprofile-fault-tolerance",
      "microprofile-health",
      "microprofile-jwt",
      "microprofile-metrics",
      "microprofile-openapi",
      "microprofile-opentracing",
      "microprofile-rest-client"
    ]
  },
  {
    "name": "nodejs",
    "version": "1.0.0",
    "displayName": "NodeJS Runtime",
    "description": "Stack with NodeJS 12",
    "type": "stack",
    "tags": [
      "NodeJS",
      "Express",
      "ubi8"
    ],
    "projectType": "nodejs",
    "language": "nodejs",
    "links": {
      "self": "devfile-catalog/nodejs:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "nodejs-starter"
    ]
  },
  {
    "name": "python",
    "version": "1.0.0",
    "displayName": "Python",
    "description": "Python Stack with Python 3.7",
    "type": "stack",
    "tags": [
      "Python",
      "pip"
    ],
    "projectType": "python",
    "language": "python",
    "links": {
      "self": "devfile-catalog/python:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "python-example"
    ]
  },
  {
    "name": "python-django",
    "version": "1.0.0",
    "displayName": "Django",
    "description": "Python3.7 with Django",
    "type": "stack",
    "tags": [
      "Python",
      "pip",
      "Django"
    ],
    "projectType": "django",
    "language": "python",
    "links": {
      "self": "devfile-catalog/python-django:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "django-example"
    ]
  },
  {
    "name": "nodejs-basic",
    "displayName": "Basic NodeJS",
    "description": "A simple Hello World Node.js application",
    "type": "sample",
    "tags": [
      "NodeJS",
      "Express"
    ],
    "icon": "https://github.com/maysunfaisal/node-bulletin-board-2/blob/main/nodejs-icon.png",
    "projectType": "nodejs",
    "language": "nodejs",
    "git": {
      "remotes": {
        "origin": "https://github.com/redhat-developer/devfile-sample.git"
      }
    }
  },
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": ".devfile/icon/quarkus.png",
    "projectType": "quarkus",
    "language": "java",
    "git": {
      "remotes": {
        "origin": "https://github.com/elsony/devfile-sample-code-with-quarkus.git"
      }
    }
  },
  {
    "name": "java-springboot-basic",
    "displayName": "Basic Spring Boot",
    "description": "A simple Hello World Java Spring Boot application using Maven",
    "type": "sample",
    "tags": [
      "Java",
      "Spring"
    ],
    "icon": ".devfile/icon/spring-logo.png",
    "projectType": "springboot",
    "language": "java",
    "git": {
      "remotes": {
        "origin": "https://github.com/elsony/devfile-sample-java-springboot-basic.git"
      }
    }
  },
  {
    "name": "python-basic",
    "displayName": "Basic Python",
    "description": "A simple Hello World application using Python",
    "type": "sample",
    "tags": [
      "Python"
    ],
    "icon": ".devfile/icon/python.png",
    "projectType": "python",
    "language": "python",
    "git": {
      "remotes": {
        "origin": "https://github.com/elsony/devfile-sample-python-basic.git"
      }
    }
  }
]

Query parameters

Parameter Description

Name

Search string to filter stacks/samples by their name

DisplayName

Search string to filter stacks/samples by their display names

Description

Search string to filter stacks/samples by the description text

AttributeNames

Collection of search strings to filter stacks/samples by the names of defined free-form attributes

Arch

Collection of search strings to filter stacks/samples by their architectures

Tags

Collection of search strings to filter stacks/samples by their tags

Icon

Toggle on encoding content passed

IconUri

Search string to filter stacks/samples by their icon uri

ProjectType

Search string to filter stacks/samples by their project type

Language

Search string to filter stacks/samples by their programming language

Resources

Collection of search strings to filter stacks/samples by their resource files

StarterProjects

Collection of search strings to filter stacks/samples by the names of the starter projects

LinkNames

Collection of search strings to filter stacks/samples by the names of the link sources

Links

Collection of search strings to filter stacks/samples by their link sources

GitRemoteNames

Collection of search strings to filter stacks/samples by the names of the git remotes

GitRemotes

Collection of search strings to filter stacks/samples by the URIs of the git remotes

GitUrl

Search string to filter stacks/samples by their git urls

GitRemoteName

Search string to filter stacks/samples by their git remote name

GitSubDir

Search string to filter stacks/samples by their target subdirectory of the git repository

GitRevision

Search string to filter stacks/samples by their git revision

Provider

Search string to filter stacks/samples by the stack provider

SupportUrl

Search string to filter stacks/samples by their given support url

Request example

curl 'http://devfile-registry.192.168.1.1.nip.io/index/all?description=node'

Note: Field filter parameters accept fuzzy search strings, meaning if node is passed into description parameter, the results will be any stack or sample with resource entries which contain node as partial matches.

Response example

[
  {
    "name": "nodejs-basic",
    "displayName": "Basic Node.js",
    "description": "A simple Hello World Node.js application",
    "type": "sample",
    "tags": [
      "NodeJS",
      "Express"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/node-js.svg",
    "projectType": "nodejs",
    "language": "nodejs",
    "git": {
      "remotes": {
        "origin": "https://github.com/nodeshift-starters/devfile-sample.git"
      }
    }
  },
  {
    "name": "nodejs",
    "version": "1.0.0",
    "displayName": "NodeJS Runtime",
    "description": "Stack with NodeJS 12",
    "type": "stack",
    "tags": [
      "NodeJS",
      "Express",
      "ubi8"
    ],
    "architectures": [
      "amd64",
      "arm64"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/node-js.svg",
    "projectType": "nodejs",
    "language": "nodejs",
    "links": {
      "self": "devfile-catalog/nodejs:1.0.0"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "nodejs-starter"
    ],
    "provider": "Red Hat",
    "supportUrl": "http://testurl/support.md"
  }
]

Gets registry v2 index of stack devfile type

Gets the registry v2 index file content of stack devfile type, which contains versions information, from HTTP response

HTTP request

GET http://{registry host}/v2index

Request parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/v2index

Response example

[
  {
    "name": "go",
    "displayName": "Go Runtime",
    "description": "Stack with the latest Go version",
    "type": "stack",
    "tags": [
      "testtag",
      "Go"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
    "projectType": "go",
    "language": "go",
    "provider": "Red Hat",
    "versions": [
      {
        "version": "1.2.0",
        "schemaVersion": "2.1.0",
        "description": "Stack with the latest Go version with devfile v2.1.0 schema verison",
        "tags": [
          "testtag"
        ],
        "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
        "links": {
          "self": "devfile-catalog/go:1.2.0"
        },
        "commandGroups": {
          "build": true,
          "debug": false,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "devfile.yaml",
          "go-starter-offline.zip"
        ],
        "starterProjects": [
          "go-starter",
          "go-starter-offline"
        ]
      },
      {
        "version": "1.1.0",
        "schemaVersion": "2.0.0",
        "default": true,
        "description": "Stack with the latest Go version with devfile v2.0.0 schema verison",
        "tags": [
          "Go"
        ],
        "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
        "links": {
          "self": "devfile-catalog/go:1.1.0"
        },
        "commandGroups": {
          "build": true,
          "debug": false,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "devfile.yaml",
          "go-starter-offline.zip"
        ],
        "starterProjects": [
          "go-starter",
          "go-starter-offline"
        ]
      }
    ]
  },
  {
    "name": "java-maven",
    "displayName": "Maven Java",
    "description": "Upstream Maven and OpenJDK 11",
    "type": "stack",
    "tags": [
      "Java",
      "Maven"
    ],
    "architectures": [
      "amd64",
      "arm64",
      "s390x"
    ],
    "projectType": "maven",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.1.0",
        "default": true,
        "description": "Upstream Maven and OpenJDK 11",
        "tags": [
          "Java",
          "Maven"
        ],
        "architectures": [
          "amd64",
          "arm64",
          "s390x"
        ],
        "links": {
          "self": "devfile-catalog/java-maven:1.1.0"
        },
        "commandGroups": {
          "build": true,
          "debug": true,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "devfile.yaml"
        ],
        "starterProjects": [
          "springbootproject-offline",
          "springbootproject"
        ]
      }
    ]
  },
  {
    "name": "java-quarkus",
    "displayName": "Quarkus Java",
    "description": "Quarkus with Java",
    "type": "stack",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "architectures": [
      "amd64"
    ],
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.0.0",
        "default": true,
        "description": "Quarkus with Java",
        "tags": [
          "Java",
          "Quarkus"
        ],
        "architectures": [
          "amd64"
        ],
        "links": {
          "self": "devfile-catalog/java-quarkus:1.1.0"
        },
        "commandGroups": {
          "build": false,
          "debug": true,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "community-offline.zip",
          "devfile.yaml"
        ],
        "starterProjects": [
          "community-offline",
          "community",
          "redhat-product"
        ]
      }
    ]
  },
  {
    "name": "nodejs",
    "displayName": "NodeJS Runtime",
    "description": "Stack with NodeJS 12",
    "type": "stack",
    "tags": [
      "NodeJS",
      "Express",
      "ubi8"
    ],
    "architectures": [
      "amd64",
      "arm64"
    ],
    "projectType": "nodejs",
    "language": "nodejs",
    "provider": "Red Hat",
    "supportUrl": "http://testurl/support.md",
    "versions": [
      {
        "version": "1.0.0",
        "schemaVersion": "2.0.0",
        "default": true,
        "description": "Stack with NodeJS 12",
        "tags": [
          "NodeJS",
          "Express",
          "ubi8"
        ],
        "architectures": [
          "amd64",
          "arm64"
        ],
        "links": {
          "self": "devfile-catalog/nodejs:1.0.0"
        },
        "commandGroups": {
          "build": true,
          "debug": true,
          "deploy": false,
          "run": true,
          "test": true
        },
        "resources": [
          "devfile.yaml"
        ],
        "starterProjects": [
          "nodejs-starter"
        ]
      }
    ]
  }
]

Query (range) parameters

Parameter Description

MaxVersion

The maximum stack version

MinVersion

The minimum stack version

MaxSchemaVersion

The maximum devfile schema version

MinSchemaVersion

The minimum devfile schema version

Request example

curl http://devfile-registry.192.168.1.1.nip.io/v2index?minSchemaVersion=2.1&maxSchemaVersion=2.1

Response example

[
 {
    "name": "java-openliberty",
    "displayName": "Open Liberty Maven",
    "description": "Java application Maven-built stack using the Open Liberty runtime",
    "type": "stack",
    "tags": [
      "Java",
      "Maven"
    ],
    "architectures": [
      "amd64",
      "ppc64le",
      "s390x"
    ],
    "icon": "https://raw.githubusercontent.com/OpenLiberty/logos/7fbb132949b9b2589e18c8d5665c1b107028a21d/logomark/svg/OL_logomark.svg",
    "projectType": "openliberty",
    "language": "java",
    "versions": [
      {
        "version": "0.8.1",
        "schemaVersion": "2.1.0",
        "default": true,
        "description": "Java application Maven-built stack using the Open Liberty runtime",
        "tags": [
          "Java",
          "Maven"
        ],
        "architectures": [
          "amd64",
          "ppc64le",
          "s390x"
        ],
        "icon": "https://raw.githubusercontent.com/OpenLiberty/logos/7fbb132949b9b2589e18c8d5665c1b107028a21d/logomark/svg/OL_logomark.svg",
        "links": {
          "self": "devfile-catalog/java-openliberty:0.8.1"
        },
        "resources": [
          "devfile.yaml"
        ],
        "starterProjects": [
          "rest"
        ]
      }
    ]
  },
  {
    "name": "java-openliberty-gradle",
    "displayName": "Open Liberty Gradle",
    "description": "Java application Gradle-built stack using the Open Liberty runtime",
    "type": "stack",
    "tags": [
      "Java",
      "Gradle"
    ],
    "architectures": [
      "amd64",
      "ppc64le",
      "s390x"
    ],
    "icon": "https://raw.githubusercontent.com/OpenLiberty/logos/7fbb132949b9b2589e18c8d5665c1b107028a21d/logomark/svg/OL_logomark.svg",
    "projectType": "openliberty",
    "language": "java",
    "versions": [
      {
        "version": "0.3.1",
        "schemaVersion": "2.1.0",
        "default": true,
        "description": "Java application Gradle-built stack using the Open Liberty runtime",
        "tags": [
          "Java",
          "Gradle"
        ],
        "architectures": [
          "amd64",
          "ppc64le",
          "s390x"
        ],
        "icon": "https://raw.githubusercontent.com/OpenLiberty/logos/7fbb132949b9b2589e18c8d5665c1b107028a21d/logomark/svg/OL_logomark.svg",
        "links": {
          "self": "devfile-catalog/java-openliberty-gradle:0.3.1"
        },
        "resources": [
          "devfile.yaml"
        ],
        "starterProjects": [
          "rest"
        ]
      }
    ]
  }
]

Query (field) parameters

Parameter Description

Name

Search string to filter stacks by their name

DisplayName

Search string to filter stacks by their display names

Description

Search string to filter stacks by the description text

AttributeNames

Collection of search strings to filter stacks by the names of defined free-form attributes

Arch

Collection of search strings to filter stacks by their architectures

Tags

Collection of search strings to filter stacks by their tags

Icon

Toggle on encoding content passed

IconUri

Search string to filter stacks by their icon uri

ProjectType

Search string to filter stacks by their project type

Language

Search string to filter stacks by their programming language

Default

Boolean to filter stacks if they are default or not

Resources

Collection of search strings to filter stacks by their resource files

StarterProjects

Collection of search strings to filter stacks by the names of the starter projects

LinkNames

Collection of search strings to filter stacks by the names of the link sources

Links

Collection of search strings to filter stacks by their link sources

CommandGroups

Collection of search strings to filter stacks by their present command groups

DeploymentScopes

Collection of search strings to filter stacks by their present deployment scopes

GitRemoteNames

Collection of search strings to filter stacks by the names of the git remotes

GitRemotes

Collection of search strings to filter stacks by the URIs of the git remotes

GitUrl

Search string to filter stacks by their git urls

GitRemoteName

Search string to filter stacks by their git remote name

GitSubDir

Search string to filter stacks by their target subdirectory of the git repository

GitRevision

Search string to filter stacks by their git revision

Provider

Search string to filter stacks by the stack provider

SupportUrl

Search string to filter stacks by their given support url

Request example

curl 'http://devfile-registry.192.168.1.1.nip.io/v2index?name=java&default=true'

Note: Field filter parameters accept fuzzy search strings, meaning if java is passed into name parameter, the results will be any stack with resource entries which contain java as partial matches.

Response example

[
  {
    "name": "java-maven",
    "displayName": "Maven Java",
    "description": "Upstream Maven and OpenJDK 11",
    "type": "stack",
    "tags": [
      "Java",
      "Maven"
    ],
    "architectures": [
      "amd64",
      "arm64",
      "s390x"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/java-maven.jpg",
    "projectType": "maven",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.1.0",
        "default": true,
        "description": "Upstream Maven and OpenJDK 11",
        "tags": [
          "Java",
          "Maven"
        ],
        "architectures": [
          "amd64",
          "arm64",
          "s390x"
        ],
        "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/java-maven.jpg",
        "links": {
          "self": "devfile-catalog/java-maven:1.1.0"
        },
        "commandGroups": {
          "build": true,
          "debug": true,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "devfile.yaml"
        ],
        "starterProjects": [
          "springbootproject-offline",
          "springbootproject"
        ]
      }
    ]
  },
  {
    "name": "java-quarkus",
    "displayName": "Quarkus Java",
    "description": "Quarkus with Java",
    "type": "stack",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "architectures": [
      "amd64"
    ],
    "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.0.0",
        "default": true,
        "description": "Quarkus with Java",
        "tags": [
          "Java",
          "Quarkus"
        ],
        "architectures": [
          "amd64"
        ],
        "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
        "links": {
          "self": "devfile-catalog/java-quarkus:1.1.0"
        },
        "commandGroups": {
          "build": false,
          "debug": true,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "community-offline.zip",
          "devfile.yaml"
        ],
        "starterProjects": [
          "community-offline",
          "community",
          "redhat-product"
        ]
      }
    ]
  }
]

Gets registry v2 index of sample devfile type

Gets the registry v2 index file content of sample devfile type, which contains versions information, from HTTP response

HTTP request

GET http://{registry host}/v2index/sample

Request parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/v2index/sample

Response example

[
  {
    "name": "nodejs-basic",
    "displayName": "Basic Node.js",
    "description": "A simple Hello World Node.js application",
    "type": "sample",
    "tags": [
      "NodeJS",
      "Express"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/node-js.svg",
    "projectType": "nodejs",
    "language": "nodejs",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.2.0",
        "default": true,
        "git": {
          "remotes": {
            "origin": "https://github.com/nodeshift-starters/devfile-sample.git"
          }
        },
        "description": "nodejs with devfile v2.2.0"
      }
    ]
  },
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.2.0",
        "default": true,
        "git": {
          "remotes": {
            "origin": "https://github.com/devfile-samples/devfile-sample-code-with-quarkus.git"
          }
        },
        "description": "java quarkus with devfile v2.2.0"
      },
      {
        "version": "1.0.0",
        "schemaVersion": "2.0.0",
        "git": {
          "remotes": {
            "origin": "https://github.com/elsony/devfile-sample-code-with-quarkus.git"
          }
        },
        "description": "java quarkus with devfile v2.0.0"
      }
    ]
  }
]

Query (range) parameters

Parameter Description

MaxVersion

The maximum sample version

MinVersion

The minimum sample version

MaxSchemaVersion

The maximum devfile schema version

MinSchemaVersion

The minimum devfile schema version

Request example

curl http://devfile-registry.192.168.1.1.nip.io/v2index/sample?maxSchemaVersion=2.1

Response example

[
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.0.0",
        "schemaVersion": "2.0.0",
        "git": {
          "remotes": {
            "origin": "https://github.com/elsony/devfile-sample-code-with-quarkus.git"
          }
        },
        "description": "java quarkus with devfile v2.0.0"
      }
    ]
  }
]

Query (field) parameters

Parameter Description

Name

Search string to filter samples by their name

DisplayName

Search string to filter samples by their display names

Description

Search string to filter samples by the description text

AttributeNames

Collection of search strings to filter samples by the names of defined free-form attributes

Arch

Collection of search strings to filter samples by their architectures

Tags

Collection of search strings to filter samples by their tags

Icon

Toggle on encoding content passed

IconUri

Search string to filter samples by their icon uri

ProjectType

Search string to filter samples by their project type

Language

Search string to filter samples by their programming language

Default

Boolean to filter samples if they are default or not

Resources

Collection of search strings to filter samples by their resource files

StarterProjects

Collection of search strings to filter samples by the names of the starter projects

LinkNames

Collection of search strings to filter samples by the names of the link sources

Links

Collection of search strings to filter samples by their link sources

CommandGroups

Collection of search strings to filter samples by their present command groups

DeploymentScopes

Collection of search strings to filter stacks by their present deployment scopes

GitRemoteNames

Collection of search strings to filter samples by the names of the git remotes

GitRemotes

Collection of search strings to filter samples by the URIs of the git remotes

GitUrl

Search string to filter samples by their git urls

GitRemoteName

Search string to filter samples by their git remote name

GitSubDir

Search string to filter samples by their target subdirectory of the git repository

GitRevision

Search string to filter samples by their git revision

Provider

Search string to filter samples by the stack provider

SupportUrl

Search string to filter samples by their given support url

Request example

curl 'http://devfile-registry.192.168.1.1.nip.io/v2index/sample?description=java&default=true'

Note: Field filter parameters accept fuzzy search strings, meaning if java is passed into description parameter, the results will be any sample with resource entries which contain java as partial matches.

Response example

[
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.2.0",
        "default": true,
        "git": {
          "remotes": {
            "origin": "https://github.com/devfile-samples/devfile-sample-code-with-quarkus.git"
          }
        },
        "description": "java quarkus with devfile v2.2.0"
      }
    ]
  }
]

Gets registry v2 index of all devfile types

Gets the registry v2 index file content of all devfile types, which contains versions information, from HTTP response

HTTP request

GET http://{registry host}/v2index/all

Request parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/v2index/all

Response example

[
  {
    "name": "go",
    "displayName": "Go Runtime",
    "description": "Stack with the latest Go version",
    "type": "stack",
    "tags": [
      "testtag",
      "Go"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
    "projectType": "go",
    "language": "go",
    "provider": "Red Hat",
    "versions": [
      {
        "version": "1.2.0",
        "schemaVersion": "2.1.0",
        "description": "Stack with the latest Go version with devfile v2.1.0 schema verison",
        "tags": [
          "testtag"
        ],
        "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
        "links": {
          "self": "devfile-catalog/go:1.2.0"
        },
        "commandGroups": {
          "build": true,
          "debug": false,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "devfile.yaml",
          "go-starter-offline.zip"
        ],
        "starterProjects": [
          "go-starter",
          "go-starter-offline"
        ]
      },
      {
        "version": "1.1.0",
        "schemaVersion": "2.0.0",
        "default": true,
        "description": "Stack with the latest Go version with devfile v2.0.0 schema verison",
        "tags": [
          "Go"
        ],
        "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg",
        "links": {
          "self": "devfile-catalog/go:1.1.0"
        },
        "commandGroups": {
          "build": true,
          "debug": false,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "devfile.yaml",
          "go-starter-offline.zip"
        ],
        "starterProjects": [
          "go-starter",
          "go-starter-offline"
        ]
      }
    ]
  },
  {
    "name": "java-maven",
    "displayName": "Maven Java",
    "description": "Upstream Maven and OpenJDK 11",
    "type": "stack",
    "tags": [
      "Java",
      "Maven"
    ],
    "architectures": [
      "amd64",
      "arm64",
      "s390x"
    ],
    "projectType": "maven",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.1.0",
        "default": true,
        "description": "Upstream Maven and OpenJDK 11",
        "tags": [
          "Java",
          "Maven"
        ],
        "architectures": [
          "amd64",
          "arm64",
          "s390x"
        ],
        "links": {
          "self": "devfile-catalog/java-maven:1.1.0"
        },
        "commandGroups": {
          "build": true,
          "debug": true,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "devfile.yaml"
        ],
        "starterProjects": [
          "springbootproject-offline",
          "springbootproject"
        ]
      }
    ]
  },
  {
    "name": "java-quarkus",
    "displayName": "Quarkus Java",
    "description": "Quarkus with Java",
    "type": "stack",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "architectures": [
      "amd64"
    ],
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.0.0",
        "default": true,
        "description": "Quarkus with Java",
        "tags": [
          "Java",
          "Quarkus"
        ],
        "architectures": [
          "amd64"
        ],
        "links": {
          "self": "devfile-catalog/java-quarkus:1.1.0"
        },
        "commandGroups": {
          "build": false,
          "debug": true,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "community-offline.zip",
          "devfile.yaml"
        ],
        "starterProjects": [
          "community-offline",
          "community",
          "redhat-product"
        ]
      }
    ]
  },
  {
    "name": "nodejs",
    "displayName": "NodeJS Runtime",
    "description": "Stack with NodeJS 12",
    "type": "stack",
    "tags": [
      "NodeJS",
      "Express",
      "ubi8"
    ],
    "architectures": [
      "amd64",
      "arm64"
    ],
    "projectType": "nodejs",
    "language": "nodejs",
    "provider": "Red Hat",
    "supportUrl": "http://testurl/support.md",
    "versions": [
      {
        "version": "1.0.0",
        "schemaVersion": "2.0.0",
        "default": true,
        "description": "Stack with NodeJS 12",
        "tags": [
          "NodeJS",
          "Express",
          "ubi8"
        ],
        "architectures": [
          "amd64",
          "arm64"
        ],
        "links": {
          "self": "devfile-catalog/nodejs:1.0.0"
        },
        "commandGroups": {
          "build": true,
          "debug": true,
          "deploy": false,
          "run": true,
          "test": true
        },
        "resources": [
          "devfile.yaml"
        ],
        "starterProjects": [
          "nodejs-starter"
        ]
      }
    ]
  },
  {
    "name": "nodejs-basic",
    "displayName": "Basic Node.js",
    "description": "A simple Hello World Node.js application",
    "type": "sample",
    "tags": [
      "NodeJS",
      "Express"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/node-js.svg",
    "projectType": "nodejs",
    "language": "nodejs",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.2.0",
        "default": true,
        "git": {
          "remotes": {
            "origin": "https://github.com/nodeshift-starters/devfile-sample.git"
          }
        },
        "description": "nodejs with devfile v2.2.0"
      }
    ]
  },
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.2.0",
        "default": true,
        "git": {
          "remotes": {
            "origin": "https://github.com/devfile-samples/devfile-sample-code-with-quarkus.git"
          }
        },
        "description": "java quarkus with devfile v2.2.0"
      },
      {
        "version": "1.0.0",
        "schemaVersion": "2.0.0",
        "git": {
          "remotes": {
            "origin": "https://github.com/elsony/devfile-sample-code-with-quarkus.git"
          }
        },
        "description": "java quarkus with devfile v2.0.0"
      }
    ]
  },
  {
    "name": "java-springboot-basic",
    "displayName": "Basic Spring Boot",
    "description": "A simple Hello World Java Spring Boot application using Maven",
    "type": "sample",
    "tags": [
      "Java",
      "Spring"
    ],
    "icon": "https://spring.io/images/projects/spring-edf462fec682b9d48cf628eaf9e19521.svg",
    "projectType": "springboot",
    "language": "java",
    "git": {
      "remotes": {
        "origin": "https://github.com/devfile-samples/devfile-sample-java-springboot-basic.git"
      }
    }
  },
  {
    "name": "python-basic",
    "displayName": "Basic Python",
    "description": "A simple Hello World application using Python",
    "type": "sample",
    "tags": [
      "Python"
    ],
    "icon": "https://www.python.org/static/community_logos/python-logo-generic.svg",
    "projectType": "python",
    "language": "python",
    "git": {
      "remotes": {
        "origin": "https://github.com/devfile-samples/devfile-sample-python-basic.git"
      }
    }
  }
]

Query (range) parameters

Parameter Description

MaxVersion

The maximum stack/sample version

MinVersion

The minimum stack/sample version

MaxSchemaVersion

The maximum devfile schema version

MinSchemaVersion

The minimum devfile schema version

Request example

curl http://devfile-registry.192.168.1.1.nip.io/v2index/sample?minSchemaVersion=2.1

Response example

[
  {
    "name": "java-openliberty",
    "displayName": "Open Liberty Maven",
    "description": "Java application Maven-built stack using the Open Liberty runtime",
    "type": "stack",
    "tags": [
      "Java",
      "Maven"
    ],
    "architectures": [
      "amd64",
      "ppc64le",
      "s390x"
    ],
    "icon": "https://raw.githubusercontent.com/OpenLiberty/logos/7fbb132949b9b2589e18c8d5665c1b107028a21d/logomark/svg/OL_logomark.svg",
    "projectType": "openliberty",
    "language": "java",
    "versions": [
      {
        "version": "0.8.1",
        "schemaVersion": "2.1.0",
        "default": true,
        "description": "Java application Maven-built stack using the Open Liberty runtime",
        "tags": [
          "Java",
          "Maven"
        ],
        "architectures": [
          "amd64",
          "ppc64le",
          "s390x"
        ],
        "icon": "https://raw.githubusercontent.com/OpenLiberty/logos/7fbb132949b9b2589e18c8d5665c1b107028a21d/logomark/svg/OL_logomark.svg",
        "links": {
          "self": "devfile-catalog/java-openliberty:0.8.1"
        },
        "resources": [
          "devfile.yaml"
        ],
        "starterProjects": [
          "rest"
        ]
      }
    ]
  },
  {
    "name": "java-openliberty-gradle",
    "displayName": "Open Liberty Gradle",
    "description": "Java application Gradle-built stack using the Open Liberty runtime",
    "type": "stack",
    "tags": [
      "Java",
      "Gradle"
    ],
    "architectures": [
      "amd64",
      "ppc64le",
      "s390x"
    ],
    "icon": "https://raw.githubusercontent.com/OpenLiberty/logos/7fbb132949b9b2589e18c8d5665c1b107028a21d/logomark/svg/OL_logomark.svg",
    "projectType": "openliberty",
    "language": "java",
    "versions": [
      {
        "version": "0.3.1",
        "schemaVersion": "2.1.0",
        "default": true,
        "description": "Java application Gradle-built stack using the Open Liberty runtime",
        "tags": [
          "Java",
          "Gradle"
        ],
        "architectures": [
          "amd64",
          "ppc64le",
          "s390x"
        ],
        "icon": "https://raw.githubusercontent.com/OpenLiberty/logos/7fbb132949b9b2589e18c8d5665c1b107028a21d/logomark/svg/OL_logomark.svg",
        "links": {
          "self": "devfile-catalog/java-openliberty-gradle:0.3.1"
        },
        "resources": [
          "devfile.yaml"
        ],
        "starterProjects": [
          "rest"
        ]
      }
    ]
  },
  {
    "name": "nodejs-basic",
    "displayName": "Basic Node.js",
    "description": "A simple Hello World Node.js application",
    "type": "sample",
    "tags": [
      "NodeJS",
      "Express"
    ],
    "icon": "https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/node-js.svg",
    "projectType": "nodejs",
    "language": "nodejs",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.2.0",
        "default": true,
        "git": {
          "remotes": {
            "origin": "https://github.com/nodeshift-starters/devfile-sample.git"
          }
        },
        "description": "nodejs with devfile v2.2.0"
      }
    ]
  },
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.2.0",
        "default": true,
        "git": {
          "remotes": {
            "origin": "https://github.com/devfile-samples/devfile-sample-code-with-quarkus.git"
          }
        },
        "description": "java quarkus with devfile v2.2.0"
      }
    ]
  }
]

Query (field) parameters

Parameter Description

Name

Search string to filter stacks/samples by their name

DisplayName

Search string to filter stacks/samples by their display names

Description

Search string to filter stacks/samples by the description text

AttributeNames

Collection of search strings to filter stacks/samples by the names of defined free-form attributes

Arch

Collection of search strings to filter stacks/samples by their architectures

Tags

Collection of search strings to filter stacks/samples by their tags

Icon

Toggle on encoding content passed

IconUri

Search string to filter stacks/samples by their icon uri

ProjectType

Search string to filter stacks/samples by their project type

Language

Search string to filter stacks/samples by their programming language

Default

Boolean to filter stacks/samples if they are default or not

Resources

Collection of search strings to filter stacks/samples by their resource files

StarterProjects

Collection of search strings to filter stacks/samples by the names of the starter projects

LinkNames

Collection of search strings to filter stacks/samples by the names of the link sources

Links

Collection of search strings to filter stacks/samples by their link sources

CommandGroups

Collection of search strings to filter stacks/samples by their present command groups

DeploymentScopes

Collection of search strings to filter stacks by their present deployment scopes

GitRemoteNames

Collection of search strings to filter stacks/samples by the names of the git remotes

GitRemotes

Collection of search strings to filter stacks/samples by the URIs of the git remotes

GitUrl

Search string to filter stacks/samples by their git urls

GitRemoteName

Search string to filter stacks/samples by their git remote name

GitSubDir

Search string to filter stacks/samples by their target subdirectory of the git repository

GitRevision

Search string to filter stacks/samples by their git revision

Provider

Search string to filter stacks/samples by the stack provider

SupportUrl

Search string to filter stacks/samples by their given support url

Request example

curl 'http://devfile-registry.192.168.1.1.nip.io/v2index/all?description=java&default=true'

Note: Field filter parameters accept fuzzy search strings, meaning if java is passed into description parameter, the results will be any stack or sample with resource entries which contain java as partial matches.

Response example

[
  {
    "name": "java-quarkus",
    "displayName": "Quarkus Java",
    "description": "Quarkus with Java",
    "type": "stack",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "architectures": [
      "amd64"
    ],
    "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.0.0",
        "default": true,
        "description": "Quarkus with Java",
        "tags": [
          "Java",
          "Quarkus"
        ],
        "architectures": [
          "amd64"
        ],
        "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
        "links": {
          "self": "devfile-catalog/java-quarkus:1.1.0"
        },
        "commandGroups": {
          "build": false,
          "debug": true,
          "deploy": false,
          "run": true,
          "test": false
        },
        "resources": [
          "community-offline.zip",
          "devfile.yaml"
        ],
        "starterProjects": [
          "community-offline",
          "community",
          "redhat-product"
        ]
      }
    ]
  },
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": "https://design.jboss.org/quarkus/logo/final/SVG/quarkus_icon_rgb_default.svg",
    "projectType": "quarkus",
    "language": "java",
    "versions": [
      {
        "version": "1.1.0",
        "schemaVersion": "2.2.0",
        "default": true,
        "git": {
          "remotes": {
            "origin": "https://github.com/devfile-samples/devfile-sample-code-with-quarkus.git"
          }
        },
        "description": "java quarkus with devfile v2.2.0"
      }
    ]
  }
]

Gets registry stack devfile

Gets the specific registry stack devfile content from HTTP response

Note: this REST API only returns the content of devfile.yaml, it won’t return other resources in the stack

HTTP request

GET http://{registry host}/devfiles/{stack}

Request parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Stack

Registry stack name

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/devfiles/nodejs

Response example

schemaVersion: 2.0.0
metadata:
  name: nodejs
  version: 1.0.0
starterProjects:
  - name: nodejs-starter
    git:
      remotes:
        origin: "https://github.com/odo-devfiles/nodejs-ex.git"
components:
  - name: runtime
    container:
      image: registry.access.redhat.com/ubi8/nodejs-12:1-45
      memoryLimit: 1024Mi
      mountSources: true
      sourceMapping: /project
      endpoints:
        - name: http-3000
          targetPort: 3000
commands:
  - id: install
    exec:
      component: runtime
      commandLine: npm install
      workingDir: /project
      group:
        kind: build
        isDefault: true
  - id: run
    exec:
      component: runtime
      commandLine: npm start
      workingDir: /project
      group:
        kind: run
        isDefault: true
  - id: debug
    exec:
      component: runtime
      commandLine: npm run debug
      workingDir: /project
      group:
        kind: debug
        isDefault: true
  - id: test
    exec:
      component: runtime
      commandLine: npm test
      workingDir: /project
      group:
        kind: test
        isDefault: true

Gets registry stack devfile with version

Gets the specific registry stack devfile content with stack version from HTTP response

Note: this REST API only returns the content of devfile.yaml, it won’t return other resources in the stack

HTTP request

GET http://{registry host}/devfiles/{stack}/{version}

Request parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Stack

Registry stack name

Version

Specific version of the stack, or latest

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/devfiles/nodejs/1.0.1

Response example

schemaVersion: 2.0.0
metadata:
  name: nodejs
  version: 1.0.1
  displayName: Node.js Runtime
  description: Stack with Node.js 14
  icon: https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/node-js.svg
  tags: ['NodeJS', 'Express', 'ubi8']
  projectType: 'nodejs'
  language: 'javascript'
starterProjects:
  - name: nodejs-starter
    git:
      remotes:
        origin: 'https://github.com/odo-devfiles/nodejs-ex.git'
components:
  - name: runtime
    container:
      image: registry.access.redhat.com/ubi8/nodejs-14:latest
      memoryLimit: 1024Mi
      mountSources: true
      endpoints:
        - name: http-3000
          targetPort: 3000
commands:
  - id: install
    exec:
      component: runtime
      commandLine: npm install
      workingDir: ${PROJECT_SOURCE}
      group:
        kind: build
        isDefault: true
  - id: run
    exec:
      component: runtime
      commandLine: npm start
      workingDir: ${PROJECT_SOURCE}
      group:
        kind: run
        isDefault: true
  - id: debug
    exec:
      component: runtime
      commandLine: npm run debug
      workingDir: ${PROJECT_SOURCE}
      group:
        kind: debug
        isDefault: true
  - id: test
    exec:
      component: runtime
      commandLine: npm test
      workingDir: ${PROJECT_SOURCE}
      group:
        kind: test
        isDefault: true

Download Starter Project from requested Devfile

Fetches starter project specified in requested registry stack devfile with version’s content and provides an archive (zip) file download as the HTTP response.

Note: Only provides download as the response, not the devfile content.

HTTP Request

GET http://{registry host}/devfiles/{stack}/starter-projects/{starterProject}

Request Parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Stack

Registry stack name

Starter Project

Starter project name in the stack devfile

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/devfiles/nodejs/starter-projects/nodejs-starter -o nodejs-starter.zip

Response example

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14383    0 14383    0     0  13910      0 --:--:--  0:00:01 --:--:-- 13910

Download Starter Project from requested Devfile with Version

Fetches starter project specified in requested registry stack devfile’s content and provides an archive (zip) file download as the HTTP response.

Note: Only provides download as the response, not the devfile content.

HTTP Request

GET http://{registry host}/devfiles/{stack}/{version}/starter-projects/{starterProject}

Request Parameters

Parameter Description

Registry host

The URL/ingress that exposes registry service

Stack

Registry stack name

Version

Specific version of the stack, or latest

Starter Project

Starter project name in the stack devfile

Request body

The request body must be empty.

Request example

curl http://devfile-registry.192.168.1.1.nip.io/devfiles/nodejs/1.0.1/starter-projects/nodejs-starter -o nodejs-starter.zip

Response example

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14383    0 14383    0     0  13910      0 --:--:--  0:00:01 --:--:-- 13910