Introduction
Rimdian apps are web applications that are loaded in aniframe inside the Rimdian UI Console.
The app is loaded with a ?token=xxx URL parameter that is signed by Rimdian with your APP_SECRET_KEY. This is how your app can authenticate that it has been loaded by a legit Rimdian parent window.
The app can interact with the Rimdian API using a Service Account, which is a special type of admin access that has full access to the API.
The app can receive webhooks from Rimdian, such as tasks & data_hooks, and process them to update the app state & sync data.
Your apps can be hosted anywhere, as long as they are hosted over SSL.
The capabilities of your app are described in a manifest.json file that you provide to Rimdian when you create a new private app.

Clone the template
The easiest way to get started with Rimdian app development is to clone the Rimdian app template from Github. The template is a Next.js app that contains the basic structure of a Rimdian app, including an app manifest.json example, the app UI, the backend API, and the webhook processing fortasks & data hooks.
- Start by cloning the repository and installing the dependencies:
- Create a
.env.localfile with the following content:
- Then, run the development server:
Create a Service Account
To give your app access to the Rimdian API, you need to create a service account in the Rimdian UI Console, at the organization level. Then, you can use the Service Account email & password to login in order to receive an APIaccess_token.
The dev server will start with SSL. You can access the app at https://localhost:3000.
App folders architecture
manifest.json- A default app manifest that describes the app and its capabilities.src/pages/api/*- API routes for the backend API. It receivestasks&data_hookswebhooks from Rimdian.src/app/*- The app UI that will be loaded in the Rimdian UI Console as an iframe.src/app/app_context.tsx- React context that reads the?token=xxxparameter provided by Rimdian in the iframe URL, and fetches the app config from the API.src/app/page.tsx- Root page that redirects to the proper screen after loading theapp_context.src/app/dashboard- Folder containing the app dashboard when your app is active.src/app/initializing- Folder containing the app initialization screen where you will collect the Service Account credentials & whatever data required to activate your app.src/app/invalid-token- Screen showed when theapp_contextfails to fetch your app from the API.src/app/stopped- Screen showed when your app has been stopped.src/app/components.tsx- React components used by Rimdian to make your app looking similar.src/app/actions.ts- Server actions that are be exposed to the app UI, to query the Rimdian API.src/processTasks.ts- Example of a webhook processing a task described in yourmanifest.json.src/processDataHooks.ts- Example of a webhook processing a data_hook described in yourmanifest.json..env.local- The environment variables that are used in the app (your secret app key & DB credentials).
Security
- Your app (iframe) won’t load if it’s not hosted over SSL.
- Your
APP_SECRET_KEYshould be kept secret and not shared with anyone. - Your
APP_SECRET_KEYis used to sign the webhook payloads sent by Rimdian to your app. - Your
APP_SECRET_KEYis used to sign the token provided by Rimdian to your iframe, as a URL parameter?token=xxx. That’s how your app can authenticate that it has been loaded by a legit Rimdian parent window. - Your private app needs a Service Account to access the Rimdian API. The Service Account email & password should be kept secret and not shared with anyone.
- The Service Account will have full access to the API… that’s why private apps should remain private!
Deploying to Production
The repository contains aDockerfile to build a production image of your app. Don’t forget to set the APP_SECRET_KEY & other environment variables in your production environment.
Deploy to Google Cloud Run
The repository also contains acloudbuild.yaml file to deploy your app to Google Cloud Run with a simple git push, combined with Google Cloud Build triggers.
You can map your custom domain to Google Cloud Run and it will provision a SSL certificate for you.
The cloudbuild.yaml file is configured to name your app rimdian-app by default & deploy it in the europe-west1 region.
In Google Cloud Run, you should set the APP_SECRET_KEY environment variable in the “Variables” section of your app in the Google Cloud UI.