diff --git a/packages/api/model.go b/packages/api/model.go index b7e7c6ea..12bf2429 100644 --- a/packages/api/model.go +++ b/packages/api/model.go @@ -1,6 +1,10 @@ package api -import "time" +import ( + "time" + + "github.com/Infisical/infisical-merge/packages/models" +) // Stores info for login one type LoginOneRequest struct { @@ -593,16 +597,17 @@ type GetRawSecretsV3Request struct { type GetRawSecretsV3Response struct { Secrets []struct { - ID string `json:"_id"` - Version int `json:"version"` - Workspace string `json:"workspace"` - Type string `json:"type"` - Environment string `json:"environment"` - SecretKey string `json:"secretKey"` - SecretValue string `json:"secretValue"` - SecretComment string `json:"secretComment"` - SecretPath string `json:"secretPath"` - SkipMultilineEncoding bool `json:"skipMultilineEncoding"` + ID string `json:"_id"` + Version int `json:"version"` + Workspace string `json:"workspace"` + Type string `json:"type"` + Environment string `json:"environment"` + SecretKey string `json:"secretKey"` + SecretValue string `json:"secretValue"` + SecretComment string `json:"secretComment"` + SecretPath string `json:"secretPath"` + SkipMultilineEncoding bool `json:"skipMultilineEncoding"` + Tags []models.Tag `json:"tags"` } `json:"secrets"` Imports []ImportedRawSecretV3 `json:"imports"` ETag string diff --git a/packages/cmd/secrets.go b/packages/cmd/secrets.go index 930a27a5..facb382e 100644 --- a/packages/cmd/secrets.go +++ b/packages/cmd/secrets.go @@ -528,12 +528,7 @@ func generateExampleEnv(cmd *cobra.Command, args []string) { type TagsAndSecrets struct { Secrets []models.SingleEnvironmentVariable - Tags []struct { - ID string `json:"_id"` - Name string `json:"name"` - Slug string `json:"slug"` - Workspace string `json:"workspace"` - } + Tags []models.Tag } // sort secrets by associated tags (most number of tags to least tags) @@ -542,12 +537,7 @@ func generateExampleEnv(cmd *cobra.Command, args []string) { }) for i, secret := range secrets { - filteredTag := []struct { - ID string "json:\"_id\"" - Name string "json:\"name\"" - Slug string "json:\"slug\"" - Workspace string "json:\"workspace\"" - }{} + filteredTag := []models.Tag{} for _, secretTag := range secret.Tags { _, exists := slugsToFilerBy[secretTag.Slug] diff --git a/packages/models/cli.go b/packages/models/cli.go index 8fa58e4f..785b3827 100644 --- a/packages/models/cli.go +++ b/packages/models/cli.go @@ -24,24 +24,24 @@ type LoggedInUser struct { Domain string `json:"domain"` } +type Tag struct { + ID string `json:"_id"` + Name string `json:"name"` + Slug string `json:"slug"` + Color string `json:"color"` +} + type SingleEnvironmentVariable struct { - Key string `json:"key"` - WorkspaceId string `json:"workspace"` - Value string `json:"value"` - Type string `json:"type"` - ID string `json:"_id"` - SecretPath string `json:"secretPath"` - Tags []struct { - ID string `json:"_id"` - Name string `json:"name"` - Slug string `json:"slug"` - Workspace string `json:"workspace"` - } `json:"tags"` - Comment string `json:"comment"` - Etag string `json:"Etag"` - - // Deprecated: SkipMultilineEncoding is deprecated. Use IsMultilineEncodingEnabled() instead. - SkipMultilineEncoding bool `json:"skipMultilineEncoding"` + Key string `json:"key"` + WorkspaceId string `json:"workspace"` + Value string `json:"value"` + Type string `json:"type"` + ID string `json:"_id"` + SecretPath string `json:"secretPath"` + Tags []Tag `json:"tags"` + Comment string `json:"comment"` + Etag string `json:"Etag"` + SkipMultilineEncoding bool `json:"skipMultilineEncoding"` } // TLDR; Why you shouldn't depend on "SkipMultilineEncoding" and instead use this method diff --git a/packages/util/secrets.go b/packages/util/secrets.go index 8664cd7c..9910df46 100644 --- a/packages/util/secrets.go +++ b/packages/util/secrets.go @@ -66,7 +66,7 @@ func GetPlainTextSecretsViaServiceToken(fullServiceToken string, environment str plainTextSecrets := []models.SingleEnvironmentVariable{} for _, secret := range rawSecrets.Secrets { - plainTextSecrets = append(plainTextSecrets, models.SingleEnvironmentVariable{Key: secret.SecretKey, Value: secret.SecretValue, Type: secret.Type, WorkspaceId: secret.Workspace, SkipMultilineEncoding: secret.SkipMultilineEncoding}) + plainTextSecrets = append(plainTextSecrets, models.SingleEnvironmentVariable{Key: secret.SecretKey, Value: secret.SecretValue, Type: secret.Type, WorkspaceId: secret.Workspace, SkipMultilineEncoding: secret.SkipMultilineEncoding, Tags: secret.Tags}) } if includeImports { @@ -111,7 +111,7 @@ func GetPlainTextSecretsV3(accessToken string, workspaceId string, environmentNa plainTextSecrets := []models.SingleEnvironmentVariable{} for _, secret := range rawSecrets.Secrets { - plainTextSecrets = append(plainTextSecrets, models.SingleEnvironmentVariable{Key: secret.SecretKey, Value: secret.SecretValue, Type: secret.Type, WorkspaceId: secret.Workspace, SecretPath: secret.SecretPath, SkipMultilineEncoding: secret.SkipMultilineEncoding}) + plainTextSecrets = append(plainTextSecrets, models.SingleEnvironmentVariable{Key: secret.SecretKey, Value: secret.SecretValue, Type: secret.Type, WorkspaceId: secret.Workspace, SecretPath: secret.SecretPath, SkipMultilineEncoding: secret.SkipMultilineEncoding, Tags: secret.Tags}) } if includeImports {