@@ -18,6 +18,7 @@ package repository
1818
1919import (
2020 "fmt"
21+ "github.com/devtron-labs/common-lib/securestore"
2122 "github.com/devtron-labs/devtron/pkg/sql"
2223 "github.com/devtron-labs/devtron/util"
2324 "github.com/go-pg/pg/orm"
@@ -46,21 +47,21 @@ type RegistryType string
4647var OCI_REGISRTY_REPO_TYPE_LIST = []string {OCI_REGISRTY_REPO_TYPE_CONTAINER , OCI_REGISRTY_REPO_TYPE_CHART }
4748
4849type DockerArtifactStore struct {
49- tableName struct {} `sql:"docker_artifact_store" json:",omitempty" pg:",discard_unknown_columns"`
50- Id string `sql:"id,pk" json:"id,,omitempty"`
51- PluginId string `sql:"plugin_id,notnull" json:"pluginId,omitempty"`
52- RegistryURL string `sql:"registry_url" json:"registryUrl,omitempty"`
53- RegistryType RegistryType `sql:"registry_type,notnull" json:"registryType,omitempty"`
54- IsOCICompliantRegistry bool `sql:"is_oci_compliant_registry,notnull" json:"isOCICompliantRegistry,omitempty"`
55- AWSAccessKeyId string `sql:"aws_accesskey_id" json:"awsAccessKeyId,omitempty" `
56- AWSSecretAccessKey string `sql:"aws_secret_accesskey" json:"awsSecretAccessKey,omitempty"`
57- AWSRegion string `sql:"aws_region" json:"awsRegion,omitempty"`
58- Username string `sql:"username" json:"username,omitempty"`
59- Password string `sql:"password" json:"password,omitempty"`
60- IsDefault bool `sql:"is_default,notnull" json:"isDefault"`
61- Connection string `sql:"connection" json:"connection,omitempty"`
62- Cert string `sql:"cert" json:"cert,omitempty"`
63- Active bool `sql:"active,notnull" json:"active"`
50+ tableName struct {} `sql:"docker_artifact_store" json:",omitempty" pg:",discard_unknown_columns"`
51+ Id string `sql:"id,pk" json:"id,,omitempty"`
52+ PluginId string `sql:"plugin_id,notnull" json:"pluginId,omitempty"`
53+ RegistryURL string `sql:"registry_url" json:"registryUrl,omitempty"`
54+ RegistryType RegistryType `sql:"registry_type,notnull" json:"registryType,omitempty"`
55+ IsOCICompliantRegistry bool `sql:"is_oci_compliant_registry,notnull" json:"isOCICompliantRegistry,omitempty"`
56+ AWSAccessKeyId string `sql:"aws_accesskey_id" json:"awsAccessKeyId,omitempty" `
57+ AWSSecretAccessKey securestore. EncryptedString `sql:"aws_secret_accesskey" json:"awsSecretAccessKey,omitempty"`
58+ AWSRegion string `sql:"aws_region" json:"awsRegion,omitempty"`
59+ Username string `sql:"username" json:"username,omitempty"`
60+ Password securestore. EncryptedString `sql:"password" json:"password,omitempty"`
61+ IsDefault bool `sql:"is_default,notnull" json:"isDefault"`
62+ Connection string `sql:"connection" json:"connection,omitempty"`
63+ Cert string `sql:"cert" json:"cert,omitempty"`
64+ Active bool `sql:"active,notnull" json:"active"`
6465 IpsConfig * DockerRegistryIpsConfig
6566 OCIRegistryConfig []* OCIRegistryConfig
6667 sql.AuditLog
@@ -109,7 +110,16 @@ func (impl DockerArtifactStoreRepositoryImpl) GetConnection() *pg.DB {
109110 return impl .dbConnection
110111}
111112
112- func (impl DockerArtifactStoreRepositoryImpl ) Save (artifactStore * DockerArtifactStore , tx * pg.Tx ) error {
113+ func (impl DockerArtifactStoreRepositoryImpl ) Save (artifactStore * DockerArtifactStore , tx * pg.Tx ) (err error ) {
114+ artifactStore .Password , err = securestore .EncryptString (artifactStore .Password .String ())
115+ if err != nil {
116+ return err
117+ }
118+ artifactStore .AWSSecretAccessKey , err = securestore .EncryptString (artifactStore .AWSSecretAccessKey .String ())
119+ if err != nil {
120+ return err
121+ }
122+
113123 if util .IsBaseStack () {
114124 return tx .Insert (artifactStore )
115125 }
@@ -235,7 +245,15 @@ func (impl DockerArtifactStoreRepositoryImpl) FindOneInactive(storeId string) (*
235245 return & provider , err
236246}
237247
238- func (impl DockerArtifactStoreRepositoryImpl ) Update (artifactStore * DockerArtifactStore , tx * pg.Tx ) error {
248+ func (impl DockerArtifactStoreRepositoryImpl ) Update (artifactStore * DockerArtifactStore , tx * pg.Tx ) (err error ) {
249+ artifactStore .Password , err = securestore .EncryptString (artifactStore .Password .String ())
250+ if err != nil {
251+ return err
252+ }
253+ artifactStore .AWSSecretAccessKey , err = securestore .EncryptString (artifactStore .AWSSecretAccessKey .String ())
254+ if err != nil {
255+ return err
256+ }
239257 //TODO check for unique default
240258 //there can be only one default
241259
0 commit comments