Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
1a99483
CrateDB
parthiv11 Jun 20, 2023
e1ca2db
Make A plugin for CrateDB
parthiv11 Jun 24, 2023
197e865
Add tickbox for Hashnode submissions in PR review
hculea Jun 26, 2023
0a46bac
Link to hackathon page
hculea Jun 26, 2023
615dadd
fix: generated plugin file name should be snake_case
sharunkumar Jun 14, 2023
751dd3b
feat: add Oh Dear CLI
owenvoke May 25, 2023
780d091
Removed config as it has no Creds stored
parthiv11 Jun 27, 2023
1e13a8e
Added Provisioner
parthiv11 Jun 29, 2023
c1212d9
Added Provisioner
parthiv11 Jun 29, 2023
47d6b4c
Updated provision for crate
parthiv11 Jun 29, 2023
72f429b
Updated tests
parthiv11 Jun 29, 2023
f347fa5
Environment variable based importing and provisioning for OpenAI Evals
Mar 15, 2023
4a37a8d
Drop evals shell plugin and just configure oaieval as another executa…
arunsathiya Apr 24, 2023
f80fe00
Fix incorrect oaieval executable file name
arunsathiya Apr 24, 2023
735067e
Support oaievalset as another executable within the openai shell plugin
arunsathiya Apr 24, 2023
46917db
Update documentation URL for both oaieval and oaievalset
arunsathiya Apr 25, 2023
6f7bd03
Updated provision
parthiv11 Jun 29, 2023
6e814d3
Improved
parthiv11 Jun 29, 2023
a4e8c0a
formatted code
parthiv11 Jun 30, 2023
e3c3cf2
Test passed && validated
parthiv11 Jul 1, 2023
100cbb1
Removed unused function
parthiv11 Jul 5, 2023
98e32f0
Allow commit signing PR comment on fork PRs
florisvdg Jun 22, 2023
d39a0fc
changes added in files
siddhikhapare Jun 29, 2023
006fbff
apikey file changed
siddhikhapare Jun 29, 2023
bdd76f1
files modified
siddhikhapare Jun 29, 2023
0499529
suggested changes added
siddhikhapare Jun 29, 2023
2494283
file formatted
siddhikhapare Jun 30, 2023
f7f0c8f
Add missing newline to test fixture
jpcoenen Jul 4, 2023
542c6ac
Revert "Add tickbox for Hashnode submissions in PR review"
hculea Jul 4, 2023
082fb73
..
parthiv11 Jul 10, 2023
ee4bf38
provision improved
parthiv11 Jul 11, 2023
b969885
Updated `_`
parthiv11 Jul 11, 2023
3b3b7dd
changed needauth condition
parthiv11 Jul 11, 2023
fc656f1
changed needauth condition
parthiv11 Jul 11, 2023
5c565f9
formated document
parthiv11 Jul 14, 2023
66a0a5c
Update OpenAI docs and management URLs
arunsathiya Jul 11, 2023
73a441c
typo
parthiv11 Sep 7, 2023
257177a
Fix test
accraw Oct 20, 2023
ad8361b
Merge branch 'main' into amanda/cratedb
scottisloud May 15, 2026
0395a58
fixing provisioner CLI flag output
scottisloud May 15, 2026
c9d8ccc
fixing cli option discrepancy
scottisloud May 15, 2026
ba205c1
fixing cli options again
scottisloud May 15, 2026
be6edff
remocing trailing whitespace
scottisloud May 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions plugins/cratedb/crash.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
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 Shell",
Runs: []string{"crash"},
DocsURL: sdk.URL("https://crate.io/docs/crate/crash/en/latest/"),
NeedsAuth: needsauth.NotForHelpOrVersion(),
Uses: []schema.CredentialUsage{
{
Name: credname.DatabaseCredentials,
Provisioner: CrateArgsProvisioner{},
},
},
}
}
41 changes: 41 additions & 0 deletions plugins/cratedb/database_credentials.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package cratedb

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 DatabaseCredentials() schema.CredentialType {
return schema.CredentialType{
Name: credname.DatabaseCredentials,
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,
MarkdownDescription: "CrateDB host to connect to.",
Optional: false,
},
{
Name: fieldname.Username,
MarkdownDescription: "CrateDB user to authenticate as.",
Optional: false,
},
{
Name: fieldname.Password,
MarkdownDescription: "Password used to authenticate to CrateDB.",
Secret: true,
},
},
DefaultProvisioner: provision.NoOp(),
Importer: importer.TryEnvVarPair(defaultEnvVarMapping),
}
}

var defaultEnvVarMapping = map[string]sdk.FieldName{
"CRATEPW": fieldname.Password,
}
35 changes: 35 additions & 0 deletions plugins/cratedb/database_credentials_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
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",
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{
"crash",
"--username",
"admin",
"--hosts",
"https://love.aks1.eastus2.azure.cratedb.net:4200",
},
},
},
})
}
22 changes: 22 additions & 0 deletions plugins/cratedb/plugin.go
Original file line number Diff line number Diff line change
@@ -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://crate.io/"),
},
Credentials: []schema.CredentialType{
DatabaseCredentials(),
},
Executables: []schema.Executable{
CrateDBCLI(),
},
}
}
33 changes: 33 additions & 0 deletions plugins/cratedb/provisioner.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package cratedb

import (
"context"

"github.com/1Password/shell-plugins/sdk"
"github.com/1Password/shell-plugins/sdk/schema/fieldname"
)

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)
}

user, userFound := in.ItemFields[fieldname.Username]
host, hostFound := in.ItemFields[fieldname.Host]
if userFound && hostFound {
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.
}

func (p CrateArgsProvisioner) Description() string {
return "Provision CrateDB username, host as command-line arguments && Password as Env ."
}