@stigg/sidecar v2.414.3
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 --publish=8080:8080 \
-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 | gRPC/Connect server port (HTTPS) |
METRICS_PORT | Number | 8080 | Metrics and health endpoints port (HTTP) |
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 and Metrics:
The service exposes health and metrics endpoints on HTTP server (default port 8080).
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" }
GET /metrics
Returns Prometheus metrics in text format.
2 months ago
1 month ago
3 months ago
3 months ago
3 months ago
2 months ago
2 months ago
4 months ago
2 months ago
2 months ago
2 months ago
4 months ago
6 months ago
6 months ago
6 months ago
4 months ago
6 months ago
8 months ago
6 months ago
7 months ago
6 months ago
6 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
1 year ago
12 months ago
11 months ago
1 year ago
10 months ago
10 months ago
11 months ago
1 year ago
12 months ago
11 months ago
11 months ago
11 months ago
10 months ago
11 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago