Skip to content

v0.2.0

Latest

Choose a tag to compare

@rknightion rknightion released this 01 Jul 20:31
0724914

0.2.0 (2026-07-01)

Features

  • app: pipeline + composition root + CLI (T11) (09dc1bd)
  • auth: JWT bearer TokenProvider (T2) (07107f2)
  • auth: OAuth client_credentials mode + sandbox/production toggle (6bfbccd)
  • cli: --check flag for offline config + wiring validation (5f63dea)
  • cli: add 'config example|reference|schema' subcommand (6c5dac5)
  • configdoc: generate annotated example YAML from the model (a54ef77)
  • configdoc: generate markdown reference + json schema (474b620)
  • config: generate example + reference from schema; add drift gate (d733f7e)
  • deploy: enable org-limits metric poller in docker config (3149d9b)
  • deploy: persist checkpoint to a bind-mounted ./state volume (e78bf4a)
  • docker: docker-compose run path + readiness-based healthcheck (9ce8836)
  • eventlogfile: hourly-ELF resiliency hardening + close ko.md gaps (4559c00)
  • labels: always emit job + service_name, auto-derive environment (e9b0b86)
  • loki: label guard + protobuf/json encoders (T5) (ae98268)
  • loki: LokiSink HTTP push with retry + 413 split (T6) (e7b6526)
  • obs: metrics, health, structured logging (T8) (8089fa4)
  • obs: OTel-native metrics via OTLP + Salesforce org-limit metrics (d2bfbdb)
  • obs: push metrics to Grafana Cloud over OTLP by default (7a84ee1)
  • obs: startup banner + pubsub/pipeline operational logging (6306905)
  • obs: wire the remaining unwired metrics through (ef8482a)
  • packaging: Dockerfile, k8s manifests, CI, docs (T12) (34c9d16)
  • project skeleton, frozen seams, proto stubs, config (T1) (d92f25c)
  • salesforce: Pub/Sub gRPC client + Avro codec (T3) (f62a074)
  • shaping: derive a per-event log level as structured metadata (e44e6cf)
  • sources: auto-discover Pub/Sub streams; precedence-aware ELF overlap (18da0d5)
  • sources: discover EventLogFile EventTypes with a "*" wildcard (bc2c29e)
  • sources: EventLogFile ingestion (Phase 3) + either/or docs (b425acc)
  • sources: EventLogFile source stub (T10) (7ca6b45)
  • sources: ingest a broad EventLogFile mix on the Daily interval (9c35aa2)
  • sources: per-event-type ELF routing + Loki per-line byte cap (40569c2)
  • sources: Phase 2/3 seams — overlap guard, ELF config/metrics, timestamp + sink hardening (dff7982)
  • sources: Pub/Sub streaming source (T4) (9171a02)
  • sources: SOQL client + eventlog_objects source (T9) (856f04e)
  • state: file + configmap checkpoint stores (T7) (0b34521)
  • tooling: broaden generator API/EventLogFile coverage (0c31277)
  • tooling: CSV-driven diverse data + reliable generator cleanup (3a01846)

Bug Fixes

  • app: bound graceful shutdown to shutdown_grace (32b868e)
  • configdoc: comment out inline secrets in example so *_file isn't shadowed (bc81d6d)
  • configdoc: mark required secret leaves; add regression tests for list/alias/undefined rendering (1d3977b)
  • config: duration shorthand + ${ENV} interpolation (DESIGN §11) (148c5a4)
  • pubsub: create gRPC channel lazily inside the running event loop (69c1150)
  • pubsub: invalidate token on UNAUTHENTICATED so streams self-heal (43c6119)
  • pubsub: use ChangeEventHeader.commitTimestamp for CDC entry timestamp (575e8a1)
  • sources: eventlog_objects entry timestamp uses configured timestamp_field (561946c)
  • sources: ingest EventLogFile on the Hourly interval, not Daily (faac02a)
  • sources: SOQL-safe datetime literals + dropped-metric count (review) (0105924)

Code Refactoring

  • config: make field docs machine-readable via Field(description) (ca4b6e2)
  • state: drop Kubernetes/ConfigMap backend, file store only (ec11398)

Documentation

  • add Phase 0 design (DESIGN.md) (39e7cc3)
  • config: document generated config reference + drift gate (50f60e5)
  • correct OAuth scopes — refresh_token required for pre-authorized JWT bearer (b0c9d51)
  • dedupe to single source of truth + add generator doc (0d0b931)
  • readme: full External Client App + JWT bearer setup walkthrough (a9c9d8d)

Build & CI

  • docker: pull the GHCR :main image by default (26aea13)