AI-powered business automation for Japanese SMEs via LINE messaging.
- Bcrypt-based API key authentication (
API_KEY_HASHsupport withAPI_KEYfallback for local dev) - Request rate limiting on API routes
- Input validation with
express-validator - SQL injection protection through parameter validation and parameterized query patterns
- Input sanitization helpers for user-provided text fields
- Improved HTTP security headers using
helmet - Safer error responses (reduced internal error leakage)
- Prompt injection guard rails on AI system prompt
- Added database indexes for common query patterns (users, conversations, reservations, reminders, analytics)
- Improved PostgreSQL pool configuration (min/max connections, timeouts)
- Added query helper patterns for safer and more consistent DB access
- Invoice automation (OCR + accounting integration)
- Expense approvals and workflows
- Voice translation and transcription (Japanese/English)
- Business card OCR and QR workflows
- Location services and directions
- Scheduled reminders and analytics
- QuickBooks integration
- Stripe and PayPay integration
- Node.js 18+
- npm
npm installCreate .env from .env.example (or use your existing env setup), then set at minimum:
LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRETOPENAI_API_KEYAPI_KEY_HASH(recommended) orAPI_KEY(dev fallback)
Generate a bcrypt API key hash:
node -e "const bcrypt = require('bcrypt'); bcrypt.hash('your-api-key', 10).then(console.log)"node index.jsHealth endpoint:
GET /api/health
$headers = @{ "x-api-key" = "test-api-key" }
Invoke-WebRequest -Uri "http://localhost:3000/api/health" -Headers $headers -Method GET- INVOICE_SETUP.md
- QUICKBOOKS_SETUP.md
- ACCOUNTING_SETUP.md
- PAYMENT_SETUP.md
- REMINDERS_GUIDE.md
- BUSINESS_CARD_OCR_GUIDE.md
- LOCATION_SETUP.md
- FEATURE_FLAGS.md
- SEO_SETUP.md
- AZURE_DATABASE_SETUP.md
- Heroku and local development are both supported.
- For production, use
API_KEY_HASHand rotate keys regularly. - Keep secrets out of git (
.envmust remain uncommitted).
Copyright (c) 2025 Wolf-Pak Innovations LLC.
This project is licensed under the MIT License. See LICENSE for details.