2.7 KiB
Stripe Publication
Status: MVP for ADAPTIVE-WP-0007.
Purpose
This milestone adds the first outbound execution layer for pricing models.
The implementation keeps adaptive-pricing as the source of truth and treats
Stripe as an execution backend. In this repository, publication targets a
file-backed Stripe shadow state rather than the live Stripe API.
Core Modules
adaptive_pricing_core/provider_publication.pyadaptive_pricing_core/stripe_provider.py
The provider-publication core defines:
- provider-neutral publishable artifacts
- publication plans and operations
- drift findings
- revisioned shadow state
- rollback mechanics
The Stripe mapper translates publishable artifacts into Stripe-oriented objects and marks each mapping as:
exactapproximateunsupported
Publishable Artifact Model
Current provider-neutral artifacts:
- product
- meter
- price
- commitment
- configuration
Current Stripe-oriented object types:
productbilling_meterpricecouponmetadata_binding
metadata_binding is used for execution-adjacent information that Stripe can
store as metadata but does not treat as a first-class pricing object.
Mapping Semantics
Current exact mappings:
- catalog product identity and metadata
- fixed recurring and one-time prices
- metered usage prices without bundled allowance semantics
- Stripe meter definitions
Current approximate mappings:
- metered prices that also imply included usage
- discount components mapped as coupon-like artifacts
- contract-duration commitments carried as metadata or schedule-adjacent data
- configuration artifacts carried as metadata
Current unsupported mappings:
- included-usage-only components without a billable per-unit overage price
- commitment semantics such as prepayment or minimum turnover when Stripe alone cannot enforce them
Coulomb Adapter
Project adapter:
projects/coulomb-pricing/observatory/publication.pyprojects/coulomb-pricing/observatory/publish.py
Default local shadow-state path:
projects/coulomb-pricing/data/provider_state/stripe-publication.json
Preview:
cd projects/coulomb-pricing
python3 -m observatory.publish --model-id flat-899-eur-monthly
Apply to the local shadow state:
cd projects/coulomb-pricing
python3 -m observatory.publish --model-id flat-899-eur-monthly --apply
Rollback:
cd projects/coulomb-pricing
python3 -m observatory.publish --rollback stripe-rev-0001
Current Scope Limit
This milestone does not call the live Stripe API.
It establishes the internal publication model, Stripe object mapping, idempotent shadow-state synchronization, drift detection, and rollback path so live API execution can be layered on without making Stripe the source of truth.