JavaScript expressions in the Catalog importer

Weekly Update

TL;DR: We’ve made it even easier to use the Catalog Importer by switching from CEL for expression evaluation to JavaScript. This will improve the experience of getting data into Catalog which will help to create powerful bespoke automations that leverages your organisation’s ecosystem. For example, you could create a workflow that alerts your CSMs when a feature that their customer uses has been affected by a critical incident.

Why are we switching from CEL to Javascript for expression evaluation?

When the Catalog importer was first offered, CEL felt like the right choice because of its relative simplicity and ease. Unfortunately, most people have little to no prior experience with CEL, presenting an extra learning curve to using the importer service. We’ve decided that this speed bump simply didn’t need to exist. Hence the introduction of Javascript for expressions, which is much more familiar, flexible and powerful.

Why should I use the Catalog Importer?

Catalog is one of the pillars that make incident.io so powerful. Using Catalog, you can model out your entire organisation’s ecosystem — from meta-information about your team and your business, down to the finest details of your product’s infrastructure. You can then design workflows, lifecycles and post-incident flows around these resources, just to name a few.

But configuring the Catalog can take a bit of time and care to get right. To try and smooth out this process, we offer an importer tool which you can use with your structured data. The importer tool can use data from virtually any source — a version controlled file in GitHub, a BigQuery database, exports from other tools you use, a script that fetches information from an API — anywhere that you already model your data, and represents it beautifully and simply in the Catalog.

What should I do if I’m already using the Catalog Importer?

If you are already using the importer service, and you would like to take advantage of this upgrade, it’s available in versions 2.0.0 and later. We’ve provided lots of example expressions, and sample document set-ups which will help make the migration easy and quick. Happy importing!

Improved ranking for catalog entries

Re-ranking Catalog entries used to be a pain! Previously, you’d need to click into each entry and set the rank manually. We’ve redesigned the UI to create an “Edit Rank” mode where you’ll be able to drag and drop the entries into your desired position.

🚀What else we’ve shipped

  • 🆕 We have audit logs for Escalation Paths & Schedules
  • 🆕 We now support expressions in alert routes
  • 🆕 Catalog Importer is now rate limited to stop it from receiving rate-limit errors from our API. This may make it take longer to run.
  • 🆕 You can now decline incidents in bulk from the web dashboard: very useful if you've had a runaway alert route create lots of unnecessary triage incidents!
  • 👷 Improved performance of loading alerts and escalations in the dashboard for organizations with a large amount of alerts
  • 👷 The 'invite user from Opsgenie schedule' is now more reliable and runs faster
  • 💅 You can now see broken workflows clearly in the web dashboard, making it easier to debug issues
  • 💅 We now escalate via incident.io as our default workflow step
  • 💅 Updated copy to On-call sections of the dashboard to be more helpful
  • 💅 The next changeover for Schedules now includes the timezone
  • 💅 Improved copy for test escalation notifications
  • 💅 Display when escalations have been triggered via workflows
  • 💅 Allow creation of an override from a "No one" tooltip in Schedules
  • 💅 Polished the overflow within the Alert route creation UI
  • 💅 Polished the upcoming shift email design
  • 💅 When creating overrides while using a schedule with specific times, we'll default the start date to when the next shift will start, if you're currently out of hours
  • 🐛 Link to the correct schedule from an upcoming shift notification email if you are part of multiple organisations (ie. production and sandbox accounts)
  • 🐛 Render cancelled notifications in an escalation's timeline
  • 🐛 Fixed the information tooltip on alert sources breaking words in the wrong spot
  • 🐛 Fixed a bug where creating a schedule inline from an escalation path would break subsequent schedule creation
  • 🐛 Immediately reflect schedule name changes after it has been updated
  • 🐛 Fixed a bug with upcoming shift emails for non-UTC timezones
  • 🐛 We no longer send simultaneous phone calls
  • 🐛 Fixed a bug where schedule end times were getting truncated in UI
  • 🐛 We now have consistent timezone behaviour across Schedules
  • 🐛 Create override UI now shows the overlapping shift warning correctly
  • 🐛 We now redirect gracefully when you've not completed setting up On-call
  • 🐛 Fixed a bug where the escalation timeline showed too many escalation states
  • 🐛 Catalog Importer will now gracefully retry errors from the public API
  • 🐛 Fixed a bug where we would present an error trying to close a re-opened incident
  • 🐛 Fixed a bug where you'd have to refresh the page to see changes to Catalog entries
  • 🐛 Fixed a bug where it would sometimes take us longer than necessary to post the first two messages into an incident channel
  • 🐛 Fixed a bug where duration metrics weren't coming through in custom post-mortem blocks
  • 🐛 Fixed a bug where you couldn't convert a custom field to be catalog-backed if you had a particular type of expression
  • 🐛 Fixed a bug where we wouldn't show you a validation error if you tried to resolve an incident with an invalid link
  • 🐛 If you use an expression to define the default severity or status of an incident via incident forms, we'll now update the value dynamically in Slack (previously it only worked in the web
  • 🐛 Fixed a bug with Assistant where it was struggling to generate images
  • 🐛 Fixed a bug where private incident naming including Jira tickets IDs were not being correctly resolved

Move fast when you break things