Untaxed Backend
Untaxed backend redesign scaffold
The backend now exposes anonymous calculator, premium, reference-data, and history endpoints for the mobile app. Business logic stays inside the backend app and uses PostgreSQL plus optional Valkey caching.
Key endpoints
{
"calculations": [
"POST /api/calculations/estimate",
"POST /api/calculations/map",
"GET /api/calculations/history?installationId=..."
],
"maps": [
"GET /api/maps/reference-comparison?installationId=...&scope=switzerland"
],
"reference": [
"GET /api/reference/cantons",
"GET /api/reference/municipalities?query=...",
"GET /api/reference/languages?language=en"
],
"subscriptions": [
"GET /api/subscriptions/status?installationId=...",
"POST /api/subscriptions/validate",
"POST /api/subscriptions/restore"
]
}Configured resources
{
"appName": "untaxed",
"resources": {
"bucket": "untaxed-local-artifacts",
"jobQueue": "untaxed-local-calculation-jobs",
"jobDlq": "untaxed-local-calculation-jobs-dlq",
"taxProfilesTable": "untaxed-local-tax-profiles",
"calculationRunsTable": "untaxed-local-calculation-runs-v2",
"auditEventsTable": "untaxed-local-audit-events",
"requestLogsTable": "untaxed-local-request-logs",
"subscriptionsTable": "untaxed-local-subscriptions",
"roadmapVotesTable": "untaxed-local-roadmap-votes",
"eventBus": "untaxed-local-bus"
}
}