Changelog
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
- Project skeleton: gemspec, Zeitwerk bootstrap,
OpenObserve::Clientconfiguration (env-drivenbase_url/user/password/organization), single error surfaceOpenObserve::Client::Error, RSpec suite, RuboCop, CI. - Business wrapper over the
openobserve-apitransport: domain accessors onOpenObserve::Client(search,streams,alerts,destinations,templates,incidents,dashboards). OpenObserve::Search:run/each/allover SQL plus a time window (transparentfrom/sizepagination),aroundfor record context,valuesfor distinct field values. Returns aSearchResultenvelope sototalandtookstay reachable.OpenObserve::Streams(read-only):list,names,schema.OpenObserve::Alerts:list/get/create/update/delete, plusenable,disableandtrigger.OpenObserve::DestinationsandOpenObserve::Templates: full CRUD, plus the system-prebuilt template listing.OpenObserve::Incidents:list,total,get,stats,update.OpenObserve::Dashboards: CRUD plusfind_by_titleandsync, an idempotent directory synchronisation for deploys.- Value objects
Hit,SearchResult,Alert,Destination,Template,Incident,StreamandDashboardoverOpenObserve::Record. OpenObserve::Coerce: microsecond timestamps and relative windows, with an inverted window rejected rather than silently returning nothing.- Transport rough edges absorbed: the
apisub-client hop, the missing accessors for deeper sub-clients,org_idon every route, Basic credentials handed to the transport as an apiKey, and the v1/v2 alerting split. Transport errors are wrapped asOpenObserve::Client::Error(Unauthorized,Forbidden,NotFound,Conflict) with#causepreserved.