Skip to content

Commit 70a6e17

Browse files
committed
Add support for DIDs as identifiers
1 parent 2c6d2bf commit 70a6e17

10 files changed

Lines changed: 63 additions & 10 deletions

File tree

cmd/baseline/participants/participants_list.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func listParticipantsRun(cmd *cobra.Command, args []string) {
6060
if msgEndpoint, msgEndpointOk := participant.Metadata["messaging_endpoint"].(string); msgEndpointOk {
6161
endpoint = msgEndpoint
6262
}
63-
result := fmt.Sprintf("%s\t%s\t%s\t%s\n", participant.ID.String(), *participant.Name, address, endpoint)
63+
result := fmt.Sprintf("%s\t%s\t%s\t%s\n", *participant.ID, *participant.Name, address, endpoint)
6464
fmt.Print(result)
6565
}
6666

@@ -70,7 +70,7 @@ func listParticipantsRun(cmd *cobra.Command, args []string) {
7070

7171
for i := range invitations {
7272
invitedParticipant := invitations[i]
73-
result := fmt.Sprintf("%s\t%s\n", invitedParticipant.ID.String(), invitedParticipant.Email)
73+
result := fmt.Sprintf("%s\t%s\n", *invitedParticipant.ID, invitedParticipant.Email)
7474
fmt.Print(result)
7575
}
7676
}

cmd/common/baseline.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,11 @@ func RegisterWorkgroupOrganization(applicationID string) {
192192
if err == nil {
193193
// FIXME--
194194
for _, org := range orgs {
195-
if org.ID.String() == OrganizationID {
195+
if *org.ID == OrganizationID {
196196
return
197197
}
198198
}
199-
if len(orgs) > 0 && orgs[0].ID.String() == OrganizationID {
199+
if len(orgs) > 0 && *orgs[0].ID == OrganizationID {
200200
return
201201
}
202202
}

cmd/common/prompt.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"strings"
1212

1313
"github.com/manifoldco/promptui"
14+
"github.com/ockam-network/did"
1415
"github.com/provideplatform/provide-go/api/ident"
1516
"github.com/provideplatform/provide-go/api/nchain"
1617
"github.com/provideplatform/provide-go/api/vault"
@@ -229,7 +230,7 @@ func RequireOrganization() error {
229230
}
230231

231232
Organization = orgs[i]
232-
OrganizationID = orgs[i].ID.String()
233+
OrganizationID = *orgs[i].ID
233234
return nil
234235
}
235236

@@ -318,6 +319,17 @@ var MandatoryValidation = func(input string) error {
318319
return nil
319320
}
320321

322+
var MandatoryDIDValidation = func(input string) error {
323+
if len(input) < 1 {
324+
return errors.New("field can't be nil")
325+
}
326+
_, err := did.Parse(input)
327+
if err != nil {
328+
return errors.New("invalid DID")
329+
}
330+
return nil
331+
}
332+
321333
var MandatoryNumberValidation = func(input string) error {
322334
if len(input) < 1 {
323335
return errors.New("field cant be nil")

cmd/networks/networks_list.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package networks
22

33
import (
4+
"encoding/json"
45
"fmt"
56
"log"
67
"os"
@@ -39,6 +40,35 @@ func listNetworks(cmd *cobra.Command, args []string) {
3940
}
4041
for i := range networks {
4142
network := networks[i]
43+
44+
log.Println()
45+
log.Printf("Network %s", network.ID.String())
46+
if network.ApplicationID != nil {
47+
log.Printf(" appId: %s", network.ApplicationID.String())
48+
}
49+
if network.UserID != nil {
50+
log.Printf(" userId: %s", network.UserID)
51+
}
52+
if network.Name != nil {
53+
log.Printf(" name: %s", *network.Name)
54+
}
55+
if network.Description != nil {
56+
log.Printf(" desc: %s", *network.Description)
57+
}
58+
log.Printf(" enab: %v", network.Enabled)
59+
if network.ChainID != nil {
60+
log.Printf(" chainId: %s", *network.ChainID)
61+
}
62+
if network.NetworkID != nil {
63+
log.Printf(" netId: %s", network.NetworkID.String())
64+
}
65+
pretty, err := json.MarshalIndent(network.Config, "", " ")
66+
if err == nil {
67+
log.Printf(" config: %s", pretty)
68+
69+
}
70+
log.Println()
71+
4272
result := fmt.Sprintf("%s\t%s\n", network.ID.String(), *network.Name)
4373
fmt.Print(result)
4474
}

cmd/organizations/organizations_init.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/spf13/cobra"
1111
)
1212

13+
var organizationDID string
1314
var organizationName string
1415
var paginate bool
1516

@@ -34,6 +35,7 @@ func createOrganization(cmd *cobra.Command, args []string) {
3435
func createOrganizationRun(cmd *cobra.Command, args []string) {
3536
token := common.RequireAPIToken()
3637
params := map[string]interface{}{
38+
"id": organizationDID,
3739
"name": organizationName,
3840
"config": organizationConfigFactory(),
3941
}
@@ -43,11 +45,13 @@ func createOrganizationRun(cmd *cobra.Command, args []string) {
4345
os.Exit(1)
4446
}
4547

46-
common.OrganizationID = organization.ID.String()
48+
common.OrganizationID = *organization.ID
4749
log.Printf("initialized organization: %s\t%s\n", organizationName, common.OrganizationID)
4850
}
4951

5052
func init() {
53+
organizationsInitCmd.Flags().StringVar(&organizationDID, "did", "", "DID of the organization")
54+
// organizationsInitCmd.MarkFlagRequired("did")
5155
organizationsInitCmd.Flags().StringVar(&organizationName, "name", "", "name of the organization")
5256
// organizationsInitCmd.MarkFlagRequired("name")
5357
}

cmd/organizations/organizations_list.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func listOrganizationsRun(cmd *cobra.Command, args []string) {
4242
if addr, addrOk := organization.Metadata["address"].(string); addrOk {
4343
address = addr
4444
}
45-
result := fmt.Sprintf("%s\t%s\t%s\n", organization.ID.String(), *organization.Name, address)
45+
result := fmt.Sprintf("%s\t%s\t%s\n", *organization.ID, *organization.Name, address)
4646
fmt.Print(result)
4747
}
4848
}

cmd/organizations/organizations_prompt.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ var emptyPromptLabel = "What would you like to do"
1616
func generalPrompt(cmd *cobra.Command, args []string, step string) {
1717
switch step {
1818
case promptStepInit:
19+
organizationDID = common.FreeInput("Organization DID", "", common.MandatoryDIDValidation)
1920
organizationName = common.FreeInput("Organization Name", "", common.MandatoryValidation)
2021
createOrganizationRun(cmd, args)
2122
case promptStepList:

cmd/users/create.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,21 @@ var createCmd = &cobra.Command{
1919
Run: create,
2020
}
2121

22+
var did string
2223
var firstName string
2324
var lastName string
2425
var email string
2526
var passwd string
2627

2728
func create(cmd *cobra.Command, args []string) {
29+
did = common.FreeInput("DID", "", common.MandatoryDIDValidation)
2830
firstName = common.FreeInput("First Name", "", common.MandatoryValidation)
2931
lastName = common.FreeInput("Last Name", "", common.MandatoryValidation)
3032
email = common.FreeInput("Email", "", common.MandatoryValidation)
3133
passwd = common.FreeInput("Password", "", common.MandatoryValidation)
3234

3335
resp, err := provide.CreateUser("", map[string]interface{}{
36+
"id": did,
3437
"email": email,
3538
"password": passwd,
3639
"first_name": firstName,
@@ -47,5 +50,5 @@ func create(cmd *cobra.Command, args []string) {
4750
os.Exit(1)
4851
}
4952

50-
fmt.Printf("created user: %s", resp.ID.String())
53+
fmt.Printf("created user: %s", *resp.ID)
5154
}

go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ require (
1919
github.com/mattn/go-colorable v0.1.8 // indirect
2020
github.com/mattn/go-runewidth v0.0.12 // indirect
2121
github.com/mitchellh/go-homedir v1.1.0
22+
github.com/ockam-network/did v0.1.3
2223
github.com/opencontainers/go-digest v1.0.0 // indirect
2324
github.com/opencontainers/image-spec v1.0.1 // indirect
2425
github.com/ory/viper v1.7.5
@@ -30,3 +31,5 @@ require (
3031
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2
3132
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57 // indirect
3233
)
34+
35+
replace github.com/provideplatform/provide-go => ../provide-go

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,8 @@ github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h
364364
github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
365365
github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
366366
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
367+
github.com/ockam-network/did v0.1.3 h1:qJGdccOV4bLfsS/eFM+Aj+CdCRJKNMxbmJevQclw44k=
368+
github.com/ockam-network/did v0.1.3/go.mod h1:ZsbTIuVGt8OrQEbqWrSztUISN4joeMabdsinbLubbzw=
367369
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
368370
github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
369371
github.com/olekukonko/tablewriter v0.0.2-0.20190409134802-7e037d187b0c h1:1RHs3tNxjXGHeul8z2t6H2N2TlAqpKe5yryJztRx4Jk=
@@ -412,8 +414,6 @@ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7z
412414
github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
413415
github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA=
414416
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
415-
github.com/provideplatform/provide-go v0.0.0-20210823052255-cc727526a9b7 h1:BGU3eCEsPdEQ9OOcwlyPtNRW+V6l07lInGizLcymT5I=
416-
github.com/provideplatform/provide-go v0.0.0-20210823052255-cc727526a9b7/go.mod h1:q0/Q8KaZxYg84rdwBIIE7ZwHluzM5zw7zJJoJOqAbzg=
417417
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
418418
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
419419
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=

0 commit comments

Comments
 (0)