Skip to content

Conversation

manojVivek
Copy link
Contributor

Overview

Improves server resilience by allowing Dex to start even when some connectors fail to initialize. Previously, a single misconfigured connector would prevent the entire server from starting.

What this PR does / why we need it

This change prevents a single misconfigured connector from blocking the entire Dex server, improving availability in production environments where some identity providers may be temporarily unavailable or misconfigured.

@manojVivek manojVivek force-pushed the continue-server-startup-on-failures branch from ea220db to 4e95e6c Compare May 29, 2025 10:05
@brancz
Copy link
Contributor

brancz commented May 29, 2025

cc @sagikazarmark @nabokihms

@manojVivek manojVivek force-pushed the continue-server-startup-on-failures branch from 49070d8 to 6b1b2fc Compare June 13, 2025 05:56
Signed-off-by: Manoj Vivek <p.manoj.vivek@gmail.com>
@manojVivek manojVivek force-pushed the continue-server-startup-on-failures branch from 6b1b2fc to 733eadb Compare June 13, 2025 05:59
Copy link
Member

@nabokihms nabokihms left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, I tested the PR manually, and everything seems fine. I have a couple of suggestions, but otherwise it is good enough to be merged.

Some thoughts about the solution:

My initial idea was to experiment with a Kubernetes-like approach to handle OIDC providers. It retries discovery endpoint requests till a successful response in the background.

However, there are disadvantages, like it is not possible to distinguish misconfigured connectors and non-responding providers. Additionally, it adds much more changes to the code.

…s for connector failures

Signed-off-by: Manoj Vivek <p.manoj.vivek@gmail.com>
@manojVivek manojVivek requested a review from nabokihms June 16, 2025 06:37
@nabokihms nabokihms changed the title Fix: Allow server startup with partial connector failures Allow server startup with partial connector failures Jun 16, 2025
Copy link
Member

@nabokihms nabokihms left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine to me! Thank you for the contribution.

@nabokihms nabokihms merged commit 87ec9e0 into dexidp:master Jun 16, 2025
9 checks passed
xtremerui pushed a commit to concourse/dex that referenced this pull request Sep 1, 2025
<!-- Release notes generated using configuration in .github/release.yml at v2.44.0 -->

## What's Changed
### Enhancements 🚀
* Allow server startup with partial connector failures by @manojVivek in dexidp#4159
* Add recursive LDAP parent group search (AD-style hierarchy across all LDAPs) by @EthanDieterich in dexidp#4113
* feat: Add ModifyGroupNames claimMutation to oidc connector by @peschmae in dexidp#4144
* authproxy connector: add support for specifying group header separator by @a-buck in dexidp#3745
* fix: join issuer URL with discovery path without extra slash after issuer URL by @vizv in dexidp#4263
* feat: grpc api list clients by @daemonfire300 in dexidp#4202
### Bug Fixes 🐛
* 🐛 remove extra method="get" from device-code template by @tuminoid in dexidp#4145
* [oidc] pass httpClient to the TokenIdentity context by @marriva in dexidp#4223
* Resolve CVE by updating gomplate to 4.3.3 by @philBrown in dexidp#4224
* fix: device code should not require scope by @cardoe in dexidp#4203
* fix: device code pending HTTP response by @cardoe in dexidp#4204
* Allow compilation without CGO by @nabokihms in dexidp#4266
### Dependency Updates ⬆️
* Resolve CVE by updating gomplate to 4.3.2 by @nathanlaceyraft in dexidp#4146
* build(deps): bump actions/attest-build-provenance from 2.3.0 to 2.4.0 by @dependabot[bot] in dexidp#4180
* build(deps): bump golang.org/x/net from 0.40.0 to 0.41.0 by @dependabot[bot] in dexidp#4171
* build(deps): bump google.golang.org/grpc from 1.72.1 to 1.73.0 in /examples by @dependabot[bot] in dexidp#4174
* build(deps): bump github/codeql-action from 3.28.18 to 3.29.0 by @dependabot[bot] in dexidp#4179
* build(deps): bump aquasecurity/trivy-action from 0.30.0 to 0.31.0 by @dependabot[bot] in dexidp#4167
* build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by @dependabot[bot] in dexidp#4162
* build(deps): bump docker/build-push-action from 6.17.0 to 6.18.0 by @dependabot[bot] in dexidp#4155
* build(deps): bump distroless/static-debian12 from `188ddfb` to `627d6c5` by @dependabot[bot] in dexidp#4181
* build(deps): bump sigstore/cosign-installer from 3.8.2 to 3.9.0 by @dependabot[bot] in dexidp#4187
* build(deps): bump google.golang.org/api from 0.233.0 to 0.238.0 by @dependabot[bot] in dexidp#4186
* build(deps): bump docker/setup-buildx-action from 3.10.0 to 3.11.0 by @dependabot[bot] in dexidp#4185
* build(deps): bump anchore/sbom-action from 0.20.0 to 0.20.1 by @dependabot[bot] in dexidp#4184
* build(deps): bump github.com/go-sql-driver/mysql from 1.9.2 to 1.9.3 by @dependabot[bot] in dexidp#4183
* build(deps): bump the etcd group with 2 updates by @dependabot[bot] in dexidp#4175
* build(deps): bump alpine from 3.21.3 to 3.22.0 by @dependabot[bot] in dexidp#4163
* build(deps): bump google.golang.org/grpc from 1.72.1 to 1.73.0 in /api/v2 by @dependabot[bot] in dexidp#4170
* build(deps): bump docker/setup-buildx-action from 3.11.0 to 3.11.1 by @dependabot[bot] in dexidp#4189
* build(deps): bump mheap/github-action-required-labels from 5.5.0 to 5.5.1 by @dependabot[bot] in dexidp#4190
* build(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.0 in /examples by @dependabot[bot] in dexidp#4219
* build(deps): bump anchore/sbom-action from 0.20.1 to 0.20.2 by @dependabot[bot] in dexidp#4205
* build(deps): bump sigstore/cosign-installer from 3.9.0 to 3.9.2 by @dependabot[bot] in dexidp#4225
* build(deps): bump aquasecurity/trivy-action from 0.31.0 to 0.32.0 by @dependabot[bot] in dexidp#4210
* build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.0 to 4.1.1 by @dependabot[bot] in dexidp#4196
* build(deps): bump golang.org/x/crypto from 0.39.0 to 0.40.0 by @dependabot[bot] in dexidp#4214
* build(deps): bump alpine from 3.22.0 to 3.22.1 by @dependabot[bot] in dexidp#4217
* build(deps): bump the etcd group with 2 updates by @dependabot[bot] in dexidp#4213
* build(deps): bump github.com/oklog/run from 1.1.0 to 1.2.0 by @dependabot[bot] in dexidp#4199
* build(deps): bump github.com/mattn/go-sqlite3 from 1.14.28 to 1.14.29 by @dependabot[bot] in dexidp#4239
* build(deps): bump github/codeql-action from 3.29.0 to 3.29.4 by @dependabot[bot] in dexidp#4238
* build(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.2 by @dependabot[bot] in dexidp#4235
* build(deps): bump the etcd group with 2 updates by @dependabot[bot] in dexidp#4233
* build(deps): bump google.golang.org/grpc from 1.74.0 to 1.74.2 in /examples by @dependabot[bot] in dexidp#4232
* build(deps): bump anchore/sbom-action from 0.20.2 to 0.20.4 by @dependabot[bot] in dexidp#4229
* build(deps): bump google.golang.org/api from 0.238.0 to 0.243.0 by @dependabot[bot] in dexidp#4234
* build(deps): bump golang.org/x/net from 0.41.0 to 0.42.0 by @dependabot[bot] in dexidp#4227
* build(deps): bump github.com/coreos/go-oidc/v3 from 3.14.1 to 3.15.0 in /examples by @dependabot[bot] in dexidp#4246
* build(deps): bump the etcd group with 2 updates by @dependabot[bot] in dexidp#4243
* build(deps): bump distroless/static-debian12 from `627d6c5` to `cdf4daa` by @dependabot[bot] in dexidp#4253
* build(deps): bump docker/metadata-action from 5.7.0 to 5.8.0 by @dependabot[bot] in dexidp#4252
* build(deps): bump github.com/mattn/go-sqlite3 from 1.14.29 to 1.14.30 by @dependabot[bot] in dexidp#4249
* build(deps): bump github/codeql-action from 3.29.4 to 3.29.5 by @dependabot[bot] in dexidp#4244
* build(deps): bump google.golang.org/api from 0.243.0 to 0.244.0 by @dependabot[bot] in dexidp#4247
* build(deps): bump docker/login-action from 3.4.0 to 3.5.0 by @dependabot[bot] in dexidp#4254
* build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.1 to 4.1.2 by @dependabot[bot] in dexidp#4255
* build(deps): bump github.com/prometheus/client_golang from 1.22.0 to 1.23.0 by @dependabot[bot] in dexidp#4257
* build(deps): bump google.golang.org/api from 0.244.0 to 0.246.0 by @dependabot[bot] in dexidp#4258
* build(deps): bump anchore/sbom-action from 0.20.4 to 0.20.5 by @dependabot[bot] in dexidp#4272
* build(deps): bump github.com/mattn/go-sqlite3 from 1.14.30 to 1.14.32 by @dependabot[bot] in dexidp#4271
* build(deps): bump github/codeql-action from 3.29.7 to 3.29.9 by @dependabot[bot] in dexidp#4269
* build(deps): bump actions/checkout from 4.2.2 to 5.0.0 by @dependabot[bot] in dexidp#4267
* build(deps): bump golang.org/x/net from 0.42.0 to 0.43.0 by @dependabot[bot] in dexidp#4262
* build(deps): bump actions/cache from 4.2.3 to 4.2.4 by @dependabot[bot] in dexidp#4261
* build(deps): bump cloud.google.com/go/compute/metadata from 0.7.0 to 0.8.0 by @dependabot[bot] in dexidp#4259
* build(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.7 by @dependabot[bot] in dexidp#4275
* build(deps): bump google.golang.org/api from 0.246.0 to 0.247.0 by @dependabot[bot] in dexidp#4274
* chore: update ent generated code by @sagikazarmark in dexidp#4276
* feat: update Go to 1.25 by @sagikazarmark in dexidp#4277
* build(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.2 in /api/v2 by @dependabot[bot] in dexidp#4236
* build(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.7 in /api/v2 by @dependabot[bot] in dexidp#4260
* build(deps): bump actions/dependency-review-action from 4.7.1 to 4.7.2 by @dependabot[bot] in dexidp#4278
* build(deps): bump distroless/static-debian12 from `cdf4daa` to `a9f88e0` by @dependabot[bot] in dexidp#4291
* build(deps): bump github.com/beevik/etree from 1.5.1 to 1.6.0 by @dependabot[bot] in dexidp#4288
* build(deps): bump github/codeql-action from 3.29.9 to 3.29.11 by @dependabot[bot] in dexidp#4287
* build(deps): bump google.golang.org/grpc from 1.74.2 to 1.75.0 in /examples by @dependabot[bot] in dexidp#4282
* build(deps): bump google.golang.org/grpc from 1.74.2 to 1.75.0 by @dependabot[bot] in dexidp#4281
* build(deps): bump google.golang.org/grpc from 1.74.2 to 1.75.0 in /api/v2 by @dependabot[bot] in dexidp#4280
* build(deps): bump google.golang.org/api from 0.247.0 to 0.248.0 by @dependabot[bot] in dexidp#4283
* build(deps): bump google.golang.org/protobuf from 1.36.7 to 1.36.8 by @dependabot[bot] in dexidp#4285
* build(deps): bump actions/dependency-review-action from 4.7.2 to 4.7.3 by @dependabot[bot] in dexidp#4290
* build(deps): bump google.golang.org/protobuf from 1.36.7 to 1.36.8 in /api/v2 by @dependabot[bot] in dexidp#4286
* build(deps): bump actions/attest-build-provenance from 2.4.0 to 3.0.0 by @dependabot[bot] in dexidp#4296
* build(deps): bump aquasecurity/trivy-action from 0.32.0 to 0.33.0 by @dependabot[bot] in dexidp#4293
* build(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1 by @dependabot[bot] in dexidp#4292

## New Contributors
* @nathanlaceyraft made their first contribution in dexidp#4146
* @manojVivek made their first contribution in dexidp#4159
* @marriva made their first contribution in dexidp#4223
* @peschmae made their first contribution in dexidp#4144
* @philBrown made their first contribution in dexidp#4224
* @a-buck made their first contribution in dexidp#3745
* @vizv made their first contribution in dexidp#4263
* @daemonfire300 made their first contribution in dexidp#4202

**Full Changelog**: dexidp/dex@v2.43.0...v2.44.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants