Ask for access.
The orders service authenticates with its client ID and secret. It requests a token for billing and the actions it needs.
Service-to-service identity for Go
Give every service a clear identity. Issue signed access tokens, grant precise permissions, and verify requests locally with a compact Go toolkit.
Orionis implements OAuth 2.0 client credentials: a service proves its own identity to call another service.
The orders service authenticates with its client ID and secret. It requests a token for billing and the actions it needs.
Orionis checks the caller’s grants, signs a short-lived JWT, and publishes the corresponding public keys through JWKS.
Billing checks the signature, issuer, audience, time claims, token use, and route permissions before running the handler.
billing-api.
billing.invoice.create.
Run the included orders → billing example in three terminals. The caller obtains and attaches the token for you.
Use Go 1.26 or newer. Clone the repository, then run each command from its root directory.
git clone https://github.com/stremovskyy/orionis.git
cd orionis
git checkout v0.6.0
Prefer containers? Use the Docker and Compose guide. Java and PHP callers are also included in the examples directory.
TERMINAL 01Start Orionis
go run ./cmd/orionis-auth -config ./config/orionis.example.yaml
TERMINAL 02Start the protected API
go run ./examples/gin-billing-service
TERMINAL 03Make the request
go run ./examples/gin-orders-client
status=201Invoice created by orders-service.
Readable builders, small interfaces, and a deployment model you can follow.
Request tokens, add an authenticated HTTP client, and protect your GIN routes.
Read the API guide ↗02 / DEPLOYRun a pinned container or deploy to ECS with AppConfig and injected signing keys.
Open the deployment guide ↗03 / OPERATEUnderstand secrets, permissions, token lifetimes, and overlapping key rotation.
Explore the security model ↗