Skip to main content

Apps

Arkitekt is built around connecting Apps with our services. Without these Apps Arkitekt would be just a (reasonably cool) storage platform with a developer interface. Apps ( in the Arkitekt sense) connect to arkitekt and provide the functionality that makes Arkitekt useful and let it does stuff (like applying filters to images) or lets interact with the data that you store in Arkitekt. As such, the definition of an arkitekt App is a bit broaders, than what you might think of as an App (especially if you are used to the App Store on your phone). This section will introduce you to the concept of an App in Arkitekt, and will give you a few examples of what an App can be.

Arkitekts design as an App middleman

How apps fit into the Arkitekt ecoystem is best examplified by the interplay between the Orkestrator App and the Fiji App. While Arkitekt only stands as the connection layer it is these two apps that actually manage and do the work. Orkestrator assigns work and Fiji does the actually work. Arkitekt only acts as the Middleman, so that they don't have to interact directly with each other (which would be a lot more complicated than you might think).

The type of Apps

You already saw that Orkestrator and Fiji are apps, but Arkitekts definition of apps is way broader that an application with a Graphical User Interface. In fact, almost anything can be an app, as long as it is able to connect to Arkitekt. This means that you can use a website as an app, or your own code, or even your robot or Iot device. What unifies all of these apps is that they all follow some common principles of authentication when connecting with the platform. This is an important feature, because it not only that you are in control of your data, but Arkitekt can use the provided information of the app to version the app. This versioning ensures that if you want to use the functionality of this app in a workflows or just directly in tasks you can be sure that the app will behave the same way every time.

This means that the first time a new app decides to connect to Arkitekt, you will be asked to approve the connection and the permissions that the app is asking for (this is done through Oauth2 Standard, the same principle that is used when you press "login with google", but you don't need to know that to use Arkitekt.). This double authentication process is key to Arkitekts security and some other design principles, and we will go into more detail about it in the Security section.

Example of an App asking for permissions

Apps can provide functionality

Depending on the App, you can use it to do a lot of different things. For example, you can use an App to just download images from Arkitekt, or you can use some interesting python code to display a graph of your data. One important aspect is that an app can also choose to expose some of its functionality as Templates. This means that you can use the functionality of the App in other Apps, or in the Orkestrator. This is a very powerful feature, and we will go into more detail about it in the Nodes and Templates section.

Examples of Apps

As we are a firm believer in the power of the example, here are a few examples of Apps in the Arkitekt sense, and a few negative examples of Apps in the Arkitekt sense.

An App on your computer is the obvious example, and yes, if that app is able to connect to Arkitekt (because the developer decided to make it an Arkitekt App), then it is an Arkitekt App. Easy. Two examples of this are the Orkestrator Desktop App, and MikroJ an app that is used to enable ImageJ on the platform. Both apps will as you to approve the connection to Arkitekt, and both apps will ask you for permissions.

Importantly though the Orkestrator apps asks you for a lot more permissions than the MikroJ app, because the Orkestrator app is able to do a lot more things with your data. If you want to know more about the permissions that an App can ask for, you can read more about it in the Security section. Always remember that you are in control of your data, and you decide what Apps are allowed to do with it, so check the permissions before you approve an App.

TLDR

  • Apps are Agents that connect with the Arkitekt Platform
  • Apps are versioned
  • Apps can provide functionality
  • Apps can be anything that can connect to a webserver
  • All Code that connects to Arkitekt needs to be an App
  • Apps are powered by Oauth2 Authentication
  • Apps have specific rights to access your data (scopes)