import { constants, objectStore, roles } from "@budibase/backend-core" import { FieldType, INTERNAL_TABLE_SOURCE_ID, Table, TableSourceType, } from "@budibase/types" import env from "../environment" export const AWS_REGION = env.AWS_REGION ? env.AWS_REGION : "eu-west-1" export enum FilterTypes { STRING = "string", FUZZY = "fuzzy", RANGE = "range", EQUAL = "equal", NOT_EQUAL = "notEqual", EMPTY = "empty", NOT_EMPTY = "notEmpty", CONTAINS = "contains", NOT_CONTAINS = "notContains", ONE_OF = "oneOf", } export const NoEmptyFilterStrings = [ FilterTypes.STRING, FilterTypes.FUZZY, FilterTypes.EQUAL, FilterTypes.NOT_EQUAL, FilterTypes.CONTAINS, FilterTypes.NOT_CONTAINS, ] export const CanSwitchTypes = [ [FieldType.JSON, FieldType.ARRAY], [ FieldType.STRING, FieldType.OPTIONS, FieldType.LONGFORM, FieldType.BARCODEQR, ], [FieldType.BOOLEAN, FieldType.NUMBER], ] export const SwitchableTypes = CanSwitchTypes.reduce((prev, current) => prev ? prev.concat(current) : current ) export enum AuthTypes { APP = "app", BUILDER = "builder", EXTERNAL = "external", } export enum DataSourceOperation { CREATE = "CREATE", READ = "READ", UPDATE = "UPDATE", DELETE = "DELETE", BULK_CREATE = "BULK_CREATE", CREATE_TABLE = "CREATE_TABLE", UPDATE_TABLE = "UPDATE_TABLE", DELETE_TABLE = "DELETE_TABLE", } export enum DatasourceAuthTypes { GOOGLE = "google", } export enum SortDirection { ASCENDING = "ASCENDING", DESCENDING = "DESCENDING", } export const USERS_TABLE_SCHEMA: Table = { _id: "ta_users", type: "table", sourceId: INTERNAL_TABLE_SOURCE_ID, sourceType: TableSourceType.INTERNAL, views: {}, name: "Users", // TODO: ADMIN PANEL - when implemented this doesn't need to be carried out schema: { email: { type: FieldType.STRING, constraints: { type: FieldType.STRING, email: true, length: { maximum: "", }, presence: true, }, name: "email", }, firstName: { name: "firstName", type: FieldType.STRING, constraints: { type: FieldType.STRING, presence: false, }, }, lastName: { name: "lastName", type: FieldType.STRING, constraints: { type: FieldType.STRING, presence: false, }, }, roleId: { name: "roleId", type: FieldType.OPTIONS, constraints: { type: FieldType.STRING, presence: false, inclusion: Object.values(roles.BUILTIN_ROLE_IDS), }, }, status: { name: "status", type: FieldType.OPTIONS, constraints: { type: FieldType.STRING, presence: false, inclusion: Object.values(constants.UserStatus), }, }, }, primaryDisplay: "email", } export enum AutoFieldDefaultNames { CREATED_BY = "Created By", CREATED_AT = "Created At", UPDATED_BY = "Updated By", UPDATED_AT = "Updated At", AUTO_ID = "Auto ID", } export const OBJ_STORE_DIRECTORY = "/prod-budi-app-assets" export enum BaseQueryVerbs { CREATE = "create", READ = "read", UPDATE = "update", DELETE = "delete", } export enum MetadataTypes { AUTOMATION_TEST_INPUT = "automationTestInput", AUTOMATION_TEST_HISTORY = "automationTestHistory", } export enum InvalidColumns { ID = "_id", REV = "_rev", TABLE_ID = "tableId", } export enum AutomationErrors { INCORRECT_TYPE = "INCORRECT_TYPE", MAX_ITERATIONS = "MAX_ITERATIONS_REACHED", FAILURE_CONDITION = "FAILURE_CONDITION_MET", } export const devClientVersion = "0.0.0" // pass through the list from the auth/core lib export const ObjectStoreBuckets = objectStore.ObjectStoreBuckets export const MAX_AUTOMATION_RECURRING_ERRORS = 5 export const GOOGLE_SHEETS_PRIMARY_KEY = "rowNumber" export const DEFAULT_JOBS_TABLE_ID = "ta_bb_jobs" export const DEFAULT_INVENTORY_TABLE_ID = "ta_bb_inventory" export const DEFAULT_EXPENSES_TABLE_ID = "ta_bb_expenses" export const DEFAULT_EMPLOYEE_TABLE_ID = "ta_bb_employee" export const DEFAULT_BB_DATASOURCE_ID = "datasource_internal_bb_default"