From a5b196c94efea218dfa17d06e05c3d0a9f79cd1a Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Thu, 19 Dec 2019 11:22:02 +0100 Subject: [PATCH 1/8] Add examples for Client and Rand --- pkg/randchar/example_test.go | 42 ++++++++++++++++++ pkg/secrethub/example_test.go | 84 +++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 pkg/randchar/example_test.go create mode 100644 pkg/secrethub/example_test.go diff --git a/pkg/randchar/example_test.go b/pkg/randchar/example_test.go new file mode 100644 index 00000000..00359ee6 --- /dev/null +++ b/pkg/randchar/example_test.go @@ -0,0 +1,42 @@ +package randchar + +import ( + "log" +) + +// Generate a 15 character alphanumeric string with at least 3 symbols, 1 uppercase letter, +// 1 lowercase letter and 1 digit. +func ExampleRand_Generate() { + symbolsRule := Min(3, Symbols) + uppercaseRule := Min(1, Uppercase) + lowercaseRule := Min(1, Lowercase) + numberRule := Min(1, Numeric) + + rand, err := NewRand(All, symbolsRule, uppercaseRule, lowercaseRule, numberRule) + if err != nil { + log.Fatal(err) + } + + val, err := rand.Generate(15) + if err != nil { + log.Fatal(err) + } + + print(string(val)) +} + +// Generate a 10 character alphanumeric string containing lowercase letters and digits. +func ExampleRand_Generate_customCharset() { + customCharset := NewCharset("abcdefghijklmnopqrstuvwxyz0123456789") + rand, err := NewRand(customCharset) + if err != nil { + log.Fatal(err) + } + + val, err := rand.Generate(15) + if err != nil { + log.Fatal(err) + } + + print(string(val)) +} diff --git a/pkg/secrethub/example_test.go b/pkg/secrethub/example_test.go new file mode 100644 index 00000000..73579efe --- /dev/null +++ b/pkg/secrethub/example_test.go @@ -0,0 +1,84 @@ +package secrethub + +import ( + "fmt" + "log" + + "github.com/secrethub/secrethub-go/pkg/secrethub/credentials" + + "github.com/secrethub/secrethub-go/pkg/secrethub/iterator" +) + +var client ClientInterface + +// Create a new repository. +func ExampleClient_Repos_create() { + _, err := client.Repos().Create("workspace/repo") + if err != nil { + log.Fatal(err) + } +} + +// List all audit events for a given repository. +func ExampleClient_Repos_eventIterator() { + iter := client.Repos().EventIterator("workspace/repo", &AuditEventIteratorParams{}) + for { + event, err := iter.Next() + if err == iterator.Done { + break + } else if err != nil { + log.Fatal(err) + } + fmt.Printf("Audit event logged at:%s form ip address: %s", event.LoggedAt.Local(), event.IPAddress) + } +} + +// Write a secret. +func ExampleClient_Secrets_write() { + secret := []byte("secret_value_123") + _, err := client.Secrets().Write("workspace/repo/secret", secret) + if err != nil { + log.Fatal(err) + } +} + +// Read a secret. +func ExampleClient_Secrets_read() { + secret, err := client.Secrets().Read("workspace/repo/secret") + if err != nil { + log.Fatal(err) + } + + fmt.Print(string(secret.Data)) +} + +// List all audit events for a given secret. +func ExampleClient_Secrets_eventIterator() { + iter := client.Secrets().EventIterator("workspace/repo/secret", &AuditEventIteratorParams{}) + for { + event, err := iter.Next() + if err == iterator.Done { + break + } else if err != nil { + log.Fatal(err) + } + fmt.Printf("Audit event logged at:%s form ip address: %s", event.LoggedAt.Local(), event.IPAddress) + } +} + +// Create a service account credential. +func ExampleClient_Services_create() { + credentialCreator := credentials.CreateKey() + service, err := client.Services().Create("workspace/repo", "Service account description", credentialCreator) + if err != nil { + log.Fatal(err) + } + + key, err := credentialCreator.Export() + if err != nil { + log.Fatal(err) + } + + fmt.Printf("Service ID: %s\n", service.ServiceID) + fmt.Printf("Credential: %s\n", string(key)) +} From 7111a7528df0ad1c58943a9420597ef01767e0f0 Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Thu, 19 Dec 2019 16:42:10 +0100 Subject: [PATCH 2/8] Add client creation example --- pkg/secrethub/example_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkg/secrethub/example_test.go b/pkg/secrethub/example_test.go index 73579efe..b3b6c21b 100644 --- a/pkg/secrethub/example_test.go +++ b/pkg/secrethub/example_test.go @@ -11,6 +11,26 @@ import ( var client ClientInterface +// Create a new Client. +func ExampleNewClient() { + client, err := NewClient() + if err != nil { + log.Fatal(err) + } + + fmt.Printf("Client with ID: %s", client.account.AccountID.String()) +} + +// Create a new aws Client. +func ExampleNewClient_aws() { + client, err := NewClient(WithCredentials(credentials.UseAWS())) + if err != nil { + log.Fatal(err) + } + + fmt.Printf("Client with ID: %s", client.account.AccountID.String()) +} + // Create a new repository. func ExampleClient_Repos_create() { _, err := client.Repos().Create("workspace/repo") From cde53f41a82bc1f9fad3731e303b7ba2f360e134 Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Thu, 19 Dec 2019 16:45:22 +0100 Subject: [PATCH 3/8] Add example for directory creation --- pkg/secrethub/example_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/secrethub/example_test.go b/pkg/secrethub/example_test.go index b3b6c21b..e3fea217 100644 --- a/pkg/secrethub/example_test.go +++ b/pkg/secrethub/example_test.go @@ -39,6 +39,14 @@ func ExampleClient_Repos_create() { } } +// Create a new directory. +func ExampleClient_Dirs_create() { + _, err := client.Dirs().Create("workspace/repo/dir") + if err != nil { + log.Fatal(err) + } +} + // List all audit events for a given repository. func ExampleClient_Repos_eventIterator() { iter := client.Repos().EventIterator("workspace/repo", &AuditEventIteratorParams{}) From 88f2caf1418a88ae5fd8f0c382a7d21c4e1ae40e Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Sat, 21 Dec 2019 15:37:52 +0100 Subject: [PATCH 4/8] Update randchar examples --- pkg/randchar/example_test.go | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/pkg/randchar/example_test.go b/pkg/randchar/example_test.go index 00359ee6..074736a1 100644 --- a/pkg/randchar/example_test.go +++ b/pkg/randchar/example_test.go @@ -4,9 +4,18 @@ import ( "log" ) +// Generate a random slice of 30 alphanumeric characters. +func ExampleRand_Generate() { + val, err := Generate(30) + if err != nil { + log.Fatal(err) + } + print(string(val)) +} + // Generate a 15 character alphanumeric string with at least 3 symbols, 1 uppercase letter, // 1 lowercase letter and 1 digit. -func ExampleRand_Generate() { +func ExampleRand_Generate_withRules() { symbolsRule := Min(3, Symbols) uppercaseRule := Min(1, Uppercase) lowercaseRule := Min(1, Lowercase) @@ -21,22 +30,35 @@ func ExampleRand_Generate() { if err != nil { log.Fatal(err) } - print(string(val)) } // Generate a 10 character alphanumeric string containing lowercase letters and digits. -func ExampleRand_Generate_customCharset() { - customCharset := NewCharset("abcdefghijklmnopqrstuvwxyz0123456789") +func ExampleRand_Generate_combineCharsets() { + customCharset := Lowercase.Add(Numeric) rand, err := NewRand(customCharset) if err != nil { log.Fatal(err) } - val, err := rand.Generate(15) + val, err := rand.Generate(10) + if err != nil { + log.Fatal(err) + } + print(string(val)) +} + +// Generate an 8 character long hexadecimal string. +func ExampleRand_Generate_customCharset() { + hexCharset := NewCharset("0123456789ABCDEF") + rand, err := NewRand(hexCharset) if err != nil { log.Fatal(err) } + val, err := rand.Generate(8) + if err != nil { + log.Fatal(err) + } print(string(val)) } From 06af90d4ef04afd6b76e25237f693567facbeff0 Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Sat, 21 Dec 2019 15:40:23 +0100 Subject: [PATCH 5/8] Update comment --- pkg/secrethub/example_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/secrethub/example_test.go b/pkg/secrethub/example_test.go index e3fea217..f632f998 100644 --- a/pkg/secrethub/example_test.go +++ b/pkg/secrethub/example_test.go @@ -21,7 +21,7 @@ func ExampleNewClient() { fmt.Printf("Client with ID: %s", client.account.AccountID.String()) } -// Create a new aws Client. +// Create a new client that uses native AWS services to handle encryption and authentication. func ExampleNewClient_aws() { client, err := NewClient(WithCredentials(credentials.UseAWS())) if err != nil { From 793bf276ede8fafc6e5dd7622c94ccffa6585e31 Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Sat, 21 Dec 2019 15:51:58 +0100 Subject: [PATCH 6/8] Update randchar examples move to randchar test --- pkg/randchar/example_test.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/pkg/randchar/example_test.go b/pkg/randchar/example_test.go index 074736a1..d679aa00 100644 --- a/pkg/randchar/example_test.go +++ b/pkg/randchar/example_test.go @@ -1,12 +1,13 @@ -package randchar +package randchar_test import ( + "github.com/secrethub/secrethub-go/pkg/randchar" "log" ) // Generate a random slice of 30 alphanumeric characters. func ExampleRand_Generate() { - val, err := Generate(30) + val, err := randchar.Generate(30) if err != nil { log.Fatal(err) } @@ -16,12 +17,12 @@ func ExampleRand_Generate() { // Generate a 15 character alphanumeric string with at least 3 symbols, 1 uppercase letter, // 1 lowercase letter and 1 digit. func ExampleRand_Generate_withRules() { - symbolsRule := Min(3, Symbols) - uppercaseRule := Min(1, Uppercase) - lowercaseRule := Min(1, Lowercase) - numberRule := Min(1, Numeric) + symbolsRule := randchar.Min(3, randchar.Symbols) + uppercaseRule := randchar.Min(1, randchar.Uppercase) + lowercaseRule := randchar.Min(1, randchar.Lowercase) + numberRule := randchar.Min(1, randchar.Numeric) - rand, err := NewRand(All, symbolsRule, uppercaseRule, lowercaseRule, numberRule) + rand, err := randchar.NewRand(randchar.All, symbolsRule, uppercaseRule, lowercaseRule, numberRule) if err != nil { log.Fatal(err) } @@ -35,8 +36,8 @@ func ExampleRand_Generate_withRules() { // Generate a 10 character alphanumeric string containing lowercase letters and digits. func ExampleRand_Generate_combineCharsets() { - customCharset := Lowercase.Add(Numeric) - rand, err := NewRand(customCharset) + customCharset := randchar.Lowercase.Add(randchar.Numeric) + rand, err := randchar.NewRand(customCharset) if err != nil { log.Fatal(err) } @@ -50,8 +51,8 @@ func ExampleRand_Generate_combineCharsets() { // Generate an 8 character long hexadecimal string. func ExampleRand_Generate_customCharset() { - hexCharset := NewCharset("0123456789ABCDEF") - rand, err := NewRand(hexCharset) + hexCharset := randchar.NewCharset("0123456789ABCDEF") + rand, err := randchar.NewRand(hexCharset) if err != nil { log.Fatal(err) } From 27ebccabcde4b4938554345dc92303ddfdf5cebb Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Sat, 21 Dec 2019 16:02:09 +0100 Subject: [PATCH 7/8] Update client examples --- pkg/secrethub/example_test.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/pkg/secrethub/example_test.go b/pkg/secrethub/example_test.go index f632f998..5ef47104 100644 --- a/pkg/secrethub/example_test.go +++ b/pkg/secrethub/example_test.go @@ -1,7 +1,8 @@ -package secrethub +package secrethub_test import ( "fmt" + "github.com/secrethub/secrethub-go/pkg/secrethub" "log" "github.com/secrethub/secrethub-go/pkg/secrethub/credentials" @@ -9,26 +10,34 @@ import ( "github.com/secrethub/secrethub-go/pkg/secrethub/iterator" ) -var client ClientInterface +var client secrethub.ClientInterface // Create a new Client. func ExampleNewClient() { - client, err := NewClient() + client, err := secrethub.NewClient() if err != nil { log.Fatal(err) } - fmt.Printf("Client with ID: %s", client.account.AccountID.String()) + // use the client + _, err = client.Repos().Create("workspace/repo") + if err != nil { + log.Fatal(err) + } } // Create a new client that uses native AWS services to handle encryption and authentication. func ExampleNewClient_aws() { - client, err := NewClient(WithCredentials(credentials.UseAWS())) + client, err := secrethub.NewClient(secrethub.WithCredentials(credentials.UseAWS())) if err != nil { log.Fatal(err) } - fmt.Printf("Client with ID: %s", client.account.AccountID.String()) + // use the client + _, err = client.Repos().Create("workspace/repo") + if err != nil { + log.Fatal(err) + } } // Create a new repository. @@ -49,7 +58,7 @@ func ExampleClient_Dirs_create() { // List all audit events for a given repository. func ExampleClient_Repos_eventIterator() { - iter := client.Repos().EventIterator("workspace/repo", &AuditEventIteratorParams{}) + iter := client.Repos().EventIterator("workspace/repo", &secrethub.AuditEventIteratorParams{}) for { event, err := iter.Next() if err == iterator.Done { @@ -82,7 +91,7 @@ func ExampleClient_Secrets_read() { // List all audit events for a given secret. func ExampleClient_Secrets_eventIterator() { - iter := client.Secrets().EventIterator("workspace/repo/secret", &AuditEventIteratorParams{}) + iter := client.Secrets().EventIterator("workspace/repo/secret", &secrethub.AuditEventIteratorParams{}) for { event, err := iter.Next() if err == iterator.Done { From 98c8239e1e4fea0b5e52b40661863e31e328d590 Mon Sep 17 00:00:00 2001 From: Marton Soos Date: Mon, 23 Dec 2019 10:17:10 +0100 Subject: [PATCH 8/8] Update client creation examples --- pkg/secrethub/example_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/secrethub/example_test.go b/pkg/secrethub/example_test.go index 5ef47104..c07af2aa 100644 --- a/pkg/secrethub/example_test.go +++ b/pkg/secrethub/example_test.go @@ -20,7 +20,7 @@ func ExampleNewClient() { } // use the client - _, err = client.Repos().Create("workspace/repo") + _, err = client.Secrets().ReadString("workspace/repo/secret") if err != nil { log.Fatal(err) } @@ -34,7 +34,7 @@ func ExampleNewClient_aws() { } // use the client - _, err = client.Repos().Create("workspace/repo") + _, err = client.Secrets().ReadString("workspace/repo/secret") if err != nil { log.Fatal(err) }