Add debug logging and robust rights parsing for webinar controller
Adds info/warn logging for session data and rights on POST /types to diagnose 403 errors. Also adds fallback parsing for rights stored as JSON strings in Redis ...
Align field name to isAvailableToChildren and enhance advance booking UI
Fixes 400 Bad Request when creating webinar types by sending isAvailableToChildren to match the Java DTO field name (Lombok generates getIsAvailableToChildren f...
Merge pull request #3642 from ****************
Set tracker’s fetch call priority to low
Make webinar settings forms and table fill available content area
Removes maxWidth constraint from the details form so it fills the full width. Makes the types table and its container use flex layout to fill the available heig...
Widen formStrategy state type to string for TypeScript compatibility
The const assertion on WebinarPresenterStrategy made useState infer a literal type, causing a type mismatch with the string prop setter.
Redesign webinar settings from dialog-based to sub-page navigation
Replaces popup dialogs and separate accordion sections with a two-level inline navigation flow: - Level 1: clean webinar types table with click-to-navigate - Le...
Add minimum advance booking field to webinar settings UI
Adds a number input for configuring how far in advance a slot must be to allow reservations, with helper text explaining the field.
Enforce minimum advance booking when filtering available slots
Filters out slots that fall within the configured minAdvanceBookingMinutes window, and persists the field on create/update of webinar types.
Add minimum advance booking field to webinar type
Adds minAdvanceBookingMinutes to WebinarType entity and DTOs, allowing admins to require slots be booked a minimum time in advance (e.g., 24 hours). Slots close...
Update WebinarReminderJob to use renamed repository method
Calls **************** with a 24-hour max window instead of the removed findWebinarsWithDueReminders method.
Replace invalid JPQL temporal arithmetic with application-layer filtering
Hibernate 6 rejects subtracting a Long from an Instant in JPQL. Replaced findWebinarsWithDueReminders (which did nanosecond arithmetic in the query) with ******...
Add PUBLIC_WEBINAR scope toggle to API key management UI
Adds the Public Webinar scope option with VideoCall icon to the API Access settings page, allowing admins to enable webinar API access per key.
Enforce PUBLIC_WEBINAR scope on public webinar endpoints
Adds scope validation check before forwarding public webinar requests to MediaService, returning 403 if the API key lacks PUBLIC_WEBINAR scope.
Add PUBLIC_WEBINAR scope to API key system
Adds a new ApiKeyScope.PUBLIC_WEBINAR enum value to gate access to public webinar scheduling, joining, and cancellation endpoints.
Add public webinar cancellation page with org-branded styling
Adds /cancel?inv={token} page for public attendees to cancel webinar registrations. Includes sidecar API proxy endpoints, nginx routing, and a fully branded can...
Redesign demo page with webinar scheduling integration
Replaces the placeholder demo form with a three-phase booking flow: 1. Lead capture form (creates lead with KamoCRM Platform market) 2. Webinar scheduling (join...
Add webinar scheduling UI with admin settings and member views
Implements the full webinar frontend in kamo-internal: - WebinarSettingsTab: admin CRUD for webinar types, presenter pools, reminder intervals, availability s...
Add webinar reminder job with NATS event publishing
Adds WebinarReminderJob (runs every minute) that checks for due webinar reminders based on configured intervals, publishes daemon.webinar.reminder events via NA...
Add webinar gateway routes for authenticated and public endpoints
Routes /api/webinar/** to MediaService for authenticated webinar operations and /api/public/webinar/** with API key validation for public scheduling and cancell...
Implement webinar scheduling backend with full business logic
Adds the core webinar scheduling system to MediaService: - WebinarService: CRUD for **************** presenter assignment **************** calendar conflict ...
Add webinar type and lead market seed data for KamoCRM demo
Adds seed data initialization for the webinar scheduling system: - "KamoCRM Software Introduction Demo" webinar type (45min, PRIORITY strategy) - Reminder inter...
Add webinar scheduling system entities, repositories, DTOs, and enums
Introduces the complete data model for the webinar scheduling system: - 9 JPA entities: WebinarType, WebinarPresenter, WebinarReminder, WebinarAvailabilitySlo...
Pass pre-fetched overview data to StatusResponseTimes to prevent redundant fetch failure
Normalize Quill HTML output for consistent email rendering
Route all email body content through normalizeQuillHtmlForEmail and wrapBodyForEmail before sending, ensuring consistent HTML output whether or not a template i...
Separate support settings from member-level support page into dedicated settings page
- Remove Settings tab from /support page, keeping only Tickets and Analytics - Add sub-tabs to Analytics: Overview and Status & Response Times (moved from setti...
Add dynamic Help & Tips panel and webhook URLs to provider integrations
- CommerceProviderSetup now uses HelpTipsOverrideContext to show contextual help that changes based on the current view (list, selector, or per-provider) - Co...
Remove RestTemplate bean dependency from BaseProviderHttpClient
BaseProviderHttpClient now creates its own RestTemplate internally instead of requiring one from the application context, fixing startup crash in SecurityServic...
Add internal auth secret for public catalog API proxy
Add **************** to the SecurityService deployment so the APIService can authenticate when proxying public subscription catalog and promotions requests.
Include SUBSCRIPTION_CATALOG in default scopes fallback
When MediaService doesn't return scopes in the validation response, default to including both PUBLIC_CHAT and SUBSCRIPTION_CATALOG scopes. This ensures public c...
Download resultSvg directly without any manipulation
The pipeline SVG already has the background removed. Download it as-is.
Strip white background from SVG before download for true transparency
Parses the vectorized SVG and removes full-size white rect/path elements that the vectorizer generates from the original background, producing a genuinely trans...
Download transparent background-removed PNG instead of white-background SVG
The preview shows the background-removed PNG with transparency, but the download was providing the vectorized SVG which bakes the background as white paths. Now...
Add download SVG button to logo vector converter for mid-process export
Send firstName/lastName directly to create account endpoint
Backend now stores contact fields directly on Account — no User lookup needed.
Account endpoints use direct contact fields, no User required
POST /customers now saves firstName, lastName, email, phone, address directly on Account. PUT /customers/{uid} updates all direct fields. Display name, email, p...
Build complete provider integrations tab for retail e-commerce sync
Add full UI for managing 10 e-commerce provider integrations (Shopify, BigCommerce, WooCommerce, Wix, Ecwid, Squarespace, Magento, Shift4Shop, PrestaShop, OpenC...
Add commerce webhook forwarding endpoint for retail provider integrations
Add retail provider integration endpoints for connection testing, sync, capabilities, and webhooks
Implement complete retail provider integration system with 10 e-commerce providers
Add full adapter implementations for Shopify, BigCommerce, WooCommerce, Wix, Ecwid, Squarespace, Magento, Shift4Shop, PrestaShop, and OpenCart. Includes HTTP cl...
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.