diff --git a/main.go b/main.go index a0daf7e..3e9c46a 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( _ "github.com/go-sql-driver/mysql" _ "github.com/jinzhu/gorm/dialects/mysql" + _ "github.com/jinzhu/gorm/dialects/postgres" _ "github.com/jinzhu/gorm/dialects/sqlite" "github.com/urfave/cli" "moul.io/srand" diff --git a/pkg/bastion/dbinit.go b/pkg/bastion/dbinit.go index 338d50b..3cab6f7 100644 --- a/pkg/bastion/dbinit.go +++ b/pkg/bastion/dbinit.go @@ -45,8 +45,8 @@ func DBInit(db *gorm.DB) error { Type string Length uint Fingerprint string - PrivKey string `sql:"size:10000"` - PubKey string `sql:"size:10000"` + PrivKey string `sql:"size:5000"` + PubKey string `sql:"size:1000"` Hosts []*dbmodels.Host `gorm:"ForeignKey:SSHKeyID"` Comment string } @@ -80,7 +80,7 @@ func DBInit(db *gorm.DB) error { Migrate: func(tx *gorm.DB) error { type UserKey struct { gorm.Model - Key []byte `sql:"size:10000"` + Key []byte `sql:"size:1000"` UserID uint `` User *dbmodels.User `gorm:"ForeignKey:UserID"` Comment string @@ -341,8 +341,8 @@ func DBInit(db *gorm.DB) error { Migrate: func(tx *gorm.DB) error { type UserKey struct { gorm.Model - Key []byte `sql:"size:10000" valid:"required,length(1|10000)"` - AuthorizedKey string `sql:"size:10000" valid:"required,length(1|10000)"` + Key []byte `sql:"size:1000" valid:"required,length(1|1000)"` + AuthorizedKey string `sql:"size:1000" valid:"required,length(1|1000)"` UserID uint `` User *dbmodels.User `gorm:"ForeignKey:UserID"` Comment string `valid:"optional"` @@ -386,7 +386,7 @@ func DBInit(db *gorm.DB) error { Password string `valid:"optional"` SSHKey *dbmodels.SSHKey `gorm:"ForeignKey:SSHKeyID"` SSHKeyID uint `gorm:"index"` - HostKey []byte `sql:"size:10000" valid:"optional"` + HostKey []byte `sql:"size:1000" valid:"optional"` Groups []*dbmodels.HostGroup `gorm:"many2many:host_host_groups;"` Fingerprint string `valid:"optional"` Comment string `valid:"optional"` @@ -447,7 +447,7 @@ func DBInit(db *gorm.DB) error { URL string SSHKey *dbmodels.SSHKey `gorm:"ForeignKey:SSHKeyID"` SSHKeyID uint `gorm:"index"` - HostKey []byte `sql:"size:10000"` + HostKey []byte `sql:"size:1000"` Groups []*dbmodels.HostGroup `gorm:"many2many:host_host_groups;"` Comment string } @@ -468,7 +468,7 @@ func DBInit(db *gorm.DB) error { URL string SSHKey *dbmodels.SSHKey `gorm:"ForeignKey:SSHKeyID"` SSHKeyID uint `gorm:"index"` - HostKey []byte `sql:"size:10000"` + HostKey []byte `sql:"size:1000"` Groups []*dbmodels.HostGroup `gorm:"many2many:host_host_groups;"` Comment string Hop *dbmodels.Host @@ -518,8 +518,8 @@ func DBInit(db *gorm.DB) error { Action string `valid:"required"` Weight uint `` Comment string `valid:"optional"` - Inception *time.Time `gorm:"type:datetime"` - Expiration *time.Time `gorm:"type:datetime"` + Inception *time.Time + Expiration *time.Time } return tx.AutoMigrate(&ACL{}).Error }, diff --git a/pkg/dbmodels/dbmodels.go b/pkg/dbmodels/dbmodels.go index e6742f6..e5d6f9e 100644 --- a/pkg/dbmodels/dbmodels.go +++ b/pkg/dbmodels/dbmodels.go @@ -42,8 +42,8 @@ type SSHKey struct { Type string `valid:"required"` Length uint `valid:"required"` Fingerprint string `valid:"optional"` - PrivKey string `sql:"size:10000" valid:"required"` - PubKey string `sql:"size:10000" valid:"optional"` + PrivKey string `sql:"size:5000" valid:"required"` + PubKey string `sql:"size:1000" valid:"optional"` Hosts []*Host `gorm:"ForeignKey:SSHKeyID"` Comment string `valid:"optional"` } @@ -58,7 +58,7 @@ type Host struct { URL string `valid:"optional"` SSHKey *SSHKey `gorm:"ForeignKey:SSHKeyID"` // SSHKey used to connect by the client SSHKeyID uint `gorm:"index"` - HostKey []byte `sql:"size:10000" valid:"optional"` + HostKey []byte `sql:"size:1000" valid:"optional"` Groups []*HostGroup `gorm:"many2many:host_host_groups;"` Comment string `valid:"optional"` Logging string `valid:"optional,host_logging_mode"` @@ -69,8 +69,8 @@ type Host struct { // UserKey defines a user public key used by sshportal to identify the user type UserKey struct { gorm.Model - Key []byte `sql:"size:10000" valid:"length(1|10000)"` - AuthorizedKey string `sql:"size:10000" valid:"required,length(1|10000)"` + Key []byte `sql:"size:1000" valid:"length(1|1000)"` + AuthorizedKey string `sql:"size:1000" valid:"required,length(1|1000)"` UserID uint `` User *User `gorm:"ForeignKey:UserID"` Comment string `valid:"optional"`