From af26f3fe710ad23e007ae692530423117cab7008 Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Tue, 28 Feb 2023 14:53:15 +0100 Subject: [PATCH 01/12] Add basic postgres service in docker-compose --- .env.schema | 4 +++- Vagrantfile | 2 ++ docker-compose.yml | 25 +++++++++++++++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/.env.schema b/.env.schema index 434950f..c2db3fd 100644 --- a/.env.schema +++ b/.env.schema @@ -1,3 +1,5 @@ SSH_KEY_NAME= DIGITAL_OCEAN_TOKEN= -DOCKER_USERNAME= \ No newline at end of file +DOCKER_USERNAME= +POSTGRES_USERNAME= +POSTGRES_PASSWORD= \ No newline at end of file diff --git a/Vagrantfile b/Vagrantfile index 5b8c3bd..c05e868 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -21,6 +21,8 @@ Vagrant.configure("2") do |config| server.vm.hostname = "webserver" server.vm.provision "shell", inline: 'echo "export DOCKER_USERNAME=' + "'" + ENV["DOCKER_USERNAME"] + "'" + '" >> ~/.bash_profile' + server.vm.provision "shell", inline: 'echo "export POSTGRES_USERNAME=' + "'" + ENV["POSTGRES_USERNAME"] + "'" + '" >> ~/.bash_profile' + server.vm.provision "shell", inline: 'echo "export POSTGRES_PASSWORD=' + "'" + ENV["POSTGRES_PASSWORD"] + "'" + '" >> ~/.bash_profile' server.vm.provision "shell", inline: <<-SHELL sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin cd /vagrant diff --git a/docker-compose.yml b/docker-compose.yml index 45defbd..a0a5eb7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,29 @@ -version: '3.9' +version: "3.9" services: minitwit: image: ${DOCKER_USERNAME}/minitwitimage container_name: minitwit + networks: + - database-network ports: - - "8080:8080" \ No newline at end of file + - "8080:8080" + postgres: + container_name: database + image: postgres:latest + networks: + - database-network + environment: + POSTGRES_USER: ${POSTGRES_USERNAME} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + volumes: + - postgres-db:/data/postgres + - ./tools/schema.sql:/docker-entrypoint-initdb.d/create_tables.sql + +volumes: + postgres-db: + driver: local + +networks: + database-network: + name: database-network From 56c56781650d6c933d4e2a49262fcff8abbd12ef Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Tue, 28 Feb 2023 14:55:03 +0100 Subject: [PATCH 02/12] Rename postgres container --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index a0a5eb7..19bbcb0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: ports: - "8080:8080" postgres: - container_name: database + container_name: postgres image: postgres:latest networks: - database-network From 88b282158961a23b0270eaab4026925e30ce6175 Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Tue, 28 Feb 2023 14:57:48 +0100 Subject: [PATCH 03/12] Add depends on to docker compose --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 19bbcb0..126f1ee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,8 @@ services: - database-network ports: - "8080:8080" + depends_on: + - postgres postgres: container_name: postgres image: postgres:latest From a35a7c0b49926f9d98ba674f26131556feac08ea Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Tue, 28 Feb 2023 15:10:59 +0100 Subject: [PATCH 04/12] Specify default db --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 126f1ee..f93d26b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,6 +18,8 @@ services: environment: POSTGRES_USER: ${POSTGRES_USERNAME} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: db + PGDATA: /data/postgres volumes: - postgres-db:/data/postgres - ./tools/schema.sql:/docker-entrypoint-initdb.d/create_tables.sql From 1abe128fb86120e6e4c70b0fad7a9fdf3367526c Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Tue, 28 Feb 2023 15:15:36 +0100 Subject: [PATCH 05/12] Add quotes to reserved word in setup script --- tools/schema.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/schema.sql b/tools/schema.sql index de75ec1..dfd5bce 100644 --- a/tools/schema.sql +++ b/tools/schema.sql @@ -1,4 +1,4 @@ -drop table if exists user; +drop table if exists "user"; create table user ( user_id integer primary key autoincrement, username string not null, From 232db77dbc07a22f7855ea9238762f9d77e2e4b9 Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Tue, 28 Feb 2023 15:19:58 +0100 Subject: [PATCH 06/12] Use local image when testing new database setup --- docker-compose.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index f93d26b..8db9aa5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,10 @@ version: "3.9" services: minitwit: - image: ${DOCKER_USERNAME}/minitwitimage + #image: ${DOCKER_USERNAME}/minitwitimage + build: + context: . + dockerfile: Dockerfile container_name: minitwit networks: - database-network From edf68be6bb3ec3d8e52c8347a88b3ba15ebf6452 Mon Sep 17 00:00:00 2001 From: beth Date: Tue, 28 Feb 2023 16:49:04 +0100 Subject: [PATCH 07/12] postgres supported schema Co-authored-by: Johan --- docker-compose.yml | 2 +- tools/schema_postgres.sql | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tools/schema_postgres.sql diff --git a/docker-compose.yml b/docker-compose.yml index 8db9aa5..6345440 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,7 +25,7 @@ services: PGDATA: /data/postgres volumes: - postgres-db:/data/postgres - - ./tools/schema.sql:/docker-entrypoint-initdb.d/create_tables.sql + - ./tools/schema_postgres.sql:/docker-entrypoint-initdb.d/create_tables.sql volumes: postgres-db: diff --git a/tools/schema_postgres.sql b/tools/schema_postgres.sql new file mode 100644 index 0000000..e27a0ae --- /dev/null +++ b/tools/schema_postgres.sql @@ -0,0 +1,17 @@ +drop table if exists user_acc; + + +create table user_acc (user_id serial primary key, username VARCHAR not null, email VARCHAR not null, pw_hash VARCHAR not null); + + +drop table if exists follower; + + +create table follower (who_id integer, whom_id integer); + + +drop table if exists message; + + +create table message (message_id serial primary key, author_id integer not null, text VARCHAR not null, pub_date integer, flagged integer); + From d44946a2e7d206ce0907d7ed0b086b4eb2fe3c5b Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Sun, 5 Mar 2023 19:08:43 +0100 Subject: [PATCH 08/12] Use postgres database when production variable is set --- docker-compose.yml | 4 ++++ globals/globals.go | 15 +++++++++++++-- helpers/dbHelpers.go | 3 +-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 6345440..ef11df5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,10 @@ version: "3.9" services: minitwit: #image: ${DOCKER_USERNAME}/minitwitimage + environment: + GO_ENV: production + POSTGRES_USERNAME: ${POSTGRES_USERNAME} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} build: context: . dockerfile: Dockerfile diff --git a/globals/globals.go b/globals/globals.go index bab1fa8..ee9e441 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -2,9 +2,13 @@ package globals import ( model "DevOps/model/gorm" + "fmt" + "os" "github.com/jmoiron/sqlx" _ "github.com/mattn/go-sqlite3" + "gorm.io/driver/postgres" + "gorm.io/driver/sqlite" "gorm.io/gorm" ) @@ -39,8 +43,15 @@ func SetDatabase(database *gorm.DB) { gormDb.AutoMigrate(&model.Following{}) } -func GetDatabasePath() string { - return "itu-minitwit.db" +func GetDatabasePath() gorm.Dialector { + if os.Getenv(ENV_KEY) == "production" { + connectionString := fmt.Sprintf("postgresql://%s:%s@postgres/db", + os.Getenv("POSTGRES_USERNAME"), + os.Getenv("POSTGRES_PASSWORD")) + fmt.Println(connectionString) + return postgres.Open(connectionString) + } + return sqlite.Open("itu-minitwit.db") } func SetLatestRequestId(requestId int) { diff --git a/helpers/dbHelpers.go b/helpers/dbHelpers.go index 1fb1034..c19f896 100644 --- a/helpers/dbHelpers.go +++ b/helpers/dbHelpers.go @@ -6,7 +6,6 @@ import ( "log" "github.com/jmoiron/sqlx" - "gorm.io/driver/sqlite" "gorm.io/gorm" ) @@ -25,7 +24,7 @@ func GetUserIdGorm(db *gorm.DB, username string) (uint, error) { // Open connection to DB, and return DB element func GetGormDbConnection() *gorm.DB { - dbGorm, err := gorm.Open(sqlite.Open(globals.GetDatabasePath()), &gorm.Config{}) + dbGorm, err := gorm.Open(globals.GetDatabasePath(), &gorm.Config{}) if err != nil { log.Fatal("failed to connect database") } From 85022688d15348d258475cb09646864e27f594aa Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Sun, 5 Mar 2023 19:20:20 +0100 Subject: [PATCH 09/12] Use hosted image for minitwit service --- docker-compose.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ef11df5..030766e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,14 +2,11 @@ version: "3.9" services: minitwit: - #image: ${DOCKER_USERNAME}/minitwitimage + image: ${DOCKER_USERNAME}/minitwitimage environment: GO_ENV: production POSTGRES_USERNAME: ${POSTGRES_USERNAME} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} - build: - context: . - dockerfile: Dockerfile container_name: minitwit networks: - database-network From 9958e8826d28321991e890775c5c98b3b90fa14c Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Sun, 5 Mar 2023 19:30:04 +0100 Subject: [PATCH 10/12] Remove database entrypoint script --- docker-compose.yml | 1 - tools/schema_postgres.sql | 17 ----------------- 2 files changed, 18 deletions(-) delete mode 100644 tools/schema_postgres.sql diff --git a/docker-compose.yml b/docker-compose.yml index 030766e..54e05e2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,7 +26,6 @@ services: PGDATA: /data/postgres volumes: - postgres-db:/data/postgres - - ./tools/schema_postgres.sql:/docker-entrypoint-initdb.d/create_tables.sql volumes: postgres-db: diff --git a/tools/schema_postgres.sql b/tools/schema_postgres.sql deleted file mode 100644 index e27a0ae..0000000 --- a/tools/schema_postgres.sql +++ /dev/null @@ -1,17 +0,0 @@ -drop table if exists user_acc; - - -create table user_acc (user_id serial primary key, username VARCHAR not null, email VARCHAR not null, pw_hash VARCHAR not null); - - -drop table if exists follower; - - -create table follower (who_id integer, whom_id integer); - - -drop table if exists message; - - -create table message (message_id serial primary key, author_id integer not null, text VARCHAR not null, pub_date integer, flagged integer); - From 28e4a47b6fab4d84b55468f7def33fc1540057a1 Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Sun, 5 Mar 2023 19:38:28 +0100 Subject: [PATCH 11/12] Add restart-policy to minitwit service --- docker-compose.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 54e05e2..89479b7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,10 @@ version: "3.9" services: minitwit: - image: ${DOCKER_USERNAME}/minitwitimage + build: + context: . + dockerfile: ./Dockerfile + #image: ${DOCKER_USERNAME}/minitwitimage environment: GO_ENV: production POSTGRES_USERNAME: ${POSTGRES_USERNAME} @@ -14,6 +17,11 @@ services: - "8080:8080" depends_on: - postgres + deploy: + restart_policy: + condition: on-failure + delay: 5s + max_attempts: 5 postgres: container_name: postgres image: postgres:latest From 760d2136cd71297589488d8338f54cca2cdf555b Mon Sep 17 00:00:00 2001 From: Johan Flensmark Date: Sun, 5 Mar 2023 19:42:22 +0100 Subject: [PATCH 12/12] Add missing libraries --- docker-compose.yml | 5 +---- go.mod | 13 ++++++++----- go.sum | 47 ++++++++++++++++++++++++++++++++++------------ 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 89479b7..6ed6be7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,10 +2,7 @@ version: "3.9" services: minitwit: - build: - context: . - dockerfile: ./Dockerfile - #image: ${DOCKER_USERNAME}/minitwitimage + image: ${DOCKER_USERNAME}/minitwitimage environment: GO_ENV: production POSTGRES_USERNAME: ${POSTGRES_USERNAME} diff --git a/go.mod b/go.mod index c541b92..7bbd323 100644 --- a/go.mod +++ b/go.mod @@ -14,6 +14,9 @@ require ( github.com/gorilla/context v1.1.1 // indirect github.com/gorilla/securecookie v1.1.1 // indirect github.com/gorilla/sessions v1.2.1 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jackc/pgx/v5 v5.3.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -24,9 +27,9 @@ require ( github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/ugorji/go/codec v1.2.7 // indirect - golang.org/x/net v0.4.0 // indirect - golang.org/x/sys v0.3.0 // indirect - golang.org/x/text v0.5.0 // indirect + golang.org/x/net v0.6.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect @@ -37,8 +40,8 @@ require ( github.com/jmoiron/sqlx v1.3.5 github.com/mattn/go-sqlite3 v1.14.16 github.com/stretchr/testify v1.8.1 - github.com/tanimutomo/sqlfile v1.0.0 - golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 + golang.org/x/crypto v0.6.0 + gorm.io/driver/postgres v1.4.8 gorm.io/driver/sqlite v1.4.4 gorm.io/gorm v1.24.5 ) diff --git a/go.sum b/go.sum index 773924a..0c8cb97 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,3 @@ -github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= -github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/antonlindstrom/pgstore v0.0.0-20200229204646-b08ebf1105e0/go.mod h1:2Ti6VUHVxpC0VSmTZzEvpzysnaGAfGBOoMIz5ykPyyw= github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff/go.mod h1:+RTT1BOk5P97fT2CiHkbFQwkK3mjsFAP6zCYV2aXtjw= github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= @@ -27,7 +25,6 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= @@ -46,6 +43,13 @@ github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA= +github.com/jackc/pgx/v5 v5.3.0/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= +github.com/jackc/puddle/v2 v2.2.0/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -105,21 +109,29 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/tanimutomo/sqlfile v1.0.0 h1:8Nnkd1ra7vBDb7yrv4zvvEdto0vO5Yuegv87C6Tcyp8= -github.com/tanimutomo/sqlfile v1.0.0/go.mod h1:vdHiTAUB+JJn9lSFzv4iLGm54ghBOo444TthhTSvP4E= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 h1:0es+/5331RGQPcXlMfP+WrnIIS6dNnNRe0WB02W0F4M= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -127,17 +139,25 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= @@ -156,8 +176,11 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/driver/postgres v1.4.8 h1:NDWizaclb7Q2aupT0jkwK8jx1HVCNzt+PQ8v/VnxviA= +gorm.io/driver/postgres v1.4.8/go.mod h1:O9MruWGNLUBUWVYfWuBClpf3HeGjOoybY0SNmCs3wsw= gorm.io/driver/sqlite v1.4.4 h1:gIufGoR0dQzjkyqDyYSCvsYR6fba1Gw5YKDqKeChxFc= gorm.io/driver/sqlite v1.4.4/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= +gorm.io/gorm v1.24.2/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.5 h1:g6OPREKqqlWq4kh/3MCQbZKImeB9e6Xgc4zD+JgNZGE= gorm.io/gorm v1.24.5/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=