Efficient codebase investigation for rapid-go...
Proto (API contract) -> Handler -> Usecase -> Repository -> DB
Use this flow to trace any feature. Start from what you know.
| What | Where |
|---|---|
| API contracts | schema/proto/rapid/{admin_api,public_api,debug_api}/v1/ |
| Handlers | internal/infrastructure/grpc/internal/handler/{admin,public,debug}/ |
| Usecases | internal/usecase/*_impl.go |
| Domain models | internal/domain/model/ |
| Repository interfaces | internal/domain/repository/ |
| Repository implementations | internal/infrastructure/{mysql,postgresql,spanner}/repository/ |
| DI wiring | internal/infrastructure/dependency/dependency.go |
| Auth interceptors | internal/infrastructure/grpc/internal/interceptor/ |
# Find by HTTP path
grep "/admin/v1/tenants" schema/proto/rapid/
# Find by RPC name
grep "CreateTenant" internal/infrastructure/grpc/internal/handler/admin/
schema/proto/rapid/**/api.protointernal/infrastructure/grpc/internal/handler/{actor}/internal/usecase/*_impl.gointernal/domain/repository/ (interface) and internal/infrastructure/*/repository/ (impl)# Find usages of a domain model
grep "model.Staff" internal/
# Find usages of a repository method
grep "staffRepository.Get" internal/usecase/
internal/infrastructure/grpc/internal/interceptor/session_interceptor/internal/infrastructure/grpc/internal/interceptor/authorization_interceptor/param.AdminRole.IsRoot() patternsinternal/domain/repository/internal/infrastructure/*/repository/internal/usecase/internal/domain/repository/mock/| Goal | Search |
|---|---|
| Find entity by name | grep "type Staff struct" internal/domain/model/ |
| Find error definition | grep "StaffNotFoundErr" internal/domain/errors/ |
| Find input validation | grep "type AdminCreateStaff" internal/usecase/input/ |
| Find marshaller | grep "StaffToModel|StaffToPb" internal/ |
| Find DI registration | grep "AdminStaffInteractor" internal/infrastructure/dependency/ |
dependency.go to understand how components are wired