github TypeScript analyzed 848c6da

akifbayram/openbin

github

Open source inventory with intelligence. Print labels, scan to reveal contents, and optionally plug in your own AI to do the heavy lifting: snap a photo and it names the bin and lists every item.

maintainer
akifbayram
license
AGPL-3.0
first seen
2026-08-21
last seen
2026-08-21
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 47 tools
transport stdio · http counts 47 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_items
  • add_tags
  • batch_operations
  • checkout_item
  • clear_scan_history
  • create_area
  • create_bin
  • create_location
  • delete_area
  • delete_bin
  • delete_location
  • delete_tag_color
  • export_location_csv
  • export_location_json
  • get_activity_log
  • get_bin
  • get_scan_history
  • join_location
  • list_areas
  • list_bin_checkouts
  • list_location_checkouts
  • list_location_members
  • list_locations
  • list_pinned_bins
  • list_tag_colors
  • list_tags
  • list_trash
  • move_bin
  • permanent_delete_bin
  • pin_bin
  • record_scan
  • regenerate_invite_code
  • remove_item
  • remove_location_member
  • rename_area
  • rename_item
  • reorder_items
  • reorder_pinned_bins
  • restore_bin
  • return_item
  • search_bins
  • search_items
  • set_tag_color
  • unpin_bin
  • update_bin
  • update_location
  • update_member_role
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 848c6da · analyzer v33 · 2w ago

skills & prompt files 1

code evidence vv0.2.7 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 1134

filesystem 29

  • fs (weak) akifbayram-openbin-848c6da/server/src/__tests__/attachments.test.ts :1 import fs from 'node:fs';
  • fs (weak) akifbayram-openbin-848c6da/server/src/__tests__/attachmentsPlanGate.test.ts :1 import fs from 'node:fs';
  • fs (weak) akifbayram-openbin-848c6da/server/src/__tests__/avatar.test.ts :1 import fs from 'node:fs';
  • fs (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-setup.ts :1 import fs from 'node:fs';
  • fs (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/schema-parity.test.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/db/init.ts :2 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/index.ts :1 import fs from 'node:fs';
  • fs (weak) akifbayram-openbin-848c6da/server/src/lib/__tests__/backup.test.ts :1 import fs from 'node:fs';
  • fs (weak) akifbayram-openbin-848c6da/server/src/lib/__tests__/emailTemplateLoader.test.ts :1 import fs from 'node:fs';
  • fs (weak) akifbayram-openbin-848c6da/server/src/lib/__tests__/malwareScan.test.ts :1 import fs from 'node:fs';
  • fs (weak) akifbayram-openbin-848c6da/server/src/lib/__tests__/restore.test.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/lib/aiPhotoLoader.ts :1 import fs from 'node:fs/promises';
  • fs akifbayram-openbin-848c6da/server/src/lib/attachmentsCleanup.ts :1 import fs from 'node:fs/promises';
  • fs akifbayram-openbin-848c6da/server/src/lib/backup.ts :2 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/lib/config.ts :2 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/lib/emailTemplateLoader.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/lib/exportHelpers.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/lib/malwareScan.ts :1 import { readFile } from 'node:fs/promises';
  • fs akifbayram-openbin-848c6da/server/src/lib/photoCleanup.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/lib/restore.ts :2 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/lib/storage.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/lib/trashPurge.ts :1 import fs from 'node:fs/promises';
  • fs akifbayram-openbin-848c6da/server/src/lib/uploadConfig.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/middleware/malwareScan.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/routes/admin/backup.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/routes/avatar.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/routes/export/csv.ts :1 import fs from 'node:fs';
  • fs akifbayram-openbin-848c6da/server/src/routes/export/zip.ts :1 import fs from 'node:fs';
  • fs (weak) akifbayram-openbin-848c6da/src/features/tour/__tests__/tourRegistry.test.ts :1 import fs from 'node:fs';

shell / exec 3

  • shell akifbayram-openbin-848c6da/server/src/db/sqlite.ts :151 // PRAGMA statements must use exec(), not prepare()
  • shell akifbayram-openbin-848c6da/server/src/lib/backup.ts :1 import { execFile as execFileCb } from 'node:child_process';
  • shell akifbayram-openbin-848c6da/server/src/lib/restore.ts :1 import { execFile as execFileCb } from 'node:child_process';

network 13

  • net akifbayram-openbin-848c6da/server/mcp/src/api-client.ts :32 const res = await fetch(url, {
  • net akifbayram-openbin-848c6da/server/mcp/src/resolve-item.ts :15 * When item_id is provided, skips the bin fetch (server validates existence).
  • net akifbayram-openbin-848c6da/server/src/ee/billingClient.ts :49 const res = await fetch(url, {
  • net akifbayram-openbin-848c6da/server/src/ee/webhookOutbox.ts :79 const res = await fetch(`${config.managerUrl}${row.endpoint}`, {
  • net akifbayram-openbin-848c6da/server/src/lib/aiSsrf.ts :3 import { Agent } from 'undici';
  • net akifbayram-openbin-848c6da/server/src/lib/backup.ts :53 await fetch(url, {
  • net akifbayram-openbin-848c6da/server/src/lib/malwareScan.ts :2 import { Socket } from 'node:net';
  • net akifbayram-openbin-848c6da/server/src/routes/auth/oauth.ts :67 const tokenRes = await fetch('https://oauth2.googleapis.com/token', {
  • net akifbayram-openbin-848c6da/src/features/auth/RegisterPage.tsx :73 fetch(`/api/auth/invite-preview?code=${encodeURIComponent(inviteCode.trim())}`, {
  • net akifbayram-openbin-848c6da/src/features/settings/exportImport.ts :18 const resp = await fetch(url, { credentials: 'same-origin' });
  • net akifbayram-openbin-848c6da/src/lib/api.ts :69 const res = await fetch(`${API_BASE}/api/auth/refresh`, {
  • net akifbayram-openbin-848c6da/src/lib/apiStream.ts :46 const res = await fetch(path, {
  • net akifbayram-openbin-848c6da/src/lib/qrConfig.ts :90 const res = await fetch('/api/auth/status');

secrets 5

  • secrets akifbayram-openbin-848c6da/server/mcp/src/index.ts :15 const apiKey = process.env.OPENBIN_API_KEY;
  • secrets (weak) akifbayram-openbin-848c6da/server/src/__tests__/setup.ts :6 process.env.JWT_SECRET = 'test-secret';
  • secrets (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-init.integration.test.ts :51 process.env.JWT_SECRET = 'test-secret';
  • secrets (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-setup.ts :44 process.env.JWT_SECRET = 'test-secret';
  • secrets akifbayram-openbin-848c6da/server/src/lib/config.ts :50 return process.env.ADMIN_PASSWORD || readSecretFile(process.env.ADMIN_PASSWORD_FILE);

database 25

  • db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-concurrency.integration.test.ts :2 import type pg from 'pg';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-engine.integration.test.ts :2 import type pg from 'pg';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-init.integration.test.ts :1 import type pg from 'pg';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-queries.integration.test.ts :2 import type pg from 'pg';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-setup.ts :4 import type pg from 'pg';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/pg-types.integration.test.ts :2 import type pg from 'pg';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/__tests__/userConsentMigration.test.ts :1 import Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/0001_legacy.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/0002_share_expires.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/0004_tag_suggestion_prompt.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/0007_subscription_state.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/0008_deletion_lifecycle.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/0010_relax_created_by_fks.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/0011_clear_legacy_monthly_billing_period.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/0012_reset_ai_credit_periods.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/0013_user_consent.ts :2 import type Database from 'better-sqlite3';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0005_bin_item_soft_delete.test.ts :1 import Database from 'better-sqlite3';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0007_subscription_state.test.ts :1 import Database from 'better-sqlite3';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0008_deletion_lifecycle.test.ts :1 import Database from 'better-sqlite3';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0011_clear_legacy_monthly_billing_period.test.ts :1 import Database from 'better-sqlite3';
  • db (weak) akifbayram-openbin-848c6da/server/src/db/migrations/__tests__/0012_reset_ai_credit_periods.test.ts :1 import Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/runner.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/migrations/types.ts :1 import type Database from 'better-sqlite3';
  • db akifbayram-openbin-848c6da/server/src/db/postgres.ts :1 import pg from 'pg';
  • db akifbayram-openbin-848c6da/server/src/db/sqlite.ts :1 import Database from 'better-sqlite3';

tool registrations 47

  • get_activity_log akifbayram-openbin-848c6da/server/mcp/src/tools/activity.ts :49
  • list_areas akifbayram-openbin-848c6da/server/mcp/src/tools/areas.ts :18
  • create_area akifbayram-openbin-848c6da/server/mcp/src/tools/areas.ts :44
  • rename_area akifbayram-openbin-848c6da/server/mcp/src/tools/areas.ts :68
  • delete_area akifbayram-openbin-848c6da/server/mcp/src/tools/areas.ts :93
  • batch_operations akifbayram-openbin-848c6da/server/mcp/src/tools/batch.ts :46
  • search_bins akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :52
  • get_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :107
  • create_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :132
  • update_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :169
  • delete_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :214
  • list_trash akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :234
  • restore_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :261
  • permanent_delete_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :279
  • list_pinned_bins akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :294
  • pin_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :321
  • unpin_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :334
  • reorder_pinned_bins akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :347
  • add_tags akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :364
  • move_bin akifbayram-openbin-848c6da/server/mcp/src/tools/bins.ts :390
  • checkout_item akifbayram-openbin-848c6da/server/mcp/src/tools/checkouts.ts :29
  • return_item akifbayram-openbin-848c6da/server/mcp/src/tools/checkouts.ts :58
  • list_bin_checkouts akifbayram-openbin-848c6da/server/mcp/src/tools/checkouts.ts :91
  • list_location_checkouts akifbayram-openbin-848c6da/server/mcp/src/tools/checkouts.ts :121
  • export_location_json akifbayram-openbin-848c6da/server/mcp/src/tools/export.ts :34
  • export_location_csv akifbayram-openbin-848c6da/server/mcp/src/tools/export.ts :66
  • search_items akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :25
  • add_items akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :63
  • remove_item akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :87
  • rename_item akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :111
  • reorder_items akifbayram-openbin-848c6da/server/mcp/src/tools/items.ts :142
  • list_locations akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :52
  • create_location akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :76
  • update_location akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :96
  • delete_location akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :132
  • join_location akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :147
  • list_location_members akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :169
  • remove_location_member akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :199
  • update_member_role akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :217
  • regenerate_invite_code akifbayram-openbin-848c6da/server/mcp/src/tools/locations.ts :237
  • get_scan_history akifbayram-openbin-848c6da/server/mcp/src/tools/scan-history.ts :17
  • record_scan akifbayram-openbin-848c6da/server/mcp/src/tools/scan-history.ts :51
  • clear_scan_history akifbayram-openbin-848c6da/server/mcp/src/tools/scan-history.ts :66
  • list_tags akifbayram-openbin-848c6da/server/mcp/src/tools/tags.ts :30
  • list_tag_colors akifbayram-openbin-848c6da/server/mcp/src/tools/tags.ts :64
  • set_tag_color akifbayram-openbin-848c6da/server/mcp/src/tools/tags.ts :91
  • delete_tag_color akifbayram-openbin-848c6da/server/mcp/src/tools/tags.ts :113

install hooks 1

  • prepare akifbayram-openbin-848c6da/package.json :19 husky

declared dependencies 28

  • clsx@^2.1.1
  • html5-qrcode@^2.3.8
  • jspdf@^4.2.0
  • lucide-react@^0.563.0
  • qr-code-styling@^1.9.2
  • react@^18.3.1
  • react-dom@^18.3.1
  • react-router-dom@^6.30.3
  • tailwind-merge@^3.4.0
  • uuid@^13.0.0
  • @biomejs/biome@^2.4.2
  • @tailwindcss/vite@^4.2.1
  • @testing-library/jest-dom@^6.9.1
  • @testing-library/react@^16.3.2
  • @testing-library/user-event@^14.6.1
  • @types/react@^18.3.28
  • @types/react-dom@^18.3.7
  • @types/uuid@^10.0.0
  • @vitejs/plugin-react@^5.1.4
  • concurrently@^9.2.1
  • happy-dom@^20.8.9
  • husky@^9.1.7
  • lint-staged@^16.4.0
  • tailwindcss@^4.1.18
  • typescript@^5.9.3
  • vite@^6.4.1
  • vite-plugin-pwa@^1.2.0
  • vitest@^4.0.18