From 1a99483a691d56ba691159caf548f5fad3e0d0f9 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Tue, 20 Jun 2023 12:40:20 +0530 Subject: [PATCH 01/42] CrateDB Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 25 ++++++ plugins/cratedb/database_credentials.go | 82 ++++++++++++++++++++ plugins/cratedb/database_credentials_test.go | 55 +++++++++++++ plugins/cratedb/plugin.go | 22 ++++++ 4 files changed, 184 insertions(+) create mode 100644 plugins/cratedb/crash.go create mode 100644 plugins/cratedb/database_credentials.go create mode 100644 plugins/cratedb/database_credentials_test.go create mode 100644 plugins/cratedb/plugin.go diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go new file mode 100644 index 000000000..7c6e69ee7 --- /dev/null +++ b/plugins/cratedb/crash.go @@ -0,0 +1,25 @@ +package cratedb + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/needsauth" + "github.com/1Password/shell-plugins/sdk/schema" + "github.com/1Password/shell-plugins/sdk/schema/credname" +) + +func CrateDBCLI() schema.Executable { + return schema.Executable{ + Name: "CrateDB CLI", // TODO: Check if this is correct + Runs: []string{"crash"}, + DocsURL: sdk.URL("https://cratedb.com/docs/cli"), // TODO: Replace with actual URL + NeedsAuth: needsauth.IfAll( + needsauth.NotForHelpOrVersion(), + needsauth.NotWithoutArgs(), + ), + Uses: []schema.CredentialUsage{ + { + Name: credname.DatabaseCredentials, + }, + }, + } +} diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go new file mode 100644 index 000000000..02f569631 --- /dev/null +++ b/plugins/cratedb/database_credentials.go @@ -0,0 +1,82 @@ +package cratedb + +import ( + "context" + + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/importer" + "github.com/1Password/shell-plugins/sdk/provision" + "github.com/1Password/shell-plugins/sdk/schema" + "github.com/1Password/shell-plugins/sdk/schema/credname" + "github.com/1Password/shell-plugins/sdk/schema/fieldname" +) + +func DatabaseCredentials() schema.CredentialType { + return schema.CredentialType{ + Name: credname.DatabaseCredentials, + DocsURL: sdk.URL("https://cratedb.com/docs/database_credentials"), // TODO: Replace with actual URL + ManagementURL: sdk.URL("https://console.cratedb.com/user/security/tokens"), // TODO: Replace with actual URL + Fields: []schema.CredentialField{ + { + Name: fieldname.Host, + MarkdownDescription: "CrateDB host to connect to.", + Optional: true, + }, + { + Name: fieldname.Port, + MarkdownDescription: "Port used to connect to CrateDB.", + Optional: true, + }, + { + Name: fieldname.User, + MarkdownDescription: "CrateDB user to authenticate as.", + Optional: true, + }, + { + Name: fieldname.Password, + MarkdownDescription: "Password used to authenticate to CrateDB.", + Secret: true, + }, + { + Name: fieldname.Database, + MarkdownDescription: "Database name to connect to.", + Optional: true, + }, + }, + DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), + Importer: importer.TryAll( + importer.TryEnvVarPair(defaultEnvVarMapping), + TryCrateDBConfigFile(), + )} +} + +var defaultEnvVarMapping = map[string]sdk.FieldName{ + "CRATEPW": fieldname.Password, // TODO: Check if this is correct +} + +// TODO: Check if the platform stores the Database Credentials in a local config file, and if so, +// implement the function below to add support for importing it. +func TryCrateDBConfigFile() sdk.Importer { + return importer.TryFile("~/path/to/config/file.yml", func(ctx context.Context, contents importer.FileContents, in sdk.ImportInput, out *sdk.ImportAttempt) { + // var config Config + // if err := contents.ToYAML(&config); err != nil { + // out.AddError(err) + // return + // } + + // if config. == "" { + // return + // } + + // out.AddCandidate(sdk.ImportCandidate{ + // Fields: map[sdk.FieldName]string{ + // fieldname.: config., + // }, + // }) + }) +} + +// TODO: Implement the config file schema +// type Config struct { +// string +// } diff --git a/plugins/cratedb/database_credentials_test.go b/plugins/cratedb/database_credentials_test.go new file mode 100644 index 000000000..305cbd258 --- /dev/null +++ b/plugins/cratedb/database_credentials_test.go @@ -0,0 +1,55 @@ +package cratedb + +import ( + "testing" + + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/plugintest" + "github.com/1Password/shell-plugins/sdk/schema/fieldname" +) + +func TestDatabaseCredentialsProvisioner(t *testing.T) { + plugintest.TestProvisioner(t, DatabaseCredentials().DefaultProvisioner, map[string]plugintest.ProvisionCase{ + "default": { + ItemFields: map[sdk.FieldName]string{ // TODO: Check if this is correct + fieldname.: "yqch", + }, + ExpectedOutput: sdk.ProvisionOutput{ + Environment: map[string]string{ + "CRATEDB": "yqch", + }, + }, + }, + }) +} + +func TestDatabaseCredentialsImporter(t *testing.T) { + plugintest.TestImporter(t, DatabaseCredentials().Importer, map[string]plugintest.ImportCase{ + "environment": { + Environment: map[string]string{ // TODO: Check if this is correct + "CRATEDB": "yqch", + }, + ExpectedCandidates: []sdk.ImportCandidate{ + { + Fields: map[sdk.FieldName]string{ + fieldname.: "yqch", + }, + }, + }, + }, + // TODO: If you implemented a config file importer, add a test file example in cratedb/test-fixtures + // and fill the necessary details in the test template below. + "config file": { + Files: map[string]string{ + // "~/path/to/config.yml": plugintest.LoadFixture(t, "config.yml"), + }, + ExpectedCandidates: []sdk.ImportCandidate{ + // { + // Fields: map[sdk.FieldName]string{ + // fieldname.Token: "yqch", + // }, + // }, + }, + }, + }) +} diff --git a/plugins/cratedb/plugin.go b/plugins/cratedb/plugin.go new file mode 100644 index 000000000..c39bfee24 --- /dev/null +++ b/plugins/cratedb/plugin.go @@ -0,0 +1,22 @@ +package cratedb + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/schema" +) + +func New() schema.Plugin { + return schema.Plugin{ + Name: "cratedb", + Platform: schema.PlatformInfo{ + Name: "CrateDB", + Homepage: sdk.URL("https://cratedb.com"), // TODO: Check if this is correct + }, + Credentials: []schema.CredentialType{ + DatabaseCredentials(), + }, + Executables: []schema.Executable{ + CrateDBCLI(), + }, + } +} From e1ca2dbc8a1f34485596310b73ed3fb7f480c2d3 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Sat, 24 Jun 2023 13:17:02 +0530 Subject: [PATCH 02/42] Make A plugin for CrateDB Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 4 ++-- plugins/cratedb/database_credentials.go | 4 ++-- plugins/cratedb/database_credentials_test.go | 4 ++-- plugins/cratedb/plugin.go | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go index 7c6e69ee7..b1a0c713f 100644 --- a/plugins/cratedb/crash.go +++ b/plugins/cratedb/crash.go @@ -9,9 +9,9 @@ import ( func CrateDBCLI() schema.Executable { return schema.Executable{ - Name: "CrateDB CLI", // TODO: Check if this is correct + Name: "CrateDB Shell", // TODO: Check if this is correct Runs: []string{"crash"}, - DocsURL: sdk.URL("https://cratedb.com/docs/cli"), // TODO: Replace with actual URL + DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), // TODO: Replace with actual URL NeedsAuth: needsauth.IfAll( needsauth.NotForHelpOrVersion(), needsauth.NotWithoutArgs(), diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go index 02f569631..400d934ea 100644 --- a/plugins/cratedb/database_credentials.go +++ b/plugins/cratedb/database_credentials.go @@ -14,8 +14,8 @@ import ( func DatabaseCredentials() schema.CredentialType { return schema.CredentialType{ Name: credname.DatabaseCredentials, - DocsURL: sdk.URL("https://cratedb.com/docs/database_credentials"), // TODO: Replace with actual URL - ManagementURL: sdk.URL("https://console.cratedb.com/user/security/tokens"), // TODO: Replace with actual URL + DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/run.html#environment-variables"), + ManagementURL: sdk.URL("https://console.cratedb.cloud/account/settings"), Fields: []schema.CredentialField{ { Name: fieldname.Host, diff --git a/plugins/cratedb/database_credentials_test.go b/plugins/cratedb/database_credentials_test.go index 305cbd258..686943e97 100644 --- a/plugins/cratedb/database_credentials_test.go +++ b/plugins/cratedb/database_credentials_test.go @@ -27,12 +27,12 @@ func TestDatabaseCredentialsImporter(t *testing.T) { plugintest.TestImporter(t, DatabaseCredentials().Importer, map[string]plugintest.ImportCase{ "environment": { Environment: map[string]string{ // TODO: Check if this is correct - "CRATEDB": "yqch", + "CRATEPW": "eog-l4ogPoIO4kX8ICHC*6kP", }, ExpectedCandidates: []sdk.ImportCandidate{ { Fields: map[sdk.FieldName]string{ - fieldname.: "yqch", + fieldname.Password: "eog-l4ogPoIO4kX8ICHC*6kP", }, }, }, diff --git a/plugins/cratedb/plugin.go b/plugins/cratedb/plugin.go index c39bfee24..33587b0f7 100644 --- a/plugins/cratedb/plugin.go +++ b/plugins/cratedb/plugin.go @@ -10,7 +10,7 @@ func New() schema.Plugin { Name: "cratedb", Platform: schema.PlatformInfo{ Name: "CrateDB", - Homepage: sdk.URL("https://cratedb.com"), // TODO: Check if this is correct + Homepage: sdk.URL("https://crate.io/"), }, Credentials: []schema.CredentialType{ DatabaseCredentials(), From 197e8659e16699ab220221593ce7bf52de09e926 Mon Sep 17 00:00:00 2001 From: Horia Culea <45151601+hculea@users.noreply.github.com> Date: Mon, 26 Jun 2023 18:06:25 +0200 Subject: [PATCH 03/42] Add tickbox for Hashnode submissions in PR review Signed-off-by: Amanda Crawley --- .github/pull_request_template.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 5e993b5af..98c15aadd 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -57,5 +57,7 @@ The AWS plugin now checks for the `AWS_SHARED_CREDENTIALS_FILE` environment vari For more examples, have a look over 1Password CLI's past release notes: https://app-updates.agilebits.com/product_history/CLI2 --> +## Additional information +- [ ] Check this box if this is a Hashnode Hackathon submission From 0a46bac88e69cfac961f410117a49f98a81e6560 Mon Sep 17 00:00:00 2001 From: Horia Culea <45151601+hculea@users.noreply.github.com> Date: Mon, 26 Jun 2023 18:26:30 +0200 Subject: [PATCH 04/42] Link to hackathon page Signed-off-by: Amanda Crawley --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 98c15aadd..e31853f38 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -59,5 +59,5 @@ https://app-updates.agilebits.com/product_history/CLI2 --> ## Additional information -- [ ] Check this box if this is a Hashnode Hackathon submission +- [ ] Check this box if this is a [Hashnode Hackathon](https://hashnode.com/hackathons/1password) submission From 615dadd708ff3edf1eb756337a0ae51cefa88244 Mon Sep 17 00:00:00 2001 From: Sharun <715417+sharunkumar@users.noreply.github.com> Date: Wed, 14 Jun 2023 22:59:41 +0000 Subject: [PATCH 05/42] fix: generated plugin file name should be snake_case Signed-off-by: Amanda Crawley --- cmd/contrib/main.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/contrib/main.go b/cmd/contrib/main.go index 635372dc2..336c90f1f 100644 --- a/cmd/contrib/main.go +++ b/cmd/contrib/main.go @@ -143,6 +143,7 @@ func newPlugin() error { CredentialNameUpperCamelCase string CredentialNameSnakeCase string TestCredentialExample string + ExecutableSnakeCase string }{} err := survey.Ask(questionnaire, &result) @@ -170,6 +171,7 @@ func newPlugin() error { result.CredentialNameUpperCamelCase = strings.Join(credNameSplit, "") result.CredentialNameSnakeCase = strings.ToLower(strings.Join(credNameSplit, "_")) + result.ExecutableSnakeCase = strings.ToLower(strings.ReplaceAll(result.Executable, "-", "_")) result.IsNewCredentialName = true for _, existing := range credname.ListAll() { @@ -488,7 +490,7 @@ func Test{{ .CredentialNameUpperCamelCase }}Importer(t *testing.T) { } var executableTemplate = Template{ - Filename: "{{ .Executable }}.go", + Filename: "{{ .ExecutableSnakeCase }}.go", Contents: `package {{ .Name }} import ( From 751dd3be98ba29d12d1da8055274e9ee68b37f4d Mon Sep 17 00:00:00 2001 From: Owen Voke Date: Thu, 25 May 2023 09:54:43 +0100 Subject: [PATCH 06/42] feat: add Oh Dear CLI Signed-off-by: Amanda Crawley --- plugins/ohdear/api_token.go | 40 +++++++++++++++++++++++++++++++ plugins/ohdear/api_token_test.go | 41 ++++++++++++++++++++++++++++++++ plugins/ohdear/ohdear.go | 25 +++++++++++++++++++ plugins/ohdear/plugin.go | 22 +++++++++++++++++ 4 files changed, 128 insertions(+) create mode 100644 plugins/ohdear/api_token.go create mode 100644 plugins/ohdear/api_token_test.go create mode 100644 plugins/ohdear/ohdear.go create mode 100644 plugins/ohdear/plugin.go diff --git a/plugins/ohdear/api_token.go b/plugins/ohdear/api_token.go new file mode 100644 index 000000000..4a3c3626b --- /dev/null +++ b/plugins/ohdear/api_token.go @@ -0,0 +1,40 @@ +package ohdear + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/importer" + "github.com/1Password/shell-plugins/sdk/provision" + "github.com/1Password/shell-plugins/sdk/schema" + "github.com/1Password/shell-plugins/sdk/schema/credname" + "github.com/1Password/shell-plugins/sdk/schema/fieldname" +) + +func APIToken() schema.CredentialType { + return schema.CredentialType{ + Name: credname.APIToken, + DocsURL: sdk.URL("https://ohdear.app/docs/integrations/the-oh-dear-api#get-your-api-token"), + ManagementURL: sdk.URL("https://ohdear.app/user/api-tokens"), + Fields: []schema.CredentialField{ + { + Name: fieldname.Token, + MarkdownDescription: "Token used to authenticate to Oh Dear.", + Secret: true, + Composition: &schema.ValueComposition{ + Length: 40, + Charset: schema.Charset{ + Uppercase: true, + Lowercase: true, + Digits: true, + }, + }, + }, + }, + DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), + Importer: importer.TryAll( + importer.TryEnvVarPair(defaultEnvVarMapping), + )} +} + +var defaultEnvVarMapping = map[string]sdk.FieldName{ + "OHDEAR_API_TOKEN": fieldname.Token, +} diff --git a/plugins/ohdear/api_token_test.go b/plugins/ohdear/api_token_test.go new file mode 100644 index 000000000..bc104c248 --- /dev/null +++ b/plugins/ohdear/api_token_test.go @@ -0,0 +1,41 @@ +package ohdear + +import ( + "testing" + + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/plugintest" + "github.com/1Password/shell-plugins/sdk/schema/fieldname" +) + +func TestAPITokenProvisioner(t *testing.T) { + plugintest.TestProvisioner(t, APIToken().DefaultProvisioner, map[string]plugintest.ProvisionCase{ + "default": { + ItemFields: map[sdk.FieldName]string{ + fieldname.Token: "SZ5rluwzbtMyyQFQNoeqEFbpVbTL0ItsXEXAMPLE", + }, + ExpectedOutput: sdk.ProvisionOutput{ + Environment: map[string]string{ + "OHDEAR_API_TOKEN": "SZ5rluwzbtMyyQFQNoeqEFbpVbTL0ItsXEXAMPLE", + }, + }, + }, + }) +} + +func TestAPITokenImporter(t *testing.T) { + plugintest.TestImporter(t, APIToken().Importer, map[string]plugintest.ImportCase{ + "environment": { + Environment: map[string]string{ + "OHDEAR_API_TOKEN": "SZ5rluwzbtMyyQFQNoeqEFbpVbTL0ItsXEXAMPLE", + }, + ExpectedCandidates: []sdk.ImportCandidate{ + { + Fields: map[sdk.FieldName]string{ + fieldname.Token: "SZ5rluwzbtMyyQFQNoeqEFbpVbTL0ItsXEXAMPLE", + }, + }, + }, + }, + }) +} diff --git a/plugins/ohdear/ohdear.go b/plugins/ohdear/ohdear.go new file mode 100644 index 000000000..839ce2425 --- /dev/null +++ b/plugins/ohdear/ohdear.go @@ -0,0 +1,25 @@ +package ohdear + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/needsauth" + "github.com/1Password/shell-plugins/sdk/schema" + "github.com/1Password/shell-plugins/sdk/schema/credname" +) + +func OhDearCLI() schema.Executable { + return schema.Executable{ + Name: "Oh Dear CLI", + Runs: []string{"ohdear"}, + DocsURL: sdk.URL("https://ohdear.app/docs/integrations/our-cli-tool"), + NeedsAuth: needsauth.IfAll( + needsauth.NotForHelpOrVersion(), + needsauth.NotWithoutArgs(), + ), + Uses: []schema.CredentialUsage{ + { + Name: credname.APIToken, + }, + }, + } +} diff --git a/plugins/ohdear/plugin.go b/plugins/ohdear/plugin.go new file mode 100644 index 000000000..f7442a254 --- /dev/null +++ b/plugins/ohdear/plugin.go @@ -0,0 +1,22 @@ +package ohdear + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/schema" +) + +func New() schema.Plugin { + return schema.Plugin{ + Name: "ohdear", + Platform: schema.PlatformInfo{ + Name: "Oh Dear", + Homepage: sdk.URL("https://ohdear.app"), + }, + Credentials: []schema.CredentialType{ + APIToken(), + }, + Executables: []schema.Executable{ + OhDearCLI(), + }, + } +} From 780d091c4a8c37e4bc79027a023146ae17c95311 Mon Sep 17 00:00:00 2001 From: Parthiv Makwana <75653580+parthiv11@users.noreply.github.com> Date: Tue, 27 Jun 2023 18:49:17 +0530 Subject: [PATCH 07/42] Removed config as it has no Creds stored Signed-off-by: Amanda Crawley --- plugins/cratedb/database_credentials.go | 30 ++----------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go index 400d934ea..642164774 100644 --- a/plugins/cratedb/database_credentials.go +++ b/plugins/cratedb/database_credentials.go @@ -46,37 +46,11 @@ func DatabaseCredentials() schema.CredentialType { DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), Importer: importer.TryAll( importer.TryEnvVarPair(defaultEnvVarMapping), - TryCrateDBConfigFile(), + )} } var defaultEnvVarMapping = map[string]sdk.FieldName{ - "CRATEPW": fieldname.Password, // TODO: Check if this is correct + "CRATEPW": fieldname.Password, } -// TODO: Check if the platform stores the Database Credentials in a local config file, and if so, -// implement the function below to add support for importing it. -func TryCrateDBConfigFile() sdk.Importer { - return importer.TryFile("~/path/to/config/file.yml", func(ctx context.Context, contents importer.FileContents, in sdk.ImportInput, out *sdk.ImportAttempt) { - // var config Config - // if err := contents.ToYAML(&config); err != nil { - // out.AddError(err) - // return - // } - - // if config. == "" { - // return - // } - - // out.AddCandidate(sdk.ImportCandidate{ - // Fields: map[sdk.FieldName]string{ - // fieldname.: config., - // }, - // }) - }) -} - -// TODO: Implement the config file schema -// type Config struct { -// string -// } From 1e13a8e8e676c2ef5c9db35ccc113e80f972b18d Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Thu, 29 Jun 2023 12:24:07 +0530 Subject: [PATCH 08/42] Added Provisioner Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 5 ++-- plugins/cratedb/database_credentials.go | 12 +------- plugins/cratedb/provisioner.go | 37 +++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 plugins/cratedb/provisioner.go diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go index b1a0c713f..c7edf6126 100644 --- a/plugins/cratedb/crash.go +++ b/plugins/cratedb/crash.go @@ -9,9 +9,9 @@ import ( func CrateDBCLI() schema.Executable { return schema.Executable{ - Name: "CrateDB Shell", // TODO: Check if this is correct + Name: "CrateDB Shell", Runs: []string{"crash"}, - DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), // TODO: Replace with actual URL + DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), NeedsAuth: needsauth.IfAll( needsauth.NotForHelpOrVersion(), needsauth.NotWithoutArgs(), @@ -19,6 +19,7 @@ func CrateDBCLI() schema.Executable { Uses: []schema.CredentialUsage{ { Name: credname.DatabaseCredentials, + Provisioner: crateArgsProvisioner, }, }, } diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go index 642164774..88895b9fa 100644 --- a/plugins/cratedb/database_credentials.go +++ b/plugins/cratedb/database_credentials.go @@ -23,12 +23,7 @@ func DatabaseCredentials() schema.CredentialType { Optional: true, }, { - Name: fieldname.Port, - MarkdownDescription: "Port used to connect to CrateDB.", - Optional: true, - }, - { - Name: fieldname.User, + Name: fieldname.Username, MarkdownDescription: "CrateDB user to authenticate as.", Optional: true, }, @@ -37,11 +32,6 @@ func DatabaseCredentials() schema.CredentialType { MarkdownDescription: "Password used to authenticate to CrateDB.", Secret: true, }, - { - Name: fieldname.Database, - MarkdownDescription: "Database name to connect to.", - Optional: true, - }, }, DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), Importer: importer.TryAll( diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go new file mode 100644 index 000000000..13f5c6885 --- /dev/null +++ b/plugins/cratedb/provisioner.go @@ -0,0 +1,37 @@ +package cratedb + +import ( + "context" + + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/schema/fieldname" +) + +var argsToProvision = []string{ + "--username", fieldname.Username.String(), + "--hosts", fieldname.Host.String(), +} + +type crateArgsProvisioner struct { +} + +func crateProvisioner() sdk.Provisioner { + return crateArgsProvisioner{} +} + +func (p crateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInput, out *sdk.ProvisionOutput) { + if value, ok := in.ItemFields[fieldname.Password]; ok { + out.AddEnvVar("CRATEPW", value) + } + + out.CommandLine = append(out.CommandLine[1:], argsToProvision...) + +} + +func (p crateArgsProvisioner) Deprovision(ctx context.Context, in sdk.DeprovisionInput, out *sdk.DeprovisionOutput) { + // Nothing to do here: credentials get wiped automatically when the process exits. +} + +func (p crateArgsProvisioner) Description() string { + return "Provision crate secrets as command-line arguments." +} \ No newline at end of file From c1212d91810d6cf066a4590bf2a67465da72cfee Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Thu, 29 Jun 2023 12:26:14 +0530 Subject: [PATCH 09/42] Added Provisioner Signed-off-by: Amanda Crawley --- plugins/cratedb/provisioner.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index 13f5c6885..95ce9cbf3 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -8,8 +8,8 @@ import ( ) var argsToProvision = []string{ - "--username", fieldname.Username.String(), - "--hosts", fieldname.Host.String(), + "--username", fieldname.Username, + "--hosts", fieldname.Host, } type crateArgsProvisioner struct { From 47d6b4cc2df778a0e697c03e1cd2820dcdbae270 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Thu, 29 Jun 2023 14:55:41 +0530 Subject: [PATCH 10/42] Updated provision for crate Signed-off-by: Amanda Crawley --- plugins/cratedb/database_credentials.go | 8 +++----- plugins/cratedb/provisioner.go | 13 ++++++++++--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go index 88895b9fa..fa62030c9 100644 --- a/plugins/cratedb/database_credentials.go +++ b/plugins/cratedb/database_credentials.go @@ -33,11 +33,9 @@ func DatabaseCredentials() schema.CredentialType { Secret: true, }, }, - DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), - Importer: importer.TryAll( - importer.TryEnvVarPair(defaultEnvVarMapping), - - )} + DefaultProvisioner: provision.NoOp(), + Importer: importer.TryEnvVarPair(defaultEnvVarMapping), + } } var defaultEnvVarMapping = map[string]sdk.FieldName{ diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index 95ce9cbf3..85ae7ec02 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -24,7 +24,14 @@ func (p crateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInp out.AddEnvVar("CRATEPW", value) } - out.CommandLine = append(out.CommandLine[1:], argsToProvision...) + for i, arg := range argsToProvision { + if i%2 == 0 { + argName := arg + fieldName := sdk.FieldName(argsToProvision[i+1]) + if fieldValue, ok := in.ItemFields[fieldName]; ok { + out.AddArgs(argName, fieldValue) + } + } } @@ -33,5 +40,5 @@ func (p crateArgsProvisioner) Deprovision(ctx context.Context, in sdk.Deprovisio } func (p crateArgsProvisioner) Description() string { - return "Provision crate secrets as command-line arguments." -} \ No newline at end of file + return "Provision CrateDB username, host as command-line arguments && Password as Env ." +} From 72f429bef4062ae14e88c80ad9520071ec87643f Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Thu, 29 Jun 2023 16:53:34 +0530 Subject: [PATCH 11/42] Updated tests Signed-off-by: Amanda Crawley --- plugins/cratedb/database_credentials_test.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/cratedb/database_credentials_test.go b/plugins/cratedb/database_credentials_test.go index 686943e97..d33b25e80 100644 --- a/plugins/cratedb/database_credentials_test.go +++ b/plugins/cratedb/database_credentials_test.go @@ -11,13 +11,21 @@ import ( func TestDatabaseCredentialsProvisioner(t *testing.T) { plugintest.TestProvisioner(t, DatabaseCredentials().DefaultProvisioner, map[string]plugintest.ProvisionCase{ "default": { - ItemFields: map[sdk.FieldName]string{ // TODO: Check if this is correct - fieldname.: "yqch", + ItemFields: map[sdk.FieldName]string{ + fieldname.Password: "1<34&f0rg3t@me", + fieldname.Username: "admin", + fieldname.Host: "https://love.aks1.eastus2.azure.cratedb.net:4200", }, ExpectedOutput: sdk.ProvisionOutput{ Environment: map[string]string{ - "CRATEDB": "yqch", + "CRATEPW": "1<34&f0rg3t@me", }, + CommandLine: []string{ + "--username", + "admin", + "--host", + "https://love.aks1.eastus2.azure.cratedb.net:4200" + } }, }, }) From f347fa582d24189e336161f89dcb4d1b75ea05ae Mon Sep 17 00:00:00 2001 From: Arun Date: Tue, 14 Mar 2023 23:27:41 -0700 Subject: [PATCH 12/42] Environment variable based importing and provisioning for OpenAI Evals Signed-off-by: Amanda Crawley --- plugins/evals/api_key.go | 41 +++++++++++++++++++++++++++++++++++ plugins/evals/api_key_test.go | 41 +++++++++++++++++++++++++++++++++++ plugins/evals/oaieval.go | 25 +++++++++++++++++++++ plugins/evals/plugin.go | 22 +++++++++++++++++++ 4 files changed, 129 insertions(+) create mode 100644 plugins/evals/api_key.go create mode 100644 plugins/evals/api_key_test.go create mode 100644 plugins/evals/oaieval.go create mode 100644 plugins/evals/plugin.go diff --git a/plugins/evals/api_key.go b/plugins/evals/api_key.go new file mode 100644 index 000000000..33aa32ead --- /dev/null +++ b/plugins/evals/api_key.go @@ -0,0 +1,41 @@ +package evals + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/importer" + "github.com/1Password/shell-plugins/sdk/provision" + "github.com/1Password/shell-plugins/sdk/schema" + "github.com/1Password/shell-plugins/sdk/schema/credname" + "github.com/1Password/shell-plugins/sdk/schema/fieldname" +) + +func APIKey() schema.CredentialType { + return schema.CredentialType{ + Name: credname.APIKey, + DocsURL: sdk.URL("https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key"), + ManagementURL: sdk.URL("https://platform.openai.com/account/api-keys"), + Fields: []schema.CredentialField{ + { + Name: fieldname.APIKey, + MarkdownDescription: "API Key used to authenticate to OpenAI platform.", + Secret: true, + Composition: &schema.ValueComposition{ + Length: 51, + Prefix: "sk-", + Charset: schema.Charset{ + Uppercase: true, + Lowercase: true, + Digits: true, + }, + }, + }, + }, + DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), + Importer: importer.TryAll( + importer.TryEnvVarPair(defaultEnvVarMapping), + )} +} + +var defaultEnvVarMapping = map[string]sdk.FieldName{ + "OPENAI_API_KEY": fieldname.APIKey, +} diff --git a/plugins/evals/api_key_test.go b/plugins/evals/api_key_test.go new file mode 100644 index 000000000..902413e32 --- /dev/null +++ b/plugins/evals/api_key_test.go @@ -0,0 +1,41 @@ +package evals + +import ( + "testing" + + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/plugintest" + "github.com/1Password/shell-plugins/sdk/schema/fieldname" +) + +func TestAPIKeyProvisioner(t *testing.T) { + plugintest.TestProvisioner(t, APIKey().DefaultProvisioner, map[string]plugintest.ProvisionCase{ + "default": { + ItemFields: map[sdk.FieldName]string{ + fieldname.APIKey: "sk-ZJipjm9euld2QcpLIX3NCDUiLgexQkvdn0WGlKayAEXAMPLE", + }, + ExpectedOutput: sdk.ProvisionOutput{ + Environment: map[string]string{ + "OPENAI_API_KEY": "sk-ZJipjm9euld2QcpLIX3NCDUiLgexQkvdn0WGlKayAEXAMPLE", + }, + }, + }, + }) +} + +func TestAPIKeyImporter(t *testing.T) { + plugintest.TestImporter(t, APIKey().Importer, map[string]plugintest.ImportCase{ + "environment": { + Environment: map[string]string{ + "OPENAI_API_KEY": "sk-ZJipjm9euld2QcpLIX3NCDUiLgexQkvdn0WGlKayAEXAMPLE", + }, + ExpectedCandidates: []sdk.ImportCandidate{ + { + Fields: map[sdk.FieldName]string{ + fieldname.APIKey: "sk-ZJipjm9euld2QcpLIX3NCDUiLgexQkvdn0WGlKayAEXAMPLE", + }, + }, + }, + }, + }) +} diff --git a/plugins/evals/oaieval.go b/plugins/evals/oaieval.go new file mode 100644 index 000000000..b7c3d7d10 --- /dev/null +++ b/plugins/evals/oaieval.go @@ -0,0 +1,25 @@ +package evals + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/needsauth" + "github.com/1Password/shell-plugins/sdk/schema" + "github.com/1Password/shell-plugins/sdk/schema/credname" +) + +func OpenAIEvalsCLI() schema.Executable { + return schema.Executable{ + Name: "OpenAI Evals CLI", + Runs: []string{"oaieval"}, + DocsURL: sdk.URL("https://github.com/openai/evals/blob/main/README.md"), + NeedsAuth: needsauth.IfAll( + needsauth.NotForHelpOrVersion(), + needsauth.NotWithoutArgs(), + ), + Uses: []schema.CredentialUsage{ + { + Name: credname.APIKey, + }, + }, + } +} diff --git a/plugins/evals/plugin.go b/plugins/evals/plugin.go new file mode 100644 index 000000000..38d5411a2 --- /dev/null +++ b/plugins/evals/plugin.go @@ -0,0 +1,22 @@ +package evals + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/schema" +) + +func New() schema.Plugin { + return schema.Plugin{ + Name: "evals", + Platform: schema.PlatformInfo{ + Name: "OpenAI Evals", + Homepage: sdk.URL("https://github.com/openai/evals"), + }, + Credentials: []schema.CredentialType{ + APIKey(), + }, + Executables: []schema.Executable{ + OpenAIEvalsCLI(), + }, + } +} From 4a37a8d56194297632d0dfef00ee9ebdc5432681 Mon Sep 17 00:00:00 2001 From: Arun Date: Mon, 24 Apr 2023 00:27:38 -0700 Subject: [PATCH 13/42] Drop evals shell plugin and just configure oaieval as another executable within openai shell plugin Signed-off-by: Amanda Crawley --- plugins/evals/api_key.go | 41 ------------------- plugins/evals/api_key_test.go | 41 ------------------- plugins/evals/plugin.go | 22 ---------- plugins/{evals/oaieval.go => openai/evals.go} | 2 +- plugins/openai/plugin.go | 1 + 5 files changed, 2 insertions(+), 105 deletions(-) delete mode 100644 plugins/evals/api_key.go delete mode 100644 plugins/evals/api_key_test.go delete mode 100644 plugins/evals/plugin.go rename plugins/{evals/oaieval.go => openai/evals.go} (97%) diff --git a/plugins/evals/api_key.go b/plugins/evals/api_key.go deleted file mode 100644 index 33aa32ead..000000000 --- a/plugins/evals/api_key.go +++ /dev/null @@ -1,41 +0,0 @@ -package evals - -import ( - "github.com/1Password/shell-plugins/sdk" - "github.com/1Password/shell-plugins/sdk/importer" - "github.com/1Password/shell-plugins/sdk/provision" - "github.com/1Password/shell-plugins/sdk/schema" - "github.com/1Password/shell-plugins/sdk/schema/credname" - "github.com/1Password/shell-plugins/sdk/schema/fieldname" -) - -func APIKey() schema.CredentialType { - return schema.CredentialType{ - Name: credname.APIKey, - DocsURL: sdk.URL("https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key"), - ManagementURL: sdk.URL("https://platform.openai.com/account/api-keys"), - Fields: []schema.CredentialField{ - { - Name: fieldname.APIKey, - MarkdownDescription: "API Key used to authenticate to OpenAI platform.", - Secret: true, - Composition: &schema.ValueComposition{ - Length: 51, - Prefix: "sk-", - Charset: schema.Charset{ - Uppercase: true, - Lowercase: true, - Digits: true, - }, - }, - }, - }, - DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), - Importer: importer.TryAll( - importer.TryEnvVarPair(defaultEnvVarMapping), - )} -} - -var defaultEnvVarMapping = map[string]sdk.FieldName{ - "OPENAI_API_KEY": fieldname.APIKey, -} diff --git a/plugins/evals/api_key_test.go b/plugins/evals/api_key_test.go deleted file mode 100644 index 902413e32..000000000 --- a/plugins/evals/api_key_test.go +++ /dev/null @@ -1,41 +0,0 @@ -package evals - -import ( - "testing" - - "github.com/1Password/shell-plugins/sdk" - "github.com/1Password/shell-plugins/sdk/plugintest" - "github.com/1Password/shell-plugins/sdk/schema/fieldname" -) - -func TestAPIKeyProvisioner(t *testing.T) { - plugintest.TestProvisioner(t, APIKey().DefaultProvisioner, map[string]plugintest.ProvisionCase{ - "default": { - ItemFields: map[sdk.FieldName]string{ - fieldname.APIKey: "sk-ZJipjm9euld2QcpLIX3NCDUiLgexQkvdn0WGlKayAEXAMPLE", - }, - ExpectedOutput: sdk.ProvisionOutput{ - Environment: map[string]string{ - "OPENAI_API_KEY": "sk-ZJipjm9euld2QcpLIX3NCDUiLgexQkvdn0WGlKayAEXAMPLE", - }, - }, - }, - }) -} - -func TestAPIKeyImporter(t *testing.T) { - plugintest.TestImporter(t, APIKey().Importer, map[string]plugintest.ImportCase{ - "environment": { - Environment: map[string]string{ - "OPENAI_API_KEY": "sk-ZJipjm9euld2QcpLIX3NCDUiLgexQkvdn0WGlKayAEXAMPLE", - }, - ExpectedCandidates: []sdk.ImportCandidate{ - { - Fields: map[sdk.FieldName]string{ - fieldname.APIKey: "sk-ZJipjm9euld2QcpLIX3NCDUiLgexQkvdn0WGlKayAEXAMPLE", - }, - }, - }, - }, - }) -} diff --git a/plugins/evals/plugin.go b/plugins/evals/plugin.go deleted file mode 100644 index 38d5411a2..000000000 --- a/plugins/evals/plugin.go +++ /dev/null @@ -1,22 +0,0 @@ -package evals - -import ( - "github.com/1Password/shell-plugins/sdk" - "github.com/1Password/shell-plugins/sdk/schema" -) - -func New() schema.Plugin { - return schema.Plugin{ - Name: "evals", - Platform: schema.PlatformInfo{ - Name: "OpenAI Evals", - Homepage: sdk.URL("https://github.com/openai/evals"), - }, - Credentials: []schema.CredentialType{ - APIKey(), - }, - Executables: []schema.Executable{ - OpenAIEvalsCLI(), - }, - } -} diff --git a/plugins/evals/oaieval.go b/plugins/openai/evals.go similarity index 97% rename from plugins/evals/oaieval.go rename to plugins/openai/evals.go index b7c3d7d10..acdd56f07 100644 --- a/plugins/evals/oaieval.go +++ b/plugins/openai/evals.go @@ -1,4 +1,4 @@ -package evals +package openai import ( "github.com/1Password/shell-plugins/sdk" diff --git a/plugins/openai/plugin.go b/plugins/openai/plugin.go index 297e1345f..3439dcafc 100644 --- a/plugins/openai/plugin.go +++ b/plugins/openai/plugin.go @@ -17,6 +17,7 @@ func New() schema.Plugin { }, Executables: []schema.Executable{ OpenAICLI(), + OpenAIEvalsCLI(), }, } } From f80fe00866fb2079d38c31e5c350e57d319f5bca Mon Sep 17 00:00:00 2001 From: Arun Date: Mon, 24 Apr 2023 00:29:36 -0700 Subject: [PATCH 14/42] Fix incorrect oaieval executable file name Signed-off-by: Amanda Crawley --- plugins/openai/{evals.go => oaieval.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/openai/{evals.go => oaieval.go} (100%) diff --git a/plugins/openai/evals.go b/plugins/openai/oaieval.go similarity index 100% rename from plugins/openai/evals.go rename to plugins/openai/oaieval.go From 735067ec5dd846a992e25ec156828dad4fa180d4 Mon Sep 17 00:00:00 2001 From: Arun Date: Mon, 24 Apr 2023 00:32:21 -0700 Subject: [PATCH 15/42] Support oaievalset as another executable within the openai shell plugin Signed-off-by: Amanda Crawley --- plugins/openai/oaievalset.go | 25 +++++++++++++++++++++++++ plugins/openai/plugin.go | 1 + 2 files changed, 26 insertions(+) create mode 100644 plugins/openai/oaievalset.go diff --git a/plugins/openai/oaievalset.go b/plugins/openai/oaievalset.go new file mode 100644 index 000000000..23c3b74aa --- /dev/null +++ b/plugins/openai/oaievalset.go @@ -0,0 +1,25 @@ +package openai + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/needsauth" + "github.com/1Password/shell-plugins/sdk/schema" + "github.com/1Password/shell-plugins/sdk/schema/credname" +) + +func OpenAIEvalSetCLI() schema.Executable { + return schema.Executable{ + Name: "OpenAI Eval Set CLI", + Runs: []string{"oaievalset"}, + DocsURL: sdk.URL("https://github.com/openai/evals/blob/main/README.md"), + NeedsAuth: needsauth.IfAll( + needsauth.NotForHelpOrVersion(), + needsauth.NotWithoutArgs(), + ), + Uses: []schema.CredentialUsage{ + { + Name: credname.APIKey, + }, + }, + } +} diff --git a/plugins/openai/plugin.go b/plugins/openai/plugin.go index 3439dcafc..17caee4e1 100644 --- a/plugins/openai/plugin.go +++ b/plugins/openai/plugin.go @@ -18,6 +18,7 @@ func New() schema.Plugin { Executables: []schema.Executable{ OpenAICLI(), OpenAIEvalsCLI(), + OpenAIEvalSetCLI(), }, } } From 46917db9ab9100f6dc853be792f950ac0951bca1 Mon Sep 17 00:00:00 2001 From: Arun Date: Tue, 25 Apr 2023 00:59:53 -0700 Subject: [PATCH 16/42] Update documentation URL for both oaieval and oaievalset Signed-off-by: Amanda Crawley --- plugins/openai/oaieval.go | 2 +- plugins/openai/oaievalset.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/openai/oaieval.go b/plugins/openai/oaieval.go index acdd56f07..bfb6acf3f 100644 --- a/plugins/openai/oaieval.go +++ b/plugins/openai/oaieval.go @@ -11,7 +11,7 @@ func OpenAIEvalsCLI() schema.Executable { return schema.Executable{ Name: "OpenAI Evals CLI", Runs: []string{"oaieval"}, - DocsURL: sdk.URL("https://github.com/openai/evals/blob/main/README.md"), + DocsURL: sdk.URL("https://github.com/openai/evals/blob/main/docs/run-evals.md"), NeedsAuth: needsauth.IfAll( needsauth.NotForHelpOrVersion(), needsauth.NotWithoutArgs(), diff --git a/plugins/openai/oaievalset.go b/plugins/openai/oaievalset.go index 23c3b74aa..32e22f3db 100644 --- a/plugins/openai/oaievalset.go +++ b/plugins/openai/oaievalset.go @@ -11,7 +11,7 @@ func OpenAIEvalSetCLI() schema.Executable { return schema.Executable{ Name: "OpenAI Eval Set CLI", Runs: []string{"oaievalset"}, - DocsURL: sdk.URL("https://github.com/openai/evals/blob/main/README.md"), + DocsURL: sdk.URL("https://github.com/openai/evals/blob/main/docs/run-evals.md"), NeedsAuth: needsauth.IfAll( needsauth.NotForHelpOrVersion(), needsauth.NotWithoutArgs(), From 6f7bd03906a9568fefdc2364c97be189d1774f0c Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Thu, 29 Jun 2023 17:50:33 +0530 Subject: [PATCH 17/42] Updated provision Signed-off-by: Amanda Crawley --- plugins/cratedb/provisioner.go | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index 85ae7ec02..8f45c0e97 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -7,11 +7,6 @@ import ( "github.com/1Password/shell-plugins/sdk/schema/fieldname" ) -var argsToProvision = []string{ - "--username", fieldname.Username, - "--hosts", fieldname.Host, -} - type crateArgsProvisioner struct { } @@ -24,17 +19,20 @@ func (p crateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInp out.AddEnvVar("CRATEPW", value) } - for i, arg := range argsToProvision { - if i%2 == 0 { - argName := arg - fieldName := sdk.FieldName(argsToProvision[i+1]) - if fieldValue, ok := in.ItemFields[fieldName]; ok { - out.AddArgs(argName, fieldValue) - } - } + var user, host string + if fieldValue, ok := in.ItemFields[fieldname.Username]; ok { + user=fieldValue + } + if fieldValue, ok := in.ItemFields[fieldname.Host]; ok { + host=fieldValue + } + commandLine := []string{out.CommandLine[0], "--username", user, "--hosts", host, } + commandLine = append(commandLine, out.CommandLine[1:]...) + out.CommandLine = commandLine } + func (p crateArgsProvisioner) Deprovision(ctx context.Context, in sdk.DeprovisionInput, out *sdk.DeprovisionOutput) { // Nothing to do here: credentials get wiped automatically when the process exits. } From 6e814d37590a4c17d8d8dcbb8bc7b2df98147ba4 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Thu, 29 Jun 2023 18:13:20 +0530 Subject: [PATCH 18/42] Improved Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 2 +- plugins/cratedb/database_credentials.go | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go index c7edf6126..0343e43f2 100644 --- a/plugins/cratedb/crash.go +++ b/plugins/cratedb/crash.go @@ -19,7 +19,7 @@ func CrateDBCLI() schema.Executable { Uses: []schema.CredentialUsage{ { Name: credname.DatabaseCredentials, - Provisioner: crateArgsProvisioner, + Provisioner: crateProvisioner(), }, }, } diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go index fa62030c9..9750da9ca 100644 --- a/plugins/cratedb/database_credentials.go +++ b/plugins/cratedb/database_credentials.go @@ -1,7 +1,6 @@ package cratedb import ( - "context" "github.com/1Password/shell-plugins/sdk" "github.com/1Password/shell-plugins/sdk/importer" From a4e8c0a132e4b3a060e6baa6da58566d68af2eec Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Sat, 1 Jul 2023 01:30:04 +0530 Subject: [PATCH 19/42] formatted code Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 8 ++++---- plugins/cratedb/database_credentials.go | 8 +++----- plugins/cratedb/plugin.go | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go index 0343e43f2..5597486b8 100644 --- a/plugins/cratedb/crash.go +++ b/plugins/cratedb/crash.go @@ -9,16 +9,16 @@ import ( func CrateDBCLI() schema.Executable { return schema.Executable{ - Name: "CrateDB Shell", - Runs: []string{"crash"}, - DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), + Name: "CrateDB Shell", + Runs: []string{"crash"}, + DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), NeedsAuth: needsauth.IfAll( needsauth.NotForHelpOrVersion(), needsauth.NotWithoutArgs(), ), Uses: []schema.CredentialUsage{ { - Name: credname.DatabaseCredentials, + Name: credname.DatabaseCredentials, Provisioner: crateProvisioner(), }, }, diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go index 9750da9ca..c5248c452 100644 --- a/plugins/cratedb/database_credentials.go +++ b/plugins/cratedb/database_credentials.go @@ -1,7 +1,6 @@ package cratedb import ( - "github.com/1Password/shell-plugins/sdk" "github.com/1Password/shell-plugins/sdk/importer" "github.com/1Password/shell-plugins/sdk/provision" @@ -33,11 +32,10 @@ func DatabaseCredentials() schema.CredentialType { }, }, DefaultProvisioner: provision.NoOp(), - Importer: importer.TryEnvVarPair(defaultEnvVarMapping), - } + Importer: importer.TryEnvVarPair(defaultEnvVarMapping), + } } var defaultEnvVarMapping = map[string]sdk.FieldName{ - "CRATEPW": fieldname.Password, + "CRATEPW": fieldname.Password, } - diff --git a/plugins/cratedb/plugin.go b/plugins/cratedb/plugin.go index 33587b0f7..c390cd222 100644 --- a/plugins/cratedb/plugin.go +++ b/plugins/cratedb/plugin.go @@ -10,7 +10,7 @@ func New() schema.Plugin { Name: "cratedb", Platform: schema.PlatformInfo{ Name: "CrateDB", - Homepage: sdk.URL("https://crate.io/"), + Homepage: sdk.URL("https://crate.io/"), }, Credentials: []schema.CredentialType{ DatabaseCredentials(), From e3c3cf24c9110fbb58ad29f2d4bf6242f3bfba3b Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Sat, 1 Jul 2023 12:54:28 +0530 Subject: [PATCH 20/42] Test passed && validated Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 2 +- plugins/cratedb/database_credentials.go | 4 +- plugins/cratedb/database_credentials_test.go | 40 ++------------------ plugins/cratedb/provisioner.go | 17 ++++----- 4 files changed, 15 insertions(+), 48 deletions(-) diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go index 5597486b8..a7cb51096 100644 --- a/plugins/cratedb/crash.go +++ b/plugins/cratedb/crash.go @@ -19,7 +19,7 @@ func CrateDBCLI() schema.Executable { Uses: []schema.CredentialUsage{ { Name: credname.DatabaseCredentials, - Provisioner: crateProvisioner(), + Provisioner: CrateArgsProvisioner{} , }, }, } diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go index c5248c452..2c08013e7 100644 --- a/plugins/cratedb/database_credentials.go +++ b/plugins/cratedb/database_credentials.go @@ -18,12 +18,12 @@ func DatabaseCredentials() schema.CredentialType { { Name: fieldname.Host, MarkdownDescription: "CrateDB host to connect to.", - Optional: true, + Optional: false, }, { Name: fieldname.Username, MarkdownDescription: "CrateDB user to authenticate as.", - Optional: true, + Optional: false, }, { Name: fieldname.Password, diff --git a/plugins/cratedb/database_credentials_test.go b/plugins/cratedb/database_credentials_test.go index d33b25e80..90c7b5841 100644 --- a/plugins/cratedb/database_credentials_test.go +++ b/plugins/cratedb/database_credentials_test.go @@ -9,11 +9,10 @@ import ( ) func TestDatabaseCredentialsProvisioner(t *testing.T) { - plugintest.TestProvisioner(t, DatabaseCredentials().DefaultProvisioner, map[string]plugintest.ProvisionCase{ + plugintest.TestProvisioner(t, CrateArgsProvisioner{}, map[string]plugintest.ProvisionCase{ "default": { ItemFields: map[sdk.FieldName]string{ fieldname.Password: "1<34&f0rg3t@me", - fieldname.Username: "admin", fieldname.Host: "https://love.aks1.eastus2.azure.cratedb.net:4200", }, ExpectedOutput: sdk.ProvisionOutput{ @@ -22,42 +21,11 @@ func TestDatabaseCredentialsProvisioner(t *testing.T) { }, CommandLine: []string{ "--username", - "admin", - "--host", - "https://love.aks1.eastus2.azure.cratedb.net:4200" - } - }, - }, - }) -} - -func TestDatabaseCredentialsImporter(t *testing.T) { - plugintest.TestImporter(t, DatabaseCredentials().Importer, map[string]plugintest.ImportCase{ - "environment": { - Environment: map[string]string{ // TODO: Check if this is correct - "CRATEPW": "eog-l4ogPoIO4kX8ICHC*6kP", - }, - ExpectedCandidates: []sdk.ImportCandidate{ - { - Fields: map[sdk.FieldName]string{ - fieldname.Password: "eog-l4ogPoIO4kX8ICHC*6kP", - }, + "", + "--hosts", + "https://love.aks1.eastus2.azure.cratedb.net:4200", }, }, }, - // TODO: If you implemented a config file importer, add a test file example in cratedb/test-fixtures - // and fill the necessary details in the test template below. - "config file": { - Files: map[string]string{ - // "~/path/to/config.yml": plugintest.LoadFixture(t, "config.yml"), - }, - ExpectedCandidates: []sdk.ImportCandidate{ - // { - // Fields: map[sdk.FieldName]string{ - // fieldname.Token: "yqch", - // }, - // }, - }, - }, }) } diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index 8f45c0e97..749067f6d 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -7,14 +7,14 @@ import ( "github.com/1Password/shell-plugins/sdk/schema/fieldname" ) -type crateArgsProvisioner struct { +type CrateArgsProvisioner struct { } func crateProvisioner() sdk.Provisioner { - return crateArgsProvisioner{} + return CrateArgsProvisioner{} } -func (p crateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInput, out *sdk.ProvisionOutput) { +func (p CrateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInput, out *sdk.ProvisionOutput) { if value, ok := in.ItemFields[fieldname.Password]; ok { out.AddEnvVar("CRATEPW", value) } @@ -26,17 +26,16 @@ func (p crateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInp if fieldValue, ok := in.ItemFields[fieldname.Host]; ok { host=fieldValue } - commandLine := []string{out.CommandLine[0], "--username", user, "--hosts", host, } - commandLine = append(commandLine, out.CommandLine[1:]...) - out.CommandLine = commandLine + + out.CommandLine = []string{"--username", user, "--hosts", host, } + } - -func (p crateArgsProvisioner) Deprovision(ctx context.Context, in sdk.DeprovisionInput, out *sdk.DeprovisionOutput) { +func (p CrateArgsProvisioner) Deprovision(ctx context.Context, in sdk.DeprovisionInput, out *sdk.DeprovisionOutput) { // Nothing to do here: credentials get wiped automatically when the process exits. } -func (p crateArgsProvisioner) Description() string { +func (p CrateArgsProvisioner) Description() string { return "Provision CrateDB username, host as command-line arguments && Password as Env ." } From 100cbb106900a5776aae12205a0c50ae0e15c049 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Wed, 5 Jul 2023 09:57:30 +0530 Subject: [PATCH 21/42] Removed unused function Signed-off-by: Amanda Crawley --- plugins/cratedb/provisioner.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index 749067f6d..46552b9da 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -10,9 +10,7 @@ import ( type CrateArgsProvisioner struct { } -func crateProvisioner() sdk.Provisioner { - return CrateArgsProvisioner{} -} + func (p CrateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInput, out *sdk.ProvisionOutput) { if value, ok := in.ItemFields[fieldname.Password]; ok { From 98e32f0d751d132cd82745f7e5a865538d860c8d Mon Sep 17 00:00:00 2001 From: Floris van der Grinten Date: Thu, 22 Jun 2023 16:17:03 +0200 Subject: [PATCH 22/42] Allow commit signing PR comment on fork PRs Signed-off-by: Amanda Crawley --- .github/workflows/pr-check-signed-commits.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-check-signed-commits.yml b/.github/workflows/pr-check-signed-commits.yml index 2e259748b..94164af1a 100644 --- a/.github/workflows/pr-check-signed-commits.yml +++ b/.github/workflows/pr-check-signed-commits.yml @@ -1,9 +1,12 @@ name: Check signed commits in PR -on: pull_request +on: pull_request_target jobs: build: name: Check signed commits in PR + permissions: + contents: read + pull-requests: write runs-on: ubuntu-latest steps: - name: Check out code From d39a0fc3075b787a33c8fa957efa9e0a5ae1a192 Mon Sep 17 00:00:00 2001 From: siddhikhapare Date: Thu, 29 Jun 2023 15:48:55 +0530 Subject: [PATCH 23/42] changes added in files Signed-off-by: Amanda Crawley --- plugins/upstash/api_key.go | 81 +++++++++++++++++++++ plugins/upstash/api_key_test.go | 59 +++++++++++++++ plugins/upstash/plugin.go | 22 ++++++ plugins/upstash/test-fixtures/.upstash.json | 4 + plugins/upstash/upstash.go | 27 +++++++ 5 files changed, 193 insertions(+) create mode 100644 plugins/upstash/api_key.go create mode 100644 plugins/upstash/api_key_test.go create mode 100644 plugins/upstash/plugin.go create mode 100755 plugins/upstash/test-fixtures/.upstash.json create mode 100644 plugins/upstash/upstash.go diff --git a/plugins/upstash/api_key.go b/plugins/upstash/api_key.go new file mode 100644 index 000000000..e502aba31 --- /dev/null +++ b/plugins/upstash/api_key.go @@ -0,0 +1,81 @@ +package upstash + +import ( + "context" + + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/importer" + "github.com/1Password/shell-plugins/sdk/provision" + "github.com/1Password/shell-plugins/sdk/schema" + "github.com/1Password/shell-plugins/sdk/schema/credname" + "github.com/1Password/shell-plugins/sdk/schema/fieldname" +) + +func APIKey() schema.CredentialType { + return schema.CredentialType{ + Name: credname.APIKey, + DocsURL: sdk.URL("https://docs.upstash.com/redis/account/developerapi#create-an-api-key"), // TODO: Replace with actual URL + ManagementURL: sdk.URL("https://console.upstash.com/account/api"), + Fields: []schema.CredentialField{ + { + Name: fieldname.APIKey, + MarkdownDescription: "API Key used to authenticate to Upstash.", + Secret: true, + Composition: &schema.ValueComposition{ + Length: 36, + Charset: schema.Charset{ + Lowercase: true, + Digits: true, + }, + }, + }, + { + Name: fieldname.Email, + MarkdownDescription: "Email used to authenticate to Upstash.", + Composition: &schema.ValueComposition{ + Charset: schema.Charset{ + Uppercase: true, + Lowercase: true, + Digits: true, + Symbols: true, + }, + }, + }, + }, + DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), + Importer: importer.TryAll( + importer.TryEnvVarPair(defaultEnvVarMapping), + TryUpstashConfigFile(), + )} +} + +var defaultEnvVarMapping = map[string]sdk.FieldName{ + "UPSTASH_API_KEY": fieldname.APIKey, + "UPSTASH_EMAIL" : fieldname.Email, +} + +func TryUpstashConfigFile() sdk.Importer { + return importer.TryFile("~/.upstash.json", func(ctx context.Context, contents importer.FileContents, in sdk.ImportInput, out *sdk.ImportAttempt) { + var config Config + if err := contents.ToYAML(&config); err != nil { + out.AddError(err) + return + } + + if config.APIKey == "" && config.Email == "" { + return + } + + out.AddCandidate(sdk.ImportCandidate{ + Fields: map[sdk.FieldName]string{ + fieldname.APIKey: config.APIKey, + fieldname.Email : config.Email, + }, + }) + }) +} + +type Config struct { + APIKey string `json:"apiKey"` + Email string `json:"email"` +} diff --git a/plugins/upstash/api_key_test.go b/plugins/upstash/api_key_test.go new file mode 100644 index 000000000..c011834ba --- /dev/null +++ b/plugins/upstash/api_key_test.go @@ -0,0 +1,59 @@ +package upstash + +import ( + "testing" + + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/plugintest" + "github.com/1Password/shell-plugins/sdk/schema/fieldname" +) + +func TestAPIKeyProvisioner(t *testing.T) { + plugintest.TestProvisioner(t, APIKey().DefaultProvisioner, map[string]plugintest.ProvisionCase{ + "default": { + ItemFields: map[sdk.FieldName]string{ + fieldname.APIKey: "d68850db-69f7-qxe9pubcmjnqfgyexample", + fieldname.Email : "fakememail12@gmail.com", + }, + ExpectedOutput: sdk.ProvisionOutput{ + Environment: map[string]string{ + "UPSTASH_API_KEY": "d68850db-69f7-qxe9pubcmjnqfgyexample", + "UPSTASH_EMAIL" : "fakememail12@gmail.com", + }, + }, + }, + }) +} + +func TestAPIKeyImporter(t *testing.T) { + plugintest.TestImporter(t, APIKey().Importer, map[string]plugintest.ImportCase{ + "environment": { + Environment: map[string]string{ + "UPSTASH_API_KEY": "d68850db-69f7-qxe9pubcmjnqfgyexample", + "UPSTASH_EMAIL" : "fakememail12@gmail.com", + }, + ExpectedCandidates: []sdk.ImportCandidate{ + { + Fields: map[sdk.FieldName]string{ + fieldname.APIKey: "d68850db-69f7-qxe9pubcmjnqfgyexample", + fieldname.Email : "fakememail12@gmail.com", + }, + }, + }, + }, + + "config file": { + Files: map[string]string{ + "~/.upstash.json": plugintest.LoadFixture(t, ".upstash.json"), + }, + ExpectedCandidates: []sdk.ImportCandidate{ + { + Fields: map[sdk.FieldName]string{ + fieldname.APIKey: "d68850db-69f7-qxe9pubcmjnqfgyexample", + fieldname.Email : "fakememail12@gmail.com", + }, + }, + }, + }, + }) +} diff --git a/plugins/upstash/plugin.go b/plugins/upstash/plugin.go new file mode 100644 index 000000000..61dcbca6d --- /dev/null +++ b/plugins/upstash/plugin.go @@ -0,0 +1,22 @@ +package upstash + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/schema" +) + +func New() schema.Plugin { + return schema.Plugin{ + Name: "upstash", + Platform: schema.PlatformInfo{ + Name: "Upstash", + Homepage: sdk.URL("https://upstash.com"), + }, + Credentials: []schema.CredentialType{ + APIKey(), + }, + Executables: []schema.Executable{ + UpstashCLI(), + }, + } +} diff --git a/plugins/upstash/test-fixtures/.upstash.json b/plugins/upstash/test-fixtures/.upstash.json new file mode 100755 index 000000000..77f770494 --- /dev/null +++ b/plugins/upstash/test-fixtures/.upstash.json @@ -0,0 +1,4 @@ +{ + "apiKey":"d68850db-69f7-qxe9pubcmjnqfgyexample", + "email" : "fakememail12@gmail.com" +} \ No newline at end of file diff --git a/plugins/upstash/upstash.go b/plugins/upstash/upstash.go new file mode 100644 index 000000000..08e6dbecd --- /dev/null +++ b/plugins/upstash/upstash.go @@ -0,0 +1,27 @@ +package upstash + +import ( + "github.com/1Password/shell-plugins/sdk" + "github.com/1Password/shell-plugins/sdk/needsauth" + "github.com/1Password/shell-plugins/sdk/schema" + "github.com/1Password/shell-plugins/sdk/schema/credname" +) + +func UpstashCLI() schema.Executable { + return schema.Executable{ + Name: "Upstash CLI", + Runs: []string{"upstash"}, + DocsURL: sdk.URL("https://github.com/upstash/cli"), + NeedsAuth: needsauth.IfAll( + needsauth.NotForHelpOrVersion(), + needsauth.NotWithoutArgs(), + needsauth.NotForExactArgs("config"), + needsauth.NotWhenContainsArgs("auth"), + ), + Uses: []schema.CredentialUsage{ + { + Name: credname.APIKey, + }, + }, + } +} From 006fbfff2c30d4fad18e0576021767d15d4b930f Mon Sep 17 00:00:00 2001 From: siddhikhapare Date: Thu, 29 Jun 2023 16:25:36 +0530 Subject: [PATCH 24/42] apikey file changed Signed-off-by: Amanda Crawley --- plugins/upstash/api_key.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/upstash/api_key.go b/plugins/upstash/api_key.go index e502aba31..7d8f58e03 100644 --- a/plugins/upstash/api_key.go +++ b/plugins/upstash/api_key.go @@ -14,7 +14,7 @@ import ( func APIKey() schema.CredentialType { return schema.CredentialType{ Name: credname.APIKey, - DocsURL: sdk.URL("https://docs.upstash.com/redis/account/developerapi#create-an-api-key"), // TODO: Replace with actual URL + DocsURL: sdk.URL("https://docs.upstash.com/redis/account/developerapi#create-an-api-key"), ManagementURL: sdk.URL("https://console.upstash.com/account/api"), Fields: []schema.CredentialField{ { @@ -57,7 +57,7 @@ var defaultEnvVarMapping = map[string]sdk.FieldName{ func TryUpstashConfigFile() sdk.Importer { return importer.TryFile("~/.upstash.json", func(ctx context.Context, contents importer.FileContents, in sdk.ImportInput, out *sdk.ImportAttempt) { var config Config - if err := contents.ToYAML(&config); err != nil { + if err := contents.ToJSON(&config); err != nil { out.AddError(err) return } From bdd76f1a82cd4912352aae95c8440225b5d2d070 Mon Sep 17 00:00:00 2001 From: siddhikhapare Date: Thu, 29 Jun 2023 20:42:14 +0530 Subject: [PATCH 25/42] files modified Signed-off-by: Amanda Crawley --- plugins/upstash/api_key.go | 16 ++++++++-------- plugins/upstash/api_key_test.go | 20 ++++++++++---------- plugins/upstash/plugin.go | 2 +- plugins/upstash/upstash.go | 6 +++--- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/plugins/upstash/api_key.go b/plugins/upstash/api_key.go index 7d8f58e03..0b0964745 100644 --- a/plugins/upstash/api_key.go +++ b/plugins/upstash/api_key.go @@ -14,8 +14,8 @@ import ( func APIKey() schema.CredentialType { return schema.CredentialType{ Name: credname.APIKey, - DocsURL: sdk.URL("https://docs.upstash.com/redis/account/developerapi#create-an-api-key"), - ManagementURL: sdk.URL("https://console.upstash.com/account/api"), + DocsURL: sdk.URL("https://docs.upstash.com/redis/account/developerapi#create-an-api-key"), + ManagementURL: sdk.URL("https://console.upstash.com/account/api"), Fields: []schema.CredentialField{ { Name: fieldname.APIKey, @@ -42,7 +42,7 @@ func APIKey() schema.CredentialType { }, }, }, - DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), + DefaultProvisioner: provision.EnvVars(defaultEnvVarMapping), Importer: importer.TryAll( importer.TryEnvVarPair(defaultEnvVarMapping), TryUpstashConfigFile(), @@ -50,8 +50,8 @@ func APIKey() schema.CredentialType { } var defaultEnvVarMapping = map[string]sdk.FieldName{ - "UPSTASH_API_KEY": fieldname.APIKey, - "UPSTASH_EMAIL" : fieldname.Email, + "UPSTASH_API_KEY": fieldname.APIKey, + "UPSTASH_EMAIL": fieldname.Email, } func TryUpstashConfigFile() sdk.Importer { @@ -69,13 +69,13 @@ func TryUpstashConfigFile() sdk.Importer { out.AddCandidate(sdk.ImportCandidate{ Fields: map[sdk.FieldName]string{ fieldname.APIKey: config.APIKey, - fieldname.Email : config.Email, + fieldname.Email: config.Email, }, }) }) } type Config struct { - APIKey string `json:"apiKey"` - Email string `json:"email"` + APIKey string `json:"apiKey"` + Email string `json:"email"` } diff --git a/plugins/upstash/api_key_test.go b/plugins/upstash/api_key_test.go index c011834ba..613881415 100644 --- a/plugins/upstash/api_key_test.go +++ b/plugins/upstash/api_key_test.go @@ -2,23 +2,23 @@ package upstash import ( "testing" - + "github.com/1Password/shell-plugins/sdk" "github.com/1Password/shell-plugins/sdk/plugintest" "github.com/1Password/shell-plugins/sdk/schema/fieldname" ) - + func TestAPIKeyProvisioner(t *testing.T) { plugintest.TestProvisioner(t, APIKey().DefaultProvisioner, map[string]plugintest.ProvisionCase{ "default": { - ItemFields: map[sdk.FieldName]string{ + ItemFields: map[sdk.FieldName]string{ fieldname.APIKey: "d68850db-69f7-qxe9pubcmjnqfgyexample", - fieldname.Email : "fakememail12@gmail.com", + fieldname.Email: "fakememail12@gmail.com", }, ExpectedOutput: sdk.ProvisionOutput{ Environment: map[string]string{ "UPSTASH_API_KEY": "d68850db-69f7-qxe9pubcmjnqfgyexample", - "UPSTASH_EMAIL" : "fakememail12@gmail.com", + "UPSTASH_EMAIL": "fakememail12@gmail.com", }, }, }, @@ -28,20 +28,20 @@ func TestAPIKeyProvisioner(t *testing.T) { func TestAPIKeyImporter(t *testing.T) { plugintest.TestImporter(t, APIKey().Importer, map[string]plugintest.ImportCase{ "environment": { - Environment: map[string]string{ + Environment: map[string]string{ "UPSTASH_API_KEY": "d68850db-69f7-qxe9pubcmjnqfgyexample", - "UPSTASH_EMAIL" : "fakememail12@gmail.com", + "UPSTASH_EMAIL": "fakememail12@gmail.com", }, ExpectedCandidates: []sdk.ImportCandidate{ { Fields: map[sdk.FieldName]string{ fieldname.APIKey: "d68850db-69f7-qxe9pubcmjnqfgyexample", - fieldname.Email : "fakememail12@gmail.com", + fieldname.Email: "fakememail12@gmail.com", }, }, }, }, - + "config file": { Files: map[string]string{ "~/.upstash.json": plugintest.LoadFixture(t, ".upstash.json"), @@ -50,7 +50,7 @@ func TestAPIKeyImporter(t *testing.T) { { Fields: map[sdk.FieldName]string{ fieldname.APIKey: "d68850db-69f7-qxe9pubcmjnqfgyexample", - fieldname.Email : "fakememail12@gmail.com", + fieldname.Email: "fakememail12@gmail.com", }, }, }, diff --git a/plugins/upstash/plugin.go b/plugins/upstash/plugin.go index 61dcbca6d..06ba9d390 100644 --- a/plugins/upstash/plugin.go +++ b/plugins/upstash/plugin.go @@ -10,7 +10,7 @@ func New() schema.Plugin { Name: "upstash", Platform: schema.PlatformInfo{ Name: "Upstash", - Homepage: sdk.URL("https://upstash.com"), + Homepage: sdk.URL("https://upstash.com"), }, Credentials: []schema.CredentialType{ APIKey(), diff --git a/plugins/upstash/upstash.go b/plugins/upstash/upstash.go index 08e6dbecd..4ce262baa 100644 --- a/plugins/upstash/upstash.go +++ b/plugins/upstash/upstash.go @@ -9,9 +9,9 @@ import ( func UpstashCLI() schema.Executable { return schema.Executable{ - Name: "Upstash CLI", - Runs: []string{"upstash"}, - DocsURL: sdk.URL("https://github.com/upstash/cli"), + Name: "Upstash CLI", + Runs: []string{"upstash"}, + DocsURL: sdk.URL("https://github.com/upstash/cli"), NeedsAuth: needsauth.IfAll( needsauth.NotForHelpOrVersion(), needsauth.NotWithoutArgs(), From 0499529cf5eb168cab137b8157e0dee4a7615d5c Mon Sep 17 00:00:00 2001 From: siddhikhapare Date: Thu, 29 Jun 2023 23:17:26 +0530 Subject: [PATCH 26/42] suggested changes added Signed-off-by: Amanda Crawley --- plugins/upstash/api_key.go | 1 + plugins/upstash/api_key_test.go | 10 +++++----- plugins/upstash/test-fixtures/.upstash.json | 2 +- plugins/upstash/upstash.go | 3 ++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/plugins/upstash/api_key.go b/plugins/upstash/api_key.go index 0b0964745..29387c296 100644 --- a/plugins/upstash/api_key.go +++ b/plugins/upstash/api_key.go @@ -26,6 +26,7 @@ func APIKey() schema.CredentialType { Charset: schema.Charset{ Lowercase: true, Digits: true, + Symbols: true, }, }, }, diff --git a/plugins/upstash/api_key_test.go b/plugins/upstash/api_key_test.go index 613881415..6d26d7c84 100644 --- a/plugins/upstash/api_key_test.go +++ b/plugins/upstash/api_key_test.go @@ -13,12 +13,12 @@ func TestAPIKeyProvisioner(t *testing.T) { "default": { ItemFields: map[sdk.FieldName]string{ fieldname.APIKey: "d68850db-69f7-qxe9pubcmjnqfgyexample", - fieldname.Email: "fakememail12@gmail.com", + fieldname.Email: "wendy@appleseed.com", }, ExpectedOutput: sdk.ProvisionOutput{ Environment: map[string]string{ "UPSTASH_API_KEY": "d68850db-69f7-qxe9pubcmjnqfgyexample", - "UPSTASH_EMAIL": "fakememail12@gmail.com", + "UPSTASH_EMAIL": "wendy@appleseed.com", }, }, }, @@ -30,13 +30,13 @@ func TestAPIKeyImporter(t *testing.T) { "environment": { Environment: map[string]string{ "UPSTASH_API_KEY": "d68850db-69f7-qxe9pubcmjnqfgyexample", - "UPSTASH_EMAIL": "fakememail12@gmail.com", + "UPSTASH_EMAIL": "wendy@appleseed.com", }, ExpectedCandidates: []sdk.ImportCandidate{ { Fields: map[sdk.FieldName]string{ fieldname.APIKey: "d68850db-69f7-qxe9pubcmjnqfgyexample", - fieldname.Email: "fakememail12@gmail.com", + fieldname.Email: "wendy@appleseed.com", }, }, }, @@ -50,7 +50,7 @@ func TestAPIKeyImporter(t *testing.T) { { Fields: map[sdk.FieldName]string{ fieldname.APIKey: "d68850db-69f7-qxe9pubcmjnqfgyexample", - fieldname.Email: "fakememail12@gmail.com", + fieldname.Email: "wendy@appleseed.com", }, }, }, diff --git a/plugins/upstash/test-fixtures/.upstash.json b/plugins/upstash/test-fixtures/.upstash.json index 77f770494..2a9830fd5 100755 --- a/plugins/upstash/test-fixtures/.upstash.json +++ b/plugins/upstash/test-fixtures/.upstash.json @@ -1,4 +1,4 @@ { "apiKey":"d68850db-69f7-qxe9pubcmjnqfgyexample", - "email" : "fakememail12@gmail.com" + "email" : "wendy@appleseed.com" } \ No newline at end of file diff --git a/plugins/upstash/upstash.go b/plugins/upstash/upstash.go index 4ce262baa..89e88f3cb 100644 --- a/plugins/upstash/upstash.go +++ b/plugins/upstash/upstash.go @@ -15,7 +15,8 @@ func UpstashCLI() schema.Executable { NeedsAuth: needsauth.IfAll( needsauth.NotForHelpOrVersion(), needsauth.NotWithoutArgs(), - needsauth.NotForExactArgs("config"), + needsauth.NotWhenContainsArgs("--config"), + needsauth.NotWhenContainsArgs("-c"), needsauth.NotWhenContainsArgs("auth"), ), Uses: []schema.CredentialUsage{ From 2494283c6808f24af7d9ac1d0ce6328d35558ff7 Mon Sep 17 00:00:00 2001 From: siddhikhapare Date: Fri, 30 Jun 2023 10:30:03 +0530 Subject: [PATCH 27/42] file formatted Signed-off-by: Amanda Crawley --- plugins/upstash/api_key_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/upstash/api_key_test.go b/plugins/upstash/api_key_test.go index 6d26d7c84..8d6e4ab09 100644 --- a/plugins/upstash/api_key_test.go +++ b/plugins/upstash/api_key_test.go @@ -18,7 +18,7 @@ func TestAPIKeyProvisioner(t *testing.T) { ExpectedOutput: sdk.ProvisionOutput{ Environment: map[string]string{ "UPSTASH_API_KEY": "d68850db-69f7-qxe9pubcmjnqfgyexample", - "UPSTASH_EMAIL": "wendy@appleseed.com", + "UPSTASH_EMAIL": "wendy@appleseed.com", }, }, }, From f7f0c8f3d5f9c6fa8fa94607389389586ed5bd94 Mon Sep 17 00:00:00 2001 From: Joris Coenen Date: Tue, 4 Jul 2023 17:18:30 +0200 Subject: [PATCH 28/42] Add missing newline to test fixture Signed-off-by: Amanda Crawley --- plugins/upstash/test-fixtures/.upstash.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/upstash/test-fixtures/.upstash.json b/plugins/upstash/test-fixtures/.upstash.json index 2a9830fd5..14467b5e5 100755 --- a/plugins/upstash/test-fixtures/.upstash.json +++ b/plugins/upstash/test-fixtures/.upstash.json @@ -1,4 +1,4 @@ { "apiKey":"d68850db-69f7-qxe9pubcmjnqfgyexample", "email" : "wendy@appleseed.com" -} \ No newline at end of file +} From 542c6acd3936ce642e4b4c47f4d786a7bc9678b1 Mon Sep 17 00:00:00 2001 From: Horia Culea <45151601+hculea@users.noreply.github.com> Date: Tue, 4 Jul 2023 11:07:08 +0200 Subject: [PATCH 29/42] Revert "Add tickbox for Hashnode submissions in PR review" Signed-off-by: Amanda Crawley --- .github/pull_request_template.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index e31853f38..5e993b5af 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -57,7 +57,5 @@ The AWS plugin now checks for the `AWS_SHARED_CREDENTIALS_FILE` environment vari For more examples, have a look over 1Password CLI's past release notes: https://app-updates.agilebits.com/product_history/CLI2 --> -## Additional information -- [ ] Check this box if this is a [Hashnode Hackathon](https://hashnode.com/hackathons/1password) submission From 082fb73549e76b929633d9d11ffaa9d8ceafa9f0 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Mon, 10 Jul 2023 21:00:20 +0530 Subject: [PATCH 30/42] .. Signed-off-by: Amanda Crawley --- plugins/cratedb/provisioner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index 46552b9da..814d506c2 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -25,7 +25,7 @@ func (p CrateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInp host=fieldValue } - out.CommandLine = []string{"--username", user, "--hosts", host, } + out.CommandLine = []string{ "--hosts", host, "--username", user,} } From ee4bf3873ae282406cbf9a0faa3e5cf4fa784d51 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Tue, 11 Jul 2023 22:39:02 +0530 Subject: [PATCH 31/42] provision improved Signed-off-by: Amanda Crawley --- plugins/cratedb/provisioner.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index 814d506c2..e6de76d59 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -24,8 +24,9 @@ func (p CrateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInp if fieldValue, ok := in.ItemFields[fieldname.Host]; ok { host=fieldValue } + // commandLine := []string - out.CommandLine = []string{ "--hosts", host, "--username", user,} + out.CommandLine = append{out.CommandLine , "--hosts", host, "--username", user,} } From b9698852a314fcd5e7d8627a5c414c561ff4bb38 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Tue, 11 Jul 2023 23:29:46 +0530 Subject: [PATCH 32/42] Updated `_` Signed-off-by: Amanda Crawley --- plugins/cratedb/database_credentials_test.go | 10 +++++++--- plugins/cratedb/provisioner.go | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugins/cratedb/database_credentials_test.go b/plugins/cratedb/database_credentials_test.go index 90c7b5841..f6b9608c8 100644 --- a/plugins/cratedb/database_credentials_test.go +++ b/plugins/cratedb/database_credentials_test.go @@ -12,18 +12,22 @@ func TestDatabaseCredentialsProvisioner(t *testing.T) { plugintest.TestProvisioner(t, CrateArgsProvisioner{}, map[string]plugintest.ProvisionCase{ "default": { ItemFields: map[sdk.FieldName]string{ - fieldname.Password: "1<34&f0rg3t@me", + fieldname.Host: "https://love.aks1.eastus2.azure.cratedb.net:4200", + fieldname.Username: "admin", + fieldname.Password: "1<34&f0rg3t@me", }, + CommandLine: []string{"crash"}, ExpectedOutput: sdk.ProvisionOutput{ Environment: map[string]string{ "CRATEPW": "1<34&f0rg3t@me", }, CommandLine: []string{ - "--username", - "", + "crash", "--hosts", "https://love.aks1.eastus2.azure.cratedb.net:4200", + "--username", + "admin", }, }, }, diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index e6de76d59..3d46cce2a 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -26,7 +26,8 @@ func (p CrateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInp } // commandLine := []string - out.CommandLine = append{out.CommandLine , "--hosts", host, "--username", user,} + out.CommandLine = append(out.CommandLine, []string{"--hosts", host, "--username", user}...) + } From 3b3b7dd117de55af22d81bf6b10812ed7b60bd90 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Wed, 12 Jul 2023 00:41:52 +0530 Subject: [PATCH 33/42] changed needauth condition Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go index a7cb51096..8ca78c64e 100644 --- a/plugins/cratedb/crash.go +++ b/plugins/cratedb/crash.go @@ -14,7 +14,6 @@ func CrateDBCLI() schema.Executable { DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), NeedsAuth: needsauth.IfAll( needsauth.NotForHelpOrVersion(), - needsauth.NotWithoutArgs(), ), Uses: []schema.CredentialUsage{ { From fc656f1043bab2a7b69a663549bc909c67ecd76a Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Wed, 12 Jul 2023 00:51:32 +0530 Subject: [PATCH 34/42] changed needauth condition Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go index 8ca78c64e..1aacffe75 100644 --- a/plugins/cratedb/crash.go +++ b/plugins/cratedb/crash.go @@ -12,9 +12,7 @@ func CrateDBCLI() schema.Executable { Name: "CrateDB Shell", Runs: []string{"crash"}, DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), - NeedsAuth: needsauth.IfAll( - needsauth.NotForHelpOrVersion(), - ), + NeedsAuth: needsauth.needsauth.NotForHelpOrVersion(), Uses: []schema.CredentialUsage{ { Name: credname.DatabaseCredentials, From 5c565f9a40997b4bc22d48ab4cdd58c90dbb85fd Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Fri, 14 Jul 2023 21:40:12 +0530 Subject: [PATCH 35/42] formated document Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 8 +++---- plugins/cratedb/database_credentials_test.go | 10 ++++----- plugins/cratedb/provisioner.go | 22 +++++++------------- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go index 1aacffe75..7bb3c4b97 100644 --- a/plugins/cratedb/crash.go +++ b/plugins/cratedb/crash.go @@ -9,14 +9,14 @@ import ( func CrateDBCLI() schema.Executable { return schema.Executable{ - Name: "CrateDB Shell", - Runs: []string{"crash"}, - DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), + Name: "CrateDB Shell", + Runs: []string{"crash"}, + DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), NeedsAuth: needsauth.needsauth.NotForHelpOrVersion(), Uses: []schema.CredentialUsage{ { Name: credname.DatabaseCredentials, - Provisioner: CrateArgsProvisioner{} , + Provisioner: CrateArgsProvisioner{}, }, }, } diff --git a/plugins/cratedb/database_credentials_test.go b/plugins/cratedb/database_credentials_test.go index f6b9608c8..48d5f02ff 100644 --- a/plugins/cratedb/database_credentials_test.go +++ b/plugins/cratedb/database_credentials_test.go @@ -2,18 +2,18 @@ package cratedb import ( "testing" - + "github.com/1Password/shell-plugins/sdk" "github.com/1Password/shell-plugins/sdk/plugintest" "github.com/1Password/shell-plugins/sdk/schema/fieldname" ) - + func TestDatabaseCredentialsProvisioner(t *testing.T) { plugintest.TestProvisioner(t, CrateArgsProvisioner{}, map[string]plugintest.ProvisionCase{ "default": { - ItemFields: map[sdk.FieldName]string{ - - fieldname.Host: "https://love.aks1.eastus2.azure.cratedb.net:4200", + ItemFields: map[sdk.FieldName]string{ + + fieldname.Host: "https://love.aks1.eastus2.azure.cratedb.net:4200", fieldname.Username: "admin", fieldname.Password: "1<34&f0rg3t@me", }, diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index 3d46cce2a..fea5bbc9b 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -10,26 +10,18 @@ import ( type CrateArgsProvisioner struct { } - - func (p CrateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInput, out *sdk.ProvisionOutput) { if value, ok := in.ItemFields[fieldname.Password]; ok { out.AddEnvVar("CRATEPW", value) } - - var user, host string - if fieldValue, ok := in.ItemFields[fieldname.Username]; ok { - user=fieldValue - } - if fieldValue, ok := in.ItemFields[fieldname.Host]; ok { - host=fieldValue - } - // commandLine := []string - out.CommandLine = append(out.CommandLine, []string{"--hosts", host, "--username", user}...) - - - + user, userFound := in.ItemFields[fieldname.Username] + host, hostFound := in.ItemFields[fieldname.Host] + if userFound && hostFound { + commandLine := []string{out.CommandLine[0], "--user", user, "--host", host} + commandLine = append(commandLine, out.CommandLine[1:]...) + out.CommandLine = commandLine + } } func (p CrateArgsProvisioner) Deprovision(ctx context.Context, in sdk.DeprovisionInput, out *sdk.DeprovisionOutput) { From 66a0a5ced5225d0c3e6221a0554acef733b31147 Mon Sep 17 00:00:00 2001 From: Arun Date: Tue, 11 Jul 2023 16:57:56 -0400 Subject: [PATCH 36/42] Update OpenAI docs and management URLs Signed-off-by: Amanda Crawley --- plugins/openai/api_key.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/openai/api_key.go b/plugins/openai/api_key.go index 25e1f8680..d90046b53 100644 --- a/plugins/openai/api_key.go +++ b/plugins/openai/api_key.go @@ -12,8 +12,8 @@ import ( func APIKey() schema.CredentialType { return schema.CredentialType{ Name: credname.APIKey, - DocsURL: sdk.URL("https://beta.openai.com/docs"), - ManagementURL: sdk.URL("https://beta.openai.com/account/api-keys"), + DocsURL: sdk.URL("https://platform.openai.com/docs"), + ManagementURL: sdk.URL("https://platform.openai.com/account/api-keys"), Fields: []schema.CredentialField{ { Name: fieldname.APIKey, From 73a441ce14939ddc4f24d55ea19aa0ca3b6a9732 Mon Sep 17 00:00:00 2001 From: parthiv11 Date: Thu, 7 Sep 2023 16:29:20 +0530 Subject: [PATCH 37/42] typo Signed-off-by: Amanda Crawley --- plugins/cratedb/crash.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cratedb/crash.go b/plugins/cratedb/crash.go index 7bb3c4b97..c318441e3 100644 --- a/plugins/cratedb/crash.go +++ b/plugins/cratedb/crash.go @@ -12,7 +12,7 @@ func CrateDBCLI() schema.Executable { Name: "CrateDB Shell", Runs: []string{"crash"}, DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"), - NeedsAuth: needsauth.needsauth.NotForHelpOrVersion(), + NeedsAuth: needsauth.NotForHelpOrVersion(), Uses: []schema.CredentialUsage{ { Name: credname.DatabaseCredentials, From 257177a6ce30032271d6a12114e8efa21d5ebfe2 Mon Sep 17 00:00:00 2001 From: Amanda Crawley Date: Fri, 20 Oct 2023 15:33:55 -0300 Subject: [PATCH 38/42] Fix test Signed-off-by: Amanda Crawley --- plugins/cratedb/database_credentials_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/cratedb/database_credentials_test.go b/plugins/cratedb/database_credentials_test.go index 48d5f02ff..f491fadd3 100644 --- a/plugins/cratedb/database_credentials_test.go +++ b/plugins/cratedb/database_credentials_test.go @@ -24,10 +24,10 @@ func TestDatabaseCredentialsProvisioner(t *testing.T) { }, CommandLine: []string{ "crash", - "--hosts", - "https://love.aks1.eastus2.azure.cratedb.net:4200", - "--username", + "--user", "admin", + "--host", + "https://love.aks1.eastus2.azure.cratedb.net:4200", }, }, }, From 0395a58d5df64b8239c732c05f324309d1288cbe Mon Sep 17 00:00:00 2001 From: Scott Lougheed Date: Fri, 15 May 2026 09:02:11 -0700 Subject: [PATCH 39/42] fixing provisioner CLI flag output --- plugins/cratedb/provisioner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cratedb/provisioner.go b/plugins/cratedb/provisioner.go index fea5bbc9b..2ba136d2d 100644 --- a/plugins/cratedb/provisioner.go +++ b/plugins/cratedb/provisioner.go @@ -18,7 +18,7 @@ func (p CrateArgsProvisioner) Provision(ctx context.Context, in sdk.ProvisionInp user, userFound := in.ItemFields[fieldname.Username] host, hostFound := in.ItemFields[fieldname.Host] if userFound && hostFound { - commandLine := []string{out.CommandLine[0], "--user", user, "--host", host} + commandLine := []string{out.CommandLine[0], "--username", user, "--hosts", host} commandLine = append(commandLine, out.CommandLine[1:]...) out.CommandLine = commandLine } From c9d8cccc692cb6687f149886c2301cd3e5186b0e Mon Sep 17 00:00:00 2001 From: Scott Lougheed Date: Fri, 15 May 2026 09:04:23 -0700 Subject: [PATCH 40/42] fixing cli option discrepancy --- plugins/cratedb/database_credentials_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cratedb/database_credentials_test.go b/plugins/cratedb/database_credentials_test.go index f491fadd3..f4aec4584 100644 --- a/plugins/cratedb/database_credentials_test.go +++ b/plugins/cratedb/database_credentials_test.go @@ -24,7 +24,7 @@ func TestDatabaseCredentialsProvisioner(t *testing.T) { }, CommandLine: []string{ "crash", - "--user", + "--username", "admin", "--host", "https://love.aks1.eastus2.azure.cratedb.net:4200", From ba205c187d2c2f39a8b1fde6c0fd9f124bfc8501 Mon Sep 17 00:00:00 2001 From: Scott Lougheed Date: Fri, 15 May 2026 09:13:42 -0700 Subject: [PATCH 41/42] fixing cli options again --- plugins/cratedb/database_credentials.go | 2 +- plugins/cratedb/database_credentials_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go index 2c08013e7..946f811bf 100644 --- a/plugins/cratedb/database_credentials.go +++ b/plugins/cratedb/database_credentials.go @@ -16,7 +16,7 @@ func DatabaseCredentials() schema.CredentialType { ManagementURL: sdk.URL("https://console.cratedb.cloud/account/settings"), Fields: []schema.CredentialField{ { - Name: fieldname.Host, + Name: fieldname.Host, MarkdownDescription: "CrateDB host to connect to.", Optional: false, }, diff --git a/plugins/cratedb/database_credentials_test.go b/plugins/cratedb/database_credentials_test.go index f4aec4584..72938c7a1 100644 --- a/plugins/cratedb/database_credentials_test.go +++ b/plugins/cratedb/database_credentials_test.go @@ -26,7 +26,7 @@ func TestDatabaseCredentialsProvisioner(t *testing.T) { "crash", "--username", "admin", - "--host", + "--hosts", "https://love.aks1.eastus2.azure.cratedb.net:4200", }, }, From be6edff02241b7e092f5a4b5f0b0b2075b77cb01 Mon Sep 17 00:00:00 2001 From: Scott Lougheed Date: Fri, 15 May 2026 09:38:41 -0700 Subject: [PATCH 42/42] remocing trailing whitespace --- plugins/cratedb/database_credentials.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cratedb/database_credentials.go b/plugins/cratedb/database_credentials.go index 946f811bf..2c08013e7 100644 --- a/plugins/cratedb/database_credentials.go +++ b/plugins/cratedb/database_credentials.go @@ -16,7 +16,7 @@ func DatabaseCredentials() schema.CredentialType { ManagementURL: sdk.URL("https://console.cratedb.cloud/account/settings"), Fields: []schema.CredentialField{ { - Name: fieldname.Host, + Name: fieldname.Host, MarkdownDescription: "CrateDB host to connect to.", Optional: false, },