I'm spinning this off from #225 because I think this has a lot of applications outside of just CBTF scheduler integration.
Basically, what this would allow is for a queue to define an external API endpoint that would be queried everytime a new question is added to a queue. This request would include the full question information: asker, topic, etc. The API would then respond with an indication of if the question should be allowed and, if it's not allowed, a reason as to why. This would enable things like an external ML model that can classify good/bad topics, rate-limiting, or blacklisting.
Some things to think about:
What happens if the API request fails or times out? Do we fail into allowing people, or fail into rejecting them?
We should probably record bad questions and the reasons they were rejected so that they can be audited by course staff later.
I'm spinning this off from #225 because I think this has a lot of applications outside of just CBTF scheduler integration.
Basically, what this would allow is for a queue to define an external API endpoint that would be queried everytime a new question is added to a queue. This request would include the full question information: asker, topic, etc. The API would then respond with an indication of if the question should be allowed and, if it's not allowed, a reason as to why. This would enable things like an external ML model that can classify good/bad topics, rate-limiting, or blacklisting.
Some things to think about: