https://github.com/danielcasanovasgayoso/portfolio-app
· scanned 2026-06-17 01:52 UTC (1 month, 1 week ago)
31 raw signals (0 security + 31 graph)
Last scanned 1 month, 1 week ago · v2 · last Δ +12.2 (diff) · 31 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 820 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
tryQuote |
software | healthy | scripts/backfill-prices-yahoo.ts:tryQuote |
pickUser |
software | healthy | scripts/backfill-prices-yahoo.ts:pickUser |
loadActiveAssets |
software | healthy | scripts/backfill-prices-yahoo.ts:loadActiveAssets |
resolveYahooSymbol |
software | healthy | scripts/backfill-prices-yahoo.ts:resolveYahooSymbol |
fetchYahooHistory |
software | healthy | scripts/backfill-prices-yahoo.ts:fetchYahooHistory |
writePrices |
software | healthy | scripts/backfill-prices-yahoo.ts:writePrices |
main |
software | healthy | scripts/backfill-prices-yahoo.ts:main |
middleware |
software | healthy | src/middleware.ts:middleware |
RootLayout |
software | healthy | src/app/layout.tsx:RootLayout |
formatSSE |
software | healthy | src/app/api/prices/refresh/stream/route.ts:formatSSE |
GET |
software | healthy | src/app/api/prices/refresh/stream/route.ts:GET |
GET |
software | healthy | src/app/api/cron/update-prices/route.ts:GET |
limit |
software | healthy | src/app/api/cron/update-prices/route.ts:limit |
POST |
software | healthy | src/app/api/cron/update-prices/route.ts:POST |
GET |
software | healthy | src/app/api/auth/gmail/route.ts:GET |
GET |
software | healthy | src/app/api/auth/gmail/callback/route.ts:GET |
GET |
software | healthy | src/app/auth/callback/route.ts:GET |
MainError |
software | healthy | src/app/(main)/error.tsx:MainError |
MainLayout |
software | healthy | src/app/(main)/layout.tsx:MainLayout |
RootPage |
software | healthy | src/app/(main)/page.tsx:RootPage |
InvestmentsLoading |
software | healthy | src/app/(main)/investments/loading.tsx:InvestmentsLoading |
InvestmentsPage |
software | healthy | src/app/(main)/investments/page.tsx:InvestmentsPage |
InvestmentsContent |
software | healthy | src/app/(main)/investments/page.tsx:InvestmentsContent |
InvestmentsContentSkeleton |
software | healthy | src/app/(main)/investments/page.tsx:InvestmentsContentSkele… |
PortfolioChartLoading |
software | healthy | src/app/(main)/investments/chart/loading.tsx:PortfolioChart… |
computeMonthlyChanges |
software | healthy | src/app/(main)/investments/chart/page.tsx:computeMonthlyCha… |
InvestmentsChartPage |
software | healthy | src/app/(main)/investments/chart/page.tsx:InvestmentsChartP… |
TransactionsLoading |
software | healthy | src/app/(main)/investments/transactions/loading.tsx:Transac… |
TransactionsContent |
software | healthy | src/app/(main)/investments/transactions/TransactionsContent… |
handleTransactionChange |
software | healthy | src/app/(main)/investments/transactions/TransactionsContent… |
handlePageChange |
software | healthy | src/app/(main)/investments/transactions/TransactionsContent… |
TransactionsPage |
software | healthy | src/app/(main)/investments/transactions/page.tsx:Transactio… |
TransactionsLoader |
software | healthy | src/app/(main)/investments/transactions/page.tsx:Transactio… |
TransactionsSkeleton |
software | healthy | src/app/(main)/investments/transactions/page.tsx:Transactio… |
NewTransactionLoading |
software | healthy | src/app/(main)/investments/transactions/new/loading.tsx:New… |
AddTransactionPage |
software | healthy | src/app/(main)/investments/transactions/new/page.tsx:AddTra… |
total |
software | healthy | src/app/(main)/investments/transactions/new/page.tsx:total |
onSubmit |
software | healthy | src/app/(main)/investments/transactions/new/page.tsx:onSubm… |
ImportLoading |
software | healthy | src/app/(main)/investments/import/loading.tsx:ImportLoading |
generateMetadata |
software | healthy | src/app/(main)/investments/import/page.tsx:generateMetadata |
ImportPage |
software | healthy | src/app/(main)/investments/import/page.tsx:ImportPage |
ImportContent |
software | healthy | src/app/(main)/investments/import/page.tsx:ImportContent |
AssetDetailLoading |
software | healthy | src/app/(main)/investments/assets/[id]/loading.tsx:AssetDet… |
AssetDetailPage |
software | healthy | src/app/(main)/investments/assets/[id]/page.tsx:AssetDetail… |
RealEstateLoading |
software | healthy | src/app/(main)/real-estate/loading.tsx:RealEstateLoading |
RealEstatePage |
software | healthy | src/app/(main)/real-estate/page.tsx:RealEstatePage |
RealEstateContent |
software | healthy | src/app/(main)/real-estate/page.tsx:RealEstateContent |
RealEstateEmptyState |
software | healthy | src/app/(main)/real-estate/page.tsx:RealEstateEmptyState |
PropertyDetailLoading |
software | healthy | src/app/(main)/real-estate/[id]/loading.tsx:PropertyDetailL… |
buildChartData |
software | healthy | src/app/(main)/real-estate/[id]/page.tsx:buildChartData |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.env.example |
software | healthy | .env.example |
vitest.config.ts |
software | healthy | vitest.config.ts |
global.d.ts |
software | healthy | global.d.ts |
prisma.config.ts |
software | healthy | prisma.config.ts |
vercel.json |
software | healthy | vercel.json |
eslint.config.mjs |
software | healthy | eslint.config.mjs |
package-lock.json |
software | healthy | package-lock.json |
README.md |
software | healthy | README.md |
postcss.config.mjs |
software | healthy | postcss.config.mjs |
package.json |
software | healthy | package.json |
next.config.ts |
software | healthy | next.config.ts |
components.json |
software | healthy | components.json |
tsconfig.json |
software | healthy | tsconfig.json |
backfill-prices-yahoo.ts |
software | healthy | scripts/backfill-prices-yahoo.ts |
ci.yml |
software | healthy | .github/workflows/ci.yml |
middleware.ts |
software | healthy | src/middleware.ts |
globals.css |
software | healthy | src/app/globals.css |
layout.tsx |
software | healthy | src/app/layout.tsx |
route.ts |
software | healthy | src/app/api/prices/refresh/stream/route.ts |
route.ts |
software | healthy | src/app/api/cron/update-prices/route.ts |
route.ts |
software | healthy | src/app/api/auth/gmail/route.ts |
route.ts |
software | healthy | src/app/api/auth/gmail/callback/route.ts |
route.ts |
software | healthy | src/app/auth/callback/route.ts |
error.tsx |
software | healthy | src/app/(main)/error.tsx |
layout.tsx |
software | healthy | src/app/(main)/layout.tsx |
page.tsx |
software | healthy | src/app/(main)/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/investments/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/investments/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/investments/chart/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/investments/chart/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/investments/transactions/loading.tsx |
TransactionsContent.tsx |
software | healthy | src/app/(main)/investments/transactions/TransactionsContent… |
page.tsx |
software | healthy | src/app/(main)/investments/transactions/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/investments/transactions/new/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/investments/transactions/new/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/investments/import/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/investments/import/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/investments/assets/[id]/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/investments/assets/[id]/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/real-estate/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/real-estate/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/real-estate/[id]/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/real-estate/[id]/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/real-estate/[id]/edit/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/real-estate/[id]/edit/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/real-estate/new/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/real-estate/new/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/summary/loading.tsx |
page.tsx |
software | healthy | src/app/(main)/summary/page.tsx |
loading.tsx |
software | healthy | src/app/(main)/wallet/loading.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
scripts |
software | healthy | scripts |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
app |
software | healthy | src/app |
api |
software | healthy | src/app/api |
prices |
software | healthy | src/app/api/prices |
refresh |
software | healthy | src/app/api/prices/refresh |
stream |
software | healthy | src/app/api/prices/refresh/stream |
cron |
software | healthy | src/app/api/cron |
update-prices |
software | healthy | src/app/api/cron/update-prices |
auth |
software | healthy | src/app/api/auth |
gmail |
software | healthy | src/app/api/auth/gmail |
callback |
software | healthy | src/app/api/auth/gmail/callback |
auth |
software | healthy | src/app/auth |
callback |
software | healthy | src/app/auth/callback |
(main) |
software | healthy | src/app/(main) |
investments |
software | healthy | src/app/(main)/investments |
chart |
software | healthy | src/app/(main)/investments/chart |
transactions |
software | healthy | src/app/(main)/investments/transactions |
new |
software | healthy | src/app/(main)/investments/transactions/new |
import |
software | healthy | src/app/(main)/investments/import |
assets |
software | healthy | src/app/(main)/investments/assets |
[id] |
software | healthy | src/app/(main)/investments/assets/[id] |
real-estate |
software | healthy | src/app/(main)/real-estate |
[id] |
software | healthy | src/app/(main)/real-estate/[id] |
edit |
software | healthy | src/app/(main)/real-estate/[id]/edit |
new |
software | healthy | src/app/(main)/real-estate/new |
summary |
software | healthy | src/app/(main)/summary |
wallet |
software | healthy | src/app/(main)/wallet |
new |
software | healthy | src/app/(main)/wallet/new |
settings |
software | healthy | src/app/(main)/settings |
(auth) |
software | healthy | src/app/(auth) |
login |
software | healthy | src/app/(auth)/login |
register |
software | healthy | src/app/(auth)/register |
types |
software | healthy | src/types |
components |
software | healthy | src/components |
real-estate |
software | healthy | src/components/real-estate |
charts |
software | healthy | src/components/charts |
layout |
software | healthy | src/components/layout |
skeletons |
software | healthy | src/components/skeletons |
transactions |
software | healthy | src/components/transactions |
wallet |
software | healthy | src/components/wallet |
auth |
software | healthy | src/components/auth |
settings |
software | healthy | src/components/settings |
portfolio |
software | healthy | src/components/portfolio |
import |
software | healthy | src/components/import |
asset-detail |
software | healthy | src/components/asset-detail |
ui |
software | healthy | src/components/ui |
i18n |
software | healthy | src/i18n |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
MainError |
frontend | healthy | src/app/(main)/error.tsx |
MainLayout |
frontend | healthy | src/app/(main)/layout.tsx |
RootPage |
frontend | healthy | src/app/(main)/page.tsx |
InvestmentsLoading |
frontend | healthy | src/app/(main)/investments/loading.tsx |
PortfolioChartLoading |
frontend | healthy | src/app/(main)/investments/chart/loading.tsx |
TransactionsLoading |
frontend | healthy | src/app/(main)/investments/transactions/loading.tsx |
NewTransactionLoading |
frontend | healthy | src/app/(main)/investments/transactions/new/loading.tsx |
AddTransactionPage |
frontend | healthy | src/app/(main)/investments/transactions/new/page.tsx |
ImportLoading |
frontend | healthy | src/app/(main)/investments/import/loading.tsx |
AssetDetailLoading |
frontend | healthy | src/app/(main)/investments/assets/[id]/loading.tsx |
RealEstateLoading |
frontend | healthy | src/app/(main)/real-estate/loading.tsx |
PropertyDetailLoading |
frontend | healthy | src/app/(main)/real-estate/[id]/loading.tsx |
EditPropertyLoading |
frontend | healthy | src/app/(main)/real-estate/[id]/edit/loading.tsx |
AddPropertyLoading |
frontend | healthy | src/app/(main)/real-estate/new/loading.tsx |
DashboardLoading |
frontend | healthy | src/app/(main)/summary/loading.tsx |
WalletLoading |
frontend | healthy | src/app/(main)/wallet/loading.tsx |
NewMovementLoading |
frontend | healthy | src/app/(main)/wallet/new/loading.tsx |
NewMovementPage |
frontend | healthy | src/app/(main)/wallet/new/page.tsx |
SettingsLoading |
frontend | healthy | src/app/(main)/settings/loading.tsx |
AuthError |
frontend | healthy | src/app/(auth)/error.tsx |
AuthLayout |
frontend | healthy | src/app/(auth)/layout.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
/(main) |
frontend | healthy | src/app/(main)/page.tsx |
/(main)/investments |
frontend | healthy | src/app/(main)/investments/page.tsx |
/(main)/investments/chart |
frontend | healthy | src/app/(main)/investments/chart/page.tsx |
/(main)/investments/transactions |
frontend | healthy | src/app/(main)/investments/transactions/page.tsx |
/(main)/investments/transactions/new |
frontend | healthy | src/app/(main)/investments/transactions/new/page.tsx |
/(main)/investments/import |
frontend | healthy | src/app/(main)/investments/import/page.tsx |
/(main)/investments/assets/[id] |
frontend | healthy | src/app/(main)/investments/assets/[id]/page.tsx |
/(main)/real-estate |
frontend | healthy | src/app/(main)/real-estate/page.tsx |
/(main)/real-estate/[id] |
frontend | healthy | src/app/(main)/real-estate/[id]/page.tsx |
/(main)/real-estate/[id]/edit |
frontend | healthy | src/app/(main)/real-estate/[id]/edit/page.tsx |
/(main)/real-estate/new |
frontend | healthy | src/app/(main)/real-estate/new/page.tsx |
/(main)/summary |
frontend | healthy | src/app/(main)/summary/page.tsx |
/(main)/wallet |
frontend | healthy | src/app/(main)/wallet/page.tsx |
/(main)/wallet/new |
frontend | healthy | src/app/(main)/wallet/new/page.tsx |
/(main)/settings |
frontend | healthy | src/app/(main)/settings/page.tsx |
/(auth)/login |
frontend | healthy | src/app/(auth)/login/page.tsx |
/(auth)/register |
frontend | healthy | src/app/(auth)/register/page.tsx |
/ |
frontend | healthy | src/app/api/auth/gmail/route.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
Asset |
data | healthy | prisma/migrations/0_init/migration.sql |
Transaction |
data | healthy | prisma/migrations/0_init/migration.sql |
Holding |
data | healthy | prisma/migrations/0_init/migration.sql |
Price |
data | healthy | prisma/migrations/0_init/migration.sql |
PriceCache |
data | healthy | prisma/migrations/0_init/migration.sql |
ImportBatch |
data | healthy | prisma/migrations/0_init/migration.sql |
Settings |
data | healthy | prisma/migrations/0_init/migration.sql |
Property |
data | healthy | prisma/migrations/0_init/migration.sql |
PropertyOwner |
data | healthy | prisma/migrations/0_init/migration.sql |
PropertyValuation |
data | healthy | prisma/migrations/0_init/migration.sql |
Mortgage |
data | healthy | prisma/migrations/0_init/migration.sql |
PartialAmortization |
data | healthy | prisma/migrations/0_init/migration.sql |
TickerMapping |
data | healthy | prisma/migrations/0_init/migration.sql |
CashMovement |
data | healthy | prisma/migrations/20260609120000_three_domain_redesign/migr… |
| Label | Layer | Status | Path |
|---|---|---|---|
still |
software | healthy | src/components/ThemeProvider.tsx:still |
on |
software | healthy | src/components/portfolio/PrivacyToggle.tsx:on |
for |
software | healthy | src/lib/myinvestor-funds.ts:for |
AppError |
software | healthy | src/lib/errors.ts:AppError |
PriceServiceError |
software | healthy | src/lib/errors.ts:PriceServiceError |
ConfigurationError |
software | healthy | src/lib/errors.ts:ConfigurationError |
and |
software | healthy | src/services/portfolio.service.ts:and |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/services/settings.service.ts |
security | healthy | src/services/settings.service.ts |
auth::src/lib/gmail.ts |
security | healthy | src/lib/gmail.ts |
auth::README.md |
security | healthy | README.md |
auth::src/app/api/auth/gmail/callback/route.ts |
security | healthy | src/app/api/auth/gmail/callback/route.ts |
auth::src/app/auth/callback/route.ts |
security | healthy | src/app/auth/callback/route.ts |
auth::.env.example |
security | healthy | .env.example |
auth::src/app/api/auth/gmail/route.ts |
security | healthy | src/app/api/auth/gmail/route.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
postgresql |
data | healthy | .env.example |
postgres |
data | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
migration.sql |
data | healthy | prisma/migrations/0_init/migration.sql |
migration.sql |
data | healthy | prisma/migrations/20260609120000_three_domain_redesign/migr… |
| Label | Layer | Status | Path |
|---|---|---|---|
danielcasanovasgayoso__portfolio-app |
software | healthy | /data/fable5_failed_archive/danielcasanovasgayoso__portfoli… |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
verify |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/9ef75ff1-61ca-44ae-a754-b6211594a7fa/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/9ef75ff1-61ca-44ae-a754-b6211594a7fa/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.