Skip to content

Architecture Reference

This section documents the technical architecture of OpsDeck, including the system design, data model, library choices, and the reasoning behind key decisions.

Overview

OpsDeck is a Python/Flask monolith backed by PostgreSQL. It follows a layered architecture with clear separation between models, routes, services, and utilities. The frontend uses server-rendered Jinja2 templates with Bootstrap 5, enhanced by client-side JavaScript libraries for rich interactions.

Diagram 1

Sections

Document Covers
System Overview High-level architecture, request flow, layer responsibilities
Data Model Entity relationships, core tables, polymorphic patterns
Permissions & RBAC Role-based access control, module-level permissions, caching
Decision Records ADRs — why Flask, why monolith, why Elastic License, etc.
Dependencies Every Python and JS dependency with justification
Frontend Stack Bootstrap 5, Chart.js, Tom Select, Mermaid, DataTables
API Design REST conventions, authentication, marshmallow schemas
Scheduler & Jobs APScheduler setup, recurring jobs, compliance drift
Security Model Auth flow, session management, encryption, CSP, rate limiting