Painel Administrativo

admin
management
monitoring

Gerencie usuários, monitore execuções e configure o sistema completo

Por Tarefa AI Team17/01/2025
Nesta Página

Painel Administrativo

O Painel Administrativo do Tarefa AI oferece controle completo sobre o sistema, permitindo gerenciar usuários, monitorar execuções, criar cupons e visualizar métricas em tempo real.

Acesso ao Painel

O painel admin está disponível em /admin e requer permissões de administrador.

Requisitos

  • Conta com role ADMIN
  • Autenticação ativa
  • Permissões adequadas no banco de dados
// Verificar se usuário é admin
if (user.role === 'ADMIN') {
  // Permitir acesso ao painel
}

Dashboard Overview

Métricas Principais

O dashboard exibe estatísticas em tempo real:

  • Total de Usuários: Quantidade de usuários registrados
  • Tarefas Ativas: Tarefas agendadas e em execução
  • Execuções (24h): Total de execuções nas últimas 24 horas
  • Taxa de Sucesso: Percentual de execuções bem-sucedidas
interface DashboardMetrics {
  totalUsers: number;
  activeTasks: number;
  executionsLast24h: number;
  successRate: number;
}

Gráficos e Visualizações

Execuções ao Longo do Tempo

Gráfico de linha mostrando a quantidade de execuções por hora/dia.

{
  chart: 'line',
  data: [
    { time: '00:00', executions: 15 },
    { time: '01:00', executions: 12 },
    // ...
  ]
}

Distribuição de Status

Gráfico de pizza com a distribuição de status das execuções:

  • Success (verde)
  • Failed (vermelho)
  • Running (azul)
  • Pending (amarelo)

Gerenciamento de Usuários

Acesse a página de usuários em /admin/users.

Listar Usuários

Visualize todos os usuários com:

  • Nome e email
  • Role (USER, ADMIN)
  • Data de criação
  • Status da conta
  • Ações disponíveis

Pesquisar Usuários

Use a barra de pesquisa para filtrar por:

// Exemplo de filtros
{
  query: 'email@example.com',
  role: 'USER',
  status: 'active'
}

Ações de Usuário

Para cada usuário, você pode:

  1. Visualizar Detalhes: Ver informações completas
  2. Editar Permissões: Alterar role (USER ↔ ADMIN)
  3. Suspender Conta: Desativar temporariamente
  4. Excluir Usuário: Remover permanentemente (com confirmação)
// Server Action
async function updateUserRole(userId: string, role: 'USER' | 'ADMIN') {
  'use server';
 
  await db.update(users)
    .set({ role })
    .where(eq(users.id, userId));
}

Ver Tarefas do Usuário

Clique em um usuário para ver:

  • Todas as tarefas criadas
  • Histórico de execuções
  • Uso de créditos/limites
  • Atividade recente

Sistema de Cupons

Gerencie cupons de desconto e trial extensions em /admin/coupons.

Criar Novo Cupom

Preencha os campos:

interface CouponForm {
  code: string;              // Código único (ex: WELCOME50)
  type: 'TRIAL_EXTENSION';   // Tipo do cupom
  value: number;             // Dias de extensão
  maxUses: number;           // Máximo de usos (0 = ilimitado)
  expiresAt?: Date;          // Data de expiração (opcional)
}

Exemplo: Cupom de Boas-Vindas

{
  code: 'WELCOME30',
  type: 'TRIAL_EXTENSION',
  value: 30,
  maxUses: 100,
  expiresAt: new Date('2025-12-31')
}

Gerenciar Cupons Existentes

Para cada cupom, visualize:

  • Código e tipo
  • Quantidade de usos (usados/máximo)
  • Data de criação e expiração
  • Status (ativo/expirado)

Ver Usuários do Cupom

Clique em "Ver Usuários" para ver quem usou o cupom:

  • Nome do usuário
  • Email
  • Data de ativação
  • Status do trial

Desativar Cupons

Desative cupons que não devem mais ser usados.

Logs do Sistema

Acesse logs detalhados em /admin/logs.

Tipos de Logs

  • Auth: Login, logout, falhas de autenticação
  • Tasks: Criação, execução, erros de tarefas
  • Admin: Ações administrativas
  • System: Eventos do sistema

Filtros Disponíveis

interface LogFilters {
  level: 'INFO' | 'WARN' | 'ERROR';
  type: 'auth' | 'task' | 'admin' | 'system';
  userId?: string;
  startDate?: Date;
  endDate?: Date;
}

Visualização de Logs

Cada log exibe:

  • Timestamp
  • Nível de severidade
  • Tipo de evento
  • Mensagem detalhada
  • Usuário relacionado
  • Metadados adicionais (JSON)
{
  "timestamp": "2025-01-17T10:30:00Z",
  "level": "ERROR",
  "type": "task",
  "message": "Task execution failed",
  "userId": "user_123",
  "metadata": {
    "taskId": "task_456",
    "error": "API rate limit exceeded"
  }
}

Exportar Logs

Exporte logs em formato CSV ou JSON para análise externa.

Configurações do Sistema

Configure parâmetros globais em /admin/settings.

Sistema de Cupons

Ative ou desative o sistema de cupons globalmente:

{
  couponsEnabled: boolean;
}

Quando desativado:

  • Cupons existentes não podem ser resgatados
  • Página de ativação retorna erro
  • Cupons ativos continuam valendo para quem já resgatou

Limites e Quotas

Configure limites padrão:

interface SystemLimits {
  maxTasksPerUser: number;
  maxExecutionsPerDay: number;
  maxFileSizeMB: number;
  trialDurationDays: number;
}

Configurações de Email

Configure SMTP para notificações:

{
  smtpHost: 'smtp.resend.com',
  smtpPort: 587,
  smtpUser: 'resend',
  smtpPassword: process.env.RESEND_API_KEY,
  fromEmail: 'noreply@tarefaai.com',
  fromName: 'Tarefa AI'
}

Monitoramento em Tempo Real

Execuções Ativas

Veja tarefas executando no momento:

  • Nome da tarefa
  • Usuário proprietário
  • Tempo de execução
  • Progress (se disponível)

Fila de Tarefas

Monitore a fila de agendamento:

  • Tarefas pendentes
  • Próximas execuções
  • Atrasos na fila

Health Checks

Monitore a saúde do sistema:

interface HealthStatus {
  database: 'healthy' | 'degraded' | 'down';
  scheduler: 'healthy' | 'degraded' | 'down';
  aiProviders: {
    openrouter: 'healthy' | 'degraded' | 'down';
  };
  uptime: number; // segundos
}

Ações em Massa

Execute ações em múltiplos usuários/tarefas:

Selecionar Múltiplos

Use checkboxes para selecionar vários itens.

Ações Disponíveis

  • Enviar email para usuários selecionados
  • Suspender múltiplas contas
  • Deletar tarefas em massa
  • Aplicar cupom para múltiplos usuários
async function bulkAction(
  userIds: string[],
  action: 'suspend' | 'activate' | 'delete'
) {
  'use server';
 
  for (const userId of userIds) {
    await performAction(userId, action);
  }
}

Auditoria e Compliance

Registro de Ações

Todas as ações administrativas são registradas:

interface AuditLog {
  adminId: string;
  action: string;
  targetType: 'user' | 'task' | 'coupon' | 'system';
  targetId: string;
  timestamp: Date;
  details: Record<string, any>;
}

Relatórios de Compliance

Gere relatórios para:

  • GDPR: Dados de usuários
  • SOC 2: Logs de acesso
  • ISO 27001: Segurança

Boas Práticas

Segurança

  1. Nunca compartilhe credenciais admin
  2. Use 2FA para contas administrativas
  3. Revise logs regularmente
  4. Audite permissões periodicamente

Performance

  1. Use filtros ao visualizar logs
  2. Exporte dados grandes ao invés de visualizar no browser
  3. Configure alertas para métricas críticas
  4. Monitore uso de recursos

Gestão de Usuários

  1. Revise contas inativas periodicamente
  2. Verifique padrões de uso suspeitos
  3. Responda rapidamente a reports de abuso
  4. Mantenha comunicação com usuários

Troubleshooting

Painel Não Carrega

Verifique:

  • Permissões de administrador
  • Conexão com banco de dados
  • Logs do servidor

Métricas Incorretas

  • Limpe cache do browser
  • Verifique workers do scheduler
  • Confirme integridade do banco

Ações Falham

  • Verifique logs de erro
  • Confirme permissões
  • Teste em ambiente de dev

Recursos Avançados

API Programática

Acesse funcionalidades admin via API:

// Listar usuários
const users = await adminActions.listUsers({
  page: 1,
  limit: 50,
  role: 'USER'
});
 
// Estatísticas
const stats = await adminActions.getSystemStats();

Webhooks Administrativos

Configure webhooks para eventos administrativos:

{
  url: 'https://seu-sistema.com/admin-webhook',
  events: [
    'user.created',
    'user.suspended',
    'coupon.used',
    'system.error'
  ]
}

Próximos Passos


Ajuda: Se precisar de assistência, entre em contato com o suporte técnico.