Document project progress and next work

This commit is contained in:
Keith Smith
2026-05-22 17:44:29 -06:00
parent a707186a5e
commit 788c01b1cc
2 changed files with 94 additions and 0 deletions
+16
View File
@@ -47,3 +47,19 @@
33. Add README setup instructions
34. Add architecture documentation
35. Add security documentation
## Current Implementation Snapshot
Completed in the initial scaffold:
- Repository structure, Docker Compose development stack, README, and docs.
- FastAPI backend skeleton with auth, roles, database models, and Alembic migration.
- React frontend skeleton with authenticated layout.
- Worker skeleton with working HTTP website monitor polling.
- Website monitor create/edit/delete UI.
- Basic alert evaluation, incidents, acknowledge, and silence actions.
- Generic webhook, Mattermost, and Zoom Team Chat channel foundations.
- Encrypted webhook URL storage.
- Configurable notification post username.
Recommended next Gitea issues are listed in [progress.md](progress.md).
+78
View File
@@ -0,0 +1,78 @@
# InfraPulse Progress
Last updated: 2026-05-22
## Current State
InfraPulse has a working Docker Compose development stack with PostgreSQL, Redis, FastAPI backend, Python worker, and React/Vite frontend.
Implemented foundation:
- Monorepo layout, README, MIT license, Dockerfiles, Compose files, helper scripts, and initial docs.
- FastAPI backend with health endpoint, JWT login, local initial owner bootstrap, and role checks.
- SQLAlchemy models and Alembic initial migration for users, assets, credentials, monitors, check results, metrics, alert rules, incidents, notification channels, and audit events.
- React frontend with login, authenticated shell, dashboard, assets, websites, alerts, notifications, and placeholder admin/discovery/graphs/credentials pages.
- Worker process that polls HTTP website monitors, records check results, updates monitor/asset status, opens incidents, resolves incidents on recovery, and sends webhook notifications.
Implemented website-monitor slice:
- Create, edit, delete website monitors from the UI.
- HTTP status and expected-text checks.
- Monitor status and recent incident visibility on dashboard.
- Basic alert rules created with website monitors.
- Incidents can be acknowledged and silenced from the UI.
- Deleting a monitor resolves any open incidents tied to that monitor.
Implemented notification slice:
- Create, edit, test, and delete notification channels from the UI.
- Generic webhook, Mattermost, and Zoom Team Chat channel types.
- Webhook URLs encrypted at rest using `INFRAPULSE_SECRET_KEY`.
- Saved webhook URLs are not returned to the UI.
- Configurable post username per notification channel.
- Worker sends incident open and recovery notifications.
- Notification state/history is stored in incident details to avoid duplicate sends.
## Known Gaps
- Credential vault UI and real credential encryption workflows are not complete.
- Audit logging tables exist, but events are not consistently written yet.
- User management UI is not implemented.
- Role management is basic and needs full admin flows.
- Alert rule editing UI is not implemented.
- Notification routing/policies are not implemented; all enabled webhook channels receive incident notifications.
- Email/SMTP notifications are not implemented yet.
- TLS certificate expiry checks are not implemented yet.
- Ping and TCP checks are not implemented yet.
- Graphing exists only as placeholders; metric visualization is not implemented.
- Worker scheduling is simple polling, not a Redis queue yet.
- Tests are still minimal and need meaningful backend/worker/frontend coverage.
- Production deployment hardening is not done.
## Recommended Next Work
1. Add TLS certificate expiry monitor support.
2. Add ping and TCP port monitors.
3. Add alert rule editing UI and richer alert conditions.
4. Add notification policy/routing controls.
5. Add email/SMTP notification channel.
6. Add audit event writes for auth, monitor, credential, notification, and incident actions.
7. Build credential vault UI with masked secret handling.
8. Add user administration UI.
9. Add graphs for website response time and monitor status history.
10. Add backend and worker tests for the website-monitor and notification flows.
## Operational Notes
Development URLs:
- Frontend: `http://localhost:5173`
- Backend API: `http://localhost:8000`
- API docs: `http://localhost:8000/docs`
Default local login comes from `.env`:
- `INITIAL_ADMIN_EMAIL=admin@example.com`
- `INITIAL_ADMIN_PASSWORD=change-me`
Change these values before using InfraPulse outside local development.