beam-community/stripity-stripe
65.9
Adequate · 23 September 2026
45.8k
lines of production code
Elixir
primary language
5
measurements over time
What this system is
This system is a Stripe API client library for Elixir that automates SDK generation from the official OpenAPI specification. It provides a structured interface for interacting with Stripe services, including core payment resources, Connect OAuth workflows, and webhook processing. The library handles HTTP request construction, response parsing, and configuration management while ensuring reliability through comprehensive testing against a local mock server.
How it got here
2015 — v3.3.2 rebranding and architecture rewrite
6 changes.
The project was rebranded from stripity\_stripe to stripe-elixir and underwent a major architectural rewrite to replace manual HTTP client logic with an automated OpenAPI-based code generation pipeline. This period introduced a modular structure for requests, responses, and webhooks, while simultaneously overhauling dependencies and establishing a robust, isolated test suite using StripeMock and Mox.
2016–2017 — Stripe Connect integration and test coverage
7 changes.
This period focused on implementing Stripe Connect OAuth workflows and adding comprehensive unit tests for core, subscription, and payment method resources. The work also established robust testing infrastructure using mock servers to verify API interactions and corrected configuration defaults for the erlexec library.
2019–2023 — OpenAPI code generation and test coverage
7 changes.
The project established a new code generation pipeline in lib/openapi to automatically produce Elixir client modules from the Stripe OpenAPI specification. This infrastructure enabled the regeneration of API client services to align with specification v755, while simultaneously expanding test coverage across multiple Stripe modules including Checkout, Billing Portal, Terminal, Identity, and Fraud.
Features
New Stripe Connect OAuth integration module
Added \Stripe.Connect.OAuth\ to support Stripe Connect workflows, allowing users to generate OAuth authorization URLs (including support for both standard and express account types), exchange authorization codes for access tokens, and deauthorize connected accounts. The module includes specific response structs for token and deauthorization results and integrates with the existing API and converter layers.
lib/stripe/connect · high confidence
New code generation pipeline for Stripe API modules
The \lib/openapi\ directory now contains a complete code generation pipeline that reads the Stripe OpenAPI specification and generates Elixir modules and functions. This includes a new \mix stripe.generate\ task, blueprint data structures for schemas and operations, and processing phases that parse the spec, build module structures, and compile the final API client code. This change introduces the infrastructure for automatically generating SDK code from the Stripe API definition.
lib/openapi · high confidence
Repository initialization with standard Elixir tooling and configuration
The repository has been initialized with standard Elixir project configuration files, including \.commitlintrc.yml\ for conventional commit enforcement, \.credo.exs\ for code linting, and \.formatter.exs\ for code formatting. It also includes a \Makefile\ for managing Stripe OpenAPI SDK updates and code generation, a \.tool-versions\ file specifying Elixir 1.19 and Erlang 27.3, and a \.latest-tag-stripe-openapi-sdk\ file tracking the SDK version (v2129). The project license has been updated to reflect the BEAM Community copyright, and the README has been expanded with detailed installation, configuration, and usage examples.
(repo-wide) · high confidence
Behavioural changes
Add default configuration for erlexec user
A new \config/config.exs\ file has been added to the project, which imports any existing secret configuration and explicitly sets the \user\ environment for the \erlexec\ library to the value of the \USER\ system environment variable. This ensures that \erlexec\ runs with the correct user context, addressing potential issues when executed as root.
config · high confidence
Introduction of OpenAPI code generation and major refactoring of the Stripe core module
This change introduces a new \lib/open\_api.ex\ module that implements a pipeline-based code generation system (parsing, building modules/operations, documentation, and compilation) to automatically generate API client code. Simultaneously, the core \lib/stripe.ex\ module has been significantly refactored: it now explicitly documents shared request options (including a new \:response\_as\ option for flexible response formatting), details HTTP connection pool configuration, and updates the application startup logic to integrate with the new API supervisor structure. This represents a shift from a manual, hardcoded HTTP client implementation to a more automated, configurable, and structured approach.
lib · high confidence
Regenerate Elixir client services from Stripe OpenAPI v755
The generated API client code in lib/generated has been updated to align with Stripe OpenAPI specification v755. This regeneration refreshes the Elixir modules for Stripe resources (such as Account, AccountLink, AccountSession, and BalanceTransaction) and their corresponding API methods, ensuring the library reflects the latest Stripe API structure, parameters, and response types.
lib/generated · high confidence
Stripe library restructured with new core modules and removed legacy endpoints
The library has been refactored to introduce a new modular architecture, adding dedicated modules for configuration (Stripe.Config), request handling (Stripe.Request), response conversion (Stripe.Converter), and webhook processing (Stripe.Webhook, Stripe.WebhookPlug). Legacy resource modules such as Stripe.Charges and Stripe.Customers have been removed in favor of this new structure. The change also updates the default Stripe API version to 2025-11-17.clover and introduces support for configurable JSON libraries and connection pooling.
lib/stripe · high confidence
Test coverage
Added test coverage for Stripe Connect resources; Added test coverage for Stripe core resources; Added test coverage for Stripe payment method resources; Added test coverage for Stripe subscription-related resources; Added test helpers for mocking Stripe API interactions; Added tests for BillingPortal.Session; Added tests for Early Fraud Warnings; Added tests for Stripe Checkout Session operations; Added tests for Stripe Identity Verification resources; Added tests for Stripe Terminal resources; Comprehensive test suite for Stripe Elixir library; Test suite now uses StripeMock and Mox for isolated testing.
Dependencies
Major dependency overhaul and project rebranding to stripe-elixir v3.3.2
The project has been renamed from \stripity\_stripe\ to \stripe-elixir\ and bumped to version 3.3.2, requiring an Elixir runtime of at least 1.11. This update replaces the JSON serialization library from Poison to Jason and introduces telemetry for observability. The HTTP client dependency has been significantly upgraded from hackney 1.3.2 to 4.7.4, which brings in modern Erlang/OTP dependencies like h2, webtransport, and updated SSL verification libraries. Development tooling has also been updated, including ex\_doc to 0.40.4, credo to 1.7.19, and dialyxir to 1.4.8.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 58 → 66 (+7.9)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 100 → 93 (-7.0)
- Maturity 56 → 54 (-2.8)
- Readiness 62 → 84 (+22.3)
- Security 47 → 64 (+17.5)
Resolved (27)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (12 lines × 2) (lib/openapi/phases/compile.ex)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Leaked secret: high-entropy-secret (lib/stripe.ex)
- No exposed public API
- …and 7 more
New (30)
- Duplicated block (12 lines × 2) (lib/openapi/phases/compile.ex)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 10 more
Changes since last survey
- 7 commits — 7 feature/other, 0 fixes
By area
- (root) — 6 commits
- .github/workflows — 1 commit
Notable commits
- change: chore(deps): bump hackney from 4.6.0 to 4.7.2 in the prod group (#945)
- change: chore(deps): bump hackney from 4.7.2 to 4.7.4 in the prod group (#947)
- change: chore(deps): bump mox from 1.2.0 to 1.3.1 in the dev group (#948)
- change: chore(deps): bump the dev group with 2 updates (#951)
- change: chore(deps): bump the dev group with 3 updates (#949)
- change: chore: sync files with beam-community/common-config (#943)
- change: docs: add markdown formatter to docs output (#946)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
beam-community/stripity-stripe was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit bd2080eadb1158c29324ba7d65c2e9dde6cec99f — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.