Skip to content

Make SDKs publishable, harden API, and add CI/release workflows (alpha)#2

Merged
thomasdreyer merged 1 commit intomainfrom
codex/identify-remaining-tasks-for-app
Feb 5, 2026
Merged

Make SDKs publishable, harden API, and add CI/release workflows (alpha)#2
thomasdreyer merged 1 commit intomainfrom
codex/identify-remaining-tasks-for-app

Conversation

@thomasdreyer
Copy link
Owner

Motivation

  • Provide a publishable React Native SDK and seed a .NET mobile client so mobile teams (JS/.NET) can consume OpenSync without breaking API contracts.
  • Stabilize server-side validation and authentication to reduce breaking changes for package consumers and improve security posture.
  • Add automated package validation and release scaffolding (Changesets + GitHub Actions) to enable repeatable alpha releases.

Description

  • Added a publishable npm package @opensync/sdk-react-native with package.json, TypeScript tsconfig.*, build scripts, and a small fetch-based client implementation to avoid runtime axios friction.
  • Seeded a .NET SDK package OpenSync.Client with csproj, client implementation, readme, and NuGet metadata targeting net8.0;net8.0-android;net8.0-ios.
  • Hardened API: added global ValidationPipe in apps/src/main.ts, DTOs for auth/sync (AuthDto, PushDto, PullDto), JWT Strategy + JwtAuthGuard, exported PassportModule, safer auth exceptions, and fixed pull to use TypeORM's MoreThan(...) with deterministic ordering.
  • Repo/tooling: added Changesets config and pre-mode for alpha, updated root package.json scripts/devDeps and packageManager, migrated turbo.json pipelinetasks, added tsconfig.api.json, and aligned apps/api build scripts for monorepo layout.
  • CI & release: added .github/workflows/api.yml (API CI), packages.yml (pack & dotnet pack checks), and release.yml (manual release that publishes npm alpha and builds NuGet artifacts).
  • Docs: rewrote README.md and added/updated docs/* with real install, build, publish, and roadmap guidance (npm, NuGet, native SDK roadmap).

Testing

  • Ran npm run build at repo root and the Turborepo build (succeeded). ✅
  • Built the React Native package with npm --workspace @opensync/sdk-react-native run build (succeeded). ✅
  • Verified npm package contents via npm --workspace @opensync/sdk-react-native pack --dry-run (succeeded and inspected tarball contents). ✅
  • Built the API package with npm --workspace opensync-api run build (TypeScript compile succeeded). ✅
  • npm ci / npm install failed in this environment due to missing lockfile and registry policy (403), so dependency install via CI requires a normal environment with registry access or a lockfile. ⚠️
  • dotnet pack packages/sdk-dotnet/OpenSync.Client/OpenSync.Client.csproj -c Release failed here because dotnet is not installed in the execution environment, but the csproj and code were validated statically. ⚠️

Codex Task

@thomasdreyer thomasdreyer merged commit 59c41e4 into main Feb 5, 2026
0 of 6 checks passed
@thomasdreyer thomasdreyer deleted the codex/identify-remaining-tasks-for-app branch February 5, 2026 19:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant