Bug/mcp connection issue (#541)
* feat(api): implement caching and logging in health check endpoint - Added in-memory caching for health check responses to reduce load on Postgres. - Introduced logging for error handling in health check. - Updated response structure to exclude error details from public responses. feat(api): enhance OAuth consent UI and scope handling - Improved consent UI to reflect exact requested scopes and added better user guidance. - Updated scope handling logic to ensure least-privilege access. - Enhanced styling for better user experience and accessibility. chore(docker): improve security and resource management in Docker setup - Updated Docker Compose configuration to enforce read-only file systems and resource limits. - Added health checks and logging options for better observability. - Introduced optional Caddy reverse proxy for TLS termination. fix(migrations): resolve ambiguity in create_company_with_owner function - Dropped orphaned 3-arg overload of create_company_with_owner function. - Recreated canonical 4-arg version with cash account seeding logic. - Ensured proper permissions for function execution in Postgres. * feat: enhance security checks for team membership in company creation * test: add CSP tests for OAuth authorization endpoint * feat: enhance error handling and reporting in bank file import process
This commit is contained in:
@@ -99,6 +99,21 @@ export const POST = withRouteContext(
|
||||
if (role === 'viewer') ingestOptions.rawInsertOnly = true
|
||||
const ingestResult = await ingestTransactions(supabase, companyId, user.id, rawTransactions, ingestOptions)
|
||||
|
||||
if (ingestResult.errors > 0 && ingestResult.first_error) {
|
||||
opLog.error('bank file ingest reported insert errors', new Error(ingestResult.first_error.message), {
|
||||
errorCount: ingestResult.errors,
|
||||
code: ingestResult.first_error.code,
|
||||
details: ingestResult.first_error.details,
|
||||
hint: ingestResult.first_error.hint,
|
||||
})
|
||||
}
|
||||
|
||||
const errorMessage = ingestResult.errors > 0
|
||||
? ingestResult.first_error
|
||||
? `${ingestResult.errors} fel: ${ingestResult.first_error.message}${ingestResult.first_error.details ? ` (${ingestResult.first_error.details})` : ''}`
|
||||
: `${ingestResult.errors} transactions failed to import`
|
||||
: null
|
||||
|
||||
await supabase
|
||||
.from('bank_file_imports')
|
||||
.update({
|
||||
@@ -106,9 +121,7 @@ export const POST = withRouteContext(
|
||||
duplicate_count: ingestResult.duplicates,
|
||||
matched_count: ingestResult.auto_matched_invoices,
|
||||
status: ingestResult.errors > 0 && ingestResult.imported === 0 ? 'failed' : 'completed',
|
||||
error_message: ingestResult.errors > 0
|
||||
? `${ingestResult.errors} transactions failed to import`
|
||||
: null,
|
||||
error_message: errorMessage,
|
||||
})
|
||||
.eq('id', importRecord.id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user