apihighlimits allows more efficient batching (500 titles instead of 50 in a single query; larger continuations, typically 5000 instead of 500; no ping limiter, although that probably does not affect RESTBase/MCS). It might improve performance (although not sure; large batches are faster but small batches are parallelized - it would definitely decrease API load though). There are various ways (some) RESTBase requests could have that right:
- create a RESTBase system user (as in User::newSystemUser), and authenticate via OAuth.
- create a RESTBase system user, create a new session provider that authenticates requests coming from RESTBase based on IP (and maybe some kind of header mechanism to allow RESTBase to select which requests this should happen for).
- add the permission via UserGetRights (I think that would work for anonymous users, although not 100% sure)
The drawback is that it introduces a new failure point: if you set 500 titles but don't get the permission for some reason (e.g. IP changesdand someone forgot to update the config), the query will error out.