sha256:e7bf6557364fe99ca027b7a264d31c2fd5952f56b5fe32f76a4cff1275a95034
Last pushed
3 days by michaelirwin244
Type
Sandbox Kit
Manifest digest
sha256:e7bf6557364fe99ca027b7a264d31c2fd5952f56b5fe32f76a4cff1275a95034
schemaVersion: "3"
displayName: Podium reporter
description: Installs and configures the podium-reporter Claude Code plugin so every session in this sandbox reports to a Podium fleet console on the host, with the report token proxy-managed instead of stored in the sandbox.
version: 0.1.0
kind: mixin
capabilities:
- type: com.docker.sandbox/network-policy@2
config:
runtime:
allow:
- hosts:
- ${{ kit.args.serverHost }}:${{ kit.args.serverPort }}
- localhost:${{ kit.args.serverPort }}
methods:
- GET
- POST
- PUT
paths:
- /api/fleet/**
- type: com.docker.sandbox/credential@1
config:
apiKey:
inject:
- domain: ${{ kit.args.serverHost }}
format: '%s'
header: X-Podium-Token
- domain: localhost
format: '%s'
header: X-Podium-Token
name: PODIUM_API_TOKEN
proxyManaged: true
phase: runtime
service: podium-token
description: Podium report token
- type: com.docker.sandbox/lifecycle@1
config:
startup:
- command:
- sh
- -c
- |
set -e
export PATH="$HOME/.local/bin:$HOME/.claude/local:$PATH"
claude plugin install podium-reporter --marketplace eengelking/skills -s user -y \
--config "serverUrl=http://${{ kit.args.serverHost }}:${{ kit.args.serverPort }}" \
--config "userName=${{ kit.args.userName }}" || true
description: Install and configure the podium-reporter plugin (runs every boot; idempotent)
user: agent
- command:
- sh
- -c
- |
set -e
export PATH="$HOME/.local/bin:$HOME/.claude/local:$PATH"
if [ -n "$PODIUM_API_TOKEN" ]; then
printf '{"token":"%s"}' "$PODIUM_API_TOKEN" \
| claude plugin configure podium-reporter@eengelking-marketplace --values-stdin || true
fi
description: Store the proxy-managed placeholder token in the plugin's secure config
env:
- PODIUM_API_TOKEN
user: agent
- type: com.docker.sandbox/agent-context@1
config:
content: |
## Podium fleet console reporting
This sandbox reports its Claude Code sessions to a Podium fleet console at
`http://${{ kit.args.serverHost }}:${{ kit.args.serverPort }}/#/` via the
`podium-reporter` plugin, already installed and configured.
Authentication is proxy-managed: the plugin's token option holds a
placeholder (`$PODIUM_API_TOKEN`), which the sandbox's egress proxy swaps
for the real value only on requests to the Podium server above. The real
token is never present in this sandbox. Never print the placeholder as if
it were useful, and never ask the user for the real token.
args:
serverHost:
default: host.docker.internal
description: Hostname of the Podium server to report to. The default reaches a Podium server bound on the sandbox host machine (the server must bind an interface the sandbox's gateway can reach, not 127.0.0.1 alone — see this kit's README).
serverPort:
default: "4317"
description: Port the Podium server listens on.
pattern: ^[0-9]+$
userName:
default: ""
description: The name this sandbox's token was made for in Podium Admin. Leave empty to report with the server's shared admin secret instead of a per-person token.