REST API Guide
This section covers the Spring Cloud Skipper REST API.
29. Overview
Spring Cloud Skipper provides a REST API that lets you access all aspects of the server. The Spring Cloud Skipper shell is a first-class consumer of the API.
29.1. HTTP Verbs
Spring Cloud Skipper tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP verbs. The following table shows each verb and how Skipper uses it:
Verb | Usage |
---|---|
|
Used to retrieve a resource. |
|
Used to create a new resource. |
|
Used to update an existing resource, including partial updates.
Also used for resources that imply the concept of |
|
Used to delete an existing resource. |
29.2. HTTP Status Codes
Skipper adheres as closely as possible to standard HTTP and REST conventions in its use of HTTP status codes. The following table shows each status and its meaning in Skipper:
Status code | Usage |
---|---|
|
The request completed successfully. |
|
A new resource has been created successfully.
The resource’s URI is available from the response’s |
|
An update to an existing resource has been applied successfully. |
|
The request was malformed. The response body includes an error that provides further information. |
|
The requested resource does not exist. |
29.3. Headers
Every response has the following header(s):
Name | Description |
---|---|
|
The |
29.4. Errors
Path | Type | Description |
---|---|---|
|
|
The HTTP error that occurred (for example, |
|
|
A description of the cause of the error. |
|
|
An exception class. |
|
|
The path to which the request was made. |
|
|
The HTTP status code (for example |
|
|
The time, in milliseconds, at which the error occurred. |
29.5. Hypermedia
Spring Cloud Skipper uses hypermedia.
As a result, resources include links to other resources in their responses.
More specifically, responses are in Hypertext Application from resource to resource Language (HAL) format.
Links can be found beneath the _links
key.
Consumers of the API should not create URIs themselves.
Instead they should use the links in the resources to navigate.
30. Resources
30.1. Index
The index provides the entry point into Spring Cloud Skipper’s REST API.
30.1.1. Accessing the Index
You can use a GET
request to access the index.
Example Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1366
{
"_links" : {
"repositories" : {
"href" : "http://localhost:7577/api/repositories{?page,size,sort}",
"templated" : true
},
"jpaRepositoryActions" : {
"href" : "http://localhost:7577/api/jpaRepositoryActions"
},
"jpaRepositoryGuards" : {
"href" : "http://localhost:7577/api/jpaRepositoryGuards"
},
"deployers" : {
"href" : "http://localhost:7577/api/deployers{?page,size,sort}",
"templated" : true
},
"jpaRepositoryStates" : {
"href" : "http://localhost:7577/api/jpaRepositoryStates"
},
"releases" : {
"href" : "http://localhost:7577/api/releases{?page,size,sort}",
"templated" : true
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata{?page,size,sort,projection}",
"templated" : true
},
"jpaRepositoryStateMachines" : {
"href" : "http://localhost:7577/api/jpaRepositoryStateMachines"
},
"jpaRepositoryTransitions" : {
"href" : "http://localhost:7577/api/jpaRepositoryTransitions"
},
"about" : {
"href" : "http://localhost:7577/api/about"
},
"release" : {
"href" : "http://localhost:7577/api/release"
},
"package" : {
"href" : "http://localhost:7577/api/package"
},
"profile" : {
"href" : "http://localhost:7577/api/profile"
}
}
}
Links
The links are the main element of the index, as they let you traverse the API and invoke the desired functionality. The following table dsecribes the links:
Relation | Description |
---|---|
|
Exposes the 'package repository' repository. |
|
Exposes the deployer repository. |
|
Exposes the package metadata repository. |
|
Exposes the release repository. |
|
Entrypoint to provide ALPS metadata that defines simple descriptions of application-level semantics. |
|
Provides meta information about the server. |
|
Exposes the release resource. |
|
Exposes the package resource. |
30.2. Server
The Server resource exposes build and version information of the server.
30.2.1. Server info
A GET
request returns meta information for Spring Cloud Skipper, including the following:
-
Server name — typically
spring-cloud-skipper-server
-
Version of the server — for example,
2.11.5
Response structure
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 260
{
"versionInfo" : {
"server" : {
"name" : "Spring Cloud Skipper Server",
"version" : "fake-server-version"
},
"shell" : {
"name" : "Spring Cloud Skipper Shell",
"version" : "fake-shell-version"
}
},
"links" : [ ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Spring Cloud Skipper Server dependency. |
|
|
Spring Cloud Skipper Server dependency version. |
|
|
Spring Cloud Skipper Shell dependency. |
|
|
Spring Cloud Skipper Shell dependency version. |
|
|
Links. |
30.3. Platforms
The Platforms (or Platform Deployer) resource is exported from the Spring Data Repository DeployerRepository
and exposed by Spring Data REST.
30.3.1. Find All
A GET
request returns a paginated list for all the Spring Cloud Skipper platform deployers.
Response structure
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 16050
{
"_embedded" : {
"deployers" : [ {
"name" : "default",
"type" : "local",
"description" : "ShutdownTimeout = [30], EnvVarsToInherit = [TMP,LANG,LANGUAGE,LC_.*,PATH,SPRING_APPLICATION_JSON], JavaCmd = [java], WorkingDirectoriesRoot = [/tmp], DeleteFilesOnExit = [true]",
"options" : [ {
"id" : "spring.cloud.deployer.local.docker.network",
"name" : "network",
"type" : "java.lang.String",
"description" : "Container network",
"shortDescription" : "Container network",
"defaultValue" : "bridge",
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.docker.volume-mounts",
"name" : "volume-mounts",
"type" : "java.lang.String",
"description" : "Set volume mappings",
"shortDescription" : "Set volume mappings",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.docker.port-mappings",
"name" : "port-mappings",
"type" : "java.lang.String",
"description" : "Set port mappings for container",
"shortDescription" : "Set port mappings for container",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.docker.additional-hosts",
"name" : "additional-hosts",
"type" : "java.lang.String",
"description" : "Set additional hosts",
"shortDescription" : "Set additional hosts",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.docker.delete-container-on-exit",
"name" : "delete-container-on-exit",
"type" : "java.lang.Boolean",
"description" : "Whether to delete the container on container exit.",
"shortDescription" : "Whether to delete the container on container exit.",
"defaultValue" : true,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.docker.port-range.low",
"name" : "low",
"type" : "java.lang.Integer",
"description" : "Lower bound for computing applications's random port.",
"shortDescription" : "Lower bound for computing applications's random port.",
"defaultValue" : 20000,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.docker.port-range.high",
"name" : "high",
"type" : "java.lang.Integer",
"description" : "Upper bound for computing applications's random port.",
"shortDescription" : "Upper bound for computing applications's random port.",
"defaultValue" : 61000,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.working-directories-root",
"name" : "working-directories-root",
"type" : "java.nio.file.Path",
"description" : "Directory in which all created processes will run and create log files.",
"shortDescription" : "Directory in which all created processes will run and create log files.",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.use-spring-application-json",
"name" : "use-spring-application-json",
"type" : "java.lang.Boolean",
"description" : "Flag to indicate whether application properties are passed as command line args or in a SPRING_APPLICATION_JSON environment variable. Default value is {@code true}.",
"shortDescription" : "Flag to indicate whether application properties are passed as command line args or in a SPRING_APPLICATION_JSON environment variable.",
"defaultValue" : true,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.env-vars-to-inherit",
"name" : "env-vars-to-inherit",
"type" : "java.lang.String[]",
"description" : "Array of regular expression patterns for environment variables that should be passed to launched applications.",
"shortDescription" : "Array of regular expression patterns for environment variables that should be passed to launched applications.",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.shutdown-timeout",
"name" : "shutdown-timeout",
"type" : "java.lang.Integer",
"description" : "Maximum number of seconds to wait for application shutdown. via the {@code /shutdown} endpoint. A timeout value of 0 specifies an infinite timeout. Default is 30 seconds.",
"shortDescription" : "Maximum number of seconds to wait for application shutdown. via the {@code /shutdown} endpoint.",
"defaultValue" : 30,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.maximum-concurrent-tasks",
"name" : "maximum-concurrent-tasks",
"type" : "java.lang.Integer",
"description" : "The maximum concurrent tasks allowed for this platform instance.",
"shortDescription" : "The maximum concurrent tasks allowed for this platform instance.",
"defaultValue" : 20,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.debug-suspend",
"name" : "debug-suspend",
"type" : "org.springframework.cloud.deployer.spi.local.LocalDeployerProperties$DebugSuspendType",
"description" : "Suspend defines whether the JVM should suspend and wait for a debugger to attach or not",
"shortDescription" : "Suspend defines whether the JVM should suspend and wait for a debugger to attach or not",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.java-opts",
"name" : "java-opts",
"type" : "java.lang.String",
"description" : "The Java Options to pass to the JVM, e.g -Dtest=foo",
"shortDescription" : "The Java Options to pass to the JVM, e.g -Dtest=foo",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.java-home-path",
"name" : "java-home-path",
"type" : "java.util.Map<java.lang.String,java.lang.String>",
"description" : null,
"shortDescription" : null,
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.inherit-logging",
"name" : "inherit-logging",
"type" : "java.lang.Boolean",
"description" : null,
"shortDescription" : null,
"defaultValue" : false,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.app-admin",
"name" : "app-admin",
"type" : "org.springframework.cloud.deployer.spi.app.AppAdmin",
"description" : null,
"shortDescription" : null,
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.debug-port",
"name" : "debug-port",
"type" : "java.lang.Integer",
"description" : "Set remote debugging port for JDK 8 runtimes. @deprecated Use the {@link #debugAddress} instead!",
"shortDescription" : "Set remote debugging port for JDK 8 runtimes.",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.delete-files-on-exit",
"name" : "delete-files-on-exit",
"type" : "java.lang.Boolean",
"description" : "Whether to delete created files and directories on JVM exit.",
"shortDescription" : "Whether to delete created files and directories on JVM exit.",
"defaultValue" : true,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.hostname",
"name" : "hostname",
"type" : "java.lang.String",
"description" : "(optional) hostname to use when computing the URL of the deployed application. By default the {@link CommandBuilder} implementations decide how to build the hostname.",
"shortDescription" : "(optional) hostname to use when computing the URL of the deployed application.",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.java-cmd",
"name" : "java-cmd",
"type" : "java.lang.String",
"description" : "The command to run java.",
"shortDescription" : "The command to run java.",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.debug-address",
"name" : "debug-address",
"type" : "java.lang.String",
"description" : "Debugging address for the remote clients to attache to. Addresses have the format \"<name>:<port>\" where <name> is the host name and <port> is the socket port number at which it attaches or listens. For JDK 8 or earlier, the address consists of the port number alone (the host name is implicit to localhost). Example addresses for JDK version 9 or higher: <code>*:20075, 192.168.178.10:20075</code>. Example addresses for JDK version 8 or earlier: <code>20075</code>.",
"shortDescription" : "Debugging address for the remote clients to attache to.",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.port-range.high",
"name" : "high",
"type" : "java.lang.Integer",
"description" : "Upper bound for computing applications's random port.",
"shortDescription" : "Upper bound for computing applications's random port.",
"defaultValue" : 61000,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.port-range.low",
"name" : "low",
"type" : "java.lang.Integer",
"description" : "Lower bound for computing applications's random port.",
"shortDescription" : "Lower bound for computing applications's random port.",
"defaultValue" : 20000,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.health-probe.path",
"name" : "path",
"type" : "java.lang.String",
"description" : "Path to check as a probe",
"shortDescription" : "Path to check as a probe",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "spring.cloud.deployer.local.startup-probe.path",
"name" : "path",
"type" : "java.lang.String",
"description" : "Path to check as a probe",
"shortDescription" : "Path to check as a probe",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
} ],
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/deployers/01bb2216-44bc-4621-abd2-0cc0d71389a5"
},
"deployer" : {
"href" : "http://localhost:7577/api/deployers/01bb2216-44bc-4621-abd2-0cc0d71389a5"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/deployers"
},
"profile" : {
"href" : "http://localhost:7577/api/profile/deployers"
},
"search" : {
"href" : "http://localhost:7577/api/deployers/search"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Pagination properties |
|
|
The size of the page being returned |
|
|
Total elements available for pagination |
|
|
Total amount of pages |
|
|
Page number of the page returned (zero-based) |
|
|
Array containing Deployer objects |
|
|
Name of the deployer |
|
|
Type of the deployer (e.g. 'local') |
|
|
Description providing some deployer properties |
|
|
Array containing Deployer deployment properties |
|
|
Deployment property id |
|
|
Deployment property name |
|
|
Deployment property type |
|
|
Deployment property description |
|
|
Deployment property short description |
|
|
Deployment property default value |
|
|
Object containing deployment property hints |
|
|
Deployment property key hints |
|
|
Deployment property key hint providers |
|
|
Deployment property value hints |
|
|
Deployment property value hint providers |
|
|
|
|
|
30.4. Packages
The Packages resource is exported from the Spring Data Repository PackageMetadata
and exposed by Spring Data REST.
30.4.1. Search
A GET
request will return a paginated list for all Spring Cloud Skipper package metadata.
Response structure
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 4613
{
"_embedded" : {
"packageMetadata" : [ {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/3"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/3{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/3"
}
}
}, {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/4"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/4{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/4"
}
}
}, {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/5"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/5{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/5"
}
}
}, {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/6"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/6{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/6"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata"
},
"profile" : {
"href" : "http://localhost:7577/api/profile/packageMetadata"
},
"search" : {
"href" : "http://localhost:7577/api/packageMetadata/search"
}
},
"page" : {
"size" : 10,
"totalElements" : 4,
"totalPages" : 1,
"number" : 0
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Pagination properties |
|
|
The size of the page being returned |
|
|
Total elements available for pagination |
|
|
Total amount of pages |
|
|
Page number of the page returned (zero-based) |
|
|
Contains a collection of Package Metadata items |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
30.4.2. Search summary
A GET
request returns the list of available package metadata with the summary information of each package.
Response structure
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 2261
{
"_embedded" : {
"packageMetadata" : [ {
"version" : "1.0.0",
"description" : "The log sink uses the application logger to output the data for inspection.",
"iconUrl" : null,
"repositoryName" : "local",
"name" : "log",
"id" : "3",
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/3"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/3{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/3"
}
}
}, {
"version" : "1.0.0",
"description" : "The log sink uses the application logger to output the data for inspection.",
"iconUrl" : null,
"repositoryName" : "local",
"name" : "log",
"id" : "4",
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/4"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/4{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/4"
}
}
}, {
"version" : "1.0.0",
"description" : "The log sink uses the application logger to output the data for inspection.",
"iconUrl" : null,
"repositoryName" : "local",
"name" : "log",
"id" : "5",
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/5"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/5{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/5"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata?projection=summary"
},
"profile" : {
"href" : "http://localhost:7577/api/profile/packageMetadata"
},
"search" : {
"href" : "http://localhost:7577/api/packageMetadata/search"
}
},
"page" : {
"size" : 20,
"totalElements" : 3,
"totalPages" : 1,
"number" : 0
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Pagination properties |
|
|
The size of the page being returned |
|
|
Total elements available for pagination |
|
|
Total amount of pages |
|
|
Page number of the page returned (zero-based) |
|
|
Identifier of the package metadata |
|
|
Url location of a icon |
|
|
The repository name this Package belongs to. |
|
|
The version of the package |
|
|
The name of the package |
|
|
Brief description of the package |
|
|
self link |
|
|
link to full package metadata |
|
|
link to install the package |
30.4.3. Search with details
A GET
request returns the details of a package using the id
of the package.
Response structure
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Content-Type: application/hal+json
Content-Length: 931
{
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/3"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/3{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/3"
}
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to. |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
The display name of the package |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
30.4.4. Search by Package Name
A GET
request returns a list of all the Spring Cloud Skipper package metadata for the given package name.
Request structure
getPackageMetadataSearchFindByName
GET /api/packageMetadata/search/findByName?name=log HTTP/1.1
Host: localhost:7577
Example request
$ curl 'http://localhost:7577/api/packageMetadata/search/findByName?name=log' -i -X GET
Response structure
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 5404
{
"_embedded" : {
"packageMetadata" : [ {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/3"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/3{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/3"
}
}
}, {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/4"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/4{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/4"
}
}
}, {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/5"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/5{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/5"
}
}
}, {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/6"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/6{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/6"
}
}
}, {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/7"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/7{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/7"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/search/findByName?name=log"
}
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to. |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
The display name of the package |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
30.4.5. Search by Package Name, Ignoring Case
A GET
request returns a list for all Spring Cloud Skipper package metadata by the given package name ignoring case.
Request structure
GET /api/packageMetadata/search/findByNameContainingIgnoreCase?name=LO HTTP/1.1
Host: localhost:7577
Example request
$ curl 'http://localhost:7577/api/packageMetadata/search/findByNameContainingIgnoreCase?name=LO' -i -X GET
Response structure
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 2288
{
"_embedded" : {
"packageMetadata" : [ {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/3"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/3{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/3"
}
}
}, {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : 2,
"repositoryName" : "local",
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/4"
},
"packageMetadata" : {
"href" : "http://localhost:7577/api/packageMetadata/4{?projection}",
"templated" : true
},
"install" : {
"href" : "http://localhost:7577/api/package/install/4"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/packageMetadata/search/findByNameContainingIgnoreCase?name=LO"
}
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to. |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
The display name of the package |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
30.5. Package
The Package resource maps onto the PackageController for uploading and installing packages.
30.5.1. Upload
The upload
link uploads a package into a the local
database backed repository.
Request structure
POST /api/package/upload HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 163
Host: localhost:7577
{
"name" : "log",
"repoName" : "local",
"version" : "1.0.0",
"extension" : "zip",
"packageFileAsBytes" : "cGFja2FnZS55bWwKdGVtcGxhdGVzCnZhbHVlcy55bWwK"
}
Example request
$ curl 'http://localhost:7577/api/package/upload' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"name" : "log",
"repoName" : "local",
"version" : "1.0.0",
"extension" : "zip",
"packageFileAsBytes" : "cGFja2FnZS55bWwKdGVtcGxhdGVzCnZhbHVlcy55bWwK"
}'
Response structure
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 805
{
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null,
"links" : [ {
"rel" : "install",
"href" : "http://localhost:7577/api/package/install"
}, {
"rel" : "install",
"href" : "http://localhost:7577/api/package/install/{id}"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to. |
|
|
The repository nane this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
The display name of the package |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
30.5.2. Install
The install
link can install a package (identified by the InstallRequest
) into the target platform.
Request structure
POST /api/package/install HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 296
Host: localhost:7577
{
"packageIdentifier" : {
"repositoryName" : "notused",
"packageName" : "log",
"packageVersion" : "1.0.0"
},
"installProperties" : {
"releaseName" : "test",
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"platformName" : "default"
}
}
Example request
$ curl 'http://localhost:7577/api/package/install' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"packageIdentifier" : {
"repositoryName" : "notused",
"packageName" : "log",
"packageVersion" : "1.0.0"
},
"installProperties" : {
"releaseName" : "test",
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"platformName" : "default"
}
}'
Response structure
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 2624
{
"name" : "test",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"links" : [ {
"rel" : "status",
"href" : "http://localhost:7577/api/release/status/{name}"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
Indicates the origin of the repository (free form text) |
|
|
The Package Index spec version this file is based on |
|
|
The repository ID this Package belongs to |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
30.5.3. Install with ID
The install
link can install a package identified by its ID into the target platform.
Request structure
POST /api/package/install/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 162
Host: localhost:7577
{
"releaseName" : "myLogReleaseWithInstallProperties",
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"platformName" : "default"
}
Example request
$ curl 'http://localhost:7577/api/package/install/1' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"releaseName" : "myLogReleaseWithInstallProperties",
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"platformName" : "default"
}'
Response structure
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 2633
{
"name" : "myLogRelease2",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"links" : [ {
"rel" : "status",
"href" : "http://localhost:7577/api/release/status/{name}"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
30.6. Repositories
The Repositories resource is exported from the Spring Data Repository RepositoryRepository
(yes, it’s a funny name) and exposed by Spring Data REST.
30.6.1. Find All
A GET
request returns a paginated list for all Spring Cloud Skipper repositories.
Response structure
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 1288
{
"_embedded" : {
"repositories" : [ {
"name" : "test",
"url" : "classpath:/repositories/binaries/test",
"sourceUrl" : null,
"local" : false,
"description" : "test repository with a few packages",
"repoOrder" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/repositories/1"
},
"repository" : {
"href" : "http://localhost:7577/api/repositories/1"
}
}
}, {
"name" : "local",
"url" : "http://localhost:7577",
"sourceUrl" : null,
"local" : true,
"description" : "Default local database backed repository",
"repoOrder" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/repositories/2"
},
"repository" : {
"href" : "http://localhost:7577/api/repositories/2"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/repositories"
},
"profile" : {
"href" : "http://localhost:7577/api/profile/repositories"
},
"search" : {
"href" : "http://localhost:7577/api/repositories/search"
}
},
"page" : {
"size" : 10,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Pagination properties |
|
|
The size of the page being returned |
|
|
Total elements available for pagination |
|
|
Total amount of pages |
|
|
Page number of the page returned (zero-based) |
|
|
Contains a collection of Repositories |
|
|
Name of the Repository |
|
|
Url of the Repository |
|
|
Source Url of the repository |
|
|
Description of the Repository |
|
|
Is the repo local? |
|
|
Order of the Repository |
30.6.2. Find By Name
A GET
request returns a single Spring Cloud Skipper repositories.
Example request
$ curl 'http://localhost:7577/api/repositories/search/findByName?name=local' -i -X GET
Response structure
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
ETag: "0"
Content-Type: application/hal+json
Content-Length: 366
{
"name" : "local",
"url" : "http://localhost:7577",
"sourceUrl" : null,
"local" : true,
"description" : "Default local database backed repository",
"repoOrder" : null,
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/repositories/2"
},
"repository" : {
"href" : "http://localhost:7577/api/repositories/2"
}
}
}
30.7. Releases
The release
resource is exported from the Spring Data Repository ReleaseRepository
and exposed by Spring Data REST.
30.7.1. Find all
A GET
request returns a paginated list for all Spring Cloud Skipper releases.
Response structure
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
Content-Length: 3321
{
"_embedded" : {
"releases" : [ {
"name" : "test",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/releases/8"
},
"release" : {
"href" : "http://localhost:7577/api/releases/8"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:7577/api/releases"
},
"profile" : {
"href" : "http://localhost:7577/api/profile/releases"
},
"search" : {
"href" : "http://localhost:7577/api/releases/search"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Pagination properties |
|
|
The size of the page being returned |
|
|
Total elements available for pagination |
|
|
Total amount of pages |
|
|
Page number of the page returned (zero-based) |
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
Platform name of the release |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
30.8. Release
The Release resource maps onto the ReleaseController for managing the lifecycle of a release.
30.8.1. List
List latest
The list
link can list the latest version of releases with status of deployed or failed.
Response structure
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 2913
{
"_embedded" : {
"releases" : [ {
"name" : "test",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"_links" : {
"status" : {
"href" : "http://localhost:7577/api/release/status/{name}",
"templated" : true
}
}
} ]
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
List latest by name
The list
link can list the latest version of releases with status of deployed or failed by the
given release name.
Response structure
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 2913
{
"_embedded" : {
"releases" : [ {
"name" : "test",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"_links" : {
"status" : {
"href" : "http://localhost:7577/api/release/status/{name}",
"templated" : true
}
}
} ]
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
30.8.2. Status
Get the status of a release
The status
REST endpoint provides the status for the last known release version.
Response structure
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 313
{
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null,
"_links" : {
"manifest" : {
"href" : "http://localhost:7577/api/release/manifest/{name}",
"templated" : true
}
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
Status by version
The status
REST endpoint can provide the status for a specific release version.
Response structure
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 313
{
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null,
"_links" : {
"manifest" : {
"href" : "http://localhost:7577/api/release/manifest/{name}",
"templated" : true
}
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
30.8.3. Upgrade
Upgrade a release
The upgrade link upgrades an existing release with the configured package and config values from the UpgradeRequest
.
Request structure
POST /api/release/upgrade HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 269
Host: localhost:7577
{
"packageIdentifier" : {
"packageName" : "log",
"packageVersion" : "1.1.0"
},
"upgradeProperties" : {
"releaseName" : "test",
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
}
},
"force" : false,
"appNames" : [ ]
}
Example request
$ curl 'http://localhost:7577/api/release/upgrade' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"packageIdentifier" : {
"packageName" : "log",
"packageVersion" : "1.1.0"
},
"upgradeProperties" : {
"releaseName" : "test",
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
}
},
"force" : false,
"appNames" : [ ]
}'
Response structure
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 2624
{
"name" : "test",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"links" : [ {
"rel" : "status",
"href" : "http://localhost:7577/api/release/status/{name}"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to. |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
30.8.4. Rollback
Rollback release using uri variables
The rollback link rolls back the release to a previous or a specific release.
This part of the api is deprecated, please use Rollback release using request object. |
Response structure
HTTP/1.1 201 Created
Content-Type: application/hal+json
Content-Length: 2650
{
"name" : "test",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"_links" : {
"status" : {
"href" : "http://localhost:7577/api/release/status/{name}",
"templated" : true
}
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to. |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
Rollback release using request object
The rollback link rolls back the release to a previous or a specific release.
Request structure
POST /api/release/rollback HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 66
Host: localhost:7577
{
"releaseName" : "test",
"version" : 1,
"timeout" : 60000
}
Example request
$ curl 'http://localhost:7577/api/release/rollback' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"releaseName" : "test",
"version" : 1,
"timeout" : 60000
}'
Response structure
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 2624
{
"name" : "test",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"links" : [ {
"rel" : "status",
"href" : "http://localhost:7577/api/release/status/{name}"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to. |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
30.8.5. Manifest
Get manifest
The manifest
REST endpoint returns the manifest for the last known release version.
Request structure
GET /api/release/manifest/test HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:7577
Example request
$ curl 'http://localhost:7577/api/release/manifest/test' -i -X GET \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json'
Response structure
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 610
{
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n",
"links" : [ {
"rel" : "status",
"href" : "http://localhost:7577/api/release/status/{name}"
} ]
}
Get manifest by version
The manifest
REST endpoint can return the manifest for a specific release version.
Response structure
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 636
{
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n",
"_links" : {
"status" : {
"href" : "http://localhost:7577/api/release/status/{name}",
"templated" : true
}
}
}
30.8.6. Delete
Delete a release
You can use a DELETE
request to delete an existing release.
The delete operation does not uninstall the uploaded packages corresponding to the release.
Request structure
DELETE /api/release/test HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:7577
Example request
$ curl 'http://localhost:7577/api/release/test' -i -X DELETE \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json'
Response structure
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2624
{
"name" : "test",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"links" : [ {
"rel" : "status",
"href" : "http://localhost:7577/api/release/status/{name}"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to. |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
Delete a release and uninstall package
You can use a DELETE request to delete an existing release and uninstall the packages corresponding to the release, provided there are no other releases in active state use these packages.
Request structure
DELETE /api/release/test/package HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:7577
Example request
$ curl 'http://localhost:7577/api/release/test/package' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
Response structure
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2624
{
"name" : "test",
"version" : 1,
"info" : {
"status" : {
"statusCode" : "DELETED",
"platformStatus" : null
},
"firstDeployed" : null,
"lastDeployed" : null,
"deleted" : null,
"description" : null
},
"pkg" : {
"metadata" : {
"apiVersion" : "skipper.spring.io/v1",
"origin" : null,
"repositoryId" : null,
"repositoryName" : null,
"kind" : "SkipperPackageMetadata",
"name" : "log",
"displayName" : null,
"version" : "1.0.0",
"packageSourceUrl" : "https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1",
"packageHomeUrl" : "https://cloud.spring.io/spring-cloud-stream-app-starters/",
"tags" : "logging, sink",
"maintainer" : "https://github.com/sobychacko",
"description" : "The log sink uses the application logger to output the data for inspection.",
"sha256" : null,
"iconUrl" : null
},
"templates" : [ {
"name" : "log.yml",
"data" : "apiVersion: skipper.spring.io/v1\nkind: SpringCloudDeployerApplication\nmetadata:\n name: log\n type: sink\nspec:\n resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit\n resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}}\n version: {{version}}\n applicationProperties:\n server.port: 0\n {{#spec.applicationProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.applicationProperties.entrySet}}\n deploymentProperties:\n {{#spec.deploymentProperties.entrySet}}\n {{key}}: {{value}}\n {{/spec.deploymentProperties.entrySet}}\n"
} ],
"dependencies" : [ ],
"configValues" : {
"raw" : "# Default values for {{name}}\n# This is a YAML-formatted file.\n# Declare variables to be passed into your templates\nversion: 1.2.0.RC1\n"
},
"fileHolders" : [ ]
},
"configValues" : {
"raw" : "config2: value2\nconfig1: value1\n"
},
"manifest" : {
"data" : "\"apiVersion\": \"skipper.spring.io/v1\"\n\"kind\": \"SpringCloudDeployerApplication\"\n\"metadata\":\n \"name\": \"log\"\n \"type\": \"sink\"\n\"spec\":\n \"resource\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit\"\n \"resourceMetadata\": \"maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RC1\"\n \"version\": \"1.2.0.RC1\"\n \"applicationProperties\":\n \"server.port\": \"0\"\n \"deploymentProperties\": !!null \"null\"\n"
},
"platformName" : "default",
"links" : [ {
"rel" : "status",
"href" : "http://localhost:7577/api/release/status/{name}"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
Name of the release |
|
|
Version of the release |
|
|
StatusCode of the release’s status (UNKNOWN,DEPLOYED,DELETED,FAILED) |
|
|
Status from the underlying platform |
|
|
Date/Time of first deployment |
|
|
Date/Time of last deployment |
|
|
Date/Time of when the release was deleted |
|
|
Human-friendly 'log entry' about this release |
|
|
The Package Index spec version this file is based on |
|
|
Indicates the origin of the repository (free form text) |
|
|
The repository ID this Package belongs to. |
|
|
The repository name this Package belongs to. |
|
|
What type of package system is being used |
|
|
The name of the package |
|
|
Display name of the release |
|
|
The version of the package |
|
|
Location to source code for this package |
|
|
The home page of the package |
|
|
A comma separated list of tags to use for searching |
|
|
Who is maintaining this package |
|
|
Brief description of the package |
|
|
Hash of package binary that will be downloaded using SHA256 hash algorithm |
|
|
Url location of a icon |
|
|
Name is the path-like name of the template |
|
|
Data is the template as string data |
|
|
The packages that this package depends upon |
|
|
The raw YAML string of configuration values |
|
|
Miscellaneous files in a package, e.g. README, LICENSE, etc. |
|
|
The raw YAML string of configuration values |
|
|
The manifest of the release |
|
|
Platform name of the release |
30.8.7. Cancel
Cancel a release
You can use a POST
request to cancel an existing release operation.
Request structure
POST /api/release/cancel HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 36
Host: localhost:7577
{
"releaseName" : "myLogRelease"
}
Example request
$ curl 'http://localhost:7577/api/release/cancel' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"releaseName" : "myLogRelease"
}'