Uitsmijter Roadmap 0.10.0

Uitsmijter 0.10.0 Release-Plan

We’re pleased to announce the release of Uitsmijter 0.10.0, which brings significant architectural improvements, new features, and enhanced stability for production deployments.

Key Features

OpenID Connect Discovery 1.0

Uitsmijter now implements the OpenID Connect Discovery specification. Applications can automatically discover authentication endpoints and capabilities through the /.well-known/openid-configuration endpoint. This eliminates manual configuration and improves OAuth2 client integration.

Multi-tenant support is fully integrated - each tenant receives its own discovery configuration, enabling independent configuration for SaaS deployments serving multiple organizations.

Swift 6.2 Migration

The codebase has been fully migrated to Swift 6.2, introducing strict concurrency checking and actor isolation. This migration provides:

  • **Thread safety **: Actor-based concurrency prevents data races through compile-time verification

  • **Performance improvements **: Enhanced optimizer generates more efficient async code

  • **Reliability **: Eliminates race conditions that only appear under production load

Critical components including JavaScriptProvider and AuthCodeStorage are now implemented as actors, ensuring thread-safe operation without lock contention.

Redis 8.2.2 with Sentinel Support

Session management has been upgraded to Redis 8.2.2 with Sentinel for high availability:

  • Automatic failover when Redis instances fail

  • Zero startup blocking - connection pool establishment doesn’t delay application startup

  • Graceful handling of DNS resolution failures in Kubernetes environments

  • Memory-only default configuration for simplified setup

For Developers

Test Filtering

The tooling system now supports filtered test execution:


# Run specific unit tests

./tooling.sh test ServerTests

# Filter e2e tests by scenario

./tooling.sh e2e --filter "login"

# Combine with fast mode for rapid iteration

./tooling.sh e2e --dirty --fast --filter "OAuth"

Enhanced Documentation

Comprehensive DocC comments document implementation details and architectural decisions throughout the codebase. This documentation explains not just what code does, but why it’s implemented that way, providing context for maintenance and extension.

Improved Development Workflow

Build optimization reduces incremental build times through improved module boundaries and Docker layer caching. The --dirty flag enables rapid iteration by skipping unnecessary rebuild steps.

Test isolation improvements eliminate flaky tests. Tests no longer depend on execution order or shared global state. Parallel execution and filtering make TDD practical even with large test suites.

CI-friendly reproducible builds use Docker-based tooling to ensure consistency across environments. The build process is deterministic - identical inputs produce identical outputs.

Technical Implementation

**Actor-Based Concurrency **: The migration to actors represents a fundamental improvement in reliability. JavaScriptProvider executes scripts in isolated contexts, preventing concurrent requests from interfering. AuthCodeStorage serializes cleanup operations with storage and retrieval, eliminating race conditions during garbage collection.

**Async/await Throughout **: The codebase uses async/await patterns instead of callbacks, improving code readability and error handling. Authentication flows read as sequential operations rather than nested callbacks.

**Zero Warnings Policy **: All compiler warnings and SwiftLint violations have been resolved. This discipline reduces cognitive load and makes the codebase easier to maintain.

**Stability Improvements ** (170+ commits):

  • Fixed race conditions in S3 template loading through request coalescing

  • Resolved MainActor deadlocks in entity loading by separating network operations from state updates

  • Improved PKCE validation flow to eliminate timing-related authentication failures

  • Enhanced error handling with contextual logging throughout the codebase

  • Eliminated flaky tests through proper fixture isolation and synchronization

Changelog Highlights

Features

  • OpenID Connect Discovery 1.0 endpoint at /.well-known/openid-configuration

  • E2E test filtering with --filter flag

  • Enhanced Kubernetes API with automatic retry logic

  • Improved Helm charts with default resource limits

Fixes

  • Redis connection stability - non-blocking connection pool, graceful DNS failure handling

  • S3 template loading race condition in multi-tenant environments

  • PKCE validation order in OAuth2 authorization flow

  • JSON encoder/decoder date strategy mismatch

  • MainActor deadlock in EntityCRDLoader initialization

  • Stdout buffering in containerized environments

Updates

  • Swift 6.2 with full concurrency support

  • Redis 8.2.2 with Sentinel support

  • Buildbox 4.1.1 with improved Swift 6.2 support

  • SwiftLint with auto-fix capabilities

  • FileMonitor 1.2.1 with concurrency fixes

Code Quality

  • Comprehensive DocC documentation

  • Zero SwiftLint violations

  • Zero compiler warnings (:cloud_with_rain:)

  • Improved test coverage with eliminated flaky tests

  • Reorganized controller structure for better maintainability

Installation

The release will be available through our Helm repository:


helm repo add uitsmijter https://charts.uitsmijter.io

helm install uitsmijter uitsmijter/uitsmijter

Docker images are available at:


ghcr.io/uitsmijter/uitsmijter:0.10.0

Documentation

Release Notes

Full release notes and migration guide: https://github.com/uitsmijter/Uitsmijter/releases/tag/ce-0.10.0

Release time

**We are currently testing the new version. It will be released as soon as it has been fully integrated and has undergone several peer reviews. **