Skip to main content
Version: 2.6

Apps

An Application or App is supposed to represent a complete business process. This application can contain one or more Reaktors, which either work together to solve a problem or provide distinctive solutions. It bundles the required dependencies (like SDKs and libraries used), custom aktors as well as any additional files.

An app is also the package, which gets used to deliver a versioned package of your reaktors.

What does an App contain?

An App is setup as a standard nodejs project. It uses an package.json file, to specify its metadata and dependencies.

{
"name": "operaide-app-demo-weather",
"version": "0.3.5",
"description": "Provides several Weather and Location related Reaktors",
"url": "https://operaide.ai",
"keywords": [
"ReaktorJS",
"operaide"
],
"scripts": {
"deploy": "operaide-upload-code",
"deploy-watch": "operaide-upload-code --watch"
},
"main": "src/main.ts",
"author": "Michael Scharf <npm@scharf.gr> (http://michaelscharf.blogspot.com/)",
"license": "MIT",
"peerDependencies": {
"@operaide/aktor": "^0.3.6",
"axios": "^1.8.3"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"eslint": "^8.57.1",
"eslint-plugin-import": "^2.31.0",
"prettier": "^3.5.3"
}
}

Each app references one or more @operaide/framework libraries, which provides standard functionalities for developing reaktors. Please take a look at the Core Libraries Page, to learn more about the provided functionalities.

We also include default eslint and prettier configuration, to enforce a common and safe coding style.

Availabe Scripts

When downloading a standard template, you will have a number of scripts preconfigured:

ScriptDescription
deployPacks and Uploads all files to the referenced operaide system*; used for development
deploy-watchWatches the local file system, to continiously deploy the application.

* Configurable using the provided .env file

Useful commands

Aside from the provided scripts, here are some more useful commands to develop your application.

CommandDescription
npm installInstall specified dependencies
npm version <update_type>Updates the current version of the application according to semantic versioning
npm publishRelease and Publish your App to the App Store

Development and Release Process

As you could probably tell from the provided scripts and commands, there are two modes to bring apps into an operaide system:

1) Local Development

To view your local changes quickly in the operaide platform, we provide two deploy scripts, which push your local development state to your operaide instance. If you enable watch mode, your changes are uploaded on every change.

This allows you to iterate quickly, view each change as it happens and get instantanious feedback.

However, this overrides the deployed version and makes it hard to get structured and versioned feedback from your users. For this use case, we suggest to release versioned artifacts of your reaktor.

2) Versioning and Release to Artifact Repository

When you are ready to release your app, it is recommended to update the version of the package. We use and follow Semantic Versioning.

Finally, publish the package to your configured Registry / App Store. This should already be preconfigured, by the provided .npmrc file and corresponds to the operaide instance, where you got the starter app from.