Skip to content

feat(integrations): add render-db Stripe catalog provider#54

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

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

Conversation

@snowmead

@snowmead snowmead commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds the render-db 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

Medium Risk
Introduces a paid database provisioning path with provisional credential output names until discover; behavior is covered by gap and hermetic tests but live envelope pinning is still pending.

Overview
Adds a Phase 1 Stripe Projects catalog integration for render/postgres (render-postgres), so stacks can provision managed Postgres and wire database_url into services.

The new render_db family implements the usual CatalogResource shape (config from catalog schema, managed/global-only hosting, registry row, catalog gap + hermetic provision tests). OUTPUT_FIELDS for DATABASE_URL are provisional until live mise run discover.

stackless-provider-sdk gains shared int_optional, bool_required, and bool_optional config readers for generated and hand-written catalog adapters.

Docs add PROVIDER-WAVES.md, a catalog-first decision in DECISIONS.md, and a cross-link from ADDING-A-PROVIDER.md. scripts/generate_catalog_integrations.py is introduced to scaffold remaining deployables (this PR lands render/postgres manually).

Reviewed by Cursor Bugbot for commit 590ac47. 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 590ac47. 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.

Script omits implemented render postgres

Medium Severity

This PR adds a hand-written render/postgres adapter, but IMPLEMENTED still lists only render/web-service and render/static-site. The generator therefore keeps treating render/postgres as missing and will rewrite postgres.rs, providers/mod.rs, and register_providers! on the next run, risking drift from the reviewed adapter.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 590ac47. Configure here.

count=1,
flags=re.S,
)
reg_path.write_text(reg)

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 drops skipped provider registrations

High Severity

generate_catalog_integrations.py rebuilds providers/mod.rs and the entire register_providers! block from only Clerk, Cloudflare, and services generated in that run. Catalog entries moved into IMPLEMENTED are skipped for generation but not preserved in the registry or module tree, so a later run can unregister adapters such as render-postgres while their source files remain.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 590ac47. 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