Fluxo resumido

  1. Cliente envia POST {{BASE_URL}}/assets/create com url e flags need*.
  2. A URL é validada e sanitizada (url-sanitizer).
  3. Se needCheckExisting, o repositório tenta localizar asset pela URL (findByUrl interno).
  4. Se needCheckUrl, roda MediaHealthChecker (HEAD / range, cache).
  5. createAsset no repositório classifica o tipo de URL (MinIO, Kutt, externa) e grava em public.assets.
  6. Opcionalmente Kutt cria short_url; opcionalmente descrição de mídia via helpers e fila RabbitMQ quando configurado.
  7. Resposta JSON com created / alreadyExists / data (e healthCheck se aplicável).

Componentes principais

  • PostgreSQL (public.assets)
  • Encurtador Kutt (variável TOLKY_KUTT_API_KEY)
  • Armazenamento MinIO quando uploads/cópias são usados pelos fluxos de serviço
  • RabbitMQ para filas opcionais (queueMode, consumer de inserção quando habilitado)
  • MediaHealthChecker para checagem de links

Integrações como análise LLM de mídia são acopladas via needMediaDescription e workers; não há dependência de um arquivo mediaAnalysisV3.js neste microserviço.