Hye Ararat Beta 4 is now available

TLDR: lots of really exciting stuff is on the way. July 24th is still the date. Re-write will be up in the next few weeks.


I thought I’d just provide an update on what the status of the re-write is for everyone! I’ve been getting a couple messages from people thinking things are abandoned. This is not the case! Just haven’t pushed since the codebase is currently a Frankenstein of unused Next.js logic for reference to migrate and isn’t at parity at all with the prior version. Expect a push in the next week or two :slight_smile:.

Currently, the main slowdown has been that really nice “general configurator” component we have, which allows Ararat to display every single Incus config option in its UI natively.

Over the last several weeks I’ve been moving the component to use hard-written overrides instead of weird string parsing of the docs.

There are a couple reasons for this:

  1. the objects I’m making could be used in the future to make the behavior of /1.0/metadata/configuration more approachable
  2. I don’t want changes to the English in the docs breaking the UI in the future
  3. There are now “access” functions associated with the configurable options (so it only shows options you have permission to see/change, and it now knows which options are dependent on one another (e.g., if you set restricted.containers.privileged to unprivileged on the project level, the UI won’t show options you aren’t allowed to set on the instance level.)
  4. It can now display “warnings” instead of disabling options (e.g., if you haven’t enabled restrictions but enabled restriction settings, it’ll show a warning but still let you play with the settings, with a “fix” button)
  5. More frequently used options come first
  6. Groups have icons and descriptions
  7. Things that are more “list like” can be like a checklist
  8. AI doc summary is no longer really needed, since the configurator is so rich it replaces those docs for you!

There have been a lot of quality of life improvements I just added along the way you guys will notice & appreciate across all sorts of other components. The configurator is just getting the most attention since its so important :slight_smile: .

The new configurator component is almost complete! After that there are a couple more major things that I want to update before publishing (have to move these components anyways, so might as well enhance them):

  1. Migrating and re-writing the table component with the rich filtering I mentioned here Persistant settings in Incus UI? - #5 by Hye-Dev . Also have a bunch of optimizations related to table virtualization (already was really insane) that I’m thinking up that I wanna embed.
  2. Gonna re-work the image “source” selector to display more information and be a bit more friendly.
  3. VIEW TRANSITIONS MIGRATION (has been like a huge PITA, just gave up on that for now, going to have to go back and re-implement)
  4. New Agentic Skills / AI Guidelines (ban on shared components, Incus doc traversal in addition to the API reference skill currently embedded).
  5. Hover cards everywhere for resources/primitives, so you don’t have to navigate to a different page to know what something is.
  6. Richer breadcrumb navigation on that top bar (e.g. fast instance switching)
  7. New “Notification” system that can figure what what events the user is actually interested in watching live (e.g., I don’t need to see a “Showing console” if I didn’t launch the session in Ararat, and actually, that notification is annoying to even show…). Also show progress bars where we can.
  8. The whole “Aside” component that takes over your screen is just obtrusive. Need to move to something that works like the sidebar but on the right.
  9. Get those authorization changes in those components (thats what prompted this in the first place!)

Once that’s done, straight to storage pools, then the long-awaited Beta 5 will drop.

One may ask, with all that, how could all primitives POSSIBLY drop by July 24th? A big part of the architecture re-write was making it easier to wire to Incus. Ararat now has scripts that auto-generate types straight from the OpenAPI docs, a hooking system for the events and caching service, and a bunch of other stuff that makes adding primitives a piece of cake. That general configurator handles most of the hard stuff! Networks, storage pools, etc. are mostly just be frontend design work because of how easy wiring is with this new architecture :slight_smile:.

So still expect full stable release by July 24th! All Incus primitives should be supported. I don’t see any blockers or slowdowns there. Maybe clustering might take me a little over-deadline to implement (I don’t currently have a cluster ready, and I develop on WSL so like yeah), or obscure things that require an environment to mess with, like CEPH. Additional authorization features coming soon to Incus ( Fine-Grained + Resource Authorization Handling on Incus API - #4 by bensmrs ) will be added right after the July 24th release, along with some of the other stuff discussed on this forum (like the graphical scriptlet editor).

Hope that helps everyone get a bearing on where Ararat is currently at and where this is heading.

5 Likes