0.31 released - Hazelcast, MongoDb and a new onboarding experience
- Date
Orbital 0.31.0 - "Alf" Edition
We’re excited to announce the release of Orbital 0.31.0 - with a large focus on helping new users feel comfortable — which reminded us of a certain ’80s friend. So, we present Orbital 0.31.0 - The “Alf” edition. 👽🛸🏡
Highlights
- New connectors: MongoDB and Hazelcast
- New onboarding flow, and improved UX for projects and data sources
- Filtering streams of data
- Controlling the services called in a query
MongoDB support (Preview)
We now support MongoDB as a datasource, including support for both querying and writing
Hazelcast support (Preview)
Building on top of our support for Hazelcast as a cache, Hazelcast is now available as a data source, supporting reads, writes and streams.
Use a Hazelcast Map as a high speed data store, or use a Map as the basis for a Stream of data, giving you the best of both worlds.
New onboarding experience
For those wanting to dip their toes into the world of Taxi and Orbital, we’ve built an onboarding flow which should help get you up to speed in no time! And remember, just like Alf trying to fit in with the Tanners, you might feel a bit out of place at first, but with our guidance, you’ll be navigating through like a pro in no time!
You’ll see this screen automatically when you don’t have any data sources declared, but you can also view it manually by going to /onboarding.
Improved UX for managing projects and data sources
Now that you’re familiar with adding projects and data sources after completing the onboarding steps, you’ll be happy to hear that those same project import and data source creation steps are available to you outside the onboarding flow. Consistency FTW!
We’ve completely reworked the Connections page, allowing a more streamlined view of all connections, and their related data sources.
If you want to add a new data source, then the same flow that was created for the onboarding flow is now used here as well. It’s like having Alf in charge of the kitchen - he sticks to his recipes with that good ‘ol fashioned consistency that we’re all about here at the house of Orbital.
Sliding Sidebars
Ever needed a few more cm’s of screen space and thought, gee that sidebar is taking up a bunch of space? Well, now you can collapse it with a click of the mouse, and regain all that space you’ve been desperately hankering for. We’ll remember your preference as well, and restore things how you left them.
Controlling services used in a query (preview)
By popular demand, one of our most requested features is the ability to control which services are called in a query. After all - if Alf taught us anything - given a universe of possibilities, a little navigation can save you landing in a whole world of trouble.
While designing this feature, we wanted to ensure that Taxi remains declarative - and find a balance between giving users control over which services are called, while remaining resilient and self-adapting as services evolve.
You can now limit a query to only call specified services, with the using
keyword:
find { Film[] } as {
filmId : FilmId
reviews : ReviewScore
}
using { FilmsDb, NetflixApi::getReviews }
The list of allowed endpoints can be a mixture of services (FilmsDb
), or even specific operations on services
(NetflixApi::getReviews
).
Similarly, you can allow Orbital to call any services except some, using the excluding
keyword:
find { Film[] } as {
filmId : FilmId
reviews : ReviewScore
}
excluding { ImdbApi, RottenTomatoes::getReviews }
This too allows combining services and specific operations to exclude.
This feature is considered in preview, and the syntax may change, so we’re actively seeking feedback.
Please reach out to share your thoughts.
Filtering a stream
We’ve added new support for filtering streams of data server-side (ie., on Orbital).
Imagine you have a Kafka stream of stock quotes, and you only want
quotes for a specific symbol - this is now possible using .filterEach()
.
stream { StockQuotes.filterEach( Symbol -> Symbol == 'AAPL' ) }
Http headers now visible
We now display HTTP headers in the Profiler view of queries
Updates to Stream UX
The Endpoints page now shows the connection status to the Stream Server, along with the current status of individual streams.
The Stream Page allows enabling & disabling of individual streams.
Streams now disabled by default
When a stream appears for the first time in the schema, it’s now disabled by default, and required manually enabling — for the first time only.
This is to prevent streams - which can be mutating - starting accidentally, because as Alf would say, ‘Hey, no one wants accidental mutations on their hands… or their planet!
Streams now automatically updated
Whenever changes are found in a streaming query running on the stream server, the stream is now automatically updated. Previously, this was buggy…Suboptimal.
CVE Updates
This build bumps our internal dependencies, addressing the following CVE’s:
- CVE-2024-22257 Possible Broken Access Control in Spring Security With Direct Use of AuthenticatedVoter
- CVE-2024-22234 Broken Access Control in Spring Security With Direct Use of isFullyAuthenticated
- CVE-2024-22259 Spring Framework URL Parsing with Host Validation (2nd report)
- CVE-2024-22243 Spring Framework URL Parsing with Host Validation
- CVE-2023-52425 libexpat through 2.5.0 allows a denial of service
Info