docs: update docs for CLAUDE.md and AGENTS.md#3797
docs: update docs for CLAUDE.md and AGENTS.md#3797gergely-kurucz-konghq wants to merge 2 commits intomainfrom
Conversation
Providing an onboarding path for both human and non-human contributors.
📝 WalkthroughWalkthroughThis PR overhauls developer docs: expands AGENTS.md into a full developer guide (build/test, codegen, migrations, architecture), adds CLAUDE.md for Claude Code guidance, and substantially expands README.md with prerequisites, quick start, services, commands, and migrations. No code behavior changes. Changes
Sequence Diagram(s)(omitted — changes are documentation-only and do not introduce new multi-component runtime flows) Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
GAlexIHU
left a comment
There was a problem hiding this comment.
Apart from comments I like the direction! 👍
| **Manual setup:** Go 1.23+, Docker, librdkafka, Node.js (for TypeSpec), Atlas CLI (for migrations). | ||
|
|
||
| ### Project Layout | ||
|
|
||
| ``` | ||
| api/ # API definitions and generated code | ||
| spec/src/ # TypeSpec source files (API-first design) | ||
| client/ # Generated SDKs (Go, JS, Python) | ||
| v3/ # v3 API handlers and generated code | ||
| app/ # Application wiring (Wire providers) | ||
| cmd/ # Service entry points | ||
| openmeter/ # Core business logic packages | ||
| pkg/ # Shared utilities | ||
| tools/migrate/ # Database migrations | ||
| e2e/ # End-to-end tests | ||
| config.example.yaml # Configuration reference | ||
| ``` |
| ## Key Concepts | ||
|
|
||
| ### Multi-Tenancy | ||
| - **Namespace** - Logical isolation boundary that segments data for multi-tenancy | ||
|
|
||
| ### Customers & Subjects | ||
| - **Customer** - An entity representing a client who uses the service | ||
| - **Subject** - An individual user or entity within a customer account, used for fine-grained usage tracking | ||
|
|
||
| ### Metering & Events | ||
| - **Event** - A recorded occurrence of usage activity (e.g., API call, feature usage) with timestamp and metadata | ||
| - **Meter** - Defines how to aggregate events (e.g., sum of API calls, unique users) | ||
|
|
||
| ### Product Catalog | ||
| - **Feature** - A capability that can be metered and entitled | ||
| - **Plan** - A versioned bundle of features with pricing, organized into phases | ||
| - **Plan Phase** - A time-bounded segment within a plan with specific pricing and rate cards | ||
| - **Addon** - Optional supplementary features that can be attached to plans or subscriptions | ||
| - **Rate Card** - Pricing specification for a feature, defining price type, billing cadence, and discounts | ||
|
|
||
| ### Entitlements & Credits | ||
| - **Entitlement** - Grants a customer access to a feature with optional limits and usage tracking | ||
| - **Grant** - A credit allocation to an entitlement with amount, priority, and expiration | ||
|
|
||
| ### Subscriptions | ||
| - **Subscription** - Links a customer to a plan with billing lifecycle and cadence | ||
| - **Subscription Phase** - A time-bounded segment of subscription execution | ||
| - **Subscription Item** - A billable product item within a subscription phase | ||
|
|
||
| ### Billing | ||
| - **Billing Profile** - Configuration defining billing provider setup, tax settings, and supplier details | ||
| - **Invoice** - A billable document generated from subscription items and usage charges | ||
| - **Invoice Line** - A line item representing a charge (flat fee or usage-based) with quantity and pricing | ||
|
|
||
| ### Apps & Integrations | ||
| - **App** - An installed integration/provider (e.g., Stripe) for payments, invoicing, or tax calculation |
| config.example.yaml # Configuration reference | ||
| ``` | ||
|
|
||
| ### Quick Start |
There was a problem hiding this comment.
Let's scope everything added under a development section. Let's also try to limit what a visitor initially sees, I think you can collapse sections by default https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.