kua-money-trace/kua.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"
}
}
}