Hand-counted ground truth for evaluating Lineage's ingestion of this repo. Not ingested as
documentation itself (only Confluence pages are ingested as doc entities) — this is a reference
file for whoever is comparing Lineage's actual output against what's really in the code.
| Package | Types |
|---|---|
controller |
AuthController, BookController |
service |
AuthService, BookService, EnrichmentClient (interface), EnrichmentResult (record), OpenLibraryEnrichmentClient |
repository |
UserRepository, BookRepository (both interfaces) |
model |
BaseEntity (abstract, @MappedSuperclass), User (@Entity), Book (@Entity) |
security |
JwtUtil, JwtAuthFilter |
config |
WebConfig, PasswordEncoderConfig |
exception |
ApiException, GlobalExceptionHandler |
dto |
SignupRequest, LoginRequest, AuthResponse, UserResponse, BookRequest, BookResponse (all records) |
| (root) | ShelfApiApplication |
User extends BaseEntityBook extends BaseEntityUserRepository extends JpaRepository/BookRepository extends JpaRepository— target is a framework interface, not a repo node; expect these to show as a modifier/annotation on the repository, not a resolvable in-repo EXTENDS edge.JwtAuthFilter extends OncePerRequestFilter— same caveat, external target.
OpenLibraryEnrichmentClient implements EnrichmentClient
User (username, passwordHash) and Book (title, author, coverUrl, description, owner) — both
@Entity, both extend BaseEntity. This is the "local DB integration" piece of the test project.
AuthController → AuthServiceBookController → BookServiceAuthService → UserRepository,AuthService → JwtUtilBookService → BookRepository,BookService → UserRepository,BookService → EnrichmentClientJwtAuthFilter → JwtUtil
BookServiceTest→BookService(3 test methods: enrichment succeeds, enrichment fails but book still saves, listBooks scopes to the caller)
OpenLibraryEnrichmentClient→shelf-enrichment-python'sPOST /api/enrich(matched by URL/route naming, not static analysis)shelf-frontend'sauthClient/bookClient→ this repo's/api/auth/signup,/api/auth/login,GET /api/books,POST /api/books(4 inferred call sites)
shelf.jwt.secret (env SHELF_JWT_SECRET) must match shelf-enrichment-python's value exactly —
this service issues the token, that one validates it, neither calls the other to check a session.