Skip to content

SPIFFE

Image: ghcr.io/parlesec/protocolsoup-spiffe

Use SPIFFE service for workload identity demonstrations: SVID retrieval, mTLS handshakes, JWT-SVID validation, and certificate rotation.

PropertyValue
Port8080
HealthGET /health
StatusGET /spiffe/status
Demo modeEndpoints return 503 when SPIRE is not connected
Full modeRequires SPIRE agent socket and SHOWCASE_SPIFFE_ENABLED=true
  • GET /spiffe/.well-known/spiffe-bundle — trust bundle (JWKS format)
  • GET /spiffe/svid/x509 — X.509-SVID
  • GET /spiffe/svid/x509/chain — X.509-SVID chain (PEM)
  • GET /spiffe/svid/jwt — JWT-SVID
  • GET /spiffe/svid/info — SVID metadata
  • POST /spiffe/validate/jwt — validate JWT-SVID
  • POST /spiffe/validate/x509 — validate X.509-SVID
  • GET /spiffe/workload — workload info
  • GET /spiffe/trust-bundle — trust bundle info
  • POST /spiffe/demo/mtls/call — mTLS demo call
  • POST /spiffe/demo/jwt-auth/call — JWT auth demo call
  • GET /spiffe/demo/rotation — certificate rotation demo
VariableRequiredDefaultDescription
SHOWCASE_BASE_URLYeshttp://localhost:8080External base URL
SHOWCASE_SPIFFE_ENABLEDNofalseEnable full SPIRE-backed mode
SHOWCASE_SPIFFE_SOCKET_PATHNounix:///run/spire/sockets/agent.sockSPIRE agent socket
SHOWCASE_SPIFFE_TRUST_DOMAINNoprotocolsoup.comTrust domain for SVID validation
SPIRE_SERVER_ADDRESSNospire-server:8081SPIRE server address (for mTLS demo)

Demo mode does not require SPIRE infrastructure. Endpoints return 503 until SPIRE is connected.

Terminal window
docker run -p 8080:8080 \
-e SHOWCASE_BASE_URL=http://localhost:8080 \
ghcr.io/parlesec/protocolsoup-spiffe:latest

Requires the SPIFFE compose overlay or equivalent SPIRE infrastructure.

Terminal window
docker compose -f docker-compose.yml -f docker-compose.spiffe.yml up -d
  • Full mode requires SPIRE agent socket mounted at the configured socket path.
  • Keep SPIRE sockets internal and restricted to trusted workloads.
  • If SVID checks fail, verify trust domain alignment between agent, server, and registration entries.
  • The mTLS and JWT auth demos require a running SPIRE server at SPIRE_SERVER_ADDRESS.