RUM community plugins

A personal community project under @kyletaylored, MIT licensed.Not provided or supported by Datadog.

Contributing an adapter

An adapter is a small module: subscribe to the platform's own events, map them onto the shared schema, call the RUM API. Everything else — dedupe, the consent gate, the PII filter, size caps, the debug log — lives in the core, so you do not write any of it. The target is a week from first commit to merged PR.

Scaffold

git clone https://github.com/kyletaylored/datadog-rum-community-plugins
cd datadog-rum-community-plugins
npm install
npm run new-plugin -- bigcommerce --title "BigCommerce" --family commerce --github your-handle

That copies templates/plugin into packages/plugin-bigcommerce and renames everything. Its tests pass against an empty mapping on purpose, so you start from green and watch each assertion tighten as you fill it in.

What you write

  1. Record real fixtures. Capture actual payloads from the platform intofixtures/*.json, trimmed to the fields you read. Say in the file where they came from. Include at least one payload carrying something that must be stripped — a card field, an email — so the privacy rules are exercised rather than assumed.
  2. Map them. In src/index.ts, subscribe to the platform's events and calltracker.track(...). Send numbers as numbers. Pass email and name straight through and let the core decide whether they are sent — do not gate them yourself.
  3. Declare the footprint. Every global you read, event you subscribe to, storage key you write and RUM API you call, in both FOOTPRINT and plugin.json. The conformance suite fails if the run touches something undeclared.
  4. Point the harness at your platform. Fill in the test's emit so fixtures reach the adapter through its own subscription, rather than calling the mapper directly. Testing the mapper alone would miss the part most likely to be wrong.
  5. Run it. npm run verify builds, tests, validates the manifest and checks the size budget.

What the harness gives you

Rules that will fail your PR

Hard rules

Tiers and review

TierBarShown as
ListedValid manifest, passing CICommunity
VerifiedPasses the conformance suite, has a demo page, reviewed by a core maintainer for the privacy rulesVerified community
SeedMaintained by the project maintainerMaintainer

Each adapter gets a CODEOWNERS entry. An adapter with no maintainer activity for six months is marked deprecated in the gallery rather than silently rotting.

Releasing

Add a changeset with your PR (npm run changeset). Merging to main opens a release PR that bumps only the changed packages; merging that publishes them with provenance and computes the SRI hash for each CDN build.