Skip to content

Latest commit

 

History

History
63 lines (46 loc) · 2.44 KB

CLAUDE.md

File metadata and controls

63 lines (46 loc) · 2.44 KB

TurboDocx SDK Monorepo

Multi-language SDK monorepo for TurboDocx API (TurboSign digital signatures + TurboPartner portal management).

Directory Structure

packages/
├── js-sdk/      # TypeScript/JavaScript (@turbodocx/sdk)
├── py-sdk/      # Python (turbodocx-sdk)
├── go-sdk/      # Go (github.com/TurboDocx/SDK/packages/go-sdk)
├── php-sdk/     # PHP (turbodocx/sdk)
├── java-sdk/    # Java (com.turbodocx:sdk)
└── ruby-sdk/    # Ruby (turbodocx-sdk)
.github/workflows/  # Per-SDK CI + publish workflows

Build & Test Commands

SDK Install Build Test
js-sdk npm ci npm run build npm test
py-sdk pip install -e ".[dev]" — pytest -v
go-sdk go mod tidy — go test -v ./...
php-sdk composer install — composer test
java-sdk — mvn compile mvn test -B
ruby-sdk bundle install — bundle exec rspec

Root-level shortcuts (JS only): npm run build:js, npm run test:js

Commit Format

feat|fix|docs|test|refactor: description
[js-sdk] Add batch signing      # PR title format

Cross-SDK Conventions

  • All SDKs must maintain feature parity — see .claude/rules/cross-sdk-parity.md
  • Five modules per SDK: TurboSign (signatures), TurboPartner (partner portal), TurboWebhooks (org signature webhook), Deliverable (document generation), TurboQuote (CPQ)
  • Follow each language's idiomatic naming (camelCase JS, snake_case Py, PascalCase Go)
  • Shared error hierarchy: TurboDocxError > Auth | Validation | NotFound | RateLimit | Network
  • Config pattern: explicit config → env var fallback → error

Architecture

See @docs/ARCHITECTURE.md for HTTP client design, file input abstraction, error handling, and CI/CD details.

Rules

  • .claude/rules/cross-sdk-parity.md — feature parity requirements
  • .claude/rules/js-sdk.md — JS/TS-specific conventions
  • .claude/rules/testing.md — TDD workflow and test patterns

Change Management (SOC 2)

This is a public repo. Every non-standard change is recorded as a Change Request issue (.github/ISSUE_TEMPLATE/change-request.yml); the PR closes it with Closes #<issue>. Bugs use the Bug Report form. Standard changes (dependency bumps, docs typos) skip the issue.

Never reference internal repos or PRs (e.g. backend/frontend) in this public repo — it leaks unreleased internal context.