Quando conecta uma app de terceiros ao MoveMentors via OAuth (caso mais comum: assistente IA via MCP), concede scopes de permissão específicos. Este artigo lista cada scope e o que faz.
O modelo de scopes
MoveMentors OAuth segue padrão OAuth 2.1 com PKCE. Autoriza um cliente (ex. Claude), que recebe um token atrelado a scopes específicos. Cada request do cliente é validado contra esses scopes.
Se só concedeu read:bookings, o cliente só pode ler reservas; tentativas em outras ferramentas devolvem 403 Forbidden.
Concede scopes individuais na tela de consent OAuth. Revoga a qualquer momento.
Scopes de leitura
read:profile
Ler seu perfil de usuário (nome, email, tipo de conta, settings).
Requerido por quase todo cliente. Permite que IA saiba quem você é; sem isso o assistente não personaliza.
read:mentor
Ler seu perfil de mentor (bio, fotos, localizações, certificações).
Pra contas de mentor.
read:studio
Ler seu perfil de studio.
Pra contas de studio.
read:classes
Ler as aulas que organiza (título, agenda, capacidade, preço, etc).
read:bookings
Ler suas reservas (como anfitrião e estudante).
read:clients
Ler seu CRM de clientes (quem reservou, histórico, suas notas).
read:financials
Ler seu dashboard de ganhos e despesas. Feature Pro+.
read:reviews
Ler reviews no seu perfil e os que deixou.
read:messages
Ler seu inbox (inquiries, mensagens de mentor).
read:public
Buscar diretório público (mentores, studios, aulas). Qualquer um pode sem auth, mas como scope autenticado devolve data um pouco enriquecida (ex. distância da sua localização salva).
Scopes de escrita
write:profile
Atualizar seu perfil de user (nome, settings).
write:mentor / write:studio
Atualizar seu perfil de mentor ou studio.
write:classes
Criar, atualizar, deletar suas aulas. Modificar agendas, capacidade, preços.
Feature Pro+; contas free que concedem esse scope mesmo assim não fazem mudanças (a ferramenta devolve "upgrade required").
write:bookings
Criar novas reservas (em nome de um estudante), cancelar reservas, marcar pago.
Nota: reservas têm constraints. Não pode criar reserva em aula esgotada via API mais do que pode via UI.
write:clients
Atualizar notas e tags de clientes.
write:financials
Criar, atualizar, deletar despesas. Modificar categorização de ganhos. Feature Pro+.
write:reviews
Responder reviews no seu perfil.
write:messages
Enviar mensagens (inquiries, respostas, outreach de mentor).
Scopes especiais
mcp:tools
Permite ao cliente chamar ferramentas MCP. Requerido pra servidores MCP; sem isso o endpoint MCP recusa requests.
offline_access
Permite ao cliente refrescar seu access token sem re-autorização. Scope OAuth padrão; sem isso, o cliente tem que re-auth cada vez que o token expira (~1 hora).
Maioria pede isso pro user não re-auth constantemente.
Bundles comuns
Maioria dos clientes pedem bundle sensato em vez de cada scope. Típicos:
- Read-only:
read:profile,read:bookings,read:classes,read:clients. Útil pra "mostre minha agenda". - Assistente pessoal: read-only mais
write:bookings,write:classes,write:messages. Assistente gerencia operações. - Full control: tudo menos
write:financials. Pra power users.
Pode desselecionar scopes no consent; o cliente se adapta (algumas ferramentas indisponíveis, o resto funciona).
O que posso fazer no consent
A tela de consent OAuth mostra:
- Nome do cliente (ex. "Claude Desktop").
- Site do cliente (se dá).
- Cada scope pedido.
- Checkbox por scope (alguns pré-marcados como requeridos).
Pode:
- Aprovar tudo (default fácil).
- Desselecionar scopes específicos e aprovar o subset.
- Negar tudo.
Revogar acesso
/settings/connected-apps mostra cada cliente OAuth conectado. Por cada um:
- Nome do cliente.
- Quando autorizou.
- Quais scopes tem.
- Timestamp de último uso.
- Botão "Revoke".
Click revoke e invalidamos o token. Cliente perde acesso imediato. Se re-autorizar o mesmo cliente depois, começa do zero; sem scopes "lembrados".
Audit logging
Cada request OAuth é loggado no seu audit log em /settings/audit-log. Visível:
- Qual cliente fez o request.
- Qual ferramenta foi chamada.
- Argumentos (com valores sensíveis redatados).
- Status da resposta.
Útil quando quer saber o que um assistente IA fez em seu nome.
O que scopes não cobrem
Coisas que scopes NÃO permitem, independente do grant:
- Ler data privada de outros users. Com scopes completos, cliente só acessa SUA data e data pública de outros.
- Disparar payouts ou modificar settings Stripe. Isso está no Stripe, não em nós.
- Modificar settings de conta que requerem confirmação por email (mudar email, etc).
Intencional. Algumas ações são alto risco demais pra delegar.
Perguntas comuns
Cliente pode pedir scope que não concedi? Cliente recebe 403 em qualquer ferramenta requerindo scope não concedido. Não pode escalar.
Posso ver o que cliente velho fazia se revoguei? Sim. Audit log preserva requests passados mesmo de clientes revogados.
Múltiplos clientes podem conectar com scopes em overlap? Sim. Cada cliente conectado tem seu token. Pode ter Claude com acesso full E ChatGPT read-only.
Tem forma de scope por aula ou por cliente (mais granular que scopes)? Não atualmente. Scopes são a fronteira; não suportamos "read bookings só de aula X" ou ACLs finos. Podemos adicionar se tem demanda.
Por que não tem scope delete:account?
Deletar conta requer confirmação por email. Não dá via OAuth, nem com scopes completos.
Próximos passos
- Servidor MCP: consumidor principal de OAuth.
- Apps conectadas: gerenciar autorizações.