From b05124c20d67f3bb3079395189170e9b03f7130a Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Fri, 20 Mar 2015 11:51:10 +0000 Subject: [PATCH] Sync docs from master to gh-pages --- spring-cloud-cli.html | 85 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 80 insertions(+), 5 deletions(-) diff --git a/spring-cloud-cli.html b/spring-cloud-cli.html index 82bb806..b9b8fae 100644 --- a/spring-cloud-cli.html +++ b/spring-cloud-cli.html @@ -417,8 +417,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
-

Spring Boot command line features for -Spring Cloud.

+

Spring Boot CLI provides Spring Boot command line features for +Spring Cloud. You can write Groovy scripts to run Spring Cloud component applications +(e.g. @EnableEurekaServer). You can also easily do things like encryption and decryption to support Spring Cloud +Config clients with secret configuration values.

+
+
@@ -455,8 +460,6 @@ $ gvm use springboot 1.2.1.RELEASE $ spring install org.springframework.cloud:spring-cloud-cli:1.0.0.BUILD-SNAPSHOT -
-

Encryption and Decryption

@@ -475,11 +478,83 @@ in the JRE lib/security directory with the ones that you downloaded). +
+

Writing Groovy Scripts and Running Applications

+
+
+

Spring Cloud CLI has support for most of the Spring Cloud declarative +features, such as the @Enable* class of annotations. For example, +here is a fully functional Eureka server

+
+
+
app.groovy
+
+
@EnableEurekaServer
+class Eureka {}
+
+
+
+

which you can run from the command line like this

+
+
+
+
$ spring run app.groovy
+
+
+
+

To include additional dependencies, often it suffices just to add the +appropriate feature-enabling annotation, e.g. @EnableConfigServer, +@EnableOAuth2Sso or @EnableEurekaClient. To manually include a +dependency you can use a @Grab with the special "Spring Boot" short +style artifact co-ordinates, i.e. with just the artifact ID (no need +for group or version information), e.g. to set up a client app to +listen on AMQP for management events from the Spring CLoud Bus:

+
+
+
app.groovy
+
+
@Grab('spring-cloud-starter-bus-amqp')
+@RestController
+class Service {
+  @RequestMapping('/')
+  def home() { [message: 'Hello'] }
+}
+
+
+
+
+
+

Encryption and Decryption

+
+
+

The Spring Cloud CLI comes with an "encrypt" and a "decrypt" +command. Both accept arguments in the same form with a key specified +as a mandatory "--key", e.g.

+
+
+
+
$ spring encrypt mysecret --key foo
+682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
+$ spring decrypt --key foo 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
+mysecret
+
+
+
+

To use a key in a file (e.g. an RSA public key for encyption) prepend +the key value with "@" and provide the file path, e.g.

+
+
+
+
$ spring encrypt mysecret --key @${HOME}/.ssh/id_rsa.pub
+AQAjPgt3eFZQXwt8tsHAVv/QHiY5sI2dRcR+...
+
+
+