Skip to content

Latest commit

 

History

History
73 lines (50 loc) · 2.36 KB

File metadata and controls

73 lines (50 loc) · 2.36 KB

GateForge SDKs

Official client SDKs for GateForge IAM, generated from the canonical OpenAPI contract at api/openapi.yaml.

Layout

Path Purpose
config/ OpenAPI Generator configs (go.yaml, typescript.yaml)
go/ Handwritten Go SDK (package gateforge) + generated openapi/ client
typescript/ Handwritten TypeScript SDK (@gateforge/sdk) + generated src/generated/

Generate clients

Requires Docker. From the monorepo root:

make sdk-generate

This runs OpenAPI Generator v7.19.0:

  1. Gosdk/go/openapi
  2. TypeScript (fetch)sdk/typescript/src/generated (then NodeNext import patch)

Drift check:

make sdk-check

Verify

make sdk-go-test    # unit tests (httptest)
make sdk-ts-build   # npm ci && build
cd sdk/typescript && npm test

Live integration (optional):

GATEFORGE_BASE_URL=http://localhost:3000 go test -tags=integration ./sdk/go

Auth guidance

Concern Go SDK TypeScript SDK
Bearer JWT WithTokenProvider getAccessToken / refreshAccessToken
OIDC code + PKCE PKCEGenerate, BuildAuthorizeURL, ExchangeAuthorizationCode createPKCE, buildAuthorizeUrl, parseCallbackParams
Browser cookies / CSRF App-owned credentials: 'include', prefetchCsrfToken
WebAuthn ceremonies Raw start/finish types only registerPasskey / loginWithPasskey via @simplewebauthn/browser
Token storage App-owned Default memory store; persistence must be explicit

Never put admin API keys or client secrets in browser bundles. Prefer in-memory access tokens; do not log refresh tokens.

Releases (v0.x)

Publish only from explicit tags — never from every main build.

SDK Tag pattern Consumer install
Go sdk/go/v0.1.0 go get github.com/gateforge-iam/gateforge-iam/sdk/go@sdk/go/v0.1.0
TypeScript sdk/typescript/v0.1.0 npm install @gateforge/sdk@0.1.0 (CI uses npm trusted publishing / OIDC)

Workflow: .github/workflows/sdk-release.yml.

Package docs