forked from toolshed/abra
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			abra-app-m
			...
			secret-ins
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| bd80599114 | 
| @ -6,6 +6,7 @@ import ( | |||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"os" | 	"os" | ||||||
| 	"strconv" | 	"strconv" | ||||||
|  | 	"strings" | ||||||
|  |  | ||||||
| 	"coopcloud.tech/abra/cli/internal" | 	"coopcloud.tech/abra/cli/internal" | ||||||
| 	"coopcloud.tech/abra/pkg/autocomplete" | 	"coopcloud.tech/abra/pkg/autocomplete" | ||||||
| @ -156,6 +157,8 @@ var appSecretInsertCommand = cli.Command{ | |||||||
| 	Flags: []cli.Flag{ | 	Flags: []cli.Flag{ | ||||||
| 		internal.DebugFlag, | 		internal.DebugFlag, | ||||||
| 		internal.PassFlag, | 		internal.PassFlag, | ||||||
|  | 		internal.FileFlag, | ||||||
|  | 		internal.TrimFlag, | ||||||
| 	}, | 	}, | ||||||
| 	Before:       internal.SubCommandBefore, | 	Before:       internal.SubCommandBefore, | ||||||
| 	ArgsUsage:    "<domain> <secret-name> <version> <data>", | 	ArgsUsage:    "<domain> <secret-name> <version> <data>", | ||||||
| @ -188,6 +191,18 @@ Example: | |||||||
| 		version := c.Args().Get(2) | 		version := c.Args().Get(2) | ||||||
| 		data := c.Args().Get(3) | 		data := c.Args().Get(3) | ||||||
|  |  | ||||||
|  | 		if internal.File { | ||||||
|  | 			raw, err := os.ReadFile(data) | ||||||
|  | 			if err != nil { | ||||||
|  | 				logrus.Fatalf("reading secret from file: %s", err) | ||||||
|  | 			} | ||||||
|  | 			data = string(raw) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		if internal.Trim { | ||||||
|  | 			data = strings.TrimSpace(data) | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		secretName := fmt.Sprintf("%s_%s_%s", app.StackName(), name, version) | 		secretName := fmt.Sprintf("%s_%s_%s", app.StackName(), name, version) | ||||||
| 		if err := client.StoreSecret(cl, secretName, data, app.Server); err != nil { | 		if err := client.StoreSecret(cl, secretName, data, app.Server); err != nil { | ||||||
| 			logrus.Fatal(err) | 			logrus.Fatal(err) | ||||||
|  | |||||||
| @ -38,6 +38,20 @@ var PassRemoveFlag = &cli.BoolFlag{ | |||||||
| 	Destination: &PassRemove, | 	Destination: &PassRemove, | ||||||
| } | } | ||||||
|  |  | ||||||
|  | var File bool | ||||||
|  | var FileFlag = &cli.BoolFlag{ | ||||||
|  | 	Name:        "file, f", | ||||||
|  | 	Usage:       "Treat input as a file", | ||||||
|  | 	Destination: &File, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | var Trim bool | ||||||
|  | var TrimFlag = &cli.BoolFlag{ | ||||||
|  | 	Name:        "trim, t", | ||||||
|  | 	Usage:       "Trim input", | ||||||
|  | 	Destination: &Trim, | ||||||
|  | } | ||||||
|  |  | ||||||
| // Force force functionality without asking. | // Force force functionality without asking. | ||||||
| var Force bool | var Force bool | ||||||
|  |  | ||||||
|  | |||||||
| @ -19,6 +19,13 @@ teardown_file(){ | |||||||
|   _reset_recipe |   _reset_recipe | ||||||
| } | } | ||||||
|  |  | ||||||
|  | teardown() { | ||||||
|  |   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all | ||||||
|  |   _reset_app | ||||||
|  |   _reset_recipe | ||||||
|  |   _checkout_recipe | ||||||
|  | } | ||||||
|  |  | ||||||
| setup(){ | setup(){ | ||||||
|   load "$PWD/tests/integration/helpers/common" |   load "$PWD/tests/integration/helpers/common" | ||||||
|   _common_setup |   _common_setup | ||||||
| @ -77,9 +84,6 @@ setup(){ | |||||||
|   assert_output --partial 'test_pass_one' |   assert_output --partial 'test_pass_one' | ||||||
|   assert_output --partial 'test_pass_two' |   assert_output --partial 'test_pass_two' | ||||||
|   refute_output --partial 'extra_pass' |   refute_output --partial 'extra_pass' | ||||||
|  |  | ||||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all |  | ||||||
|   assert_success |  | ||||||
| } | } | ||||||
|  |  | ||||||
| @test "generate: broken if missing version" { | @test "generate: broken if missing version" { | ||||||
| @ -91,7 +95,6 @@ setup(){ | |||||||
|   assert_failure |   assert_failure | ||||||
|   assert_output --partial 'missing version' |   assert_output --partial 'missing version' | ||||||
|  |  | ||||||
|   _reset_app |  | ||||||
| } | } | ||||||
|  |  | ||||||
| @test "generate: use version from app env" { | @test "generate: use version from app env" { | ||||||
| @ -108,11 +111,6 @@ setup(){ | |||||||
|   assert_success |   assert_success | ||||||
|   assert_output --partial 'v2' |   assert_output --partial 'v2' | ||||||
|   refute_output --partial 'v1' |   refute_output --partial 'v1' | ||||||
|  |  | ||||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all |  | ||||||
|   assert_success |  | ||||||
|  |  | ||||||
|   _reset_app |  | ||||||
| } | } | ||||||
|  |  | ||||||
| @test "generate: generate extra secret based on COMPOSE_FILE" { | @test "generate: generate extra secret based on COMPOSE_FILE" { | ||||||
| @ -131,11 +129,6 @@ setup(){ | |||||||
|   run docker -c "$TEST_SERVER" secret ls |   run docker -c "$TEST_SERVER" secret ls | ||||||
|   assert_success |   assert_success | ||||||
|   assert_output --partial "$TEST_APP_DOMAIN_extra_pass_v1" |   assert_output --partial "$TEST_APP_DOMAIN_extra_pass_v1" | ||||||
|  |  | ||||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all |  | ||||||
|   assert_success |  | ||||||
|  |  | ||||||
|   _reset_app |  | ||||||
| } | } | ||||||
|  |  | ||||||
| @test "generate: bail if unstaged changes and no --chaos" { | @test "generate: bail if unstaged changes and no --chaos" { | ||||||
| @ -162,8 +155,6 @@ setup(){ | |||||||
|  |  | ||||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all --chaos |   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all --chaos | ||||||
|   assert_success |   assert_success | ||||||
|  |  | ||||||
|   _checkout_recipe |  | ||||||
| } | } | ||||||
|  |  | ||||||
| @test "generate: ensure secret name uses trimmed stack name" { | @test "generate: ensure secret name uses trimmed stack name" { | ||||||
| @ -228,9 +219,22 @@ setup(){ | |||||||
|   run $ABRA app secret ls "$TEST_APP_DOMAIN" |   run $ABRA app secret ls "$TEST_APP_DOMAIN" | ||||||
|   assert_success |   assert_success | ||||||
|   assert_output --partial 'true' |   assert_output --partial 'true' | ||||||
|  | } | ||||||
|  |  | ||||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" test_pass_one | @test "insert: create secret from file" { | ||||||
|  |   run $ABRA app secret ls "$TEST_APP_DOMAIN" | ||||||
|   assert_success |   assert_success | ||||||
|  |   assert_output --partial 'false' | ||||||
|  |  | ||||||
|  |   run bash -c "echo bar >> $ABRA_DIR/recipes/$TEST_RECIPE/foo" | ||||||
|  |  | ||||||
|  |   run $ABRA app secret insert --file "$TEST_APP_DOMAIN" test_pass_one v1 "$ABRA_DIR/recipes/$TEST_RECIPE/foo" | ||||||
|  |   assert_success | ||||||
|  |   assert_output --partial 'successfully stored on server' | ||||||
|  |  | ||||||
|  |   run $ABRA app secret ls "$TEST_APP_DOMAIN" | ||||||
|  |   assert_success | ||||||
|  |   assert_output --partial 'true' | ||||||
| } | } | ||||||
|  |  | ||||||
| @test "rm: validate arguments" { | @test "rm: validate arguments" { | ||||||
| @ -314,9 +318,6 @@ setup(){ | |||||||
|   run $ABRA app secret ls "$TEST_APP_DOMAIN" |   run $ABRA app secret ls "$TEST_APP_DOMAIN" | ||||||
|   assert_success |   assert_success | ||||||
|   assert_output --partial 'true' |   assert_output --partial 'true' | ||||||
|  |  | ||||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all |  | ||||||
|   assert_success |  | ||||||
| } | } | ||||||
|  |  | ||||||
| @test "ls: show secrets as machine readable" { | @test "ls: show secrets as machine readable" { | ||||||
| @ -330,9 +331,6 @@ setup(){ | |||||||
|   run $ABRA app secret ls "$TEST_APP_DOMAIN" --machine |   run $ABRA app secret ls "$TEST_APP_DOMAIN" --machine | ||||||
|   assert_success |   assert_success | ||||||
|   assert_output --partial '"created-on-server":"true"' |   assert_output --partial '"created-on-server":"true"' | ||||||
|  |  | ||||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all |  | ||||||
|   assert_success |  | ||||||
| } | } | ||||||
|  |  | ||||||
| @test "ls: bail if unstaged changes and no --chaos" { | @test "ls: bail if unstaged changes and no --chaos" { | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user