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:
| Script | Description |
|---|---|
deploy | Packs and Uploads all files to the referenced operaide system*; used for development |
deploy-watch | Watches 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.
| Command | Description |
|---|---|
npm install | Install specified dependencies |
npm version <update_type> | Updates the current version of the application according to semantic versioning |
npm publish | Release 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.