@arbiter/oauth-s2s (0.1.0)
Published 2026-08-05 17:17:03 +00:00 by Dvorak
Installation
@arbiter:registry=https://hub.kl1.tenere.ai/api/packages/Arbiter/npm/npm install @arbiter/oauth-s2s@0.1.0"@arbiter/oauth-s2s": "0.1.0"About this package
@arbiter/oauth-s2s
OAuth server-to-server / workload-identity / WIMSE / SPIFFE spec cluster. Pure protocol logic, independent of the HTTP layer.
Specs covered
- draft-ietf-wimse-s2s-protocol — WIT issuance, WPT verification, HTTP-signature proof, mTLS workload binding
- draft-ietf-wimse-arch
- draft-mw-spice-actor-chain
- draft-klrc-aiagent-auth
- spiffe-spire — node attestation, workload SVID, federation bundles
- draft-ietf-oauth-transaction-tokens, RFC 8693 (token exchange), RFC 9396 (RAR)
- OAuth 2.1 profile (via the oauthService port)
Conformance matrices and full spec text live in docs/standards/wimse-oauth/.
The port
The single external dependency is an oauthService exposing exactly three
methods:
{
generateToken(payload) -> signed token
isTokenActive(jti) -> boolean
resolveTokenRecord(jti) -> token record
}
Persistence backends (ReplayStore, FileBackedMapStore) are injectable and
default to in-memory.
Usage
import { WorkloadSecurityService } from '@arbiter/oauth-s2s';
const svc = new WorkloadSecurityService({
oauthService,
trustDomain: 'prod.example.com',
enforceSecureTrustAnchor: true,
closedEnvironment: true
});
const wit = svc.issueWorkloadIdentityToken({
workload_id: 'spiffe://prod.example.com/tenant/t1/app/a1/ns/sa/svc',
audience: 'https://service.example.com'
});
Layout
src/services/WorkloadSecurityService.js— facade over the three domain servicessrc/services/s2s/— compact token, replay store, HTTP-signature header/input, proof policysrc/services/workload/— identity, proof, and federation domain services (+functional/pure models)src/services/FileBackedMapStore.js— durable map backenddocs/standards/wimse-oauth/— spec matrices + full text
Test
npm test
Keywords
oauth
s2s
wimse
workload-identity
spiffe
spire
transaction-token
http-signature
authorization