Twake apps call this service instead of third-party APIs, so the provider never sees who the user is. The first module is GIF search with KLIPY.
You need Node 22.
npm ci
cp config.example.yaml config.yamlPoint config.yaml at your homeserver or SSO, then start it with the secrets it reads from the environment:
PUBLIC_URL=http://localhost:8080 \
KLIPY_API_KEY=<KLIPY app key> \
MEDIA_SIGNING_KEY=$(openssl rand -hex 32) \
npm run devRun npm run check before you push. It's what CI runs.
Push a vX.Y.Z tag. CI runs the checks and publishes ghcr.io/linagora/twake-common-proxy:X.Y.Z, with its digest in the run summary. The Helm chart deploys it.
KLIPY asks for written approval before a partner routes API calls or media through its own server (integration requirements). This service does both, so production needs that approval.
- Architecture: how a request flows through the proxy, the privacy boundary, authentication and media links.
- Dependencies: the services it calls, the libraries it runs on, and how it is built.
- HTTP API: every route, how callers authenticate, and what they get back.
- Deploying: what the proxy guarantees, its configuration, and what it reaches.
- Development: code layout, adding a provider or a module.