Files
workavia-drive/Documentation/docs/internal-documentation/backend-services/applications/database-models.md
T
2024-05-29 11:25:45 +02:00

1.5 KiB

description
description
Application models for backend

Database models

applications

Represent an application in the database

export default interface Application {
  id: string;
  internal_domain?: string;
  external_prefix?: string;
  company_id: string;
  is_default: boolean;
  identity: ApplicationIdentity;
  api: ApplicationApi;
  access: ApplicationAccess;
  display: ApplicationDisplay;
  publication: ApplicationPublication;
  stats: ApplicationStatistics;
}

export type ApplicationIdentity = {
  code: string;
  name: string;
  icon: string;
  description: string;
  website: string;
  categories: string[];
  compatibility: "twake"[];
  repository?: string;
};

export type ApplicationPublication = {
  published: boolean;
  requested: 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 = {
  tdrive: {
    "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"
        }
      ]
    }
  }
};