Skip to content

feat(integrations): add mixpanel Stripe catalog provider#44

Open
snowmead wants to merge 1 commit into
mainfrom
feat/integration-mixpanel
Open

feat(integrations): add mixpanel Stripe catalog provider#44
snowmead wants to merge 1 commit into
mainfrom
feat/integration-mixpanel

Conversation

@snowmead

@snowmead snowmead commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds the mixpanel Stripe Projects catalog integration family as CatalogResource adapter(s).
  • Follows docs/ADDING-A-PROVIDER.md and docs/PROVIDER-WAVES.md.
  • Includes gap test + hermetic provision test. OUTPUT_FIELDS provisional until mise run discover.

Test plan

  • Gap + hermetic tests in module
  • Live mise run discover when provider is linked
  • Merge after resolving additive registry.rs conflict with other family PRs

Note

Low Risk
Additive integration registration and shared SDK helpers with offline tests; provisional output envelope may need discover before live smoke.

Overview
Adds a Phase 1 Stripe Projects CatalogResource for mixpanel/analytics: managed global integration with empty config schema, provisional token output (MIXPANEL_TOKEN), catalog gap test, and hermetic provision_script test. Registers MixpanelAnalytics in register_providers! and extends the Hostable::OUTPUTS vs OUTPUT_FIELDS drift test.

Extends stackless-provider-sdk with int_optional, bool_required, and bool_optional config helpers (alongside existing int_required) for generated/schema-heavy integrations.

Documents catalog-first rollout: PROVIDER-WAVES.md, DECISIONS.md entry, link from ADDING-A-PROVIDER.md, plus scripts/generate_catalog_integrations.py to scaffold remaining deployables (Mixpanel included in hints).

Reviewed by Cursor Bugbot for commit 1800731. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 1800731. Configure here.

"vercel/project",
"flyio/app",
"netlify/project",
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generator skips implemented mixpanel

Medium Severity

The new mixpanel/analytics adapter is registered in-tree, but IMPLEMENTED in generate_catalog_integrations.py does not include mixpanel/analytics. Running the generator still treats Mixpanel as unimplemented and can overwrite providers/mixpanel and rewrite registry.rs / providers/mod.rs, undoing this PR’s hand-landed family work.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 1800731. Configure here.

else:
build_fields.append(
f' {rust_key}: super::interp_optional(ctx, &config, "{key}")?,'
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codegen maps numbers to strings

Medium Severity

In generate_catalog_integrations.py, schema properties with type number get Rust fields via rust_type as f64 / Option<f64>, but build_config emits interp_required / interp_optional, which produce strings. Generated modules for deployables with numeric config will not type-check or serialize correct JSON numbers.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 1800731. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant