Files
cfw-autumn/apps/docs/SDK_DOCS_UPDATE_PLAN.md
2026-02-19 17:02:18 +00:00

9.1 KiB

SDK Documentation Update Plan

Overview

Update the Documentation section (mintlify/documentation/) to match the new v2 API types and SDK conventions.

Goal: Update code examples to match new types. DO NOT change content/explanations.


Rules

⚠️ CRITICAL: ONE FILE AT A TIME

Never edit more than one file per phase. Complete each phase fully before moving to the next.

Casing Conventions

Context Casing Example
TypeScript/Node.js SDK camelCase customerId, featureId, productId
Python SDK snake_case customer_id, feature_id, product_id
cURL / Raw API snake_case customer_id, feature_id, product_id
JSON examples (SDK response) camelCase { "featureId": "...", "createdAt": 123 }

Key API Changes

  1. attach() - if attach.checkoutUrl is defined, redirect (React hook auto-opens)
  2. check, track, attach NO LONGER auto-create customers
  3. Customer object: productssubscriptions, featuresbalances
  4. Hook returns data not customer
  5. Component library removed (CheckoutDialog, PricingTable, PaywallDialog)
  6. Method rename: openBillingPortalopenCustomerPortal

Reference Files (read these for correct types)

  • Hook params: packages/autumn-js/src/react/hooks/<hookName>.ts
  • Client params: packages/autumn-js/src/types/params.ts
  • SDK types: packages/sdk/src/models/

Phases

Phase 1: documentation/getting-started/setup/react.mdx

Status: Not Started

Changes:

  • Line 7: Remove reference to /react/components/pricing-table
  • Line 353: Change const { customer } = useCustomer()const { data } = useCustomer()
  • Line 359: Change customerdata
  • Lines 370-433: Update JSON example:
    • snake_case → camelCase (created_atcreatedAt, stripe_idstripeId, etc.)
    • productssubscriptions
    • featuresbalances
  • Lines 444-470: Remove checkout method with CheckoutDialog - replace with attach() flow
  • Lines 446, 453: Remove CheckoutDialog import and usage
  • Lines 490-493: Remove <PricingTable /> reference and link

Phase 2: documentation/getting-started/setup/sdk.mdx

Status: Not Started

Changes:

  • Lines 167-169: TypeScript checkout params: customer_idcustomerId, product_idproductId
  • Lines 225-228: TypeScript attach params: customer_idcustomerId, product_idproductId

Note: Python and cURL examples stay snake_case


Phase 3: documentation/getting-started/gating.mdx

Status: Not Started

Changes:

  • Lines 53-57: TypeScript SDK params: customer_idcustomerId, feature_idfeatureId, required_balancerequiredBalance
  • Lines 119-123: TypeScript SDK params: customer_idcustomerId, feature_idfeatureId

Phase 4: documentation/getting-started/display-billing.mdx

Status: Not Started

Changes:

  • Lines 20-26: Change customer?.productsdata?.subscriptions
  • Lines 84-88: Change customer?.features.messagesdata?.balances.messages
  • Lines 37-47: TypeScript SDK: verify customers.get returns correct structure
  • Lines 133-155: Remove checkout with CheckoutDialog - use attach() flow instead
  • Lines 138-155: Remove CheckoutDialog import and usage
  • Lines 238-244: Verify cancel method exists on hook or remove
  • Line 297: Change openBillingPortalopenCustomerPortal
  • Lines 348-354: Fix analytics hook - verify correct import (useAggregateEvents)

Phase 5: documentation/customers/check.mdx

Status: Not Started

Changes:

  • Lines 47-50: TypeScript SDK params: customer_idcustomerId, feature_idfeatureId
  • Lines 79-92: JSON response: convert to camelCase (feature_idfeatureId, etc.)
  • Lines 124-128: TypeScript SDK params: customer_idcustomerId, feature_idfeatureId, required_balancerequiredBalance
  • Lines 174-179: TypeScript SDK params: add sendEvent (camelCase)
  • Lines 225-229: TypeScript SDK params: camelCase

Phase 6: documentation/customers/tracking-usage.mdx

Status: Not Started

Changes:

  • Lines 23-28: Fix TypeScript import pattern (import { Autumn } not import { Autumn as autumn })
  • Lines 25-28: TypeScript SDK params: customer_idcustomerId, feature_idfeatureId
  • Lines 60-66: JSON response: convert to camelCase
  • Lines 81-86: Fix TypeScript import and params
  • Lines 163-168: Fix TypeScript import and params

Phase 7: documentation/customers/balances.mdx

Status: Not Started

Changes:

  • Lines 29-32: Fix TypeScript import pattern
  • Lines 47-72: JSON response: convert to camelCase (feature_idfeatureId, included_usageincludedUsage, next_reset_atnextResetAt)

Phase 8: documentation/customers/creating-customers.mdx

Status: Not Started

Changes:

  • Lines 17-70: Update/collapse accordion - clarify that attach, track, check NO LONGER auto-create customers. Add note about using autumn.customers.getOrCreate()
  • Lines 88-89: Fix TypeScript import pattern

Phase 9: documentation/customers/enabling-product.mdx

Status: Not Started

Changes:

  • Lines 37-40: TypeScript SDK params: customer_idcustomerId, product_idproductId
  • Lines 57-73: JSON response: convert to camelCase (checkout_urlcheckoutUrl, customer_idcustomerId, product_idsproductIds)
  • Lines 76-79: Remove/update tip about auto-customer creation

Phase 10: documentation/customers/feature-entities.mdx

Status: Not Started

Changes:

  • Lines 54-60: Fix TypeScript import and params: feature_idfeatureId
  • Lines 112-118: TypeScript SDK params: customer_idcustomerId, feature_idfeatureId, entity_identityId
  • Lines 166-171: TypeScript SDK params: camelCase
  • Lines 219-228: React example: fix entity_dataentityData, ensure featureId (already camelCase - verify)
  • Lines 231-241: TypeScript SDK params: camelCase, fix entity_dataentityData
  • Lines 316-318: Fix TypeScript method call pattern

Phase 11: documentation/customers/managing-customers.mdx

Status: Not Started

Changes:

  • Lines 93-100: Fix TypeScript import pattern
  • Lines 95-100: Verify customers.update method signature and params

Phase 12: documentation/pricing/credits.mdx

Status: Not Started

Changes:

  • Lines 54-66: TypeScript SDK params: customer_idcustomerId, feature_idfeatureId, required_balancerequiredBalance
  • Lines 101-127: JSON response: convert to camelCase
  • Lines 142-153: TypeScript SDK params: camelCase

Phase 13: Final Review

Status: Not Started

Tasks:

  • Run through all changed files
  • Verify no broken links
  • Check that docs.json navigation is correct
  • Ensure consistency across all examples

Files NOT Requiring Changes

These files are mostly conceptual with no SDK code examples:

  • documentation/pricing/plans.mdx
  • documentation/pricing/features.mdx
  • documentation/pricing/plan-features.mdx
  • documentation/pricing/rewards.mdx (cURL only - snake_case correct)
  • documentation/pricing/versioning.mdx
  • documentation/getting-started/setup/convex.mdx (skip for now per instructions)

Quick Reference: Common Replacements

TypeScript SDK Params

customer_id    → customerId
feature_id     → featureId
product_id     → productId
entity_id      → entityId
required_balance → requiredBalance
send_event     → sendEvent
event_name     → eventName
customer_data  → customerData
entity_data    → entityData

JSON Response Fields

feature_id     → featureId
customer_id    → customerId
product_id     → productId
created_at     → createdAt
updated_at     → updatedAt
started_at     → startedAt
canceled_at    → canceledAt
stripe_id      → stripeId
included_usage → includedUsage
next_reset_at  → nextResetAt
checkout_url   → checkoutUrl
product_ids    → productIds
event_id       → eventId

Customer Object Structure

customer.products  → data.subscriptions
customer.features  → data.balances

Hook Method Names

openBillingPortal → openCustomerPortal

Progress Tracker

Phase File Status
1 getting-started/setup/react.mdx
2 getting-started/setup/sdk.mdx
3 getting-started/gating.mdx
4 getting-started/display-billing.mdx
5 customers/check.mdx
6 customers/tracking-usage.mdx
7 customers/balances.mdx
8 customers/creating-customers.mdx
9 customers/enabling-product.mdx
10 customers/feature-entities.mdx
11 customers/managing-customers.mdx
12 pricing/credits.mdx
13 Final Review

Legend: Not Started | 🔄 In Progress | Complete