Markdown

Rivet Sample Validation and Observed Drift

Validated sources:

  • `zoom/rivet-javascript-sample`
  • `zoom/isv-rivet-starter`
  • `zoom/Rivet-Server-Sample`
  • `zoom/rivet-javascript`

Lifecycle Patterns Confirmed

  • Module clients are instantiated with auth + receiver options.
  • Handlers are registered before or near startup.
  • `client.start()` bootstraps receiver/server.
  • Multi-module samples use unique ports per module.
  • `/zoom/events` endpoint suffix is required for webhook callbacks.

Architecture Patterns Confirmed

  • Rivet acts as an orchestration layer:
  • Typed endpoint wrappers for API operations.
  • Webhook consumer methods for events.
  • OAuth helper behavior embedded in client lifecycle.

Useful Additions Incorporated into Skill

  • Multi-module port segregation and webhook endpoint mapping.
  • Distinct auth patterns by module.
  • Sample-derived operational gotchas for ngrok and OAuth install.

Contradictions and Drift Notes

  • Some docs/samples reference older Team Chat doc paths (`team-chat-apps`) while current docs may use updated routing.
  • Sample env variable naming is inconsistent across repos (`StS_*`, `WEBHOOK_SECRET_TOKEN`, per-module keys). This skill standardizes names in `environment-variables.md`.
  • Some sample README commands imply one port while module receivers may actually use `base+1` or per-module ports.
  • User OAuth behavior depends on receiver choice; `AwsLambdaReceiver` limitations must be handled explicitly.

Recommendations

  • Keep a local compatibility table: `rivet_version` x `modules_used` x `auth_flows` x `receiver_type`.
  • Treat sample repos as patterns, not strict source of truth.
  • Re-check TypeDoc and changelog before each release.