towerops/lib
Graham McIntire 9ffa49a8f2 fix(oban): use DynamicLifeline in prod; add /health/live + split k8s probes
Prod paired the Oban Pro Smart engine + unique workers with core
Oban.Plugins.Lifeline, whose rescue has no unique_violation handling. An
orphaned executing CheckExecutorWorker job rescued back to available collides
with its already-scheduled successor on oban_jobs_unique_index (23505),
crashing the plugin every 60s and leaving ~150 orphans stuck. Switch prod to
Oban.Pro.Plugins.DynamicLifeline, which repairs the conflict via
Smart.clear_uniq_violation. Dev keeps core Lifeline (Basic engine).

Add a shallow /health/live endpoint that does not touch db/redis. k8s liveness
and startup probes now target it so a transient dependency outage can't kill or
block boot of a healthy pod; readiness keeps the deep /health to gate the load
balancer. (deployment.yaml probe/replica change pushed separately, after the
image carrying /health/live is live.)

Also drop unused POSTGRES_* keys from the secrets example.
2026-05-20 12:07:29 -05:00
..
mix/tasks refactor: move temperature backfill to a release-safe module 2026-05-10 12:50:35 -05:00
snmpkit fix: MIB archive bomb protection, atom exhaustion guard, and vendor caching 2026-05-12 08:31:01 -05:00
towerops fix(monitoring): stop CheckExecutorWorker duplicate job buildup with unique constraint 2026-05-14 14:01:07 -05:00
towerops_web fix(oban): use DynamicLifeline in prod; add /health/live + split k8s probes 2026-05-20 12:07:29 -05:00
snmp_lib.ex bring in snmpkit 2026-01-23 12:52:17 -06:00
snmp_mgr.ex credo fixes 2026-01-23 14:01:52 -06:00
snmpkit.ex complete overhaul of snmp engine 2026-01-30 10:41:07 -06:00
towerops.ex init 2025-12-21 11:10:43 -06:00
towerops_native.ex dialyzer: replace suppressions with real fixes where possible 2026-04-21 11:01:30 -05:00
towerops_web.ex feat(coverage): write rasters to NFS-backed dir, serve via dedicated static plug 2026-05-07 07:38:05 -05:00