Sign inSign up

ajeetraina777/sbx-novu-kits

By ajeetraina777

Updated about 1 month ago

Docker Sandboxes mixin adding Novu notification infrastructure (novu-py SDK; Cloud US, Cloud EU, sel

Sandbox Kit
0

632

ajeetraina777/sbx-novu-kits repository overview

Digest

sha256:a92d6dc1766f…

Size

11.4 kB

Schema

v2

Pushed

about 1 month ago

Specificationspec.yaml

MIXIN
REQUIRES SECRETS

Adds Novu - the open-source notification infrastructure - to any agent: the novu-py SDK plus a proxy-managed secret key wired to the Novu Cloud US API (api.novu.co). The agent can trigger multi-channel workflows (email, SMS, push, chat, in-app) without the key ever entering the sandbox. Store it once with: sbx secret set novu.


Credentials
NameServiceRequiredDescription
NOVU_SECRET_KEYnovuRequiredNovu secret (API) key from Settings -> API Keys in the Novu dashboard

Network Egress

pypi.org

files.pythonhosted.org

api.novu.co

Apply this mixin to a sandbox

sbx run <agent> --kit docker.io/ajeetraina777/sbx-novu-kits:latest

Make sure you have docker sbx installed

Run the following command to install sbx on your machine.

macOS
brew install docker/tap/sbx
Windows
winget install Docker.sbx
Learn more about docker sbx

Novu notification kit for Docker Sandboxes

A standalone Docker Sandboxes kit (kind: mixin, Schema v2) that gives any sandbox agent the ability to send notifications through Novu, the open-source notification infrastructure. It installs the official novu-py SDK and injects a proxy-managed secret key, so the agent can trigger multi-channel workflows (email, SMS, push, chat, in-app) without the key ever entering the sandbox.

Source and full docs: https://github.com/ajeetraina/sbx-kits-novu

Image tags

TagAPIData residencyCredential
latest, cloudapi.novu.coUSnovu secret
eueu.api.novu.coEUnovu secret (EU account)
self-hostedhttp://host.docker.internal:3000 (editable)your infranovu secret

The tags differ only in which Novu API they target. The key is never baked into the kit; the sbx proxy injects it from the stored secret, so it never enters the sandbox. sbx run has no -e flag by design.

Quick start

Store your Novu secret key once, then launch. Cloud US (default):

echo "$NOVU_SECRET_KEY" | sbx secret set novu
sbx run --kit docker.io/ajeetraina777/sbx-novu-kits:latest claude

Cloud EU (key from an EU-region account):

echo "$NOVU_SECRET_KEY" | sbx secret set novu
sbx run --kit docker.io/ajeetraina777/sbx-novu-kits:eu claude

Self-hosted (Novu API on the host at :3000 by default):

echo "$NOVU_SECRET_KEY" | sbx secret set novu
sbx run --kit docker.io/ajeetraina777/sbx-novu-kits:self-hosted claude

Verify and use

Inside the agent session:

!python3 ~/runbooks/healthcheck.py          # confirms reach + key
!python3 ~/runbooks/subscribers.py create alice --email [email protected]
!python3 ~/runbooks/notify.py welcome-email --to alice --payload '{"orderId":"A-42"}'

healthcheck.py and subscribers.py use only the Python standard library and Novu's REST API; notify.py uses the novu-py SDK. The workflow you trigger must exist in your Novu dashboard.

How it works

Each tag writes NOVU_API_URL, allows the matching API host through the sandbox firewall, installs novu-py, and declares one proxy-managed credential (NOVU_SECRET_KEY) whose Authorization: ApiKey <key> header the sbx proxy injects on outbound Novu requests. No hand-editing required for the cloud tags; the self-hosted tag defaults to host.docker.internal:3000 and is edited for other deployments.

Per-deployment setup notes, validation steps, and the raw spec.yaml for each tag live on GitHub: https://github.com/ajeetraina/sbx-kits-novu/tree/main/providers