Skip to content

v0.1.0

Latest

Choose a tag to compare

@BeardedWonderDev BeardedWonderDev released this 19 Nov 15:43
· 1 commit to main since this release

DIS Reader v0.1.0

First public preview of the DIS Reader toolkit and terminal UI.

Highlights

  • ✅ Self-contained Go service that embeds the DIS JDBC runner, validates connectivity, and exposes typed services for units, invoices, whole goods, and parts inventory.
  • ✅ Terminal UI (tview2 + Bubble Tea modes) with authentication flow, logging panel, module system, and the Debug Search modal.
  • ✅ Debug Search batching engine that fans SQL templates across FILEC tables, streams progress/events, and can export results to SQLite or CSV with configurable defaults.
  • ✅ Configuration plumbing via disreader.yaml + DISREADER_* env overrides, including theme selection, JDBC port/java path, and debug-search defaults.
  • ✅ Sample fixtures, documentation, and wiki guides for embedding the backend service in custom CLIs/APIs.

Feature Overview

Core Service

  • disreader.NewDISReaderService spins up the bundled dis-runner JAR, injects config/loggers, and exposes:
    • UnitService: fetch/list units with AS/400-aware sorting/filtering and rich JSON specs (status, pricing, flooring, rental info).
    • InvoiceService: fetch/list FILEC.IAH line items plus new whole goods invoice helpers (FILEC.CUSINV).
    • PartService: mirror parts master data, including pricing tiers, stock positions, and supplier metadata.
  • JDBC wrapper guards AS/400 numeric dates (As400DateExpr) and now decodes epoch-based DATE/TIMESTAMP fields emitted by the runner.

Terminal UI

  • WinMan/tview layout with app title, sidebar menus, output pane, and live DIS log stream.
  • Optional Bubble Tea UI (set DISREADER_UI=bubble) for charm-style workflows.
  • Module system (types.ViewModule) currently ships the Debug Search view and can be extended via cmd/debug style packages.

Debug Search Module

  • Presents a guided modal for batching curated queries (from internal/queries.sql) against DIS.
  • Streams ProgressStatus + TableEvent channels to the UI and any downstream consumers.
  • Supports SQLite or CSV output with defaults from config/env (debugSearch.defaultOutputMode / defaultOutputPath).

Configuration & Tooling

  • config.go + types/config.go define the full UI + DIS config schema with sane defaults and env overrides.
  • disreader.yaml template included; non-UI consumers can reuse NewConfig() or build configs manually.
  • Wiki docs (wiki/*.md) cover service embedding, unit/invoice data models, and debug search internals.

Fixes in v0.1.0

  • Decode epoch-formatted timestamps returned by the JDBC runner so AS/400 DATE/TIMESTAMP columns hydrate correctly without warning spam.
  • Update the in-app semantic version display to 0.1.0 to match this release.

Next Steps

  • Expand module library (parts lookup UI, diagnostics).
  • Harden API surface for remote consumers (gRPC/HTTP wrappers).
  • Broaden test coverage around JDBC date handling and UI interactions.