core.contrib¶
viur.core.contrib — optional, reusable application-level components.
This package contains self-contained components that are commonly needed but not required to run a ViUR application. Components are opt-in; import only what you use.
Available modules¶
- loginkey
IndexedCredentialBoneandLoginKey— aUserPrimaryAuthenticationthat authenticates users via a secret token stored in a Datastore-indexedCredentialBone. Suitable for “magic link” style logins or machine-to-machine auth.
Usage example:
from viur.core.modules.user import User
from viur.core.contrib.loginkey import LoginKey
class MyUser(User):
authenticationProviders = [LoginKey, ...]
- ratelimit
RequestRateLimit— aRequestValidatorthat enforces per-IP / per-user request-rate limits using App Engine Memcache. Suitable for global rate-limiting and basic DDoS mitigation at the WSGI boundary.
Usage example:
from viur.core.request import Router
from viur.core.contrib.ratelimit import RequestRateLimit, TimeWindow
Router.requestValidators.append(
RequestRateLimit(
rate_for_guests=TimeWindow(limit=200, time_window=60),
rate_for_users=TimeWindow(limit=500, time_window=60),
)
)