{ "name": "kua-money-trace", "version": "0.1.0", "description": "Money trace and mail/document ingestion service for accounting-grade fund origin trees.", "type": "service", "framework": "node", "team": { "owner": "kavi", "status": "active" }, "stack": { "backend": { "runtime": "node", "framework": "node", "version": "20" }, "database": { "type": "local-json", "version": "mvp" }, "storage": { "type": "local-files", "planned": "storagebox" } }, "services": { "api": { "port": 3910, "healthcheck": "/health", "command": "npm run serve" }, "gmail_oauth": { "port": 3912, "redirect_uri": "http://127.0.0.1:3912/oauth2callback", "command": "npm run mail:gmail-oauth" } }, "environments": { "development": { "server": "gal", "path": "/home/kavi/kua-money-trace", "port": 3910, "secrets": { "project": "kua-money-trace", "env": "dev", "include": ["shared"] } }, "production": { "server": "bruno", "path": "/home/kavi/kua-money-trace", "port": 3910, "secrets": { "project": "kua-money-trace", "env": "prod", "include": ["shared"] } } }, "secrets": { "project": "kua-money-trace", "include": ["shared"], "required": [ "GOOGLE_OAUTH_CLIENT_ID", "GOOGLE_OAUTH_CLIENT_SECRET" ] }, "migration": { "databases": [], "volumes": [ { "name": "mail-archive", "path": "data/mail-archive", "backup_required": true, "note": "Raw emails, attachments, and manifests. Move to Storagebox before production ingestion." }, { "name": "mail-oauth", "path": "data/mail-oauth", "backup_required": true, "secret": true, "note": "OAuth refresh tokens. Excluded from source transfer and should not be committed." } ], "env_files": [], "required_secrets": [ "GOOGLE_OAUTH_CLIENT_ID", "GOOGLE_OAUTH_CLIENT_SECRET" ], "post_migration": [ "npm install", "npm test" ] }, "infrastructure": { "database": "local-json", "cache": "none", "queue": "none", "storage": "local-files", "secrets": "kuavault" }, "dependencies": { "runtime": { "node": ">=20.0.0" }, "system": [ "sqlite3" ] }, "health": { "endpoint": "/health", "timeout": 15, "expected_status": 200 }, "deploy": { "production": { "mode": "direct", "server": "gal" } } }