API: um escopo com acesso a /uploads

Eu tenho um robô que posta em threads. Às vezes, ele gostaria de fazer upload de uma imagem primeiro e incluí-la na postagem.

Pelo que pude ver, não há um escopo de API que dê acesso a /uploads, então tenho que dar a ele acesso a tudo.

Seria razoável (a) definir um escopo padrão para fazer isso ou (b) permitir um escopo personalizado com acesso a endpoints definidos pelo administrador?

3 curtidas

Você já tentou? Eu pensaria que um usuário que pode postar pode fazer upload.

2 curtidas

Er, sim, ou eu não teria postado? Especificamente, isso precisa do endpoint /uploads em vez de /posts, então a resposta é 403.

Isso é útil?

1 curtida

Obrigado, mas não exatamente.

Tenho uploads funcionando (usando o endpoint /uploads). Mas a única maneira de conceder permissões de chave de API para que isso funcione é conceder todas as permissões, o que é um risco de segurança óbvio.

O que estou pedindo é um escopo de permissões de API que inclua /uploads - se fizesse parte de “escrever posts”, tudo bem para mim, mas pode haver razões para torná-lo uma coisa separada. Caso contrário (e provavelmente uma boa ideia em geral), eu gostaria de poder definir um escopo personalizado que inclua as coisas específicas que desejo permitir.

2 curtidas

Ter um escopo para criar uploads parece uma boa ideia para mim, certamente pr-welcome. A alteração relevante seria por aqui:

Mais uma nova string de tradução aqui.

Eu acho que faria mais sentido como \"uploads\": \"create\"

@RogerBW você está disposto/capaz de fazer um PR aqui? Se sim, por favor, prossiga e poste o link neste tópico.

5 curtidas

Bem, nem todo mundo faz coisas tão óbvias antes de postar. Desculpe por isso! Parece que pelo menos uma outra pessoa (que eu pensaria que sabe mais do que eu sobre esta questão em particular) esperava que um escopo que pudesse criar uma postagem também pudesse criar os uploads para acompanhá-la.

Não faz sentido que, se uma chave de API pode criar uma postagem, ela também possa criar um upload, assim como um usuário que pode criar uma postagem também pode criar um upload?

2 curtidas

Existem situações em que uploads são úteis fora do contexto de uma postagem? Pelo que entendi, os uploads são removidos automaticamente periodicamente se não estiverem associados a postagens, portanto, tornar possível definir um escopo de chave de API para upload e não para criação/modificação de postagens não parece obviamente útil.

Como o @pfaffman mencionou, faria mais sentido se os escopos topics:write e posts:edit concedessem acesso para upload se o usuário associado tivesse permissão para fazer upload.

1 curtida

Sim, tenho certeza de que os avatares usam a mesma rota de uploads, mas não estão anexados a postagens.

5 curtidas

Presumivelmente, o upload de um novo avatar é algo que se pode utilizar com o escopo da API users:update. (O que atualmente não é possível?)

Com mais caminhos variados e potenciais futuros onde os uploads podem ser usados, provavelmente faz sentido criar um escopo separado e deixar para o usuário a responsabilidade de escolher o escopo apropriado. Fica claro para os usuários quando uma chave de API poderá ou não fazer upload e evita potencialmente perder situações onde os uploads poderiam ser usados se/quando as APIs forem estendidas.

1 curtida

Feito. Precisará de testes e tal, mas aqui pelo menos está uma base.

Usei um escopo separado, pelos motivos descritos - certamente posso ver que talvez eu queira permitir postagens, mas não uploads.

6 curtidas

Obrigado! Adicionei uma avaliação no GitHub.

5 curtidas