@stigg/sidecar
v2.236.1
Published
Stigg sidecar
Downloads
82
Maintainers
Keywords
Readme
Stigg Sidecar Service
What does Stigg Sidecar do?
Stigg Sidecar is a tiny service that runs alongside the main application, acting as a proxy between the host and the Stigg API, while ensuring low latency entitlement checks, handles caching and provides simplified access to real-time data.
The benefits of deploying the Sidecar:
- Less CPU consumption and memory footprint for the host application when compared to embedding the SDK directly
- Language neutral API via Protocol Buffers and gRPC
- Support for in-memory cache or external cache (Redis) for entitlements and usage data
- Scaled together with the main application, or independently if deployed as a standalone service
- Synergy with persistent-cache-service if external cache is in use
- Easy generation of SDK clients in multiple languages, backed by well-known RPC frameworks and tools
Architecture
Prerequisites:
- Docker
- Redis instance, if redis cache is used
Usage:
Login to AWS ECR:
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/stigg
Run the service:
docker run --rm --name stigg-sidecar --memory=1gb --cpus="1" --publish=8443:8443 \
-e SERVER_API_KEY="<SERVER_API_KEY>" \
public.ecr.aws/stigg/sidecar:latest
Configuration:
| Environment Variable | Type | Default | Description |
|----------------------------|----------|-----------------------------|-----------------------------------------------------------------------|
| SERVER_API_KEY
| String* | | Environment server API key |
| API_URL
| String | https://api.stigg.io
| Stigg API address URL |
| EDGE_ENABLED
| Boolean | 1
| Edge API enabled |
| EDGE_API_URL
| String | https://edge.api.stigg.io
| Edge API URL |
| WS_ENABLED
| Boolean | 1
| Websocket enabled |
| WS_URL
| String | wss://api.stigg.io
| Websocket API URL |
| REDIS_ENVIRONMENT_PREFIX
| String | | Identifier of the environment. If provided, Redis cache will be used. |
| REDIS_HOST
| String | localhost
| Redis host address |
| REDIS_PORT
| Number | 6379
| Port of your redis |
| REDIS_DB
| Number | 0
| DB identifier to use when writing to Redis |
| REDIS_USERNAME
| String | | Redis username |
| REDIS_PASSWORD
| String | | Redis password |
| REDIS_KEYS_TTL_IN_SECS
| Number | 7 * 24 * 60 * 60
| Time for entitlements to be cached,in milliseconds |
| PORT
| Number | 8443
| Server port |
| ENTITLEMENTS_FALLBACK
| String | `` | Fallback entitlements in a JSON string format. |
| HEALTH_ENDPOINT_URL
| String | livez
| Health endpoint URL |
| READY_ENDPOINT_URL
| String | readyz
| Ready endpoint URL |
| OFFLINE
| Boolean | | Enable offline mode for local development |
*Required fields
Health:
The service exposes two endpoints:
GET /livez
Returns 200
if the service is alive.
Healthy response: {"status":"UP"}
GET /readyz
Returns 200
if the service is ready.
Healthy response: { "status": "UP" }