A column named for a payment provider's event holds words that are not events #131

Open
opened 2026-09-21 07:18:38 +00:00 by cgalo5758 · 0 comments
Owner

What a contributor runs into

core.subscription_changes.stripe_event_id is a required column on a core table, although the rule for core tables is that provider identifiers stay provider-side. The reconciler writes attribution strings into it that are not event identifiers at all, such as the marker it uses for a return from checkout or for a cancellation it fired itself.

Why it costs

The name promises a joinable provider identifier, so anyone who joins on it finds strings that never were one, and the exception to the no-provider-identifiers rule is invisible to a reader of the schema.

Where

internal/db/migrations, the subscription changes table; the reconciler in internal/integrations/stripe that writes it.

Done when

The column is named for what it holds, an attribution or a reason, or the provider identifier moves to a provider-side table and the core column keeps only the reason.

Migrated from status/issues.md at b7a0e15

## What a contributor runs into `core.subscription_changes.stripe_event_id` is a required column on a core table, although the rule for core tables is that provider identifiers stay provider-side. The reconciler writes attribution strings into it that are not event identifiers at all, such as the marker it uses for a return from checkout or for a cancellation it fired itself. ## Why it costs The name promises a joinable provider identifier, so anyone who joins on it finds strings that never were one, and the exception to the no-provider-identifiers rule is invisible to a reader of the schema. ## Where [`internal/db/migrations`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/internal/db/migrations), the subscription changes table; the reconciler in [`internal/integrations/stripe`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/internal/integrations/stripe) that writes it. ## Done when The column is named for what it holds, an attribution or a reason, or the provider identifier moves to a provider-side table and the core column keeps only the reason. Migrated from status/issues.md at b7a0e15
cgalo5758 added the
kind
debt
area/billing
labels 2026-09-21 07:18:38 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki-cafe/member-console#131