Skip to content

Development

4nass edited this page Aug 19, 2026 · 1 revision

Development

Local checks

gofmt -w ./cmd ./internal
go test -race ./...
go vet ./...
golangci-lint run --timeout=5m

The repository uses golangci-lint with security checks through gosec.

Local configuration

Copy .env.example, create a random 32-byte base64 key, and set the upstream IdP URL. Use IDMUX_ENV=development only for plain HTTP tests.

Contribution rule

Keep the proxy provider-neutral. A new IdP integration must not add password, token, JWT, or business logic to the core proxy. Add a focused test for every new routing or cookie rule.

Local containers

Use a pinned Keycloak image for local tests:

KEYCLOAK_IMAGE=quay.io/keycloak/keycloak:<pinned-version>
IDMUX_ENCRYPTION_KEY=<32-byte-base64-key>
docker compose -f deploy/docker-compose.example.yml up --build

Scan local images before use:

trivy image --severity HIGH,CRITICAL --ignore-unfixed idmux-proxy:local

Clone this wiki locally