Skip to content

changelog · every published release

What changed in each release.

Every image published to Docker Hub, newest first. Each version is a tag you can pin.

Pin the latest release

0.0.32 · 1 Nov 2026

docker pull ritele/ritele:0.0.32
  1. 0.0.32

    latest

    Single sign-on is set up from Settings › Users, with no environment variables or restart, and a licence that includes it now says so.

    • FixedThe licence's list of what the install can do left single sign-on out, so a key that included it looked as if it did not. It is listed now.
    • NewAn admin sets single sign-on up in Settings › Users: the provider's issuer, client ID and secret, who gets in and with which role. Test checks the issuer first, and saving turns it on at once, with no restart. The client secret is stored encrypted, which needs RITELE_SECRET_KEY. RITELE_OIDC_* variables still work and win over the form.
    • NewSettings › Users shows where single sign-on stands: on, with the provider and issuer; included in the licence but not set up; set up wrong, naming the field at fault; or set up without a licence that includes it.
    • FixedClicking a recent error on a component's side panel opened Logs on the newest lines of every severity, so on a busy service the error was not on the page. It now opens that line, among the errors.
  2. 0.0.31

    People can sign in through your identity provider, and a component you remove stays off the map until something calls it again.

    • NewSingle sign-on over OpenID Connect, with a licence that includes it: Okta, Entra ID, Google, Keycloak or another OIDC provider, one per install. Set RITELE_OIDC_ISSUER, a client and RITELE_PUBLIC_URL, and the sign-in page offers Sign in with your provider.
    • NewRoles can follow your provider's groups (RITELE_OIDC_ADMIN_GROUPS, RITELE_OIDC_EDITOR_GROUPS), and who may sign in can be limited to groups or email domains. RITELE_OIDC_AUTO_CREATE makes accounts at a first sign-in; without it an admin links each person under Settings › Users.
    • NewRITELE_PASSWORD_SIGN_IN=off leaves passwords to admins while single sign-on is on, so there is always a way in if the provider is down.
    • SecuritySingle sign-on calls out only to the issuer you set, and is off unless configured; the security page lists it beside the other four. People are matched on issuer and subject, never on email.
    • FixedA component you removed came back within 15 seconds while the Collector still held its old call counts. It now stays removed until something calls it again.
    • FixedA peer called once, long after the Collector started, now appears on the map.
    • FixedOn a new install, a domain whose services reported after the map was first opened appears at once instead of after up to 15 minutes.
    • FixedAn edge nobody calls goes stale after 24 hours as it should, instead of staying active while the Collector runs. Expect quiet dependencies to show as silent and rarely called intended edges to show in drift.
  3. 0.0.30

    A Metrics page shows what each component reports in plain words, and plans no longer limit how long Ritele keeps your data.

    • NewMetrics, under Telemetry in the side rail: pick any component and see what it reports in plain words, such as "Memory in use (heap)" over v8js.memory.heap.used, with its latest value and last half hour. A stored metric charts over the top bar's range beside what it means and how its series are added together.
    • NewA service on Metrics leads with its requests, errors and latency. A database, cache, queue or external API shows the calls its callers made to it, since it sends no traces of its own.
    • NewA duration such as request time charts p50, p95 and p99.
    • NewCompare with a week earlier, on Metrics and the Health tab, draws the same window seven days back as a dotted line. It is offered for windows from 6 hours to 7 days.
    • NewThe side panel leads with Health, Traces and Logs tiles and one Recent list of error lines, lines or traces. Rename, Remove and Ask Advisor sit under More.
    • NewThe side rail groups Traces, Logs and Metrics under Telemetry and the map's views under Architecture, and marks the page you are on.
    • NewNo licence, and no install without one, caps retention any more. Set the window in Settings, or keep everything with 0. On the single-container install, storage still fits itself to its volume.
    • FixedKeys signed with a retention or metrics window still verify. The window they carry is no longer applied.
    • FixedRITELE_FREE_RETENTION_DAYS is read for one more release as the old name of RITELE_RETAIN_DAYS, with a warning at startup. Set RITELE_RETAIN_DAYS instead.
    • NewSettings no longer lists retention among the licence's terms, and the retention editor has no licence ceiling.
  4. 0.0.29

    The embedded install keeps its storage inside its volume on its own. When free disk runs low, Ritele frees space and resumes storing logs without anyone pressing a button.

    • FixedThe embedded metrics file stopped growing on its own indexes. Metrics are kept one table per day and closed days are rewritten compactly, so retention gives the space back by dropping whole days. A 20 GB install had grown it to 9.6 GB.
    • NewThe embedded metrics budget is sized from the data volume instead of a fixed 8 GB. When everything kept would not fit, Ritele shortens the retention windows in force, and at their floors it stops storing the newest series. Your configured windows are never rewritten, and a bigger volume keeps more.
    • FixedWhen free disk falls under the stored-log floor, Ritele expires old metrics, and older stored-log days if that is not enough (never today's), then resumes storing lines on its own.
    • NewLogs, Health and Settings › Storage say when stored lines are being refused and why: Ritele is freeing space, or it is out of space with nothing left to free.
    • FixedLogs no longer shows "No lines" under a chart that counted thousands without saying why. It says the counted lines were not stored.
  5. 0.0.28

    Ritele reopens its metrics database after DuckDB fails internally, and a screen that cannot read says so in a sentence, not a stack trace.

    • FixedWhen DuckDB hits an internal error it stops answering until its file is reopened. Every screen then printed the driver's message with its native stack until Ritele was restarted. Ritele now reopens the file and resends the write it was holding. If the fault comes back more than three times in five minutes, it stops and says to restart.
    • FixedAn unexpected server error reaches the screen as one sentence, such as "Ritele hit an internal error answering this", while the full error goes to the server log. A failed read shows what could not be read and why, with Retry.
    • NewScreens open on the last 24 hours instead of the last 7 days. A link that names its range keeps it.
    • FixedLogs stopped after ten pages, about 2,000 lines, as though the range held nothing older. It now offers "Continue from" and the time it reached, and reads on back to the start of the range you picked.
    • FixedSettings › Trace links read "Use Ritele's trace view" on its button; it now reads "Use Ritele's trace view".
  6. 0.0.27

    A trace whose services' clocks disagree reads true: a server's time sits inside the call that waited on it, in the trace view and in Paths.

    • FixedWhen a service's host clock runs ahead of or behind its caller's, its spans are moved to sit inside the call that waited on them, and the trace says so: "Clocks differ: pay runs about 480 ms ahead of bff, which called it." Log lines keep the time they were stamped with.
    • FixedPaths charges a skewed server's time to that server, not to the call that waited on it. Hours built before this release keep their old figures until they age out.
    • FixedA span only counts as overlapping the one before it by more than a millisecond, so a handler that starts as its middleware ends is no longer outlined.
    • NewThree or more Express, Koa or Fastify middleware layers in a row, each under a millisecond, fold into one row, "6 Express layers checked", that opens to show them. A failed or slow layer is never folded.
    • NewThe trace summary lists when it started, its span count and its full id, and gives "Most of the wait" its own row: the chain of calls, a bar, and its share, such as "68 ms of 84 ms · 81%".
    • FixedA span's status reads OK, failed, or "OK · none set" in place of the raw OTLP code, and its start time notes when it was clock-corrected.
    • FixedOpening a short trace on its last span draws every row, not a blank drawer.
  7. 0.0.26

    On a slow network the UI says what it is still reading or could not read, and what it is doing, instead of an empty or zero result it has not read.

    • FixedA log line's trace says "Checking for the trace…" while it is looked up, not "Trace not kept" before the answer is in.
    • FixedA Logs search shows a spinner in the box, dims the lines it is replacing and says "Reading lines…"; counts still being read show as "…", never 0.
    • FixedDrift, the notification bell, map health, Settings, notification settings, Advisor, Paths, Scenarios, Snapshots, SLOs and Traces say "Reading…" while they read and offer Retry when a read fails, in place of "No intended model yet", "Nothing new", "never" or 0.
    • FixedOpening the bell marks items seen only once they have been read and shown.
    • FixedButtons say what they are doing while it runs, such as "Accepting…", "Saving…" or "Sending test…", and cannot be pressed twice.
    • NewHow it works names the sequence diagram's lanes again under its last step, so the bottom of a long diagram still says which lifeline is which.
  8. 0.0.25

    Health judges a service's latency against its busy hours, so a quiet night or an earlier false alarm no longer sets what is usual.

    • FixedA usual latency and error rate are read from the hours busy enough to judge, weighted by the requests each served, so a service busy in office hours is no longer compared with its quiet nights.
    • FixedA service an earlier false alarm flagged through its busy hours recovers: when too few clean busy hours are left, the flagged ones count towards its usual, while a real incident's failing hours stay out.
    • FixedA probe on / is left out beside a service that only consumes a queue, as an uptime monitor's polls were.
    • FixedA check with no usual says "No usual yet", not that a component long past learning is still learning.
  9. 0.0.24

    Health judges latency on the requests users make, says its readings in values, and its screens say only what they know.

    • FixedRequests to a probe route (/health, /healthz, /ready, /live, /ping, /metrics, and / on a service that serves other routes) are left out of Health, so a load balancer's polls no longer set a service's usual latency. SLOs and entry points still count every route.
    • FixedA p99 is never read off one slow request: with fewer than 300 requests it reads the value three requests exceed, and says so: "The slowest 3 of 114 requests took 2 s or more".
    • FixedA 4xx a service answers its callers with no longer counts against it as a failure; a 5xx or a 429 still does.
    • FixedReadings give values, not ratios: "p99 is 2 s, usually 7 ms". A likely source keeps its reading in its title once callers are affected, and a widened window follows the reading rather than leading the title.
    • FixedAn issue page says when it is clearing, counts error lines of all log lines, notes when the slow requests were not kept among its traces, and names an entry point with no route as such.
    • FixedThe status board puts the worst domains and components first, keeps the end of long names, and has a key; open issues are counted as issues.
  10. 0.0.23

    A host that stops reporting frees its slot of the plan's host limit, and an admin can free one by hand.

    • FixedOnly a host that reported in the last 7 days (by default) holds a slot of the plan's host limit. A stopped host stays listed in Health › Infrastructure until it ages out, but holds no slot, so a new host is admitted in its place.
    • NewFrom the host-limit notice in Health › Infrastructure, an admin can free a quiet host's slot or remove a stopped host. A host still reporting is refused unless the removal is forced, and every removal is recorded.
    • FixedThe host-limit notice says how many hosts hold a slot and how many more are waiting, and when each quiet host will free its slot.
  11. 0.0.22

    The Logs filter menus open in full.

    • FixedOn Logs, the Component and More filters menus open over the page instead of being cut off under the volume chart, and a long component list keeps its search and Done in view while it scrolls.
  12. 0.0.21

    Accepting a drift finding updates the intended model, and can be undone.

    • NewAccepting a drift finding updates the intended model: an unexpected call or new component is added, a missing call or disappeared component is removed, a changed protocol is updated, and a layer violation is accepted as an exception. Each button says which it will do.
    • NewRemoving a component that other intended dependencies rely on asks first and names them. Reopening an accepted finding puts the model back as it was, unless it has been imported again since.
    • FixedAn Advisor thread link typed or pasted by hand opens its thread.
  13. 0.0.20

    Stored logs keep the whole line, the Logs page puts the lines first, and Advisor answers stream with the architecture behind them.

    • NewA stored line keeps every attribute its record carries, nested objects and arrays included, so request and response payloads logged with pino or any OpenTelemetry logger are there to read. A line holds up to 32 KiB; anything cut is marked.
    • NewLine details open in a drawer beside the list, with a tree of the line's fields, the whole line as JSON, Find in this line, and j and k to step through a request's lines without closing it.
    • NewSearch on stored lines matches values inside a line's fields, and a filter can reach a nested field such as data.PolicyID.
    • NewA trace opens in a sheet over the logs; closing it returns to the same line. Logs also has a full screen mode.
    • NewSettings › Logs › Privacy chooses which attributes an environment keeps; every attribute is kept unless you name some.
    • NewAdvisor answers appear as they are written, with Stop, and each shows what it cost and how long it took.
    • NewAdvisor reads the architecture: entry points with end-to-end timings, critical paths, flows, the slowest and failed traces, and how each component compares with its baseline. Ask it to explain the whole environment and it answers by boundary.
    • NewAdvisor reads as a chat: the conversation sits in a centred column with the question box at the bottom, the newest answer last, and Stop while an answer is being written. Review and Threads work the same way.
    • NewAdvisor answers render with lists and tables, and their sources are listed once, linked to the component, entry point, path or trace.
    • FasterAn Advisor answer makes three calls to Ritele's gateway instead of five, and the map it reads is reused for five minutes.
    • FixedA call to something that sends no spans of its own, such as a database, a cache or an external API, is timed by its caller. It read about 5 ms on the map, in External dependencies and in the Advisor; new data is right, while figures already stored stay as they were.
    • FixedAn entry point's error rate is counted from every request, not from kept traces, which hold every failure and only a share of the rest.
    • FixedWith many environments, the top bar scrolls the environment list instead of pushing search and Snapshot off the screen.
    • FixedStored lines load when Logs opens, with no Read lines to press. Lines read from your own Loki still wait to be asked.
    • FixedThe Logs page starts with the lines: one toolbar, one row of filters, a slim volume chart and one-line notices.
    • FixedA trace's span shows only that span's stored lines, and no note names Loki for an environment stored by Ritele.
    • SecurityMasking reaches into nested fields: a value under a secret-named key is replaced at any depth, a name and value pair such as {"Name": "apiToken", "Value": …} has its value masked, and a field that cannot be read safely is withheld rather than stored. Masking is pattern matching, so phone numbers, names and addresses inside a payload are kept as sent.
  14. 0.0.19

    See what happened to every log line sent, and stored logs read their level from text alone.

    • NewSettings › Logs › Storage shows what happened to every line and request received: stored, refused below the disk floor, or answered without storing, with the reason.
    • FixedA line that names its level only in text, such as "error" with no severity number, is counted and stored at that level.
    • FixedThe Logs page says when no lines are arriving, rather than showing an empty list.
    • SecurityLog text labelled as a one-time code, passcode or MFA code is masked before it is written. Masking is pattern matching, so keep secrets out of log text.
  15. 0.0.18

    The request log records a page's path without its query.

    • SecurityRitele's own request log no longer records query strings, so text typed into a Logs search never reaches the container's stdout.
  16. 0.0.17

    Ritele stores log lines itself, with no Loki required.

    • NewStored logs: turn on RITELE_LOGS and Ritele keeps log lines next to its traces and metrics, with recognised secrets masked before they reach the disk.
    • NewEvery password field, including sign-in, has a show and hide control.
    • FixedA logs batch the Collector resends after a missed answer is stored once, and a refusal of up to ten minutes loses no line that fits.
    • FixedA Loki read cut at 256 KB keeps the newest lines across every stream.
    • FixedThe map keeps its view after a drag, Auto arrange returns every component, and a line crossing an open domain's title is drawn through it.
  17. 0.0.16

    Faster screens, steadier Health checks and security headers.

    • NewHealth evaluates incrementally, keeps 14 days of pod history, and shows status counters.
    • FixedA quiet check is judged over a wider window, and a failing one is held only so long.
    • FixedWhat-if sizes a connection pool that actually clears, and never shows a capped figure as exact.
    • FasterScreens send their quick reads as one batched request, the shell reads a small summary instead of the whole graph, and hourly charts read rollups.
    • SecurityHash-based content security policy, framing blocked, and no caching of API answers.
    • SecurityThe Collector deletes older URL attributes that can carry query strings and credentials.
    • Security@fastify/static upgraded to 10.1.6 for four advisories.
  18. 0.0.15

    A broad performance pass, and Advisor top-ups bought from Settings.

    • NewBuy an Advisor top-up pack and manage the wallet from Settings.
    • FixedHow it works opens on a summary you can scan, and long names no longer push the side panel sideways.
    • FasterThe web app is split by route and served precompressed, and the map re-reads on tab return only when it is over five minutes old.
    • FasterBackground jobs each have their own minute, trace aggregation works in smaller pages, and large trace payloads no longer hold up ingest.
  19. 0.0.14

    How it works: a sequence diagram per operation, drawn from kept traces.

    • NewHow it works draws the sequence of calls behind each operation from the traces Ritele kept.
    • NewDatabase query text is kept on spans, with its values masked by default.
    • NewEditors can run Architecture Review when the licence covers it.
    • FixedDevelopment builds report themselves as dev.
  20. 0.0.13

    Sign-in, users and per-user roles.

    • NewLocal sign-in with users and per-user roles. The first admin's password comes from RITELE_ADMIN_PASSWORD.
  21. 0.0.12

    A maintenance release.

    • FixedTest-suite reliability; no change to what the product does.
  22. 0.0.11

    Security hardening and shorter copy across the app.

    • SecurityThe Advisor credential is sealed at rest, changes are gated by role, the container runs unprivileged, and internal ports listen on loopback only.
    • FixedThe map no longer crashes on load, and a fresh install no longer says the Advisor last changed 20,737 days ago.
  23. 0.0.10

    Bulk drift actions, scenario PDF reports, and series that survive pod churn.

    • NewSelect drift findings and accept or close them in bulk.
    • NewExport PDF produces a real scenario report.
    • FixedA service's series stay continuous as pods come and go.
    • FixedCustom ranges are precise to the minute, and log severity counts match the lines shown.
    • FixedThe Node heap stays bounded under full trace keep, and memory is sized to the container.
  24. 0.0.9

    Scenarios that work on real estates, and logs filtered by trace id.

    • FixedScenarios handle real entry points and CPU limits, with a readable map.
    • FixedMessage-less and cut JSON log lines are read, and logs can be filtered by trace or span id.
    • FixedPresent view keeps its controls, minimap and legend clear of the side panel.
  25. 0.0.8

    Scenarios, and the trace keep rate set from Settings.

    • NewScenarios: ask what happens to latency if traffic grows or a component changes.
    • NewSet the trace keep rate in Settings; the Collector confirms the change.
    • FixedPredictions read in seconds, with plain errors and an honest verdict.
  26. 0.0.7

    Garbage-collection time no longer reads over 100%.

    • FixedGC time no longer exceeds 100% when an instrumentation is registered twice.
  27. 0.0.6

    Structured log lines, custom date ranges, and Health that leads with status.

    • NewRead structured log lines, filter by field, page back, and follow a guided Loki setup.
    • NewA custom date range in the top bar, kept in the link.
    • NewHealth leads with the environment's status, worst issues first.
    • NewSearch, filter and sort the Paths rail, and search the trace filters.
    • NewAbout and /healthz show the running release.
  28. 0.0.5

    Read logs from Loki without Grafana.

    • NewLog lines are read straight from Loki, with label mapping set on the connection.
  29. 0.0.4

    The first tagged release: metrics, traces and logs linked on the map.

    • NewLog badges and menus on the map, kept traces on charts, and log counts on spans.