Contributing
OpenEntitlement is experimental and Apache-2.0 licensed. Start with the glossary and numbered specification. Raise a concrete issue or pull request in the GitHub repository.
Run the checks
Section titled “Run the checks”# TypeScript SDKcd sdk-jsnpm cinpm run typechecknpm testnpm run build# Python SDKcd sdk-pythonuv syncuv run ruff check packagesuv run pytest -q# Service and consolecd consolenpm cinpm run typechecknpm testnpm run buildFor Postgres conformance, set OE_PG_DSN to a dedicated test database. The suites reset shared fixtures: run the Python, TypeScript, and service database suites sequentially when they share a database. They must not point to production data.
Changes to the contract
Section titled “Changes to the contract”A behavioral fix should include a regression through the public SDK or HTTP boundary. Shared Gherkin scenarios keep implementations aligned. A new contract should state its requirements and cross-language behavior explicitly.
For a proposed semantic change, describe a concrete example, the expected resolution, and compatibility with existing clients. Keep implementations in both languages aligned with the numbered requirements.