Skip to content

Releases: Bulletdev/prostaff-api

1.0.4

23 Apr 12:11
9503d2d

Choose a tag to compare

v1.0.4 - Pro Match Data Lake & Competitive Intelligence

Highlights

Match Detail View + Elasticsearch Data Lake

  • New GET /competitive/pro-matches/match-preview — per-game picks, KDA, gold, CS, DMG from Elasticsearch for any recent series
  • New GET /competitive/pro-matches/es-series — full H2H history between two teams across all leagues
  • 97K+ pro games (2014–2026) indexed from Oracle's Elixir across all major leagues (LCK, LPL, LEC, LCS, CBLOL, and more)
  • Prefix wildcard fix on win_team — cross-source team name mismatches (e.g. "FlyQuest" vs "FlyQuest NZXT") resolved correctly

Multi-League Historical Backfill

  • CBLOL, CBLOL Academy and Circuito Desafiante now auto-sync daily via dedicated Sidekiq cron jobs
  • HistoricalBackfillJob accepts league: kwarg — each league runs independently with staggered schedules
  • Backfill is fully resumable — re-runs skip already-completed tournaments

PandaScore Integration

  • Upcoming and recent pro matches from PandaScore
  • Match preview drawer wires PandaScore series to Elasticsearch game data

New Features

  • ProStaff Events — organization-wide event system
  • Multi-roster — organizations can manage multiple active rosters
  • ArenaBR Tournaments — full double-elimination bracket with check-in, result reporting and admin dispute resolution
  • Scrims — real-time lobby chat (Action Cable), live popup, result reports
  • Riot Gateway — Go-based internal proxy replacing direct Riot API calls; circuit breaker (3-state, Redis-backed) protects against cascade failures
  • Response cache layer — Redis cache on 6 high-traffic endpoints (TTL 5–30 min), org-scoped, with X-Cache-Hit header
  • Mailing — password reset and transactional email templates
  • Scouting → Hire — hire player directly from scouting target
  • Team tag on organizations
  • Season history for scouting targets
  • Tier thresholds for player classification

Fixes & Improvements

  • Semgrep + Brakeman clean (0 HIGH/CRITICAL)
  • Healthcheck, SMTP, dead job queue, Sidekiq concurrency and DB pool fixes
  • MatchFilterQuery extracted as standalone object; cache invalidation hardened
  • Roster import edge cases resolved
  • PostgreSQL connection pooling improved (PgBouncer session mode)
  • Architecture diagram auto-update workflow

Full Changelog: 1.0.3...1.0.4

1.0.3

23 Mar 14:42

Choose a tag to compare

[1.0.3] - 2026-03-23

Added

Support System

  • Full support ticket lifecycle: create, view, update, close, reopen
  • Support ticket messages with types: user, staff, system, chatbot
  • Staff dashboard with real-time stats (open, in_progress, waiting_user, urgent, unassigned, my tickets)
  • Staff analytics: tickets created/resolved, avg response time, avg resolution time, resolution rate, trending issues by category
  • Ticket assignment and resolution by staff members with audit logging
  • Chatbot integration (OpenAI) on ticket creation with FAQ suggestions and LLM solution

File Attachments (S3)

  • POST /api/v1/support/uploads — authenticated file upload endpoint
  • Supabase S3-compatible storage via aws-sdk-s3
  • Validation: allowed MIME types (image/*, PDF, TXT, CSV), max 10MB per file
  • Pre-signed URL generation (1h expiry) on message serialization
  • Attachments stored as JSONB on support_ticket_messages

Internal Messenger

  • Real-time team chat via Action Cable (WebSockets)
  • JWT authentication over WebSocket query param
  • Organization-scoped message streams
  • REST endpoint for message history

Mailer

  • Contact form email delivery via SMTP
  • Conditional mailer (no-op when SMTP not configured)

Feedback

  • POST /api/v1/feedbacks — user feedback submission
  • POST /api/v1/feedbacks/:id/vote — upvote feedback items

AI Intelligence Module

  • Draft analysis and insights powered by OpenAI
  • Aggressive timeout (<10s) to prevent blocking requests

Changed

  • Support ticket category validation now includes getting_started
  • Support ticket status field uses waiting_user (renamed from waiting_client)
  • SupportTicketMessage#create_system_message falls back to ticket owner when no staff assigned
  • tickets_controller serializer now includes attachments with signed URLs on all messages
  • message_params strong params updated to accept structured attachment objects (%i[key filename content_type size])

Fixed

  • SupportTicket#ticket_number — removed unsafe navigation chain causing RuboCop SafeNavigationChainLength offense
  • StaffController#calculate_dashboard_stats — corrected waiting_client to waiting_user key
  • UploadsController — corrected unless modifier style per RuboCop Style/IfUnlessModifier
  • Mail logger warning in production (conditional SMTP setup)

Security

  • Upload endpoint requires authentication (authenticate_request! via BaseController)
  • File type whitelist enforced server-side (rejects application/octet-stream and other binary types)
  • S3 credentials stored exclusively in environment variables, never in source code

What's Changed

Full Changelog: 1.0.2...1.0.3

1.0.2

17 Oct 19:33

Choose a tag to compare

MVP INICIAL

  • SISTEMA MODULAR
  • CODEBASE PRONTA PARA TIMES TIER 3
  • TODAS AS FUNCIONALIDADES OK

DASHBOARD
ROSTER
ANALYTICS
SCOUTING
SCHEDULE
VOD REVIEW

ROADMAP

  • ADICIONAR SEPARAÇÃO PARA TIMES TIER 1 E 2
  • ANÁLISES DE JOGOS COMPETITIVOS
  • ADICIONAR MODULO DE COMPARAÇÃO DE TIMES
  • MELHORAR VOD REVIEW, PLAYER INTERNO E ETC
  • ADICIONAR CHAT DE TEXTO E VOZ PROPRIO

What's Changed

Full Changelog: 1.0.1...1.0.2

1.0.1

17 Oct 06:52
c3309d1

Choose a tag to compare

Criar release antes de modularizar a aplicação

Estado Atual:

app/
├── controllers/api/v1/ (18 controllers)
├── models/ (16 models)
├── services/ (2 services)
├── jobs/ (3 jobs)
├── serializers/ (11 serializers)
└── modules/ (70+ pastas vazias)

Estado Desejado:

app/
├── controllers/
│ └── application_controller.rb
├── models/
│ └── application_record.rb
└── modules/
├── authentication/
├── players/
├── matches/
├── analytics/
├── scouting/
├── schedules/
├── vod_reviews/
├── team_goals/
└── riot_integration/

Players → Gestão de jogadores
Matches → Partidas e estatísticas
Analytics → Métricas e análises
Scouting → Descoberta de talentos
VOD Reviews → Análise de vídeos
Schedules → Calendário
Team Goals → Objetivos

What's Changed

New Contributors

Full Changelog: 1.0.0...1.0.1

1.0.0

10 Oct 03:19

Choose a tag to compare

First stable release of the ProStaff.gg esports team management API

Core Modules

  • ✅ Authentication & Authorization (JWT)
  • ✅ Dashboard with statistics and metrics
  • ✅ Player management and statistics
  • ✅ Scouting system and talent discovery
  • ✅ Analytics and performance reporting
  • ✅ Match data integration
  • ✅ Schedule management
  • ✅ VOD reviews with timestamps
  • ✅ Team goals tracking

Integrations

  • ✅ Riot Games API integration
  • ✅ Real-time player data import
  • ✅ Match history synchronization

Infrastructure

  • Ruby 3.4.5 + Rails 7.2
  • PostgreSQL 14+ with optimized indexes
  • Redis caching (5min TTL)
  • Sidekiq background jobs
  • Docker support

Security & Testing

  • OWASP security compliance
  • Brakeman code analysis
  • k6 performance tests (p95 < 880ms)

Ready for production!

What's Changed

  • Add architecture diagram with auto-update CI/CD workflow for modular monolith by @Copilot in #1
  • chore(deps): bump rack from 3.2.1 to 3.2.2 by @dependabot[bot] in #2

New Contributors

  • @Copilot made their first contribution in #1
  • @dependabot[bot] made their first contribution in #2

Full Changelog: https://github.com/Bulletdev/prostaff-api/commits/1.0.0