373 changes since 14.0.103: 137 new or improved features, 103 bug fixes, 6 performance improvements, 27 documentation updates and 100 maintenance changes. The busiest areas: Openstack, Data Observability and Workflows.
✨ New and improved
- Openstack
- Monitor an OpenStack cloud: inventory, agent, pages and alerts (#5789)
- Compute, network and storage pages, and the guards that know OpenStack (#5798)
- Connect a cloud with no agent, guides per deployment tool, control plane, real VM metrics, logs, events, audit trails and traces (#5808)
- An investigation of a region's API says what the region takes with it, by project (#5818)
- A probe says each instance's address and which pool holds each volume (#5819)
- The agent reads load balancers, bare metal, stacks, clusters, shares, DNS, object storage, databases and Gnocchi where a cloud runs them (#5820)
- How many more of each flavor fit, worked out host by host with what Placement would decide (#5822)
- The Services page says when an operator forced a Nova service down (#5826)
- An instance's page and list say which image it booted from (#5829)
- Real CPU, memory, disk and network per instance and hypervisor, read true from libvirt or Ceilometer (#5831)
- A DHCP agent's page lists the networks it serves, and a network names its agents (#5832)
- Traces read as OSProfiler really writes them, and say what a stock cloud leaves out (#5833)
- A case names the project and instance an audit event touched, Who changed this finds them, and every tool's guide says how to turn the audit trail on (#5835)
- An alert template for an image stuck on its way, which recovers when it moves (#5837)
- A pool's page lists its volumes, where a probe says which they are (#5838)
- A cloud joins up with hosts, Kubernetes nodes, services and Ceph, and never on a guess (#5840)
- A cloud of any size says what it costs, and its pages and rows hold up at 200,000 instances (#5842)
- Connect a cloud with a probe from the dashboard alone, and see exactly what failed (#5846)
- The region you pick narrows Topology, Metrics, Logs, Traces, Incidents and Alerts, and each project's quotas are read once an hour (#5848)
- Traces say what each release really does, and warn off the OpenTelemetry version that hangs Neutron (#5849)
- A Capacity page says how many more fit, and when things fill up (#5852)
- Bare metal nodes reach a cloud's inventory with health rules and alerts, and a node no longer counts as a hypervisor (#5857)
- A rule on a project or domain is a real condition, and the map joins instances to their networks from what a probe says (#5858)
- OneUptime AI investigates a cloud, read-only (#5859)
- Flavor counts match a hand calculation on three real hosts, fragmented estate included (#5862)
- Alerts on what a cloud stands on, and one failure opens one incident (#5863)
- Heat stacks and Magnum clusters appear on a cloud that runs them, and leave no trace on one that doesn't (#5865)
- A probe checks the cloud from outside, and can boot an instance in it (#5872)
- A Magnum cluster with the Kubernetes agent links both ways with its Kubernetes cluster (#5874)
- Manila's shares appear on a cloud that runs it, with pages, alerts and Topology, and leave no trace on one that doesn't (#5878)
- The AI agent can make the ten changes a person approves, and refuses everything else (#5882)
- A probe reads Manila: every share, its backend and access rules, and the services only it can see (#5883)
- A cloud that runs Ironic gets a Bare Metal section, with its nodes and alerts, and a probe reads them (#5885)
- The checks from outside, recorded on a real cloud (#5886)
- Usage per project from inventory, your own prices, budgets, and what could be reclaimed (#5887)
- Kolla-Ansible's real recording is in, and the guides say what ran on real deployments (#5891)
- A stack's page lists the instances and volumes it owns, and each of those names the stack (#5893)
- A cloud's Spend page says who's using what, at your prices or CloudKitty's, and Recommendations says what could be reclaimed (#5894)
- The Capacity page adds up bare metal by resource class, and a probe can alert on a stopped conductor (#5897)
- Trove's databases appear on a cloud that runs it, and a credential it refuses reads as that rather than as Trove being down (#5898)
- A probe reads Trove too, and says why a database failed, which the exporter can't (#5900)
- A product page for OpenStack, with its place in the navigation, the air-gapped page and the compare pages (#5901)
- Designate's zones appear on a cloud that runs it, and what a stopped Designate can't say, it doesn't claim to (#5906)
- OneUptime AI can fix an OpenStack cloud once you let it twice, and an evacuation always asks a person (#5909)
- Gnocchi's backlog and processors on a cloud that runs it, with a probe's read of them too (#5911)
- A probe reads Designate too, and can say what a stopped one can't say for itself (#5913)
- A probe reads what CloudKitty rated, and a cloud's Spend page prefers it (#5915)
- A workflow can propose a fix from an OpenStack alert, and a person approves it (#5919)
- Swift's containers appear on a cloud that runs it, as far as a credential can read them, with a growth forecast (#5920)
- A probe reads Barbican where a cloud runs it, and how many secrets and orders it holds, without reading one (#5922)
- OneUptime AI reads Manila, Designate, Swift, Trove and Gnocchi where a cloud runs them, and still reads no secret (#5923)
- A cloud running Octavia gets its load balancers, pools and amphorae, and alerts for the ones in trouble (#5925)
- A probe reads Swift's storage servers where you name them: whether each answers, its replication and its rings (#5926)
- One step makes a status page per region, and a failure or planned work tells only the projects it reaches (#5927)
- A cloud's Status Pages page, and each project's notices and private page (#5929)
- A probe-collected cloud shows Octavia's listeners and members, and charts a load balancer's traffic (#5939)
- OpenStack-Ansible's real recording is in, and the guides say what Cinder needs for a credential limited by access rules (#5948)
- A real Alertmanager's webhook from a real Kolla-Ansible, and Cinder read on both tools (#5952)
- Trace every API request with nothing signed on 2026.2, through OpenStack's own tracing (#6011)
- Data Observability
- Watch every table of connected databases for row count, size, last change and schema changes (#5647)
- The Data Observability product in the dashboard - overview, tables, schema changes, databases and a page per table (#5654)
- Recommended alerts for a database's tables, and a page per database (#5662)
- The services that read and write each table, from their database spans (#5667)
- Checks on a table's values - empty, repeated, invalid, orphaned, custom SQL - segmented, with alerts (#5669)
- Suggested checks from a table's columns, accepted in one click and dismissed for good (#5670)
- Pipelines and lineage from OpenLineage events (#5671)
- Alerts on failed, slow and late pipelines, on a page per pipeline (#5673)
- Dbt artifacts - models on their tables, lineage, tests as checks, builds as runs (#5677)
- One issue per cause - a data alert whose cause is open upstream starts acknowledged (#5684)
- Unused tables - each table's last read, from the engines' own read counters (#5687)
- Amazon Redshift - tables, sizes, last writes and reads from Redshift's own catalog (#5690)
- Snowflake - over its SQL API with key-pair authentication, the catalog read with SHOW at no credit cost (#5691)
- Google BigQuery, with each Google Cloud connection's own service account (#5692)
- Lineage from every view's definition and from BigQuery's and Redshift's query history (#5695)
- Fivetran and Airbyte syncs as pipeline runs (#5697)
- Data products, with a freshness SLA, status pages, an SLO and a badge (#5698)
- Reconciliations between tables and systems (#5699)
- OneUptime AI knows the data - table freshness everywhere, data alerts investigated from the data, checks written from a sentence (#5700)
- ClickHouse and Databricks - table health, checks and lineage (#5701)
- Production Review names what a pull request's migrations and dbt models break (#5703)
- Dashboards of BI tools in lineage - a stale table's alert lists the dashboards built on it (#5707)
- Warehouse spend - credits and bytes billed by job, team and table, failing jobs and unused tables (#5708)
- Amazon Athena and Iceberg through the AWS Glue Data Catalog (#5710)
- Oracle and MongoDB (#5711)
- Finish the spec (#5784)
- Translate what still read English (#5787)
- Bill watched tables, and let a database be stopped (#5792)
- Let OneUptime Cloud keep failing rows too (#5800)
- Connect a Database walks two steps, the database and then how OneUptime reaches it (fffe35e)
- Workflows
- Datadog and New Relic templates - each alert opens an incident or alert, pages on-call and resolves on recovery (#5683)
- Pick linked records by name instead of pasting their IDs (#5949)
- Custom fields are fields of the record in every step's settings (#5953)
- Run a workflow again with the values an earlier run started with (#5956)
- Describe a workflow to Ask AI, and it builds it or changes it (#5962)
- On-Call
- Skip until…, Get cover and mobile cover are locked, with the reason, for members whose override permission covers only some policies (#5661)
- Skip until…, Get cover and the mobile app's cover offer the on-call policies a member may cover (#5672)
- Escalate a page to a level you pick, hand-off rows that fit a phone, plain-case on-call labels, and Execute On-Call Duty Policy (#5706)
- Members can get on-call pages as Mattermost direct messages (#5783)
- Workspace
- Cloud
- Databases
- Iron Bank
- Translations
- Accounts: Password reset and other security emails show the request's IP address, location and device (#5685)
- AI: The Remediation step shows each fix step by step - planned, approved, ran, recovered, rolled back - each opening to why, the commands that ran and their output (#5649)
- Alerts: Incident Rules declare an incident from matching alerts, right away or once they stay unresolved (#5663)
- Analytics: A call booked after "Reject all" still says which campaign it came from (#5655)
- Ask AI: Ask AI opens beside the page, which keeps working, and its edge drags to the width you need (#5760)
- Cloud AI Agent: #5367's follow-ups - OneUptime AI's changes marked on Changes, a retry when an agent connects, Google Cloud's agent on a $10 VM, AI Logs in every language (#5704)
- Code: A turn's steps reach the page as they happen (#5696)
- Data Security: A telemetry issue shows what data it found, where, and the traces and logs it was seen in (#5659)
- Metrics AI: Find services that send metrics but none for their requests, and record them without changing code (#5675)
- Monitors: Alert when a metric is forecast to rise above or fall below a value (#5660)
- Network: Walk many devices at once and compare what each answers, OID by OID (#5686)
- Notifications: Choose which updates reach your Mattermost account in Notification Settings (#5794)
- Permissions: Single permissions can be limited to owned resources or labels, and a scoped team's on-call overrides stay on its own policies (#5651)
- Security: Hunt run history, the Hunt Library, hunt finds in Slack and Teams, and filter chips in Edit (#5680)
- Security Events sources: Cloud audit logs, firewall syslog, threats from Your logs open cases, and the Entra ID and Workspace follow-ups (#5709)
- Security Events watchlists: Values that expire, lists read from an address, Export Values, and monitors, hunts and the Events search that read watchlists (#5645)
- Self-Hosted: Air-gapped installs in one checksummed bundle, with signed images, vulnerability reports and a hardening guide (#5656)
- Sign In: Sign in with a link emailed to you, alongside your password (#5688)
- Status Pages: Private users can sign in with a link emailed to them (#5652)
- Ask AI approval cards, steps and evidence in the reader's language (#5303 follow-up) (#5623)
- Ask AI follow-ups (#5315): severity on incident cards, a start that pages nobody, refusals read as not done, Slack and Teams say how to act, cards in the reader's language (#5679)
- Cloud follow-ups (#5300), part 1: change titles and resource words in the reader's language, readable cloud types, names as text, and #5646's review finished (#5702)
- Monitors follow-ups (#5437): a metric series' lag and staleness from when its data arrived; designs for scheduled SNMP walks and MIB upload (#5714)
- Cloud agent follow-ups (#5519), part 1: Impact first, runbook track records, an alert's recurrence, Dismiss fix, where fixes were approved (#5715)
- i18n(dashboard): the Data Asset feed's events and a data asset's description in every language (ad9426f)
- i18n(cloud): Cloud Run is Google Cloud's name, the same in every language (8b0cc49)
- i18n(ja): a cloud account's Ask AI questions say health ヘルス (ebafaea)
- i18n(admin): the forms' "Loading content" in the Admin Dashboard's 17 locales (001fc65)
🐛 Bug fixes
- Openstack
- Add the migration for the probe's columns (#5793)
- An index for list sorting, the traces rig, and a guard fix (#5804)
- The database path's second exporter no longer crashes on its first scrape (#5813)
- The agent's journal profile keeps log lines over 4 KB, which it used to send empty (#5817)
- The agent installs for a person with only the docker group, and the rig proves the install on a real cloud (#5821)
- The access rules carry what Kolla-Ansible's Cinder says, and the setup guide asks for no key where a probe reads the cloud (#5824)
- Each page says what this credential really can't read, on what real credentials got (#5828)
- A router whose agents were all taken off it stops naming them (#5830)
- A secret in a long or oddly written log line no longer survives, and logs and events read as real clouds write them (#5841)
- Each heading of the deployment guides has its own link, and the Alertmanager link lands on its heading in every language (#5843)
- Four words on the OpenStack pages reach translators (#5845)
- Something seen once on its way to another status no longer raises a stuck alert (#5850)
- An install without Docker says when the exporter can't run on this machine, and a deleted credential is called that (#5851)
- Failed logins and role grants reach Security Events from what the agent really sends, and the guide says what Keystone sends (#5854)
- A grouped OpenStack check with no series asks whether the cloud still reports (#5855)
- A probe reports a build that failed on its compute host, and logs and events are held to what three real clouds recorded (#5860)
- A refused token reads as Token Validation Failing, as real Keystones write it (#5870)
- Nobody else can change the folder root runs the agent from (#5876)
- With Neutron down a probe keeps the instances it knows, and its suite has passed on a real cloud (#5888)
- The doctor and the docs say what each optional service answered, and the rules read Octavia's root and Swift's account as the exporter asks (#5889)
- The API compiles again, after two merges each kept half of a route (#5895)
- The Dashboard compiles again on the Spend page and the waste card (#5904)
- Cinder's own image volumes aren't called unused, and usage holds on a real resize and deletion (#5918)
- More of the OpenStack pages reach translators, and an alert's Markdown stays escaped (#5924)
- Subnets, Stacks and Kubernetes Clusters say when a credential sees only its own project (#5935)
- The Dashboard compiles again, after a removed route left its breadcrumb behind (#5941)
- A hypervisor's, an instance's and every other part's page opens in the real app (#5950)
- The agent reports 0.161.4, so installed agents are told to upgrade to its newer files (#5959)
- OneUptime AI leaves the OpenStack agent's containers alone, and the CI jobs that broke on master pass (#5963)
- An OpenStack monitor reads when a series' data arrived, so late data fires instead of waiting (#5968)
- A project's notice says it is over when its project's own states say so (#5970)
- Its Metrics alert templates get a heading of their own in the picker (#5974)
- The wide columns of its usage, capacity and spend tables show in every browser (#5975)
- Connect a cloud fits a phone's line, and the Services filter never holds a reload back (#5977)
- The API reference shows how to create a cloud, and a monitor's schema names its cadence (#5978)
- Its descriptions fit where they are shown, and every new sentence is in all 16 languages (#5979)
- Installing again keeps an agent on the database path working (#5983)
- What the agent costs Keystone counts every login, 5.2 requests a minute rather than 3.4 (#5985)
- troubleshoot.sh checks the database path instead of saying its exporter never started (#5987)
- A project told of planned work is told it ended when it ends, not when it is marked complete (#5988)
- Installing again keeps the Keystone address and CA of an AI agent with its own credential (#5989)
- The control plane map's note says health with the Dashboard's word in Japanese, Hindi and Chinese (#6016)
- Data Observability
- The registration test names the renumbered table usage migration (#5668)
- Hold tables to the Owned scope (#5802)
- Close the gaps CI found (#5806)
- A Data Asset's kind may be left out of a create, as its default says (4ee0463)
- Common compiles again - the Snowflake key's public half, and the collector's fixtures (cbda0eb)
- Editors can change what a check runs, a check is judged on the rows it writes, and a private alert stays out of a data alert (f0e1086)
- A private alert is never named in the feed of an alert it caused (e530c34)
- Search finds Checks, Pipelines and Unused Tables, a table's Columns can be sized, and the sweeps hold the new pages (7870bda)
- Four texts fit their limit, translated; Snowflake is a Data Security term (d9e125a)
- An alert's Data card leaves out only the read that failed (02c1143)
- Connect fits a phone, the sync dialog is a held key guide, texts fit, the Data card is translated (c129231)
- A table's answer names only its alerts still open, by the project's resolved rule (245efaa)
- The BI Tools form walks two steps (eccd2db)
- A write of checks, data products or reconciliations is judged on the rows it changes (42c3cb1)
- A table's answer names only the alerts its reader may see (1f63dc5)
- A data product's badge token is marked a secret, and a BI tool is changed with Edit Data Asset by the admins who connect it (73e4673)
- Search finds Data Products, Reconciliations, BI Dashboards and Warehouse Spend, and a data product has Developer pages (9dd46d8)
- Accounts
- Images
- Workflows
- AI
- Dashboards
- Data Security
- Docs
- Monitors
- Probe
- Production Review
- Status Pages
- Workspace
- Admin: A bulk run's progress line writes its percent the Persian way, as the Dashboard does (6db76a3)
- Alerts: The Incident Rules page's filled-in name and 'Right away' are always text (#5666)
- Compose: PostgreSQL's health check stops logging a FATAL error every ten seconds (#5807)
- Iron Bank: A finding's text stays in its table cell, backslashes and all (2af3cee)
- Kubernetes Agent: Say Metrics AI reads the eBPF span metrics, and pin where and how (825145a)
- Migrations: The DataCheck reconciliation index is built online (b5a7e11)
- Mobile App: Expo's latest patch versions, whose CLI no longer needs a zod override (#5964)
- Notifications: The setup checklist checks the Slack, Microsoft Teams and Mattermost columns (#5799)
- Sign In: A session you ended stays ended, even if a refresh of it was already on its way (#5907)
- Traces: A trace's Related signals show Logs in the same render that takes a closed tab away (fb1ad2e)
- Translations: The same-as-English list is in order again, which DashboardLocalesGuard holds it to (#5934)
- VMware: Test connection works when connecting a vCenter with a read-only account (#5801)
- Website: The blog clone gives up a transfer that stalls and clones again; retried builds run without sudo (a2810c1)
- Workers: A worker running another release no longer fails cron runs and jobs with "No job found" (#5681)
- Master's reds after the alert incident rules, Data Observability and Get cover merges (df4c445)
- Master's CLI docs reds after dbt upload: the CLI's two readers follow buildProgram, and every language documents the command (2fc89cb)
- An upstream cause's title is placed as text in the feed; the Checks form's reading step is listed (c66b7ba)
⚡ Performance
- Sign In
- Sign-in, sign-up and status pages download 14-18% less script before they draw (#5682)
- Pages download 42 KB less script before they draw, and browser telemetry's SDK loads only where it is configured (#5757)
- Sign-in, sign-up and status pages download another 9-11% less script before they draw (#5767)
- Bulk: #5309 follow-ups - incidents read nothing more after a state write, timeline deletes recompute once, Admin Users and Add in Bulk on the shared runner, device reads on the shared read-ahead (#5678)
- MCP: AI agents load the tool list in under 250,000 bytes again (#5971)
- Openstack: A very large cloud's lists forget their oldest page in constant time (#5976)
📚 Documentation
- Openstack
- An hour at 200,000 instances, with its budgets and what it measured (#5877)
- Traces run on 2026.2 below OpenTelemetry SDK 1.44, with Neutron in the trace (#5892)
- The pages a person sees, from a live OneUptime reading a real cloud (#5936)
- The English docs now list OpenStack where the product does (#5947)
- A real alert from a real Kolla-Ansible opened an incident on a running OneUptime (#5955)
- The OpenStack docs read in all 17 languages (#5957)
- The OpenStack pages now agree with each other and with what ships (#5969)
- The agent's files say what the AI agent can change, and how Kolla-Ansible runs its exporter (#5984)
- The in-app guide says what ran on Kolla-Ansible and OpenStack-Ansible as the docs do (#5986)
- Data Observability
- Data Security
- MCP
- Accounts: Sign in with a link emailed to you (#5766)
- Cloud, AI: View error as each language's Dashboard draws it (0615495)
- Incidents: Name the Incident Rules tab as each language's Dashboard draws it (5eb5299)
- Iron Bank: The onboarding form moved, asks for a Government point of contact, and may come with a quote (#5650)
- Ko: 정리됨 takes 으로 in Data Security's checks and issues (b28a122)
- Mattermost: The docs say Security Events rules post to Mattermost, and where Connect a workspace leads (#5764)
- Scheduled Maintenance: Data Observability Databases waits under More fields too, in all 17 languages (#5993)
- Security: Connected Signals names OpenStack clouds among what a case can reach (#5812)
- SSO: Enforcing SSO lists emailed links, and the upgrade guide sends servers with no mail server to their note (#5786)
- Templates: A dotted metric name goes inside the braces (#5958)
- Upgrading: After the upgrade the sign-in page offers an emailed sign-in link, even with no working mail server (#5782)
- Workflows: A New Relic guide, and the Datadog guide starts from its template (#5755)
🧰 Maintenance (100)
- Openstack
- A real OpenStack in CI, with its failures recorded (#5754)
- The rig's failed logins reach Keystone, and it records every shape of grant, refusal and credential (#5814)
- The control plane rig records clean scenes and the collector throughout, and the agent reads each RabbitMQ queue (#5815)
- The rig's collector starts again, and a step that runs out of time no longer costs a run its recording (#5823)
- Real recordings of Heat, Magnum, Designate, Barbican, Swift, Ironic, Manila and Trove, and the rig that makes them (#5834)
- Browser walks for the product area, custom role grants down to the API, and linking a cloud to its incidents (#5836)
- The pages' walks run in two groups, on minutes from a real run (#5844)
- The test cloud fills a network, stops an L3 agent and forces a service down, and the pages read what it recorded (#5853)
- A long path's reading is held to 200ms again, on its fastest reading (#5856)
- Real recordings of Gnocchi, of Manila's stopped and killed services, and of Trove's stopped API (#5861)
- The Services recordings hold to what those clouds run, now the catalogue's order names Ironic (#5864)
- A collection's counted reads leave out what Placement would decide, which has its own counts (#5866)
- The probe's live rig job gets past DevStack's certificate on a hosted runner (#5867)
- Real recordings of Octavia and Gnocchi, and the rest of Ironic, Manila and Heat (#5868)
- The quota parser reads what real clouds' exporters and the agent's hourly jobs said (#5869)
- A job that takes a real cloud all the way into a running OneUptime, and the guides say what has run live (#5871)
- The browser walks' fixture builds again (#5875)
- Octavia's load balancer in ERROR, all of Octavia again, and Swift's access check once its 500 is gone (#5879)
- Each health rule is held on both sides of its line, in the words it says (#5880)
- The AI agent's tests read what it printed on a real cloud (#5881)
- A running OneUptime, sent what a real cloud said with RabbitMQ, MariaDB and ovn-controller stopped (#5890)
- Breaking any health rule now fails a test, stacks, clusters and Ceph's words included (#5896)
- Lint on the Heat and Magnum work (#5899)
- Level 1 reads Octavia and Swift through the exporter as an admin does, recorded, and the docs say what that takes (#5903)
- Say that a running OneUptime has now been sent these drills (#5905)
- The rig's write credential sets service_type the way the guide does (#5910)
- Heat answers a project admin about another project's stack, so a Full view probe lists what every stack owns (#5912)
- The whole path reads the blast radius and looks at the real pages, and the guides say what it proved (#5914)
- The rig reads a new credential's ID in either of the client's spellings (#5921)
- Octavia's attention, summary and blast radius queries, run on Postgres (#5928)
- The rig makes a status page, tells a project and plans work on a real cloud (#5930)
- The status pages rig reads the new pages in a real browser (#5931)
- What a real cloud did with real fixes, recorded, and an approval held to it (#5933)
- AppArmor's tools no longer stop OpenStack-Ansible's deployment on a runner (#5937)
- What a real CloudKitty answered, and the probe's collector reads it correctly (#5938)
- Lint on the services a cloud may not run (#5940)
- Images build again, after a regular expression's flag the compile target refuses (#5951)
- App's tests read the lists and ingest OpenStack has now (#5981)
- Common's tests and guards read what OpenStack, Data Observability and Workflows have now (#5982)
- The tests read the shorter words its cards say now (#5995)
- The installer test's password escapes a backslash too (#5998)
- The native traces test types its callback's parameter (#6012)
- Two trace checks read what a cloud's spans say now (#6013)
- The native traces test passes Common's type check (#6014)
- The native traces test holds the fastest reading of a long URL (#6015)
- E2E
- The browser checks read the OpenStack template, fixtures and Persian words the pages have now (#5980)
- The fixtures answer the OpenStack reads a host, a node, a cluster and a cloud's page make (#5999)
- German's row checkboxes and Persian's trail are read in their own words (#6001)
- The air-gapped spec reads the registry where the page's values name it (#6008)
- The ChartTimeZoom fixture answers the container hosts' new reads - their inventory and each container's restarts (5c4a207)
- The Meraki fixture calls only a device-add scenario it defines (d2c1c05)
- The Event Overview fixture answers the alert page's DataAlert reads (88d96e6)
- CI
- The Iron Bank project's Dockerfile is committed, which the repo-wide Dockerfile ignore had kept out (#5657)
- A merged pull request's OpenStack rig run stops, instead of holding six runners for hours (#5839)
- The whole path job's ports reach config.env, whose last line has no newline (#5873)
- The lint job finishes again, with no plain CommonJS file loading the whole repository's types (#5990)
- The Enterprise backup suite runs the pg_dump and pg_restore a real installation picks (#5991)
- The drift shards test finds the step that installs the backup suite's tools (#6005)
- Common
- Iron Bank
- The App's Iron Bank project, built, booted and scanned daily as Iron Bank's pipeline will (#5648)
- Iron Bank gets the App's Enterprise Edition, the only edition it lists (#5658)
- The ingress, runner and probe get Iron Bank projects, built, smoke-tested and scanned with the App's (#5689)
- The runner's and probe's findings warn instead of failing for now, and the manifests name their maintainer (#5716)
- Navbar
- Ops
- Cloud
- Dashboards
- Data Observability
- Enterprise
- Status Pages
- Accounts: The request origin suites time with fastestRun; the origin reader is a listed address reader (a5df2d7)
- Agents: Pull requests run the cost agent's tests and build its and the log tailer's images (#5778)
- Cloud Connections: The connections table and the columns later migrations add make up the model - #5713's stream columns counted (04e6fb1)
- Data Security: A telemetry finding's value matcher is maskIfFound, not match (7a4e46b)
- Docs: Account and destination are prose where Core Concepts and Queues bold them (daf7b19)
- Incidents: Read the declare carry-forward with the alert incident rule's name (935ffcc)
- MCP: The consent page suite loads its language before it reads it (6093626)
- Migrations: DataAsset.description is a markdown column added after the file owners backfill (e7d7ef2)
- Npm: The translator may load the bounded cache every module evicts through (8feaa33)
- Postgres: The status page sign-in link suite runs on migrated Postgres (a4f2b46)
- Scheduled Maintenance: Resources Affected is no longer listed as a long step (#5997)
- Security: The empty states list the OpenStack audit trail (#6002)
- Traces: A trace's own reads are told apart from the look for an OpenStack trace (#6000)
- Translations: The OpenStack product's strings are in every locale file, ready to translate (#5932)
- Workflows: A page step's record picker and a kept field's words (#6003)
- npm audit fix (#5753)
- npm audit fix (#5902)
- The traces list's rows age from when each test builds them, the Admin step lists by their translated name, and updateItem's props with the request's origin (1b86ef6)
⬆️ Upgrade
Back up first, then follow the upgrade guide. On Docker Compose, run npm run update on the release branch. On Kubernetes, helm upgrade to version 14.0.104 of the chart.
Full changelog: 14.0.103...14.0.104
Contributors: @nawazdhandala, @simlarsen