There’s some art to identifying what the single responsibility should be at a particular abstraction layer and use that. It’s not meant to be taken literally.
there’s an excellent talk in cppcon on this https://youtu.be/Ntraj80qN2k?si=-jsMAccDMKMFQPo8
Hi, Maker here — wanted to address the abuse/moderation angle since I know it'll come up.
1. Moderation.
For legal reasons, the proxy itself also has to do moderation, which technically increases the surface area of prompt exposure, but naturally, it still remains decoupled from identity.
2. Abuse handling
Since the blindrsa tokens are blind, banning abusing users (which is generally a requirement for hosting such a service) is required. So to do so, I have to dial down the privacy a bit, and attach 1 blindrsa token permanently to the user (naturally server wouldn't know which user has which perm token). If server detects too many abusive usages from same psuedoanonymous token, it can ban it. (i have another monthly token, that rotates to avoid this token being stolen problem)