{{ dashboardStats.total_requests }}
{{ dashboardStats.total_requests > 0 ? ((dashboardStats.total_errors / dashboardStats.total_requests) * 100).toFixed(1) : 0 }}%
| Time | Endpoint | Status | IP |
|---|---|---|---|
| {{ formatDate(log.occurred_at) }} | {{ log.endpoint_path }} | {{ log.status_code }} | {{ log.client_ip }} |
POST /api/ingest/{{ config.endpoint_path }}
{{ config.description || "No description" }}
{{ config.is_active ? 'Active' : 'Inactive' }}| Time | Endpoint | Payload Preview | Sync Status | Action |
|---|---|---|---|---|
| {{ formatDate(item.received_at) }} | {{ item.endpoint_name }} ({{ item.endpoint_path }}) | [Purged] {{ JSON.stringify(item.payload).substring(0, 50) }}... | Success Failed Pending Skipped | |
| No data found. | ||||
Source: {{ ex.source_type === 'query' ? 'SQL Query' : ex.source_name }}
{{ ex.output_path || 'Not set' }}
{{ conn.db_type }}
{{ maskValue(conn.connection_string) }}
Tip: Use the Import Manager to sync data from Excel files back to your database. You can set independent input paths and schedules for each table.
Target Table: {{ im.target_table_name }} | Pattern: {{ im.filename_pattern }}
Source Path: {{ im.input_path }}
No import tasks configured yet.
Configure automated data extraction and formatting rules.
Default limit for all endpoints unless overridden.
| Username | Group | Role | Status | Actions | |
|---|---|---|---|---|---|
| {{ user.username }} | {{ user.email || '-' }} | {{ user.group.name }} None | {{ user.role }} | {{ user.is_active ? 'Active' : 'Inactive' }} |
| Group Name | Description | Module Access | Actions |
|---|---|---|---|
| {{ group.name }} | {{ group.description }} |
{{
mod }}
|
Full history and status for this generator
Click an Admission Type above to view latest index numbers by Art Form
| Index Numbers | Applicant Info | Attempt | Status | Synchronization | Generated Date | Actions |
|---|---|---|---|---|---|---|
|
{{ idx.index_number }}
{{ getDisplayAdmissionType(idx.admission_type) }}
{{ idx.art_form }}
|
{{ group.applicant_name }}
{{ group.applicant_email || '-' }}
ID: {{ group.applicant_identifier }}
|
ATTEMPT #{{ group.attempt_count || 1 }} |
{{ group.indices[0].email_status }}
|
{{ group.indices[0].db_sync_status }}
|
{{ formatDate(group.created_at) }} |
|
|
No records matched your filters. |
||||||
Auto-generate index numbers for SOTA applications
Format: {{ ig.format_template }}
API Config ID: {{ ig.api_config_id }} | Starting #: {{ ig.starting_number }}
Configure index number format, field mappings, and email settings.
System activity, login history, and error events
| Timestamp (SGT) | Event | Severity | Status | Actor | IP | Target | Detail |
|---|---|---|---|---|---|---|---|
| {{ formatAuditDate(log.created_at) }} | {{ log.event_type }} | {{ log.severity }} | {{ log.status }} | {{ log.actor || '—' }} | {{ log.ip_address || '—' }} | {{ log.target || '—' }} | {{ log.detail || '—' }} |
Send email alerts when critical errors occur. Uses the Gmail configured in the selected Index Generator config.
Separate multiple with commas
Alert on:
View and revert changes from previous sync sessions.
You are about to restore the row(s) to their original values. This action cannot be easily undone.
| Time | Status | Result |
|---|---|---|
| {{ formatDate(log.occurred_at) }} | {{ log.status }} | {{ log.status === 'SUCCESS' ? log.file_saved_at : ('ERROR: ' + log.error_message) }} |
| No execution history found. | ||
Review the index numbers below before confirming generation.
Loading preview...
{{ indexGenPreviewData.total_new || 0 }}
New to Generate
{{ indexGenPreviewData.total_already_generated || 0 }}
Already Generated
{{ indexGenPreviewData.total_errors || 0 }}
Errors
| Applicant | Art Form | Index Number | Status | |
|---|---|---|---|---|
| {{ item.applicant_name || item.applicant_id || '-' }} | {{ item.applicant_email || '-' }} | {{ item.art_form_raw || item.art_form || '-' }} | {{ item.index_number || '-' }} | {{ item.error }} Ready |
| No new applicants to generate index numbers for. | ||||
{{ item.admission_type }} / {{ item.art_form }}
{{ item.index_number }}
| Index # | Attempt | Applicant | Art Form | Email Status | DB Sync | Created | Action | |
|---|---|---|---|---|---|---|---|---|
| {{ idx.index_number }} | #{{ idx.attempt_count || 1 }} | {{ idx.applicant_name || idx.applicant_identifier }} | {{ idx.art_form }} | {{ idx.applicant_email || '-' }} | {{ idx.email_status }} | {{ idx.db_sync_status }} | {{ formatDate(idx.created_at) }} | |
| No generated indices found. | ||||||||
Enter your username and registered email to receive a temporary password.