O_Bmar

OT-BMAR (Operational Technology & Building Management Asset Registry)

OT-BMAR is a highly secure, containerized relational asset management engine designed to track mission-critical metadata for BMS servers, network controllers, and software licenses.

Key Features

  • Strict RBAC: Admin, Engineer, and Field Tech roles with granular access controls and "least privilege" visibility for secrets.
  • Two-Stage Bulk Import: An "Analyze then Confirm" workflow for CSV/Excel data, featuring a property-level change matrix to prevent accidental overrides.
  • Naming Convention Enforcement: Automated validation of asset naming (e.g., Servers start with Win-, Network Controllers start with Qnx-, Titan-, or ATLAS-SD-).
  • High-Density UI: A "system registry" aesthetic designed for efficiency, featuring responsive card layouts and interactive audit tooltips.
  • Credential Security: All sensitive fields (passwords, keys, passphrases) are encrypted at rest using AES-256 (Fernet).
  • Immutable Audit Ledger: Automated tracking of all CREATE, UPDATE, DELETE, and VIEW_PASSWORD actions with full state snapshots.
  • Standardized Schema: Case-sensitive PostgreSQL consistency with ALL CAPS enums (SERVER, NETWORK_CONTROLLER, ROUTER, etc.).

System Architecture

  • Backend: FastAPI (Python 3.11) with SQLAlchemy and PostgreSQL 16.
  • Frontend: React 18 SPA with Vite, Tailwind CSS (High-Density Design), and Lucide icons.
  • Security: JWT authentication with sliding sessions and encrypted credential management.

Quick Start

  1. Ensure Docker and Docker Compose are installed.
  2. Clone the repository and navigate to the root directory.
  3. Run docker compose up --build -d.
  4. Access the dashboard at http://localhost:3000.

Administrative Utilities

  • Asset Auditor: A specialized script (asset-auditor/scripts/audit_assets.py) for identifying registry discrepancies and naming violations.
  • Data Recovery: Database volumes are mounted to postgres_data for persistence.
  • Encryption: The master Fernet key is managed via the FIELD_ASSET_ENCRYPTION_KEY environment variable in the .env file.

Default Credentials

  • Admin: admin / AdminPass123!
  • Engineer: engineer / EngineerPass123!
  • Field Tech: tech / TechPass123!