AI auto-tag + legenda via fornecedores de org (P3)
MaterialAiController POST **************************** Verifica a propriedade, menta um URL de material assinado de curta duração, e chama o endpoint de visão i...
Material AnalyticsController — eventos recordes + agregados
* ******************************* (registro) + GET /analytics (contagem por material por Tipo + totais de org).
MaterialReviewController — mapa de estado + estado definido
GET /api/media/materials/reviews (org-wide imgId→status map) + POST para definir o status de um material (validada, revisor-faixada, upsert).
MaterialCampaignController — CRUD + mapa de itens + adicionar/remover
/api/media/materials/campanhas: list/create/update/delete, GET/items (org-wide imgId↔campaignId map), POST /add + /remover com verificações de propriedade de or...
MaterialTagController — tag CRUD + atribua/dessinal + mapa de atribuição
/api/media/materials/tags: list/create/delete tags, GET/atribuições (org-wide imgId↔tagId mapear o espaço de trabalho se une ao lado do cliente), POST /atribuir...
Endpoints de ligação pública gerenciados (criar/lista/revoke) + service rastreado
Adiciona POST/GET /api/media/materials/links e DELETE /links/{id} apoiado pelo MaterialShareLink, e resolve os tokens gerenciados no público GET primeiro (verif...
Thumbnail materiais gerados programados em processo
Uma varredura sem cabeça não pode conduzir o oleoduto de miniatura OTK do ConversionService, então gerar uma página-0 PNG thumbnail via ImageIO logo após armaze...
Geração programada — varrer as receitas numa cadência
- CanvaScheduleController: CRUD para horários de org (receita + cadência + hora/dia + alvos sociais opcionais), calcula nextRunAt - CanvaGeneration Serviço: sem...
Receitas de preenchimento automático salvas CRUD (org- scoped)
CanvaRecipeController: GET/POST /api/media/canva/recipes + DELETE /{id} — salvar/lista/soft-delete um mapeamento de campo chamado marca-template +, escopo para ...
Preenchimento automático empresarial — modelos de marca de fusão de dados
- CanvaApiClient: list brand templates (dataset=non empty), obter dataset, trabalhos de carga de ativos, criar/obter trabalhos de preenchimento automático - Can...
URLs públicas de curta duração assinadas para ativos de marketing
Permite aos provedores sociais (Meta) e e-mail obter um material específico para um limite janela sem expor o balde de material de imagem privado. - MaterialUr...
Importar um ficheiro para o Canva como um desenho editável
- Está bem. (importação de projecto binário) - CanvaController POST /importações (multipart) → criar+poll trabalho de importação → editor ligação profunda com c...
Verificar a assinatura JWT do nav- de- retorno; actualizar o 'token'
- CanvaJwtVerifier: verificar a assinatura Ed25519 da correlação jwt contra JWKS do Canva (/connect/keys), mais aud/exp/type; chaves em cache por kird. Return-n...
Ingerir gravação, retenção/quota, uso de armazenamento, pipeline sumário
- MeetRecordingController: interna (X-Internal-Auth) ingere o ponto final do jibri finalize.sh posts terminou as gravações para. - MeetRecordingService: envia g...
Canva Connect OAuth + projeta/exportar infraestrutura
- CanvaApiClient: PKCE autorizar, troca de token/refresh/revoke, usuários, desenhos (criar/listar), trabalhos de exportação, obter byte - CanvaTokenService: tok...
Avisos de início de reunião agendados + expiração do link de hóspedes
- MeetingReminderSweep: @Scheduled varredor que dispara em tempo real Lembrete de "começar a reunião" para os membros convidados (iniciar - lembreteMinutesBefor...
Alimentação de Chats Unificados em sessões de membros/suporte/sociais
GET /api/media/sessions/chat agora aceita um filtro de `categorias' (chat, suporte, social; padrão todos) e retorna um globalmente mais recente-primeiro, mescla...
Surface pai-org temas compartilhados no popup request-suport
Os usuários do Child-org não puderam ver os tópicos de suporte compartilhados de seus pais (atribuirToOwnOrg=false) ao solicitar suporte, porque o popup somente...
Org-guarda a subscrição /topic/leaders/rt/{orgId} em tempo real
Subscribe guarda Cross-tenant para o novo tópico líder em tempo real, espelhando o existente /topic/social/feed guard: um membro só pode subscrever o seu própri...
Infraestrutura de linha de tempo unificada (persistência de alimentação, adaptadores, relé ao vivo)
SocialFeedService persiste posts/comentários no esquema MediaSession/MediaObj (reusando o modelo de chat); SocialFeedMapper constrói o fio DTOs; SocialTimelineC...
X (Twitter) + Adaptadores de discórdia
- XAdapter: Webhook Atividade de Conta (recurso CRC + x-twitter-webhooks-assinature HMAC verificar), normalizeInbound (direct message events, echo-skip), OAuth ...
M4 Meta adaptadores + OAuth + 24h janela + M2 endurecimento
- Meta adaptadores (Messenger/Instagram): corrigir caption send inválido (caption now a follow-up mensagem), bytes-upload via Graph Attachment Upload API, URI ...
Reencaminhar eventos NATS de crédito/lead-atribuition para STOMP
Subscreve security.leades.> e security.credits.>, espelha cada um para /topic/... O front-end CRM atualiza a grade Leads-Disponível, os campos Gerenciar-Credits...
Add GET /sessions/{guid}/members endpoint with display-name priority
Returns member list with name resolved via usernameAlias → fullName → alias → username, matching the same priority as the chat sessions list. This feeds ChatBox...
Aumente a transmissão não lida com carga útil da ACTIVITY para atualizações da lista de chats
Paged chat list with previews, members, unread counts
that returns ChatListRowDto rows including last message preview, member summaries, per-session unread counts, and ownLastViewedAt.
Imaging proxy with HTTP Range support and per-member download tracking
On-demand translation for chat and support messages
Captures the source language for every chat / support message and adds an optional ?lang=XX param on the message-fetch endpoints plus a per-message POST /transl...
Adicionar pesquisa de presença do solicitante para agentes da lista de tickets
Contagem pendente de transmissão + não- lida na leitura do agente & envio do visitante
- * **************** agora delegados para Então, o conde... reflete sessões com mensagens e decrementos de visitantes não lidos quando o Agente chama MarkAsRead...
Adicionar /ws/public-chat-native WebSocket endpoint ao lado de SockJS
Regista um segundo objectivo STOMP sem o SockJS em /ws/public-chat-native assim que o frontend pode se conectar com um WebSocket nativo (brokerURL) sem precisar...
A transmissão não lida conta para o agente na mensagem do visitante
Depois de um visitante enviar uma mensagem de suporte, push the latest unread-counts Carga para a lista de bilhetes do agente. Emblema e atualização do contador...
Expor cidade e subdivisão no geo de visitantes
- Estender o registro GeoResult com cidades e campos de subdivisão - Switch SupportTicketService.toDTO() para usar o GeoLookupService (nível IP) pesquisa) em ve...
Mostrar a bandeira e a localização do visitante no cabeçalho do ticket de suporte
- Injete PublicChatVisitorRepository e GeoLiteLocationRepository em SupportTicketService - Popular visitanteIpAddress, visitorCode, visitorCountryName in toDTO(...
Corrigir chat público de ponta a ponta em tempo real via STOMP/NATS
- Remova a exigência interna de autenticação do PublicChatWebSocketInterceptor assim os visitantes podem se conectar diretamente usando apenas o seu item de ses...
Live pending support ticket count via NATS — notify org owner on new tickets, add pending-count REST endpoint
Add conversion progress NATS-to-STOMP relay
Relays document conversion progress from NATS to WebSocket clients. Supports both imgId-based and member-based topic routing for real-time progress updates duri...
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.
Implement webinar scheduling backend with full business logic
Adds the core webinar scheduling system to MediaService: - WebinarService: CRUD for **************** presenter assignment **************** calendar conflict ...
Add ***-authenticated API key management endpoints for public chat
Adds /api/media/public-chat-keys CRUD endpoints for managing PublicChatApiKey shown once at creation. Uses same *** auth pattern as SupportController.
Add public chat support endpoints with anonymous visitor sessions and WebSocket auth
Adds REST endpoints for public chat session creation, messaging, and visitor management. Includes PublicChatWebSocketInterceptor for token-based WebSocket auth ...
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.