Five days after 0.6.2, we’re releasing 0.6.3 with a focus on internal improvements and bug fixes. While there are no headline user-facing features, this release strengthens the codebase with better code organization, consolidated test infrastructure, and fixes for edge cases in customer user handling.
Type Conversion Package
We’ve introduced a new internal/convert package that consolidates duplicate type conversion functions scattered throughout the codebase:
ToInt(),ToUint(),ToString()functions with fallback values- Handles all numeric types (int8-64, uint8-64, float32/64) and string parsing
- Breaks a circular dependency between the
sharedandmiddlewarepackages
This is pure housekeeping—no behaviour changes for end users, but it makes the code more maintainable and testable.
Test Infrastructure Consolidation
A significant internal improvement: tests now authenticate the same way production does. Previously, test suites used a separate authentication bypass; now there’s a single YAML route loader for both production and tests.
What changed:
internal/routing/loader.gois now the single source of truth for route loading- All API tests use centralized auth helpers:
GetTestAuthToken(t)andAddTestAuthCookie(req, token) - Test database setup properly creates OTRS-compatible permissions (groups, roles, queue access)
This means bugs that would slip through tests due to different auth paths are now caught. The test suite is more reliable and closer to real-world conditions.
Bug Fixes
Customer User Lookup by Login or Email
Fixed “Customer user not found” errors in ticket zoom when customer_user_id contains an email address instead of a login.
Background: Tickets may store either the customer’s login name or email in the customer_user_id field (depending on how the ticket was created). Previously, lookups only matched on login, causing errors when the email was stored.
Fix: Customer user queries now match on login = ? OR email = ?, handling both cases gracefully. Updated in:
- Ticket detail handlers
- Notification context
- Agent ticket actions
- Ticket creation with attachments
Queue Access in Tests
Fixed “You do not have access to any queues” errors in the test suite. Test users now have proper group_user records with ‘rw’ permission, and queue records include group_id for permission checks.
Test Database Connection
Fixed “sql: database is closed” errors in attachment tests by ensuring fresh DB connections after WithCleanDB(t) calls.
UI Test Fixes
Several UI tests were updated:
TestNavigationVisibility,TestAccessibility, andTestErrorPagesnow include proper authentication- Corrected route paths (
/ticket/newnot/tickets/new) - Simplified navigation test to focus on admin portal
Upgrade Notes
If you’re coming from 0.6.2:
- Pull the new images:
docker compose pull - Recreate containers:
docker compose up -d --force-recreate - For Kubernetes:
helm upgrade gotrs oci://ghcr.io/gotrs-io/charts/gotrs --version 0.6.3
No database migrations required. This is a safe, incremental upgrade.
What’s Next
With the internal improvements in place, we’re continuing toward 0.7.0 with a focus on statistics, reporting, and REST API v2. The consolidated test infrastructure will help us ship these larger features with more confidence.
- Source & containers: GOTRS on GitHub
- Full changelog: CHANGELOG.md
- Helm chart:
oci://ghcr.io/gotrs-io/charts/gotrs
Questions? Feedback? Join our Discord and let us know what you think!