Asset Registry

Every system you're responsible for lives here — servers, workstations, laptops, network gear, VMs, and anything else.

  • Type, OS, IP/hostname, location, tags, serial number, model, purchase date, admin URL
  • Status flags: Online / Offline / Maintenance / Decommissioned with quick toggle from the list
  • Warranty expiration tracking — dashboard alerts at 90 and 30 days, expired badge on detail
  • Department groups with filterable list view
  • Health score (A/B/C/F) — factored from open issues, warranty status, asset age, and current status
  • Custom fields — add arbitrary key-value metadata per asset
  • Assignment tracking — assigned to, date, and condition (New / Good / Fair / Poor / Refurbished / End of Life), with full timestamped assignment history
  • Network / topology notes — freeform Markdown field per asset for documenting cabling, VLANs, dependencies
  • QR code generation and clean one-page print sheet
  • Full asset PDF report — one-click PDF covering all metadata, assignment history, maintenance schedule, open and historical incidents, software licenses, and custom fields
  • Activity age indicator on the asset list — shows how long since the last incident
  • Aging assets panel on the dashboard for assets 5+ years old

Incidents

The core log. Four incident types:

  • Break/Fix — problem and resolution, with severity (Critical / High / Medium / Low)
  • Upgrade — hardware or software upgrades
  • Maintenance — scheduled preventive work
  • Note — general record-keeping, observations

Each incident supports:

  • Markdown body with preview
  • Time spent (free text: 1h 30m, stored as minutes)
  • Live stopwatch timer — start/stop on the incident detail page, elapsed time auto-added to time spent
  • Response time tracking — records time from incident creation to first follow-up note
  • Drag-and-drop file and image attachments (100 MB limit, inline preview with lightbox)
  • Follow-up notes — append timestamped updates without a full edit; updates the "last activity" timestamp
  • Incident checklist — sub-task steps with AJAX check/uncheck
  • Optional Root Cause Analysis — 9 structured fields, exportable as a standalone PDF and attached to notification emails
  • Recurrence flag — auto-tagged if the same asset had a break/fix within 90 days
  • Duplication — pre-fill a new form from any existing incident
  • Incident templates — save form presets for repeatable jobs
  • Print to PDF (WeasyPrint)

Live Event Workflow

For active outages where you need a running log before knowing the resolution:

  • Open Live Incident — saves as a draft with a pulsing LIVE badge
  • Append follow-up notes in real time — no full edit required
  • Send Sitrep — while live, email contacts a situation report (IT Sitrep: subject) that includes the full running notes log
  • Close-Out form — resolution details, time spent, optional RCA, close with or without email; close-out emails stay formal (IT Update:) and omit the notes thread
  • Live incidents appear in a dedicated panel on the dashboard and mobile command dashboard
  • SLA timer runs on live incidents — they are included in breach detection
  • One-tap close from the mobile interface

SLA Tracking

Configurable resolution targets per severity. Open break/fix incidents — including active live events — are checked against thresholds continuously.

  • Defaults: Critical 8h / High 24h / Medium 72h / Low 168h
  • Override via environment variables (see Config)
  • Breach panel on the dashboard and mobile command page — shows incident age, target, and hours overdue
  • Aging alert emails fire on open incidents older than a configurable threshold (separate from SLA)

Task Board

  • Priorities: Low / Medium / High
  • Statuses: Open / In Progress / Done
  • Optional due date with overdue flagging
  • Link tasks to assets or incidents
  • Quick status toggle from the task list (no page reload)
  • Urgent tasks panel on the dashboard (overdue + due today)
  • Create an incident directly from a linked task
  • Tasks appear on related asset and incident detail pages
  • Task aging badges — open tasks display their age in days. ▲ amber warning after 7 days, ⚠ red critical after 14 days. Visible on the task board, dashboard, and mobile view.

Maintenance Scheduling

  • Attach recurring schedules to any asset (weekly / monthly / quarterly / annual)
  • Custom start date to stagger when items come due
  • Mark done — hides from dashboard until next cycle
  • "Due This Week" panel on the dashboard and mobile command page
  • Daily email reminder listing tasks due within 7 days
  • Auto-log on completion — marking a maintenance task done automatically creates a resolved Maintenance incident as a permanent record
  • Calendar view shows maintenance alongside incidents and tasks by month

Downtime Tracker

  • Start and stop outage timestamps on any asset
  • Auto-calculates total downtime and MTTR per asset
  • Active outages panel on the dashboard and mobile command page
  • Ping monitor can automatically open and close outage records

Software License Inventory

  • Track software name, vendor, license type, key, seat count, and expiry per asset
  • Expiring licenses panel on the dashboard (within 90 days)
  • License details included in the full asset PDF report

Vendor Directory

  • Standalone vendor records: contact name, phone, support email, support URL, contract number, SLA terms, notes
  • Link vendors to assets — vendor support card appears on the asset detail page
  • Vendor details included in the full asset PDF report

Knowledge Base

  • Markdown articles with tag filtering and full-text search
  • Link articles to specific assets or incident types
  • File attachments — images render inline with lightbox; PDFs as download links
  • Searches assets, incidents, KB articles, and tasks simultaneously
  • Results grouped by type with status badges and direct links
  • Press / from anywhere to focus the sidebar search bar

Audit Trail

  • Every create, update, and close-out action on assets and incidents is logged with a timestamp
  • Field-level diff — shows before and after values for each changed field inline
  • Filterable by entity type and entity ID

Reports

  • Year-over-year trend report — full historical view since first incident. Annual summary table with counts, resolution rate, and hours. Three charts: incidents per year (bar), hours logged per year (bar), resolution rate over time (line). Severity breakdown by year. Top 15 assets ranked by total incident count.
  • Month-end PDF — incidents logged, time spent, open issues, assets worked on. Download from the UI or receive via auto-email on a configurable schedule.
  • Time tracking report — total hours by month (bar chart), by asset, and by incident type.
  • Time log — filterable list of all incidents with time recorded; filter by date range, asset, and type.
  • Full asset PDF report — per-asset PDF covering all metadata, history, maintenance, and licenses.
  • Database backup — download the live SQLite file from Admin → Backup DB.

Email & Alerts

  • Per-incident notifications to any number of contacts — each gets an individual email
  • Lead line: “There is an update to your issue.” (does not imply resolution while still open)
  • Live sitrep emails include the follow-up notes thread; close-out / standard emails do not
  • RCA attached to standard notification emails as a PDF
  • Resend email from the incident detail page
  • Notification log at Admin → Notifications
  • Weekly digest — configurable day and hour (UTC)
  • Aging alerts — daily email for open incidents with no activity older than N days (configurable, can be disabled)
  • Maintenance reminders — daily email listing tasks due within 7 days
  • Auto monthly report — configurable day and hour

REST API & Webhooks

Token-protected JSON endpoints at /api/v1/:

  • GET /api/v1/health — unauthenticated health check
  • GET /api/v1/assets — all assets as JSON
  • GET /api/v1/assets/<id> — single asset
  • GET /api/v1/incidents — filter by system_id or resolved status
  • POST /api/v1/incidents — create an incident from an external tool (RMM, monitoring script, cron job)

Leave API_TOKEN blank in .env to disable token enforcement.

Outgoing webhooks — Field Log can POST a JSON payload to any URL on incident create/update. Works with Slack, Teams, ntfy, and any custom endpoint.

Mobile & PWA

Three dedicated mobile views, all standalone pages independent of the desktop layout:

  • Mobile Command Dashboard (/command/mobile) — read-only status page designed for a quick phone check. Shows SLA breaches (most overdue first), live incidents with elapsed time, active outages with running duration, urgent tasks, and maintenance due this week. Quick-action strip for Log Incident, Tasks, and Assets. Auto-refreshes every 60 seconds.
  • Quick Log (/quick) — one-handed incident logging. Searchable asset picker, incident type pills, severity, template picker, resolved-now toggle. Offline guard — detects when your device has no server connection and blocks the submit, keeping your form data safe until you reconnect.
  • Mobile Tasks (/tasks/mobile) — scrollable task card list with priority, due date, and aging badges.

PWA install support — on Android/Chrome, tap "Add to Home Screen" from any of the three pages to install Field Log as a standalone app with an amber icon and no browser chrome.

Offline caching — a service worker caches pages as you browse them. If your server is unreachable, you can still view your last-known command dashboard, asset list, task list, and any recently visited pages. A live connection status bar at the bottom of each mobile page shows ● LIVE // sync Xs ago or ■ OFFLINE // last sync Xm ago.

Asset Ping Monitor

  • Pings all assets with an IP address on a configurable interval
  • Automatically opens an outage record when a host stops responding
  • Automatically closes it when the host comes back
  • Status page at Admin → Ping Monitor with last-result timestamps
  • Manual sweep button
  • Enable with PING_ENABLED=true in .env (disabled by default)

Import & Export

  • CSV export — all incidents, or filtered by asset, as a spreadsheet download
  • CSV bulk import (/import/assets) — upload a spreadsheet to create multiple assets at once. Supported columns: name, system_type, OS, IP, location, group, tags, serial, model, vendor, purchase date, warranty expiry, admin URL, notes. Skips rows where the asset name already exists and reports them clearly. Downloadable blank template available from the import page.

Recurring Incidents

  • Define jobs that auto-create incidents on a weekly or monthly schedule
  • Configurable day of week (weekly) or day of month (monthly)
  • Optional asset link, incident type, and body text
  • Runs automatically every day at 06:30 UTC — no manual action needed
  • Full CRUD management at Admin → Recurring

Easter Eggs

Two small games are hidden in the desktop UI. Type the activation word anywhere on a page — not inside a search box or form field.

  • SNAKE — classic snake (arrow keys / WASD, Esc to exit)
  • BOOM — minesweeper (medium board; progress and best time saved locally)