@if (loading) { } @if (error) {
{{ error }}
} @if (activeSection === 'all' || activeSection === 'outbox') {
Outbox Queue: Delivery to I4C Automated HTTP callbacks carrying bank findings to I4C
@for (s of outboxStatuses; track s) { }
Ack no. / job id Type ACK and RESPONSE ACK only RESPONSE only
@for (o of outbox; track o.id) { } @empty { }
Created At Complaint Ack No. Type Delivery Status Attempts Next Retry HTTP Code Sent Timestamp Error Actions
{{ o.created_at | date: 'dd MMM, HH:mm:ss' }} {{ o.acknowledgement_no }} {{ o.message_type === 'ACK' ? 'ACK' : 'RESPONSE' }} {{ o.status }} {{ o.attempts }} {{ o.status === 'PENDING' ? (o.next_attempt_at | date: 'dd MMM, HH:mm:ss') : '-' }} {{ o.http_status ?? '-' }} {{ o.sent_at ? (o.sent_at | date: 'dd MMM, HH:mm:ss') : '-' }} {{ o.last_error || '-' }}
@if (o.status === 'FAILED') { }
No responses in the outbox queue matching current filter.
} @if (activeSection === 'all' || activeSection === 'log') {
API Gateway Audit Trail (Masked) Every call to and from I4C. Click a row to see its request and response.
Failures Only
Endpoint / ack no. / IP HTTP status Any 200 OK 400 Bad request 401 Not authorised 403 Forbidden 409 Duplicate 500 Server error Response code
@for (l of log; track l.id) { } @empty { }
Time Direction Endpoint HTTP Status Response Code Ack No. Latency (ms) Caller IP Error Details
{{ l.created_at | date: 'dd MMM, HH:mm:ss' }} {{ l.direction === 'IN' ? '↓ I4C → Bank' : '↑ Bank → I4C' }} {{ l.endpoint }} {{ l.http_status ?? 'N/A' }} {{ l.response_code || '-' }} {{ l.acknowledgement_no || '-' }} {{ l.duration_ms }} ms {{ l.client_ip || '-' }} {{ logNote(l.error) || '-' }}
No API calls recorded.
} @if (selectedLogModal) {
Time: {{ selectedLogModal.created_at | date: 'dd MMM yyyy, HH:mm:ss' }} • Latency: {{ selectedLogModal.duration_ms }} ms • Client IP: {{ selectedLogModal.client_ip }}
@if (logModalTab === 'req') {
HTTP Request Payload (Masked)
{{ pretty(selectedLogModal.request_body) || 'No request body sent.' }}
} @if (logModalTab === 'res') {
HTTP Response Payload
{{ pretty(selectedLogModal.response_body) || 'No response body received.' }}
} @if (selectedLogModal.error) { @if (isFailedCall(selectedLogModal)) {
Error logged: {{ logNote(selectedLogModal.error) }}
} @else {
Note: {{ logNote(selectedLogModal.error) }}
} }
} @if (selectedOutboxModal) {
Created: {{ selectedOutboxModal.created_at | date: 'dd MMM yyyy, HH:mm:ss' }} • Attempts: {{ selectedOutboxModal.attempts }}
Report Payload Prepared for I4C Delivery
{{ pretty(selectedOutboxModal.payload) || 'No payload recorded.' }}
@if (selectedOutboxModal.response_body) {
Response Received from I4C Gateway
{{ pretty(selectedOutboxModal.response_body) }}
} @if (selectedOutboxModal.last_error) {
Last Delivery Error: {{ selectedOutboxModal.last_error }}
}
}