238 lines
10 KiB
Markdown
238 lines
10 KiB
Markdown
# MinerOps Roadmap
|
|
|
|
## Purpose
|
|
|
|
This roadmap communicates the intended direction of MinerOps from its current
|
|
early-stage foundation toward a production-ready, self-hosted mining operations
|
|
platform. It describes broad development phases, their priorities, and why work
|
|
is ordered that way.
|
|
|
|
The roadmap is not detailed project scheduling. It does not assign dates,
|
|
promise delivery order within a phase, or replace the work needed to define and
|
|
validate individual features. Priorities may change as operational experience
|
|
and operator feedback reveal better sequencing.
|
|
|
|
The architectural rules in `ARCHITECTURE.md`, product principles in
|
|
`PRODUCT.md`, and recorded decisions in `DECISIONS.md` take precedence over
|
|
roadmap speed. A milestone should move more slowly rather than weaken durable
|
|
identity, history, safety, testability, or domain ownership.
|
|
|
|
## Current Status
|
|
|
|
MinerOps currently has an early-stage backend and operational application,
|
|
containerized development services, PostgreSQL and Redis infrastructure, and a
|
|
versioned Alembic schema. Authentication, login gating, and role foundations are
|
|
implemented.
|
|
|
|
The Inventory domain has a database schema, Pydantic models, domain exceptions,
|
|
a service, a PostgreSQL repository, and focused automated tests. It is not yet
|
|
exposed through a new domain HTTP API. Existing application code also contains
|
|
working early-stage workflows for discovery, repairs, locations, telemetry, and
|
|
control, but those areas are not complete product domains and remain in the
|
|
integrated application module.
|
|
|
|
The repository now includes established branding and primary guides for product,
|
|
architecture, and long-lived decisions. The project remains in the Foundation
|
|
phase.
|
|
|
|
## Guiding Principles
|
|
|
|
Roadmap ordering follows these principles:
|
|
|
|
- **Stable foundations before features:** Identity, schema, access control, and
|
|
test boundaries must support later workflows rather than be repaired after
|
|
every expansion.
|
|
- **Durable operational records before automation:** MinerOps must know which
|
|
asset, location, condition, and history an action affects before automating
|
|
that action.
|
|
- **Safety before convenience:** Controls and broad actions require permissions,
|
|
clear scope, safeguards, and auditability.
|
|
- **Incremental delivery:** Working behavior is preserved while features move
|
|
behind explicit domain boundaries in reviewable steps.
|
|
- **Maintainability over rapid expansion:** New capability should strengthen the
|
|
shared operational record instead of creating another isolated workflow.
|
|
|
|
These principles describe how phases are evaluated. They do not require every
|
|
capability in one phase to be exhausted before useful work in another phase can
|
|
begin.
|
|
|
|
## Development Phases
|
|
|
|
### Phase 1: Foundation
|
|
|
|
**Status: Current phase.**
|
|
|
|
Foundation establishes the application, authentication and role model, database
|
|
migration authority, initial Inventory domain, repeatable development stack,
|
|
focused tests, branding, and primary project documentation.
|
|
|
|
The purpose of this phase is to create stable ownership and validation before
|
|
adding more product surface. Inventory is the first reference domain because
|
|
asset records are needed by identity, repair, monitoring, and control workflows.
|
|
Phase 1 is complete only when the foundations are usable as dependencies for
|
|
subsequent domain work, not merely present as isolated code.
|
|
|
|
### Phase 2: Inventory & Identity
|
|
|
|
**Status: Planned direction.**
|
|
|
|
This phase completes the core asset record and connects it to discovery and
|
|
network observations. It develops practical asset workflows around stable
|
|
internal identity, operator-facing Asset IDs, lifecycle state, tags, notes, and
|
|
location relationships.
|
|
|
|
Discovery should resolve observations to durable assets without defining an
|
|
asset by its current IP or MAC address. Network identity history and deliberate
|
|
handling of address or control board changes preserve continuity. Inventory
|
|
becomes the dependable source that later operational domains can reference.
|
|
|
|
This phase precedes deeper repair and control work because those workflows must
|
|
act on the correct asset and retain context through component, network, and
|
|
location changes.
|
|
|
|
### Phase 3: Operations
|
|
|
|
**Status: In progress.**
|
|
|
|
This phase develops day-to-day technician and operations workflows around the
|
|
durable asset record. Repairs, maintenance, work orders, parts usage, equipment
|
|
movement, testing, and return-to-service history become coherent operational
|
|
records rather than disconnected actions.
|
|
|
|
The Begin Repair, read-only Repair Timeline, and Return to Service workflows are
|
|
complete. An authorized actor can open a repair against a durable miner UUID,
|
|
record sequenced events, and move the miner into or out of repair atomically.
|
|
Authorized readers can inspect the repair and its ordered immutable events.
|
|
Later repair lifecycle workflows remain planned.
|
|
|
|
Technician experience is a priority. Responsive and QR-assisted workflows may
|
|
reduce lookup and data-entry effort where they reinforce the same asset record.
|
|
Existing repair and location behavior should move incrementally into clear
|
|
domain ownership while preserving working use cases.
|
|
|
|
Operations follows Inventory and Identity so every repair, part, and movement
|
|
has stable ownership and useful history.
|
|
|
|
### Phase 4: Monitoring
|
|
|
|
**Status: Planned direction.**
|
|
|
|
This phase connects telemetry, alerts, fleet health, and historical trends to
|
|
the operational record. Monitoring should explain current and historical
|
|
condition without replacing lifecycle, repair, location, or maintenance state.
|
|
|
|
Alerts become more useful when they can account for asset identity, known
|
|
maintenance, intended downtime, location, and prior behavior. Historical trends
|
|
should help operators recognize persistent or recurring problems rather than
|
|
serve as an isolated stream of measurements.
|
|
|
|
Monitoring follows core operational records so observations carry enough
|
|
context to support decisions and avoid treating expected conditions as unknown
|
|
failures.
|
|
|
|
### Phase 5: Fleet Control
|
|
|
|
**Status: Planned direction.**
|
|
|
|
This phase develops controlled actions for individual miners and groups, then
|
|
extends them toward scheduling and automation. Permissions, confirmation,
|
|
scope, staggering, expiry, maintenance awareness, and audit history are product
|
|
requirements rather than optional polish.
|
|
|
|
Bulk operations should remain visible before, during, and after execution.
|
|
Automation must preserve explicit human control and distinguish planned actions
|
|
from unexpected device behavior.
|
|
|
|
Fleet control follows identity, operations, and monitoring because safe action
|
|
requires confidence in the target, awareness of maintenance state, and feedback
|
|
about the result.
|
|
|
|
### Phase 6: Infrastructure
|
|
|
|
**Status: Planned direction.**
|
|
|
|
This phase deepens the model of sites, rooms, racks, positions, electrical
|
|
relationships, power, and capacity. It connects miners and operational state to
|
|
the physical constraints under which a mining facility runs.
|
|
|
|
Earlier phases may use basic location relationships. Phase 6 develops the wider
|
|
infrastructure record needed for capacity planning, movement decisions, and
|
|
understanding how equipment relates to power and space.
|
|
|
|
Infrastructure depth should remain progressively adoptable. A small installation
|
|
should not need to model every electrical relationship before basic Inventory
|
|
or Operations workflows are useful.
|
|
|
|
### Phase 7: Production Readiness
|
|
|
|
**Status: Planned direction.**
|
|
|
|
This phase prepares MinerOps for sustained operation and supported upgrades. It
|
|
focuses on performance, broader automated testing, API consistency, complete
|
|
operator and deployment documentation, reliable upgrade paths, backup and
|
|
restore procedures, deployment hardening, observability, and long-term support
|
|
practices.
|
|
|
|
Production readiness applies across all product areas. It includes verifying
|
|
failure behavior, recovery, data migration, and operational maintenance rather
|
|
than only completing feature surfaces.
|
|
|
|
This phase is placed after the principal product domains so readiness work can
|
|
be measured against realistic workflows. Reliability, upgrade safety, and
|
|
observability remain ongoing concerns in every earlier phase rather than being
|
|
deferred entirely to the end.
|
|
|
|
## Future Opportunities
|
|
|
|
Possible areas for later exploration include additional external integrations,
|
|
manufacturer APIs, richer reporting, operational analytics, mobile workflow
|
|
improvements, and a plugin architecture if multiple real integrations justify a
|
|
stable extension boundary.
|
|
|
|
These are opportunities, not commitments. They should be evaluated against the
|
|
product decision test, self-hosted ownership, safety, maintenance cost, and the
|
|
need to preserve one coherent operational record.
|
|
|
|
## How Priorities Change
|
|
|
|
Priorities may change in response to operator feedback, experience from real
|
|
mining operations, reliability findings, safety concerns, maintenance cost, or
|
|
new operational requirements. A newly discovered data-integrity or safety need
|
|
may appropriately move ahead of a visible feature.
|
|
|
|
Changes to priority should be explained using the product principles and ADRs.
|
|
Reordering is appropriate when it improves the product without weakening stable
|
|
identity, history, operator control, or architectural boundaries. A roadmap
|
|
change does not silently reverse a long-lived decision; such a change requires a
|
|
new documented decision.
|
|
|
|
## Completed Milestones
|
|
|
|
Major completed foundations include:
|
|
|
|
- Repository and containerized development foundation
|
|
- PostgreSQL, Redis, and Alembic migration foundation
|
|
- Authentication, login gating, and role foundation
|
|
- Manual Inventory schema and backend domain foundation
|
|
- Focused Inventory and migration test foundations
|
|
- Begin Repair operational workflow
|
|
- Read-only Repair Timeline API
|
|
- MinerOps branding package and project README
|
|
- Architecture guide
|
|
- Product guide
|
|
- Architecture and Product Decision Records
|
|
|
|
Completion here means the named foundation exists in the repository. It does not
|
|
mean every product workflow associated with that area is complete.
|
|
|
|
## Reading This Roadmap
|
|
|
|
The roadmap communicates intended direction rather than guaranteed delivery
|
|
order. Features may move between phases when doing so improves the overall
|
|
product without weakening the architectural, product, or safety principles
|
|
established elsewhere.
|
|
|
|
Use phases to understand dependency and priority, not as fixed release promises.
|
|
Evaluate actual work against current operational needs and the durable decisions
|
|
recorded in the project documentation.
|