Skip to content

Latest commit

 

History

History
371 lines (331 loc) · 16.3 KB

File metadata and controls

371 lines (331 loc) · 16.3 KB

Firelater Build Progress

Status: PHASE 5 COMPLETE

Phases

  • Phase 1: Auth, users, applications, issues, API
  • Phase 2: Catalog, requests, approvals, notifications
  • Phase 3: On-call, escalation, integrations
  • Phase 4: Change management, CAB
  • Phase 5: AWS, health scores
  • Phase 6: Reporting, mobile

Phase 5 Completion Summary

Database Migration

  • 007_health_cloud.ts - Health scores, cloud accounts, resources, costs, metrics, mapping rules

Application Health Scoring

  • Health score configuration per tier (P1, P2, P3, P4) with customizable weights and penalties
  • Tier weights affect scoring strictness (P1=1.5x, P2=1.2x, P3=1.0x, P4=0.8x)
  • Component scores: Issues (40%), Changes (25%), SLA (25%), Uptime (10%)
  • Issue penalties: Critical (-15), High (-8), Medium (-3), Low (-1)
  • Score calculation from real issue and change data
  • Score history tracking with trend detection (improving, stable, declining)
  • Summary dashboard with excellent/good/warning/critical counts

Cloud Integrations

  • Multi-provider support (AWS, Azure, GCP) - stubs ready for implementation
  • Cloud account management with credential storage
  • Sync configuration (resources, costs, metrics) with scheduling
  • Cloud resource tracking with application mapping
  • Resource auto-mapping rules based on tags
  • Cost reports by account, application, period (daily/weekly/monthly)
  • Metrics storage for CloudWatch-style data

API Endpoints Implemented (Phase 5)

  • GET /v1/health/config - List health score configs
  • GET/PUT /v1/health/config/:tier - Get/update config by tier
  • GET /v1/health/scores - List all application health scores
  • GET /v1/health/summary - Health summary dashboard
  • GET /v1/health/applications/:id - Get health score for application
  • GET /v1/health/applications/:id/history - Health score history
  • POST /v1/health/applications/:id/calculate - Calculate/recalculate health score
  • GET/POST /v1/cloud/accounts - List/create cloud accounts
  • GET/PUT/DELETE /v1/cloud/accounts/:id - Cloud account CRUD
  • POST /v1/cloud/accounts/:id/test - Test cloud account connection
  • GET /v1/cloud/resources - List cloud resources
  • GET /v1/cloud/resources/types - Resource type summary
  • GET /v1/cloud/resources/:id - Get cloud resource
  • POST /v1/cloud/resources/:id/map - Map resource to application
  • DELETE /v1/cloud/resources/:id/map - Unmap resource from application
  • GET /v1/cloud/applications/:id/resources - Resources by application
  • GET /v1/cloud/costs - List cost reports
  • GET /v1/cloud/applications/:id/costs - Costs by application
  • GET/POST /v1/cloud/mapping-rules - List/create mapping rules
  • DELETE /v1/cloud/mapping-rules/:id - Delete mapping rule
  • POST /v1/cloud/mapping-rules/apply - Apply mapping rules

Verified Flows

  • List health score configs (P1-P4 with weights)
  • Get health config by tier (P1)
  • Create cloud account (Production AWS)
  • Test cloud account connection (stub)
  • Create application (Payment Gateway, P1)
  • Calculate health score (99.99% - no issues or failed changes)
  • View health score history (1 entry)
  • View health summary (1 excellent app)

Phase 4 Completion Summary

Database Migration

  • 006_changes.ts - Change windows, templates, requests, tasks, approvals, status history, comments

Change Windows

  • Maintenance windows with recurrence patterns (one-time, weekly, monthly, custom)
  • Support for multiple window types (maintenance, freeze, emergency_only, blackout)
  • Application and tier filtering
  • Notification timing before window starts

Change Templates

  • Pre-defined templates for standard changes
  • Default plans (implementation, rollback, test)
  • Risk level defaults
  • Approval requirements

Change Requests

  • Full workflow: draft -> submitted -> approved -> scheduled -> implementing -> completed/failed/rolled_back
  • Human-readable IDs (CHG-00001)
  • Risk assessment with structured JSON
  • CAB (Change Advisory Board) support
  • Template integration for pre-populated plans
  • Change window assignment

Change Tasks

  • Task management within changes
  • Task types: pre_check, implementation, validation, rollback
  • Status workflow: pending -> in_progress -> completed/skipped/failed
  • Blocking task support

Change Approvals

  • Multi-step approval workflow
  • Approval status tracking
  • Approver comments
  • Delegation support

API Endpoints Implemented (Phase 4)

  • GET/POST /v1/changes/change-windows - List/create change windows
  • GET /v1/changes/change-windows/upcoming - Upcoming windows calendar
  • GET/PUT/DELETE /v1/changes/change-windows/:id - Window CRUD
  • GET/POST /v1/changes/change-templates - List/create change templates
  • GET/PUT/DELETE /v1/changes/change-templates/:id - Template CRUD
  • GET/POST /v1/changes - List/create change requests
  • GET/PUT/DELETE /v1/changes/:id - Change CRUD
  • POST /v1/changes/:id/submit - Submit for approval
  • POST /v1/changes/:id/approve - Approve change
  • POST /v1/changes/:id/reject - Reject change
  • POST /v1/changes/:id/schedule - Schedule approved change
  • POST /v1/changes/:id/start - Start implementation
  • POST /v1/changes/:id/complete - Complete change
  • POST /v1/changes/:id/fail - Mark as failed
  • POST /v1/changes/:id/rollback - Mark as rolled back
  • GET/POST /v1/changes/:id/tasks - Get/create tasks
  • PUT/DELETE /v1/changes/:id/tasks/:taskId - Update/delete task
  • POST /v1/changes/:id/tasks/:taskId/start - Start task
  • POST /v1/changes/:id/tasks/:taskId/complete - Complete task
  • GET /v1/changes/:id/approvals - Approval history
  • GET /v1/changes/:id/history - Status history
  • GET/POST /v1/changes/:id/comments - Comments

Verified Flows

  • Create change window (Weekend Maintenance Window)
  • Create change template (Database Patch)
  • Create change request (CHG-00001) using template
  • Add task to change (pre_check: Create database backup)
  • Submit for approval (draft -> submitted)
  • Approve change (submitted -> approved)
  • Schedule change (approved -> scheduled)
  • Start implementation (scheduled -> implementing)
  • Complete change (implementing -> completed)
  • View status history (6 transitions recorded)
  • View approval records

Phase 3 Completion Summary

Database Migration

  • 005_oncall.ts - On-call schedules, rotations, shifts, escalation policies, escalation steps, schedule-application links

On-Call Schedules

  • Full schedule management with rotation patterns (daily, weekly, bi-weekly, custom)
  • Configurable handoff time and day
  • Timezone support per schedule
  • Schedule-to-group association
  • Color coding for visual distinction
  • Active/inactive status

Rotations

  • User rotation management within schedules
  • Position-based ordering
  • Add/remove users from rotation
  • Update rotation positions

Shifts

  • Manual shift creation with start/end times
  • Primary and secondary shift types
  • Multi-layer support (up to 10 layers)
  • Override creation for temporary coverage
  • Override reasons and original user tracking
  • Date range queries for shift retrieval

Escalation Policies

  • Policy management with repeat count and delay configuration
  • Default policy designation
  • Multi-step escalation with configurable delays
  • Notification targets: schedule (on-call), user, or group
  • Multi-channel notifications (email, SMS, Slack, phone)
  • Step ordering and management

Who Is On Call

  • Real-time query for current on-call responders
  • Filter by schedule or application
  • Override-aware (overrides take precedence)
  • Returns user contact information

Schedule-Application Links

  • Link schedules to applications
  • Query schedules by application
  • Unlink schedules from applications

API Endpoints Implemented (Phase 3)

  • GET/POST /v1/oncall/schedules - List/create on-call schedules
  • GET/PUT/DELETE /v1/oncall/schedules/:id - Schedule CRUD
  • GET/POST /v1/oncall/schedules/:id/rotations - Get/add rotation members
  • PUT/DELETE /v1/oncall/schedules/:id/rotations/:rotationId - Update/remove rotation
  • GET/POST /v1/oncall/schedules/:id/shifts - Get/create shifts
  • DELETE /v1/oncall/schedules/:id/shifts/:shiftId - Delete shift
  • POST /v1/oncall/schedules/:id/override - Create shift override
  • GET/POST /v1/oncall/schedules/:id/applications - Get/link applications
  • DELETE /v1/oncall/schedules/:id/applications/:applicationId - Unlink application
  • GET /v1/oncall/who-is-on-call - Query who is currently on call
  • GET/POST /v1/oncall/escalation-policies - List/create escalation policies
  • GET/PUT/DELETE /v1/oncall/escalation-policies/:id - Policy CRUD
  • GET/POST /v1/oncall/escalation-policies/:id/steps - Get/add escalation steps
  • PUT/DELETE /v1/oncall/escalation-policies/:id/steps/:stepId - Update/remove steps

Verified Flows

  • Create on-call schedule (Platform Engineering On-Call)
  • Add user to rotation (position 1)
  • Create primary shift (24-hour)
  • Create override shift (covering for PTO)
  • Query who is on call (returns override user)
  • Create escalation policy (Critical Alert Policy)
  • Add escalation steps (schedule notification, then user notification)
  • Get policy with all steps

Phase 2 Completion Summary

Database Migrations

  • 003_catalog_requests.ts - Catalog categories, items, bundles, service requests, approvals, notifications
  • 004_additional_permissions.ts - Added requests:assign, approvals:read, approvals:approve permissions

Service Catalog

  • Catalog categories with hierarchical support (parent_id)
  • Catalog items with dynamic JSON form schema
  • Form field types: text, textarea, email, phone, number, date, datetime, select, multi_select, radio, checkbox, file, user_picker, group_picker, application_picker
  • Conditional field visibility
  • Fulfillment and approval group assignment
  • Expected completion days and pricing

Service Requests

  • Full workflow: submitted -> pending_approval -> approved -> in_progress -> completed/cancelled
  • Human-readable IDs (REQ-00001)
  • Form data capture from catalog item schema
  • Priority levels (low, medium, high, critical)
  • Auto-calculated due dates based on catalog item expected completion days
  • Status history tracking
  • Request comments (public and internal)

Approvals

  • Multi-step approval workflow
  • Group-based approvers
  • Approval delegation support
  • Pending approvals list for current user

Notifications

  • Notification channels (email, in_app, slack, webhook)
  • Notification templates with variable substitution
  • User notification preferences by event type
  • Unread count tracking
  • Mark as read (single and bulk)

API Endpoints Implemented (Phase 2)

  • GET/POST /v1/catalog/categories - List/create catalog categories
  • GET/PUT/DELETE /v1/catalog/categories/:id - Category CRUD
  • GET/POST /v1/catalog/items - List/create catalog items
  • GET/PUT/DELETE /v1/catalog/items/:id - Item CRUD
  • GET/POST /v1/requests - List/create service requests
  • GET/PUT /v1/requests/:id - Request CRUD
  • POST /v1/requests/:id/assign - Assign request
  • POST /v1/requests/:id/start - Start work on request
  • POST /v1/requests/:id/complete - Complete request
  • POST /v1/requests/:id/cancel - Cancel request
  • GET /v1/requests/:id/approvals - Get request approvals
  • POST /v1/requests/:id/approvals/:approvalId/approve - Approve request
  • POST /v1/requests/:id/approvals/:approvalId/reject - Reject request
  • GET/POST /v1/requests/:id/comments - Request comments
  • GET /v1/requests/:id/history - Request status history
  • GET /v1/requests/my - My submitted requests
  • GET /v1/requests/assigned - Requests assigned to me
  • GET /v1/requests/pending-approvals - Pending approvals for me
  • GET /v1/notifications - List my notifications
  • GET /v1/notifications/unread-count - Unread notification count
  • POST /v1/notifications/:id/read - Mark notification as read
  • POST /v1/notifications/mark-all-read - Mark all as read
  • DELETE /v1/notifications/:id - Delete notification
  • GET/PUT /v1/notifications/preferences - User notification preferences
  • GET/POST /v1/notifications/channels - Notification channels (admin)
  • PUT /v1/notifications/channels/:id - Update channel (admin)
  • GET /v1/notifications/templates - List notification templates (admin)
  • PUT /v1/notifications/templates/:eventType/:channelType - Update template (admin)

Verified Flows

  • Create catalog category (Hardware)
  • Create catalog item (Laptop Request) with form schema
  • Submit service request (REQ-00001) with form data
  • Start work on request (status: submitted -> in_progress)
  • Complete request (status: in_progress -> completed)
  • View request status history (3 transitions recorded)
  • Notification templates seeded

Phase 1 Completion Summary

Infrastructure

  • Docker Compose setup (PostgreSQL 15, Redis 7)
  • Multi-tenant schema-per-tenant architecture
  • Human-readable ID generation (APP-00001, ISS-00001)
  • SLA policy configuration with business hours

Backend (Node.js + Fastify)

  • JWT authentication with refresh tokens
  • RBAC with 4 default roles (admin, manager, agent, requester)
  • 37+ granular permissions
  • Zod validation on all endpoints

API Endpoints Implemented (Phase 1)

  • POST /v1/auth/register - Register new tenant
  • POST /v1/auth/login - User login
  • POST /v1/auth/logout - User logout
  • POST /v1/auth/refresh - Refresh token
  • GET /v1/auth/me - Get current user
  • PUT /v1/auth/password - Change password
  • GET/POST /v1/users - List/create users
  • GET/PUT/DELETE /v1/users/:id - User CRUD
  • GET /v1/users/:id/groups - User's groups
  • PUT /v1/users/:id/roles - Assign roles
  • GET/POST /v1/groups - List/create groups
  • GET/PUT/DELETE /v1/groups/:id - Group CRUD
  • GET/POST/DELETE /v1/groups/:id/members - Group members
  • GET/POST /v1/roles - List/create roles
  • GET/PUT /v1/roles/:id - Role CRUD
  • GET /v1/roles/permissions - List permissions
  • GET/POST /v1/applications - List/create applications
  • GET/PUT/DELETE /v1/applications/:id - Application CRUD
  • GET /v1/applications/:id/health - Health score
  • GET/POST /v1/applications/:id/environments - Environments
  • PUT/DELETE /v1/applications/:id/environments/:envId - Environment CRUD
  • GET/POST /v1/issues - List/create issues
  • GET/PUT /v1/issues/:id - Issue CRUD
  • POST /v1/issues/:id/assign - Assign issue
  • POST /v1/issues/:id/escalate - Escalate issue
  • POST /v1/issues/:id/resolve - Resolve issue
  • POST /v1/issues/:id/close - Close issue
  • POST /v1/issues/:id/reopen - Reopen issue
  • GET/POST /v1/issues/:id/comments - Issue comments
  • GET/POST /v1/issues/:id/worklogs - Issue worklogs
  • GET /v1/issues/:id/history - Issue status history
  • GET /v1/issues/categories - Issue categories
  • GET /health - Health check
  • GET /ready - Readiness check

Log

Time Task Status
2025-12-10 15:37 Read ARCHITECTURE.md, initialized PROGRESS.md Completed
2025-12-10 15:38 Set up project structure Completed
2025-12-10 15:40 Created database migrations Completed
2025-12-10 15:42 Implemented auth module Completed
2025-12-10 15:45 Implemented users/groups CRUD Completed
2025-12-10 15:48 Implemented applications registry Completed
2025-12-10 15:50 Implemented issues module Completed
2025-12-10 15:52 Set up Docker Completed
2025-12-10 15:55 Ran migrations Completed
2025-12-10 15:57 Verified full flow Completed
2025-12-10 16:05 Created Phase 2 migrations Completed
2025-12-10 16:06 Implemented catalog service and routes Completed
2025-12-10 16:07 Implemented requests service and routes Completed
2025-12-10 16:08 Implemented notifications service and routes Completed
2025-12-10 16:10 Ran migrations, verified Phase 2 flow Completed
2025-12-10 16:15 Created Phase 3 migration (005_oncall.ts) Completed
2025-12-10 16:16 Implemented oncall service and routes Completed
2025-12-10 16:17 Ran migration 005, verified Phase 3 flow Completed
2025-12-10 16:20 Created Phase 4 migration (006_changes.ts) Completed
2025-12-10 16:25 Implemented change management services and routes Completed
2025-12-10 16:27 Ran migration 006, verified Phase 4 flow Completed
2025-12-10 16:37 Created Phase 5 migration (007_health_cloud.ts) Completed
2025-12-10 16:38 Implemented health and cloud services and routes Completed
2025-12-10 16:41 Ran migration 007, verified Phase 5 flow Completed

Next: Phase 6

  • Reporting dashboard with charts
  • Report templates and scheduling
  • Export functionality (PDF, Excel)
  • Mobile-friendly views