What are we working on? The Balena Notes

Thank you @lucian !

I’m currently working on:

  • Worked on a few fixes on our backend (housekeeping in our VPN and also API permission changes that will allow resin ssh / resin sync to app collaborators
  • Improving our process on automating release notes of our deployed components

Speaking of the VPN, @wrboyce what are you up to ?

Thanks @kostas!

As you have alluded to, my main focus of recent has been the VPN service. After running some experiments on a replica production infrastructure we’re now up and running with an improved VPN setup and the results are looking promising!

Going forwards the VPN will continue to be my main focus: gathering additional performance metrics, more resilient error handling/reporting, and scaling the service both horizontally and vertically.

Paging @flesler, what are you up to man?

1 Like

Hi Telphan.

I am working on that (running Docker 17.X.X) as well on my own side, as I want to run docker swarm. I’ve been creating my own recipes in recipes-containers on top of ResinOS. However, is there some public repo where these changes are happening? I would like to try it out and even help.


Hello Daniel,

Yes, everything is open source, so you can have a poke around. If you want to play with the yocto side of things here is an open PR that is ready to be merged, but is a bit blocked.
If you want to play just with the docker side, build this and have a go at it. Make sure you understand the way we make calls to docker now if you go this way.
Hit any problems and come back to me, I would love to give you a hand.

Best regards,

Thanks @wrboyce

I’m currently working on the foundations needed to enable users to generate API keys that can be used anywhere JWTs can, users will be able to assign them names, list them on the dashboard and revoke any of them at will. Unlike JWTs, API keys don’t expire after a week which is obviously very convenient for some use cases.

I expect to be heavily focused on the API in the future, there many great challenges in the horizon so very excited about that.

What about you @thgreasi, what have you been up to?

Thank you @flesler !

I’ve recently finished working on the first version of self-billing which just recently went live!
Looking forward for the next iteration!

I’m currently working on:

  • improvements for OAuth user logins & sign-ups
  • adding support for multiple emails per user account
  • and last but not least, adding email verification to our sign-up process

What about you @dimos, what have you been up to?

1 Like

Thank you @Thodoris
I am currently checking the Data integrity that we have for online devices during the process of moving away from Keen

1 Like

What about you @izavits, what have you been up to?

Thanks @dimosgp

Many exciting things are happening in the analytics side, including organising our pipelines to handle data from different services and sources, facilitating the ability of creating meaningful dashboards in our BI tool that will give insights regarding our product. This also involves some work on the backend and in particular on the API and on the analytics libraries that we use.

Let’s see what @pimterry has been up to recently!

Hi resin team,

what would be the plan about the multi-container feature first announced in 2016 in this thread ? Latest news were in may, we all want to know more ! :slight_smile:

hey @Tristan107 we are hard at work on multi-container (you can imagine, it touches all areas of the platform). We have a development version that is demo-ready (our team is putting it through its paces), but not yet production-ready. That’s probably the main next upcoming feature, and expect to hear more soon. :postal_horn:

Thanks @izavits!

I’ve been working on two main strands: adding support for API v3 and now multicontainer (API v4) in the JS SDK, and a wide range of fixes, updates and new features for the CLI.

The SDK acts as the data layer of both the web dashboard and the CLI, so this is the main step to go from an API that can handle multicontainer towards a fully user-visible implementation, where you can see and interact with the various containers on your device directly.

We’re making good progress there: API v3 was released as SDK v7 a little over a month ago, the core multicontainer data model is initially working on a branch, and I’m working on integrating application logs & configuration data there too at the moment.

In the CLI meanwhile, we’ve got a whole variety of changes in the last few months:

  • Support for device api keys in os configure, config generate and device register, so you can preprovision devices with completely limited permissions, right from the first boot (take a look at our new security docs for more details on how device provisioning & api keys work)
  • A fully non-interactive config generate, so mass provisioning can be totally automated
  • The ability to preconfigure an image with os configure for an application in general, not just a specific device.
  • Improving the local push workflow, with various UX tweaks and windows fixes.
  • Fixes to os download, to ensure your downloads work correctly, even if they’re interrupted.
  • Improving os configure and local configure to better support ResinOS 2 (more fixes here coming soon too!)
  • Bug fixes and better support for awkward cases like ambiguous application names (if you collaborate on an app with the same name as one of your own), specific older Node versions, and read-only CI environments.

That’s me. What have you been up to @_Page?

1 Like

Hey everyone!

Happy new year! :fire: It’s been a while since we’ve checked in here what are we working on, so I thought I add a few notes today.

  • I’m maintaining the resin host OS updater (resinHUP) and a bunch of improvements are being prepared :wrench: :
    • We’ve released balena, the Moby-based IoT focusedcontainer engine recently. On the latest resinOS the “docker” command is actually balena-based now, but with the upcoming release it will switch the executables’ names to balena as well. Just been adding the relevant migrations for this into resinHUP
    • working on adding new devices to hostOS updates (besides the current Raspberry Pi, BeagleBone, NUC, UpBoard set)
    • working on making host OS updates be more configurable so that it can also work in an isolated invornment
  • We’ve identified some improvements we can make to our infrastructure that make most of the 1.x devices be able to take advantage of some improvements that are available only for 2.x device at the moment. More details coming soon :sunrise:
  • Working on getting more 1.x devices (in the end all!) updated to resinOS 2.x, so everyone can take advantage of the latest features (and boy there are quite a few coming:) :package:
  • On the events front, I’m are heading to Amsterdam for The Things Network Conference with @pimterry and @shaunmulligan at the end of the month, and preparing a workshop for that. :flight_departure:

That’s all for today, and tagging @afitzek for tomorrow’s update! :tada:

Thanks @imrehg!

I have been working on some improvements of our access control systems, which now lets us define much more fine grained permissions. This work already enabled a new feature which is direct host OS access, and I’m also working on bringing some permission system up to the user levels, meaning allowing users to grant other accounts access to resources, based on predefined roles.

Lately I got a bit side tracked by the recent Meltdown and Spectre (https://meltdownattack.com/) discoveries.

What about @CameronDiver what are you up to?

Looks like I killed the thread a little :sweat_smile:

Well what I’m currently up to is working on getting out an ESR release for the supervisor. This means one that has all major (and hopefully a lot of the minor!) bugs ironed out, so it’s the most secure, stable and well-tested supervisor version we’ve ever released. This is going well, and we’re aiming for the release to be done in the next week or so.

Other than that, the epic task I undertook of converting the supervisor to typescript continues - only a few modules left now. A lot of bugs have been found during this conversion, and it comes with some optimizations which could only be found by using the assurances that the type system provides.

I’m also working pretty hard on a project known as DevExp, which stands for developer experience, where the aim is to reduce any friction at all for developers on our platform. We’ve some exciting changes being released soon (and some already released but not documented yet :wink: ) which should make your lives much easier (and ours as well!).

Let’s find out what @lucianbuzzo has been up to (who reminded me of the thread… no good deed goes unpunished :slight_smile: )

Thanks @CameronDiver :smile:
I’ve been working heavily with JSON Schema related technologies and have recently been focusing a lot on turning complex JSON Schemas into UI forms.
The end goal of this work is to improve the way we expose configuration options in the balenaCloud dashboard. In the future, we would simply provide the schema for a configuration file (the files system-connections in for example) and the UI forms will be automatically generated.

@dimitrisnl what have you been working on recently?

1 Like

Thanks @lucianbuzzo

Currently, I’m working on granting increased permissions for the support agents in the admin panel. This has proven to be tricker than I originally anticipated but I’m positive that it will be done this week.

Now when I’m not sidetracked by issues in the Website, Docs or Dashboard, I work on enhancing Scrutinizer. Unfortunately, this project didn’t get much love the past year, but it’s a critical one since it will open the way for the Landr rewrite. Back on Scrutinizer, my first goal is to improve the test cases and afterward to add more plugins.

An extra task that I want to get done, is improving the A/B testing of Etcher Featured Project. Yesterday I released four different versions, but as it stands if falls to the client to randomly serve one of the versions.

What about you @thgreasi , what are you working on lately?

Thanks @dimitrisnl

I’m currently working on bringing fine grained management of staged releases in balenaCloud and also bringing self-serve host OS updates to the SDK and the CLI.

What about you @sradevski , what are you working on lately?

Thanks @thgreasi

The more interesting part of my time is spent trying to build a feature that will allow users to connect Github (and other git providers in the future) repos to an app and magically enable CI (continuous integration)! It is still in its infancy, but I am pretty excited about what it will bring to our platform.

The less interesting part is keeping Rendition and our Dashboard in shape, doing small improvements, and converting some Angular to React <3 when time permits.

I had a chat with @cyplo yesterday and I think he has something interesting to share with everyone! How about it @cyplo ?

It’s been more than 2 years since this thread was updated and so much has changed since then.

Back in 2020, we moved our hosting infrastructure from running on a CoreOS fleet to Kubernetes. This made it smoother to roll out updates and made things recover faster in case of incidents. We follow a GitOps approach using Flux for releasing updates so any changes in the environment are version controlled. I am now migrating the clusters from using Flux v1 to Flux v2 which should reduce the number of API calls to Dockerhub for obtaining the image tags. We would be running production on Kubernetes for a while as we work in making balenaOS :balena: easy to deploy to the cloud.

Would you like to share some tidbits about that new CI that we are building, @Hades32 ?