@stigg/sidecar
TypeScript icon, indicating that this package has built-in type declarations

1.98.3 • Public • Published

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

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.

*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" }

Readme

Keywords

none

Package Sidebar

Install

npm i @stigg/sidecar

Weekly Downloads

2

Version

1.98.3

License

LicenseRef-LICENSE

Unpacked Size

115 MB

Total Files

7

Last publish

Collaborators

  • yelena-stigg
  • aaviran-stigg
  • yt-stigg
  • nadavsho
  • alexfedin
  • mortal94
  • itzik.stigg
  • oratstigg
  • stiggnpc
  • nadavstigg
  • royyy
  • antonzy