Invite code service with OpenID Provider interface for SIROS ID.
- Tenant-scoped invite code management
- Email address and email domain matching
- Cryptographically generated invite codes
- OpenID Provider compatible with wallet-frontend OIDC gate
- Dynamic client registration
- JWT-protected management API
- Admin token protected admin API
- Periodic cleanup of expired/consumed invites
- Memory and MongoDB storage backends
make build
./bin/server --config configs/config.yamlPOST /api/v1/invites- Create an inviteGET /api/v1/invites- List invitesGET /api/v1/invites/:id- Get invitePUT /api/v1/invites/:id- Update inviteDELETE /api/v1/invites/:id- Delete invite
Same routes under /admin/invites on port 8081.
GET /:tenant/.well-known/openid-configuration- DiscoveryGET /:tenant/.well-known/jwks.json- JSON Web Key SetPOST /:tenant/register- Dynamic client registrationGET /:tenant/authorize- Authorization endpointPOST /:tenant/token- Token endpoint
GET /admin/status- Liveness probeGET /admin/readyz- Kubernetes readiness probeGET /metrics- Prometheus metrics
See configs/config.yaml for all options. Environment variables with INVITE_ prefix override YAML values. See configs/config.production.yaml for a production-hardened example.
# Development with MongoDB
docker compose up
# Build image only
make docker-buildThe image uses a distroless base with a non-root user (UID 65532).
make tools # Install golangci-lint, goimports, govulncheck
make test # Run tests
make lint # Run linter
make fmt # Format code