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
- Docker
- Redis instance, if redis cache is used
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
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. |
*Required fields
The service exposes two endpoints:
Returns 200
if the service is alive.
Healthy response: {"status":"UP"}
Returns 200
if the service is ready.
Healthy response: { "status": "UP" }