Skip to content

Getting started

This content is for v1.0. Switch to the latest version for up-to-date documentation.

In about 15 minutes you will have a running Starfly fabric unit and your first scoped WIMSE JWT — proof that exchange, policy, and signing work on your laptop before you wire agents or tools.

  • Starfly boots in dev mode and answers health checks
  • A platform credential exchanges for a WIMSE JWT with aud, td, and exp
  • Metrics and live events stream from the PEP
  • Sandbox scripts replay exchange, revocation, and MCP scenarios

No Kubernetes required for this path.

  • Go 1.25+ (go version)
  • curl and jq
  • Make
Terminal window
git clone https://github.com/raygj/project-starfly-fabrics.git
cd project-starfly-fabrics
make build-dev

Produces bin/starfly — single binary, dev-tagged build.

Terminal window
STARFLY_STORAGE_PATH=/tmp/starfly-dev \
STARFLY_POLICY_BUNDLE_PATH=policies/dev \
./bin/starfly --dev

Boot banner highlights:

  • using DEV lock — data at rest is not encrypted (dev only)
  • policy loadedpolicies/dev/exchange.rego
  • HTTP server listening on :8693
Terminal window
curl -s http://localhost:8693/v1/sys/health | jq
{
"initialized": true,
"locked": false,
"version": "dev",
"unit_id": ""
}
Terminal window
curl -s http://localhost:8693/v1/identity/jwks | jq

Downstream services verify WIMSE JWTs against this endpoint (kid: starfly-dev-1 in dev).

Terminal window
curl -s -X POST http://localhost:8693/v1/exchange/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "urn:ietf:params:oauth:grant-type:token-exchange",
"subject_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJteS1hcHAiLCJpc3MiOiJkZXYiLCJleHAiOjk5OTk5OTk5OTl9.stub",
"subject_token_type": "urn:ietf:params:oauth:token-type:jwt",
"audience": "https://api.target.example.com",
"scope": "read:data"
}' | jq

In dev mode, any parseable JWT is accepted against the synthetic dev.local trust domain.

Pipe .access_token through base64 decode on the payload segment, or use the sandbox:

Terminal window
./sandbox/init.sh
./sandbox/run.sh exchange

Key claims: sub, aud, td (trust domain), exp. Deeper dive: exchange concepts.

Terminal window
curl -s http://localhost:8693/metrics | grep starfly_exchange
curl -N http://localhost:8693/v1/events

These same streams power the operations dashboard when deployed.

Five scenarios — no Go rebuild required against a running PEP:

Terminal window
./sandbox/run.sh all

Narrated demos:

Terminal window
./demos/01-token-exchange.sh
./demos/02-real-time-revocation.sh
./demos/03-confused-deputy.sh

Manifest and agent bootstrap: sandbox/ · AGENTS.md

GoalGo here
VocabularyGlossary
Wire an agentToken exchange
MCP tool securityMCP security
Multi-protocol toolsUTC
Playground UIstarfly.dev/play
API contractOpenAPI