122 lines
2.6 KiB
JSON
122 lines
2.6 KiB
JSON
{
|
|
"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"
|
|
}
|
|
}
|
|
}
|