131 lines
2.5 KiB
Markdown
131 lines
2.5 KiB
Markdown
---
|
|
description: Application models for backend
|
|
---
|
|
|
|
# Database models
|
|
|
|
**applications**\
|
|
****Represent an application in the database
|
|
|
|
```javascript
|
|
{
|
|
//PK
|
|
"company_id": uuid;
|
|
"id": uuid;
|
|
|
|
"identity": ApplicationIdentity;
|
|
"api": ApplicationApi;
|
|
"access": ApplicationAccess;
|
|
"display": ApplicationDisplay;
|
|
"publication": ApplicationPublication;
|
|
"stats": ApplicationStatistics;
|
|
}
|
|
|
|
type ApplicationIdentity = {
|
|
name: string;
|
|
iconUrl: string;
|
|
description: string;
|
|
website: string;
|
|
categories: string[];
|
|
compatibility: "twake"[];
|
|
};
|
|
|
|
type ApplicationPublication = {
|
|
published: boolean;
|
|
};
|
|
|
|
type ApplicationStatistics = {
|
|
createdAt: number;
|
|
updatedAt: number;
|
|
version: number;
|
|
};
|
|
|
|
type ApplicationApi = {
|
|
hooksUrl: string;
|
|
allowedIps: string;
|
|
privateKey: string;
|
|
};
|
|
|
|
type ApplicationAccess = {
|
|
privileges: string[];
|
|
capabilities: string[];
|
|
hooks: string[];
|
|
};
|
|
|
|
type ApplicationDisplay = {
|
|
twake: {
|
|
"version": 1,
|
|
|
|
"files" : {
|
|
"preview": {
|
|
"url": "", //Url to preview file (full screen or inline)
|
|
"inline": true,
|
|
"main_ext": ["docx", "xlsx"], //Main extensions app can read
|
|
"other_ext": ["txt", "html"] //Secondary extensions app can read
|
|
},
|
|
"actions": [ //List of action that can apply on a file
|
|
{
|
|
"name": "string",
|
|
"id": "string"
|
|
}
|
|
]
|
|
},
|
|
|
|
//Chat plugin
|
|
"chat": {
|
|
"input": {
|
|
"icon": "", //If defined replace original icon url of your app
|
|
"type": "file" | "call" //To add in existing apps folder / default icon
|
|
},
|
|
"commands": [
|
|
{
|
|
"command": "mycommand", // my_app mycommand
|
|
"description": "fdsqfds"
|
|
}
|
|
],
|
|
"actions": [ //List of action that can apply on a message
|
|
{
|
|
"name": "string",
|
|
"id": "string"
|
|
}
|
|
]
|
|
},
|
|
|
|
//Allow app to appear as a bot user in direct chat
|
|
"direct": {
|
|
"name": "My app Bot",
|
|
"icon": "", //If defined replace original icon url of your app
|
|
},
|
|
|
|
//Display app as a standalone application in a tab
|
|
"tab": {
|
|
"url": ""
|
|
},
|
|
|
|
//Display app as a standalone application on the left bar
|
|
"standalone": {
|
|
"url": ""
|
|
},
|
|
|
|
//Define where the app can be configured from
|
|
"configuration": ["global", "channel"]
|
|
};
|
|
};
|
|
```
|
|
|
|
|
|
|
|
**company\_application**\
|
|
****Represent an application in a company
|
|
|
|
```javascript
|
|
{
|
|
"company_id": uuid;
|
|
"application_id": uuid;
|
|
"id": uuid;
|
|
|
|
"created_at": number;
|
|
"created_by": string; //Will be the default delegated user when doing actions on Twake
|
|
}
|
|
```
|