{"id":50454215,"url":"https://github.com/mizcausevic-dev/observability-incident-command-api","last_synced_at":"2026-06-01T01:05:45.889Z","repository":{"id":356182743,"uuid":"1231402648","full_name":"mizcausevic-dev/observability-incident-command-api","owner":"mizcausevic-dev","description":"TypeScript API for incident severity analysis, escalation routing, responder visibility, and operational incident-command workflows.","archived":false,"fork":false,"pushed_at":"2026-05-06T23:58:45.000Z","size":727,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-07T01:32:31.982Z","etag":null,"topics":["backend","express","incident-response","nodejs","openapi","platform-engineering","sre","typescript"],"latest_commit_sha":null,"homepage":"https://mizcausevic.com/skills/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mizcausevic-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-06T23:40:59.000Z","updated_at":"2026-05-06T23:58:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mizcausevic-dev/observability-incident-command-api","commit_stats":null,"previous_names":["mizcausevic-dev/observability-incident-command-api"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/mizcausevic-dev/observability-incident-command-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizcausevic-dev%2Fobservability-incident-command-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizcausevic-dev%2Fobservability-incident-command-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizcausevic-dev%2Fobservability-incident-command-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizcausevic-dev%2Fobservability-incident-command-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mizcausevic-dev","download_url":"https://codeload.github.com/mizcausevic-dev/observability-incident-command-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizcausevic-dev%2Fobservability-incident-command-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33755379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","express","incident-response","nodejs","openapi","platform-engineering","sre","typescript"],"created_at":"2026-06-01T01:05:45.776Z","updated_at":"2026-06-01T01:05:45.871Z","avatar_url":"https://github.com/mizcausevic-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Observability Incident Command API\n\n\u003e **TypeScript incident-response portfolio project** demonstrating operational severity analysis, escalation routing, service-health visibility, and incident-command decision support for enterprise platforms.\n\n**Recruiter takeaway:** *\"This person understands observability as an operational decision system, not just a dashboard feed.\"*\n\n---\n\n## Project Overview\n\n| Attribute | Detail |\n|---|---|\n| **Runtime** | Node.js + TypeScript |\n| **Framework** | Express 5 |\n| **Domain** | Incident response, service reliability, and observability operations |\n| **Signal Areas** | Service criticality · Alert signals · Customer impact · Revenue risk · Responder readiness |\n| **Operational Outputs** | Severity posture · Escalation analysis · Incident playbooks |\n| **Docs** | Swagger UI at `/docs` |\n\n---\n\n## Executive Summary\n\nObservability Incident Command API models the kind of internal system SRE, DevOps, platform engineering, and leadership teams use when production incidents need fast classification and coordinated response. Instead of exposing raw alerts alone, the API turns service criticality, duration, blast radius, revenue impact, and responder availability into clear incident-command actions and communication posture.\n\nThe result is a recruiter-facing backend project that feels like a realistic operational command layer rather than a toy alerting demo.\n\n---\n\n## Architecture\n\n```text\nIncident signal input\n    |\n    v\nPOST /api/analyze/*\n    |\n    +--\u003e Request validation\n    +--\u003e Severity and duration review\n    +--\u003e Customer and revenue impact weighting\n    +--\u003e Escalation and playbook routing\n    |\n    v\nOperational incident posture\n    |\n    +--\u003e contained\n    +--\u003e degraded\n    +--\u003e critical\n```\n\n### Incident-Response Workflow\n\n1. Teams submit an incident scenario or query modeled incidents and alerts.\n2. The service validates request shape with Zod.\n3. Incident scoring logic reviews production impact, duration, customer blast radius, revenue risk, responder availability, and executive visibility.\n4. The service returns a score, issues, passed checks, and a recommended next action.\n5. Operators use `/api/dashboard/summary`, `/api/alerts`, and `/api/playbooks` to coordinate command and escalation workflows.\n\n---\n\n## Severity and Escalation Model\n\n### Incident Review\n\nThe severity workflow scores:\n\n- production vs non-production impact\n- open duration\n- affected-customer volume\n- revenue impact\n- responder availability\n- executive visibility\n\n### Playbook Routing\n\nPlaybook output prioritizes:\n\n- executive-visible incident command activation\n- controlled engineering-bridge response\n- low-broadcast routing for contained anomalies\n\n---\n\n## API Endpoints\n\n| Method | Endpoint | Purpose |\n|---|---|---|\n| `GET` | `/health` | Service status and uptime |\n| `GET` | `/api/services` | List services |\n| `GET` | `/api/incidents` | List incidents |\n| `GET` | `/api/incidents/:id` | Fetch one incident |\n| `GET` | `/api/alerts` | List alert records |\n| `GET` | `/api/responders` | List responder records |\n| `GET` | `/api/playbooks` | List incident playbooks |\n| `GET` | `/api/dashboard/summary` | Incident-command summary |\n| `POST` | `/api/analyze/incident` | Analyze incident severity |\n| `POST` | `/api/analyze/escalation` | Analyze escalation posture |\n| `POST` | `/api/analyze/playbook` | Route to an incident playbook |\n\n---\n\n## Sample Analysis Request\n\n```json\n{\n  \"serviceName\": \"Revenue API\",\n  \"environment\": \"production\",\n  \"severitySignals\": [\n    \"latency-spike\",\n    \"error-rate-breach\",\n    \"customer-login-failures\"\n  ],\n  \"minutesOpen\": 37,\n  \"affectedCustomers\": 1280,\n  \"isRevenueImpacting\": true,\n  \"primaryResponderAvailable\": true,\n  \"executiveVisibility\": true\n}\n```\n\n## Sample Analysis Response\n\n```json\n{\n  \"status\": \"critical\",\n  \"score\": 100,\n  \"issues\": [\n    \"Customer-facing production degradation is ongoing.\",\n    \"Incident duration exceeds first-response containment target.\",\n    \"Large customer impact increases command urgency.\",\n    \"Revenue-impacting symptoms raise escalation priority.\",\n    \"Executive visibility requires structured communication and command discipline.\"\n  ],\n  \"passedChecks\": [\n    \"Primary responder is available.\",\n    \"Service ownership is clearly defined.\"\n  ],\n  \"recommendedNextAction\": \"Activate incident command, publish stakeholder update, and escalate to platform leadership immediately.\"\n}\n```\n\n---\n\n## Screenshots\n\n### Hero Capture\n\n![Swagger UI](screenshots/01-hero.png)\n\n### Incident Analysis Workflow\n\n![Incident analysis workflow](screenshots/02-feature.png)\n\n### Command and Playbook Proof\n\n![Playbook proof](screenshots/03-proof.png)\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 20+\n- npm\n\n### Setup\n\n```bash\ngit clone https://github.com/mizcausevic-dev/observability-incident-command-api.git\ncd observability-incident-command-api\nnpm install\ncp .env.example .env\nnpm run dev\n```\n\nVisit:\n\n- `http://localhost:3000/docs`\n- `http://localhost:3000/api/incidents`\n- `http://localhost:3000/api/dashboard/summary`\n\n### Run Tests\n\n```bash\nnpm test\n```\n\n---\n\n## What This Demonstrates\n\n- incident response translated into backend service logic\n- severity and escalation modeling under operational pressure\n- customer-impact and executive-communication awareness\n- observability as a command and coordination layer\n- production-minded TypeScript API structure with docs, tests, and operational summaries\n\n---\n\n## Future Enhancements\n\n- persist incidents, responders, and updates in PostgreSQL\n- connect alert ingestion from telemetry pipelines\n- add structured stakeholder communication workflows\n- support on-call rotations and schedule awareness\n- integrate postmortem and review lifecycle tracking\n\n---\n\n## Tech Stack\n\n- Node.js\n- TypeScript\n- Express\n- Zod\n- Swagger / OpenAPI\n- Helmet\n- CORS\n- Morgan\n- Node test runner + Supertest\n\n### Portfolio Links\n\n- [LinkedIn](https://www.linkedin.com/in/mirzacausevic)\n- [Skills Page](https://mizcausevic.com/skills/)\n- [Medium](https://medium.com/@mizcausevic)\n- [GitHub](https://github.com/mizcausevic-dev)\n\n---\n\n*Part of [mizcausevic-dev's GitHub portfolio](https://github.com/mizcausevic-dev) — demonstrating production reliability thinking, incident-response decisioning, and enterprise operational command systems.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmizcausevic-dev%2Fobservability-incident-command-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmizcausevic-dev%2Fobservability-incident-command-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmizcausevic-dev%2Fobservability-incident-command-api/lists"}