Imported from Nexters/PPOTTO-Server (
src/main/kotlin/com/github/nexters/ppotto/global/AGENTS.md). Install upstream withnpx skills add Nexters/PPOTTO-Server --skill global. Copyright stays with the author.
global
Shared module used by all domains. Contains no business logic.
| Directory | Description |
|---|---|
config/ |
Spring configuration beans (see config/AGENTS.md) |
error/ |
Error codes, exceptions, global handler (see error/AGENTS.md) |
identifier/ |
@JvmInline typed UUID identifiers shared across domains (see identifier/AGENTS.md) |
jooq/ |
Custom jOOQ converters used by codegen forcedType: OffsetDateTimeInstantConverter plus one UUID ↔ XxxId converter per typed identifier, generating id columns as typed fields. Each id converter is a one-expression Converter.ofNullable(...) delegation; generated code instantiates it by FQN, so the class names are pinned by buildSrc/src/main/kotlin/ppotto.database.gradle.kts |
logging/ |
Request logging filter (see logging/AGENTS.md) |
observability/ |
Sentry beans the starter cannot infer (authenticated user context, /actuator/** traces sampler) plus the gen_ai.* LLM span wrapper for Vertex AI Gemini calls (see observability/AGENTS.md) |
lock/ |
@AdvisoryLock annotation and its aspect: Postgres advisory lock taken inside the annotated method's transaction (see lock/AGENTS.md) |
retry/ |
RetryPolicy + retrying { } higher-order function returning Result (see retry/AGENTS.md) |
transaction/ |
afterCommit { } post-commit hook with no-transaction fallback (see transaction/AGENTS.md) |
oauth/ |
OAuthProvider — the closed social-login provider set (KAKAO, APPLE) shared by auth and user (see oauth/AGENTS.md) |
openapi/ |
Reusable Swagger error response annotations, the documentation-only failure envelope schema, and the type-safe example registry that injects real DTO instances into the OpenAPI document (see openapi/AGENTS.md) |
response/ |
The ApiResponse response envelope (see response/AGENTS.md) |
security/ |
Required and optional authenticated-user MVC argument contracts (see security/AGENTS.md) |
storage/ |
ObjectKeyGenerator, GcsReadUrlIssuer, and ObjectStorageCleaner — domain-agnostic GCS object key/prefix building, read signed URL issuing, and object deletion shared across domains (see storage/AGENTS.md) |
Rules
- Nothing here may depend on a domain package. Dependencies flow from domains into global only.
- Additions here affect every domain; prefer putting logic in a domain unless it is truly cross-cutting.
Update this file when subpackages are added or removed.