🔴 Release v2.78.2
⭐⭐⭐ Complex Complexity • 5 commits • 110 files changedAdvanced webhook filtering controls and comprehensive logging refinements. This release introduces intelligent entity filtering for webhooks—giving administrators precise control over which community events trigger integrations—plus significantly improved logging infrastructure to reduce noise and enhance observability across authentication flows.
What’s New
- Webhook Entity Filtering - Configure webhooks to fire only for specific communities, users, or rewards using include/exclude modes, enabling granular control over event routing to third-party systems
- Improved Logging Interface - Standardized logger interface matching industry standards (BetterStack/Logtail) with reduced noise from authentication events for cleaner observability in development and production
- Enhanced Webhook UI - New configuration panel in admin settings with comprehensive filtering options and improved form handling for managing webhook event routing
- Translation Script Enhancement - Improved CI/CD translation pipeline with hardcoded text detection to prevent untranslated content from reaching production
- User App Cache Reliability - Fixed cache invalidation logic in user app to ensure fresh data loads after state changes, preventing stale content display
Apps Updated
User App
✓ Updated - 21 changes
API
✓ Updated - 15 changes
Admin
✓ Updated - 2 changes
MCP Server
✓ Updated - 1 change
Website
— No changes
Games
✓ Updated - 3 changes
Detailed Changes
Webhook Intelligence & Filtering
Webhook Intelligence & Filtering
Entity Filtering for Granular Event ControlWebhook configurations now support intelligent entity filtering, allowing administrators to precisely control which community events trigger integrations. This includes two filtering modes:
- Include Mode: Fire webhooks only for specified entities (communities, users, rewards)
- Exclude Mode: Fire webhooks for all entities except those in the exclusion list
- New “Entity Filtering” section in webhook settings with intuitive entity selection
- Mode toggle between include/exclude filtering strategies
- Live validation of entity IDs during configuration
- Test configuration interface to verify filtering behavior before activation
- New
should-fire-webhookutility with comprehensive path extraction supporting dot-notation and array wildcards - 776+ lines of test coverage for filtering logic across 45+ event type combinations
- Improved webhook handler service with entity filtering integration
- Schema validation for webhook entity filter configurations
- Multi-tenant administrators can isolate webhook events by community, preventing cross-organization data leaks
- Integration teams can focus webhook processing on relevant subsets of events, reducing downstream costs
- Event routing becomes predictable and auditable through clear filtering rules
apps/admin/app/(admin)/admin/settings/organisation/components/webhooks-settings/webhooks-tab.tsx- UI for entity filtering configurationpackages/services/util/webhook/should-fire-webhook.util.ts- Filtering engine with path extractionpackages/services/util/webhook/__tests__/should-fire-webhook.util.test.ts- Comprehensive test coveragepackages/models/dto/platform-config/model/configs/webhook-entity-filter-dto.model.ts- DTO for filter configuration
Logging & Observability
Logging & Observability
Standardized Logger InterfaceImplemented a unified logger interface matching industry standards (BetterStack/Logtail), ensuring consistent behavior between production and development environments. All logging calls now follow the standard pattern:
log.info("message", { context: "data" }).Reduced Authentication Noise- Downgraded verbose authentication error logs to debug level
- Consolidated duplicate error reporting in auth flows
- Auth provider logging now only surfaces meaningful exceptions
- Cleaner Sentry error reporting with reduced alert fatigue
- Production environment uses Logtail/BetterStack integration
- Development environment uses console with matching interface
- Type-safe logging with proper context typing
- Support for debug, info, warn, and error log levels
- Auth adapter cleanup: 211 insertions, 212 deletions (simplified with improved logging)
- Auth callback consolidation: 37 insertions, 37 deletions
- Custom Mongo adapter: 212 insertions, 212 deletions
- Sentry configuration updates for both API and user app
- Logger interface in observability package
- Local Development: Cleaner console output focused on critical issues, easier debugging
- Production Monitoring: Reduced noise in error tracking allows easier identification of real issues
- Alert Management: Fewer false positives in monitoring systems means faster incident response
packages/observability/log.ts- Standardized logger interfaceapps/user/auth/general/general.config.ts- Enhanced auth loggingapps/api/sentry.server.config.ts- Improved error reporting- Multiple auth provider files with consolidated logging
User App
User App
Cache Invalidation ReliabilityFixed critical issue where user app cache wasn’t properly invalidating after state changes. Users would see stale data when:
- Switching between challenges
- Updating personal profile information
- Redeeming rewards
- Detects hardcoded text that should be externalized to translation files
- Flags component strings that bypass the i18n system
- Prevents merge of translations with missing keys
- Provides clear feedback on untranslated content locations
- Challenge completion view: Enhanced logging for completion flow
- Action wizard: Improved error handling and user feedback
- Badge display: Better visual feedback during operations
- Leaderboard filters: Cleaner state management
apps/user/app/api/link/route.ts- Cache handling improvementsapps/user/app/api/oauth-link/route.ts- Auth cache fixesapps/user/components/challenge/challenge-complete.tsx- Completion UX- Multiple Lite UI components for improved i18n compliance
API & Backend Services
API & Backend Services
Cache Invalidation PipelineUpdated user app cache invalidation workflow in GitHub Actions CI/CD pipeline:
- Improved cache key generation for consistent invalidation
- Enhanced staging and production pipeline cache handling
- More reliable deployment-time cache refresh mechanism
admin.webhooks.getWebhookConfigs- Retrieve current webhook configurations with filtering settingsadmin.webhooks.updateWebhookConfigs- Persist webhook configuration changes with validation- Comprehensive test coverage (221+ new assertions) for configuration updates
WebhookEntityFilterDtoModel- DTO for filter configuration with validationWebhookPlatformConfigDtoModel- Updated to include entity filter settingsEntityFilterModeEnum- Enumeration for include/exclude modes- Full OpenAPI documentation for webhook configuration endpoints
apps/api/trpc/routers/admin/webhooks/get-webhook-configs.trpc.ts- Config retrievalapps/api/trpc/routers/admin/webhooks/update-webhook-configs.trpc.ts- Config updatesapps/api/trpc/utils/user-app-cache-invalidation.ts- Cache pipeline fixpackages/models/dto/platform-config/model/configs/webhook-platform-config-dto.model.ts- Schema updates
Design System & Models
Design System & Models
Platform Configuration ModelsExtended platform configuration models to support webhook entity filtering and improved type safety throughout the admin interface.Files Changed:
packages/models/enum/platform-config/entity-filter-mode.enum.ts- Filter mode enumerationpackages/models/dto/platform-config/model/configs/webhook-entity-filter-dto.model.ts- Filter DTO with validationpackages/models/enum/platform-config/index.ts- Updated exports
Games & MCP Server
Games & MCP Server
Translation & i18n ComplianceUpdated games app and MCP server components with proper internationalization support:
- Fixed hardcoded text in game startup error handling
- Improved game configuration error messages with i18n support
- Enhanced MCP image tool error messaging
apps/games/src/components/game-start-error.tsx- Error message i18napps/games/src/db/game-config.ts- Configuration message updatesapps/mcp-server/src/tools/image/tool.ts- Tool messaging
Business Impact
For Platform Administrators
Granular webhook control means you can now route different community events to different systems without creating multiple webhook endpoints. Use include mode to send specific community events to a partner system, or exclude mode to filter out test communities from production integrations.For Integration Teams
The entity filtering feature significantly reduces data processing costs. Instead of filtering events on the receiving end, let Nudj’s webhook engine do the work—only events you need will be sent to your systems.For Developer Experience
The improved logging infrastructure makes troubleshooting significantly faster. Authentication issues are no longer buried in noise, and the standardized interface means consistent behavior across dev and prod environments.For Operations Teams
Better cache reliability in the user app ensures end users always see current data. The translation detection system prevents internationalization regressions from reaching customers.Technical Notes
Webhook Filtering Architecture
The filtering system uses a configurable path-based extraction pattern that works with any event structure:Logger Interface Pattern
The standardizedAppLogger interface ensures production and development logging are interchangeable:
Cache Invalidation Strategy
User app cache invalidation now properly handles distributed cache busting in CI/CD pipelines, ensuring fresh content delivery on deployment without risking stale data during development.Contributors
@SaadK943 commits • +2,459/-1,054 lines
@nudj-changelog-bot[bot]1 commit • AutomationRelease Stats
| Metric | Value |
|---|---|
| Total Commits | 5 |
| Lines Added | +5,026 |
| Lines Removed | -1,318 |
| Files Changed | 110 |
| Release Size | Massive |
| Complexity | ⭐⭐⭐ Complex |
v2.78.2 deployed on December 15, 2025


