internal/

directory
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 25, 2026 License: AGPL-3.0

README

internal/

Server-internal Go packages. Go's internal rule makes these importable only by code in this module — they are not part of any public API and may change without notice. Anything that needs to be consumed from outside the module belongs in pkg/ instead.

Packages

Package Purpose
internal/api REST surface: chi router, handlers, request/response wire types, error shape
internal/bus Embedded NATS JetStream broker and the typed client wrapper over it
internal/config Layered runtime configuration (defaults, file, env) and validation
internal/discovery mDNS responder that advertises the running server on the local network
internal/health Liveness (/healthz) and readiness (/readyz) checks
internal/log slog-based structured logging setup and helpers
internal/metrics Prometheus metric definitions and registration
internal/middleware net/http middleware (request logging, recovery, etc.)
internal/openjd OpenJD template parsing, validation, parameter-space expansion, path mapping
internal/scheduler Assignment loop, worker registry, and scheduling policy
internal/server Component lifecycle: starting and stopping the server's subsystems
internal/store Storage interface, SQLite-backed implementation, migrations, domain types, fake
internal/ui Serves the embedded web UI bundle with single-page-application fallback routing
internal/version Build-time metadata injected by the release toolchain
internal/worker sqi-worker agent internals (see subpackages below)
internal/ws WebSocket envelope, subscription hub, and fanout to web clients
internal/worker/ subpackages

The worker agent is decomposed into focused subpackages: capabilities and registration (self-reporting and registering with the server), discovery (locating the server via mDNS), natsclient and protocol (NATS transport and message types), pull (the assignment pull loop), heartbeat, executor and session (OpenJD session lifecycle and bare-metal process execution), pathmap (storage-location path resolution), logstreamer and status (streaming task output and status back to the server), cancel (task/Session cancellation), config, metrics, and obs (observability).

Directories

Path Synopsis
Package api wires together the sqi-server HTTP surface: the chi router, standard middleware stack, and all route groups.
Package api wires together the sqi-server HTTP surface: the chi router, standard middleware stack, and all route groups.
Package bus provides the embedded NATS JetStream message broker and the subject/stream definitions used for sqi-server's internal messaging.
Package bus provides the embedded NATS JetStream message broker and the subject/stream definitions used for sqi-server's internal messaging.
Package config defines the sqi-server runtime configuration and provides layered loading from built-in defaults, a YAML/JSON file, SQI_* environment variables, and CLI flag overrides — in that override order.
Package config defines the sqi-server runtime configuration and provides layered loading from built-in defaults, a YAML/JSON file, SQI_* environment variables, and CLI flag overrides — in that override order.
Package diag holds the server-side in-memory ring buffer of diagnostic (operational) log records gathered from sqi-server itself and from connected workers.
Package diag holds the server-side in-memory ring buffer of diagnostic (operational) log records gathered from sqi-server itself and from connected workers.
Package discovery advertises the running sqi-server on the local network via multicast DNS (mDNS / DNS-SD) so that workers and the sqi CLI can find it without manual address configuration.
Package discovery advertises the running sqi-server on the local network via multicast DNS (mDNS / DNS-SD) so that workers and the sqi CLI can find it without manual address configuration.
Package health implements liveness and readiness checks for sqi-server.
Package health implements liveness and readiness checks for sqi-server.
Package log provides slog-based structured logging for the sqi binaries.
Package log provides slog-based structured logging for the sqi binaries.
Package metrics defines and registers all Prometheus metrics for sqi-server.
Package metrics defines and registers all Prometheus metrics for sqi-server.
Package middleware provides net/http middleware for sqi-server.
Package middleware provides net/http middleware for sqi-server.
Package openjd implements parsing, validation, and parameter-space expansion for Open Job Description (OpenJD) job templates.
Package openjd implements parsing, validation, and parameter-space expansion for Open Job Description (OpenJD) job templates.
fmtstring
Package fmtstring resolves Open Job Description (OpenJD) format strings.
Package fmtstring resolves Open Job Description (OpenJD) format strings.
Package scheduler implements the sqi-server assignment loop and worker registry — the authoritative component for deciding which task runs on which worker.
Package scheduler implements the sqi-server assignment loop and worker registry — the authoritative component for deciding which task runs on which worker.
Package server owns the sqi-server component lifecycle: starting and stopping the store, message bus, scheduler, HTTP server, and mDNS responder in the correct dependency order.
Package server owns the sqi-server component lifecycle: starting and stopping the store, message bus, scheduler, HTTP server, and mDNS responder in the correct dependency order.
Package store defines the storage interface for sqi-server and the domain model types shared across all components.
Package store defines the storage interface for sqi-server and the domain model types shared across all components.
fake
Package fake provides an in-memory implementation of store.Store for unit tests that must avoid touching the filesystem.
Package fake provides an in-memory implementation of store.Store for unit tests that must avoid touching the filesystem.
migrations
Package migrations embeds the SQL migration files used by goose to manage the sqi-server SQLite schema.
Package migrations embeds the SQL migration files used by goose to manage the sqi-server SQLite schema.
sqlite
Package sqlite provides a SQLite-backed implementation of store.Store.
Package sqlite provides a SQLite-backed implementation of store.Store.
Package ui serves the embedded web UI bundle over HTTP with single-page application (SPA) routing semantics.
Package ui serves the embedded web UI bundle over HTTP with single-page application (SPA) routing semantics.
Package version holds build-time metadata injected by the release toolchain.
Package version holds build-time metadata injected by the release toolchain.
worker
cancel
Package cancel implements per-task cancel-signal subscriptions for sqi-worker.
Package cancel implements per-task cancel-signal subscriptions for sqi-worker.
capabilities
Package capabilities provides auto-detection and manual override of sqi-worker host capabilities reported to sqi-server at registration time.
Package capabilities provides auto-detection and manual override of sqi-worker host capabilities reported to sqi-server at registration time.
config
Package config defines the sqi-worker runtime configuration and provides layered loading from built-in defaults, a YAML/JSON file, SQI_WORKER_* environment variables, and CLI flag overrides — in that override order.
Package config defines the sqi-worker runtime configuration and provides layered loading from built-in defaults, a YAML/JSON file, SQI_WORKER_* environment variables, and CLI flag overrides — in that override order.
diaglog
Package diaglog implements the sqi-worker diagnostic-log sink.
Package diaglog implements the sqi-worker diagnostic-log sink.
discovery
Package discovery provides mDNS-based sqi-server discovery for sqi-worker.
Package discovery provides mDNS-based sqi-server discovery for sqi-worker.
envutil
Package envutil provides shared helpers for building process environment variable slices from os.Environ() plus a caller-supplied override map.
Package envutil provides shared helpers for building process environment variable slices from os.Environ() plus a caller-supplied override map.
executor
Package executor implements the bare-metal task executor for sqi-worker.
Package executor implements the bare-metal task executor for sqi-worker.
fmtres
Package fmtres resolves OpenJD "{{...}}" format strings on the worker, where the session working directory — and therefore Session.WorkingDirectory — is only known at run time.
Package fmtres resolves OpenJD "{{...}}" format strings on the worker, where the session working directory — and therefore Session.WorkingDirectory — is only known at run time.
heartbeat
Package heartbeat implements the worker's periodic liveness signal to sqi-server.
Package heartbeat implements the worker's periodic liveness signal to sqi-server.
lease
Package lease implements the worker side of the work-lease protocol: it keeps exactly one outstanding lease request per queue and dispatches each assignment the server returns.
Package lease implements the worker side of the work-lease protocol: it keeps exactly one outstanding lease request per queue and dispatches each assignment the server returns.
logstreamer
Package logstreamer implements the log-chunk publisher for sqi-worker.
Package logstreamer implements the log-chunk publisher for sqi-worker.
metrics
Package metrics defines and registers all Prometheus metrics for sqi-worker.
Package metrics defines and registers all Prometheus metrics for sqi-worker.
natsclient
Package natsclient provides the NATS client factory for sqi-worker.
Package natsclient provides the NATS client factory for sqi-worker.
obs
Package obs provides the local observability HTTP server for sqi-worker.
Package obs provides the local observability HTTP server for sqi-worker.
openjd
Package openjd implements the OpenJD progress-line interceptor for sqi-worker.
Package openjd implements the OpenJD progress-line interceptor for sqi-worker.
pathmap
Package pathmap implements resolved-mode path substitution for sqi-worker.
Package pathmap implements resolved-mode path substitution for sqi-worker.
protocol
Package protocol defines the versioned JSON wire protocol used between sqi-server and sqi-worker agents.
Package protocol defines the versioned JSON wire protocol used between sqi-server and sqi-worker agents.
registration
Package registration manages worker registration with sqi-server over NATS.
Package registration manages worker registration with sqi-server over NATS.
session
Package session manages the lifecycle of OpenJD sessions on the worker.
Package session manages the lifecycle of OpenJD sessions on the worker.
status
Package status implements the typed task-status publisher for sqi-worker.
Package status implements the typed task-status publisher for sqi-worker.
Package ws defines the typed WebSocket message envelope shared by the server upgrade handler (internal/api) and the fanout layer.
Package ws defines the typed WebSocket message envelope shared by the server upgrade handler (internal/api) and the fanout layer.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL