Service Documentation

API Discovery

Machine-readable discovery for the LSO Design Guidelines site lives at `/.well-known/api-catalog`, with the OpenAPI description published at `/openapi.json`.

Published Resources

HTTP Endpoints

MethodPathPurpose
GET/api/healthHealth and readiness status for automated discovery.
GET/.well-known/oauth-authorization-serverOAuth 2.0 authorization server metadata for the OTP-backed token flow.
GET/.well-known/openid-configurationOpenID-style discovery metadata for the same issuer and JWKS.
GET/.well-known/oauth-protected-resourceProtected resource metadata advertising the authorization server and scopes.
GET/.well-known/jwks.jsonJWKS containing the public signing key for bearer tokens and ID tokens.
POST/oauth/tokenExchange an email OTP proof for a bearer access token.
GET/oauth/userinfoReturn claims about the authenticated subject for a bearer token.
GET/api/agent/guidelines/business-cardBearer-protected agent endpoint for the business-card guideline markdown.
POST/api/request-accessSubmit a request for access to protected guideline content.
POST/api/send-otpSend a one-time code to start a credential-based sign-in flow.
POST/api/verifyVerify an OTP and receive a session token payload.
GET/api/approve-accessAdmin approval link target used from access-request emails.

Authentication Notes

The site now publishes OAuth discovery and protected-resource metadata for an OTP-backed bearer-token flow. Clients first call `/api/send-otp`, then exchange the returned `token` and emailed OTP at `/oauth/token` with `grant_type=urn:lso:params:oauth:grant-type:email-otp`. Access tokens are signed with `RS256` and can be validated through the published JWKS.