A minimalist backend for https://gitea.dwysokinski.me/twhelp/sessions-ext.
renovate
bf55175494
continuous-integration/drone/push Build is passing
Details
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) | require | patch | `v1.51.0` -> `v1.51.1` | --- ### Release Notes <details> <summary>golangci/golangci-lint</summary> ### [`v1.51.1`](https://github.com/golangci/golangci-lint/blob/HEAD/CHANGELOG.md#v1511) [Compare Source](https://github.com/golangci/golangci-lint/compare/v1.51.0...v1.51.1) 1. updated linters - `ginkgolinter`: from 0.7.1 to 0.8.1 - `ineffassign`: bump to HEAD - `musttag`: from 0.4.3 to 0.4.4 - `sqlclosecheck`: from 0.3.0 to 0.4.0 - `staticcheck`: bump to v0.4.0 - `wastedassign`: from 2.0.6 to 2.0.7 - `wrapcheck`: from 2.7.0 to 2.8.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTQuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExNC4xIn0=--> Co-authored-by: Renovate <renovate@dwysokinski.me> Reviewed-on: #42 Co-authored-by: renovate <renovate@noreply.localhost> Co-committed-by: renovate <renovate@noreply.localhost> |
||
---|---|---|
build/docker/sessions | ||
cmd/sessions | ||
docs | ||
internal | ||
k8s | ||
.commitlintrc.yml | ||
.dockerignore | ||
.drone.yml | ||
.editorconfig | ||
.envrc | ||
.gitignore | ||
.golangci.yml | ||
.pre-commit-config.yaml | ||
LICENSE | ||
Makefile | ||
README.md | ||
go.mod | ||
go.sum | ||
renovate.json | ||
skaffold.yml |
README.md
sessions
A minimalist backend for sessions-ext.
Getting started
Development
Setting up the environment
Prerequisites:
- Go (>= 1.19)
- Node.js (LTS, needed for commitlint)
- Kubernetes (>= 1.25.0)
- minikube
- Docker Desktop
- Docker CLI
- Skaffold
- pre-commit
- IDE/Code editor (e.g. Goland, VSCode, vim, neovim)
- direnv (optional, but recommended)
# if you have direnv installed
direnv allow
# install git hooks and required tools
make install
# run all required services
skaffold run --port-forward=true --tail=true
# stop all of them
skaffold delete
Running unit tests
At least one of the following is required to run unit tests:
- Docker (dockertest will spin up a database)
- Postgres database
# Docker
go test -v ./...
# Postgres database
TESTS_DB_DSN=postgres://sessions:sessions_pass@127.0.0.1/sessions go test -v ./...
Creating a new database migration
# create a migration
go run ./cmd/sessions/main.go db migration create go migration 1
Configuration options
Configuration options can be specified via environment variables.
Env variable | Default | Description |
---|---|---|
APP_MODE |
development |
Whether to use development or production settings |
DB_DSN |
Required. Only Postgres is supported. Example: postgres://user:password@host:5432/dbname?sslmode=disable (https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING) |
|
DB_MAX_OPEN_CONNECTIONS |
5 |
Maximum number of open connections to the database (https://pkg.go.dev/database/sql#DB.SetMaxOpenConns) |
DB_MAX_IDLE_CONNECTIONS |
2 |
Maximum number of connections in the idle connection pool (https://pkg.go.dev/database/sql#DB.SetMaxIdleConns) |
DB_CONNECTION_MAX_LIFETIME |
3m |
Maximum amount of time a connection may be reused (https://pkg.go.dev/database/sql#DB.SetConnMaxLifetime) |
API_SWAGGER_ENABLED |
false |
Enables the API documentation endpoints (e.g. /api/v1/swagger/index.html , /api/v1/swagger/doc.json ) |
API_SWAGGER_HOST |
Host (name or ip) serving the API (e.g. localhost:8080) | |
API_SWAGGER_SCHEMES |
http,https |
Comma-separated list of protocols |
API_CORS_ENABLED |
false |
Enables CORS headers |
API_CORS_ALLOWED_ORIGINS |
Comma-separated list of allowed domains | |
API_CORS_ALLOW_CREDENTIALS |
false |
Whether requests with credentials are allowed |
API_CORS_ALLOWED_METHODS |
HEAD,GET,POST,PUT |
Comma-separated list of allowed methods |
API_CORS_MAX_AGE |
300 |
Max time to cache response (seconds) |
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Dawid Wysokiński - contact@dwysokinski.me