forked from toolshed/abra
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			small-impr
			...
			secret-ins
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| bd80599114 | 
| @ -6,6 +6,7 @@ import ( | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
|  | ||||
| 	"coopcloud.tech/abra/cli/internal" | ||||
| 	"coopcloud.tech/abra/pkg/autocomplete" | ||||
| @ -156,6 +157,8 @@ var appSecretInsertCommand = cli.Command{ | ||||
| 	Flags: []cli.Flag{ | ||||
| 		internal.DebugFlag, | ||||
| 		internal.PassFlag, | ||||
| 		internal.FileFlag, | ||||
| 		internal.TrimFlag, | ||||
| 	}, | ||||
| 	Before:       internal.SubCommandBefore, | ||||
| 	ArgsUsage:    "<domain> <secret-name> <version> <data>", | ||||
| @ -188,6 +191,18 @@ Example: | ||||
| 		version := c.Args().Get(2) | ||||
| 		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) | ||||
| 		if err := client.StoreSecret(cl, secretName, data, app.Server); err != nil { | ||||
| 			logrus.Fatal(err) | ||||
|  | ||||
| @ -38,6 +38,20 @@ var PassRemoveFlag = &cli.BoolFlag{ | ||||
| 	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. | ||||
| var Force bool | ||||
|  | ||||
|  | ||||
| @ -19,6 +19,13 @@ teardown_file(){ | ||||
|   _reset_recipe | ||||
| } | ||||
|  | ||||
| teardown() { | ||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all | ||||
|   _reset_app | ||||
|   _reset_recipe | ||||
|   _checkout_recipe | ||||
| } | ||||
|  | ||||
| setup(){ | ||||
|   load "$PWD/tests/integration/helpers/common" | ||||
|   _common_setup | ||||
| @ -77,9 +84,6 @@ setup(){ | ||||
|   assert_output --partial 'test_pass_one' | ||||
|   assert_output --partial 'test_pass_two' | ||||
|   refute_output --partial 'extra_pass' | ||||
|  | ||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all | ||||
|   assert_success | ||||
| } | ||||
|  | ||||
| @test "generate: broken if missing version" { | ||||
| @ -91,7 +95,6 @@ setup(){ | ||||
|   assert_failure | ||||
|   assert_output --partial 'missing version' | ||||
|  | ||||
|   _reset_app | ||||
| } | ||||
|  | ||||
| @test "generate: use version from app env" { | ||||
| @ -108,11 +111,6 @@ setup(){ | ||||
|   assert_success | ||||
|   assert_output --partial 'v2' | ||||
|   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" { | ||||
| @ -131,11 +129,6 @@ setup(){ | ||||
|   run docker -c "$TEST_SERVER" secret ls | ||||
|   assert_success | ||||
|   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" { | ||||
| @ -162,8 +155,6 @@ setup(){ | ||||
|  | ||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all --chaos | ||||
|   assert_success | ||||
|  | ||||
|   _checkout_recipe | ||||
| } | ||||
|  | ||||
| @test "generate: ensure secret name uses trimmed stack name" { | ||||
| @ -228,9 +219,22 @@ setup(){ | ||||
|   run $ABRA app secret ls "$TEST_APP_DOMAIN" | ||||
|   assert_success | ||||
|   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_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" { | ||||
| @ -314,9 +318,6 @@ setup(){ | ||||
|   run $ABRA app secret ls "$TEST_APP_DOMAIN" | ||||
|   assert_success | ||||
|   assert_output --partial 'true' | ||||
|  | ||||
|   run $ABRA app secret rm "$TEST_APP_DOMAIN" --all | ||||
|   assert_success | ||||
| } | ||||
|  | ||||
| @test "ls: show secrets as machine readable" { | ||||
| @ -330,9 +331,6 @@ setup(){ | ||||
|   run $ABRA app secret ls "$TEST_APP_DOMAIN" --machine | ||||
|   assert_success | ||||
|   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" { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user