Você também selecionou um usuário para criar a chave de API?
Na maioria dos casos, uma chave de API “todos os usuários” é o que você precisa. Para algumas coisas, principalmente ao usar discourse_theme, uma chave de usuário é necessária.
Consigo reproduzir o problema ao seguir os passos que você listou. Ao criar uma chave de API para um único usuário, o Discourse espera que um nome de usuário seja adicionado ao campo Usuário do formulário:
Se ‘Usuário Único’ for selecionado como o Nível de Usuário, mas nenhum nome de usuário for adicionado ao campo Usuário, uma chave de API para Todos os Usuários será criada. Eu esperaria que uma mensagem de erro fosse exibida em vez disso, similar ao que acontece quando o formulário é enviado sem uma descrição.
Eu queria criar um tipo de usuário “bot” para recuperar postagens de categorias específicas. Esta instância do Discourse usa autenticação apenas do GSuite, então não há mais como criar usuários arbitrários. Eu esperava que, para uma chave de “Usuário Único”, o sistema me permitisse inserir o novo nome de usuário que eu queria atribuir ao bot, mas agora vejo que o nome de usuário deve ser de um usuário existente. O campo de formulário do nome de usuário não possui validação, então não ficou claro que eu não poderia inserir qualquer nome (como faria, por exemplo, para webhooks de entrada do Slack). Em seguida, a submissão falha silenciosamente ao procurar o nome de usuário que inseri e cria uma chave “Todos os Usuários” em vez disso.
Acho que isso é mais um bug de usabilidade do que funcional. Encontrei a documentação aqui confusa, pois ela não explicava de forma alguma o campo “Nível de Usuário” e não havia menção a um tipo “Todos os Usuários”, exceto em uma instância em um comentário mais abaixo no tópico.
Não, isso não é um componente select-kit. O problema é que verificamos apenas se a descrição está presente, e não o nome de usuário. O userMode (single/all) é apenas um valor do lado do cliente, então, quando o modelo é validado no lado do servidor, tudo o que ele sabe é que solicitamos uma chave e que fornecemos um usuário ou não.
Isso deve melhorar a situação. Vou pedir ao David para revisar: