From f4411af0a58e4a4edcabf6e5fea524dc73732e27 Mon Sep 17 00:00:00 2001 From: Stavros Date: Sat, 15 Nov 2025 11:41:42 +0200 Subject: [PATCH 1/2] refactor: do not install delve on every rebuild --- Dockerfile.dev | 5 +++-- air.toml | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Dockerfile.dev b/Dockerfile.dev index d0889c9..a132ded 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -7,13 +7,14 @@ COPY go.sum ./ RUN go mod download +RUN go install github.com/air-verse/air@v1.61.7 +RUN go install github.com/go-delve/delve/cmd/dlv@latest + COPY ./cmd ./cmd COPY ./internal ./internal COPY ./main.go ./ COPY ./air.toml ./ -RUN go install github.com/air-verse/air@v1.61.7 - EXPOSE 3000 ENTRYPOINT ["air", "-c", "air.toml"] \ No newline at end of file diff --git a/air.toml b/air.toml index 1772c27..7a2cfc6 100644 --- a/air.toml +++ b/air.toml @@ -2,9 +2,9 @@ root = "/tinyauth" tmp_dir = "tmp" [build] -pre_cmd = ["mkdir -p internal/assets/dist", "mkdir -p /data", "echo 'backend running' > internal/assets/dist/index.html", "go install github.com/go-delve/delve/cmd/dlv@v1.25.0"] +pre_cmd = ["mkdir -p internal/assets/dist", "mkdir -p /data", "echo 'backend running' > internal/assets/dist/index.html", "cp /go/bin/dlv dlv"] cmd = "CGO_ENABLED=0 go build -gcflags=\"all=-N -l\" -o tmp/tinyauth ." -bin = "/go/bin/dlv --listen :4000 --headless=true --api-version=2 --accept-multiclient --log=true exec tmp/tinyauth --continue --check-go-version=false" +bin = "dlv --listen :4000 --headless=true --api-version=2 --accept-multiclient --log=true exec tmp/tinyauth --continue --check-go-version=false" include_ext = ["go"] exclude_dir = ["internal/assets/dist"] exclude_regex = [".*_test\\.go"] From 6d663bb1e8cd4b30437c7ef13aacc2843d5a21d7 Mon Sep 17 00:00:00 2001 From: Stavros Date: Sat, 15 Nov 2025 11:45:19 +0200 Subject: [PATCH 2/2] fix: use unix seconds in db cleanup --- internal/bootstrap/app_bootstrap.go | 2 +- internal/service/auth_service.go | 6 +++--- main.go | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/bootstrap/app_bootstrap.go b/internal/bootstrap/app_bootstrap.go index 7c5ae8c..f717b7b 100644 --- a/internal/bootstrap/app_bootstrap.go +++ b/internal/bootstrap/app_bootstrap.go @@ -375,7 +375,7 @@ func (app *BootstrapApp) dbCleanup(db *gorm.DB) { for ; true; <-ticker.C { log.Debug().Msg("Cleaning up old database sessions") - _, err := gorm.G[model.Session](db).Where("expiry < ?", time.Now().UnixMilli()).Delete(ctx) + _, err := gorm.G[model.Session](db).Where("expiry < ?", time.Now().Unix()).Delete(ctx) if err != nil { log.Error().Err(err).Msg("Failed to cleanup old sessions") } diff --git a/internal/service/auth_service.go b/internal/service/auth_service.go index a75bb04..bcba481 100644 --- a/internal/service/auth_service.go +++ b/internal/service/auth_service.go @@ -266,9 +266,9 @@ func (auth *AuthService) GetSessionCookie(c *gin.Context) (config.SessionCookie, currentTime := time.Now().Unix() if currentTime > session.Expiry { - res := auth.database.Unscoped().Where("uuid = ?", session.UUID).Delete(&model.Session{}) - if res.Error != nil { - log.Error().Err(res.Error).Msg("Failed to delete expired session") + _, err = gorm.G[model.Session](auth.database).Where("uuid = ?", cookie).Delete(auth.ctx) + if err != nil { + log.Error().Err(err).Msg("Failed to delete expired session") } return config.SessionCookie{}, fmt.Errorf("session expired") } diff --git a/main.go b/main.go index 893e62f..94aefe2 100644 --- a/main.go +++ b/main.go @@ -11,7 +11,7 @@ import ( ) func main() { - log.Logger = log.Logger.With().Timestamp().Caller().Logger() + log.Logger = log.Logger.With().Caller().Logger() if !utils.ShoudLogJSON(os.Environ(), os.Args) { log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: time.RFC3339}) }