UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

99 lines (98 loc) 3.32 kB
import { getMilliseconds } from './utils/get-milliseconds.js'; import { useEnv } from '@directus/env'; import { toBoolean } from '@directus/utils'; import bytes from 'bytes'; const env = useEnv(); export const SYSTEM_ASSET_ALLOW_LIST = [ { key: 'system-small-cover', format: 'auto', transforms: [['resize', { width: 64, height: 64, fit: 'cover' }]], }, { key: 'system-small-contain', format: 'auto', transforms: [['resize', { width: 64, fit: 'contain' }]], }, { key: 'system-medium-cover', format: 'auto', transforms: [['resize', { width: 300, height: 300, fit: 'cover' }]], }, { key: 'system-medium-contain', format: 'auto', transforms: [['resize', { width: 300, fit: 'contain' }]], }, { key: 'system-large-cover', format: 'auto', transforms: [['resize', { width: 800, height: 800, fit: 'cover' }]], }, { key: 'system-large-contain', format: 'auto', transforms: [['resize', { width: 800, fit: 'contain' }]], }, ]; export const ASSET_TRANSFORM_QUERY_KEYS = [ 'key', 'transforms', 'width', 'height', 'format', 'fit', 'quality', 'withoutEnlargement', 'focal_point_x', 'focal_point_y', ]; export const FILTER_VARIABLES = ['$NOW', '$CURRENT_USER', '$CURRENT_ROLE']; export const ALIAS_TYPES = ['alias', 'o2m', 'm2m', 'm2a', 'o2a', 'files', 'translations']; export const DEFAULT_AUTH_PROVIDER = 'default'; export const COLUMN_TRANSFORMS = ['year', 'month', 'day', 'weekday', 'hour', 'minute', 'second']; export const GENERATE_SPECIAL = [ 'uuid', 'date-created', 'date-updated', 'role-created', 'role-updated', 'user-created', 'user-updated', ]; export const UUID_REGEX = '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'; export const REFRESH_COOKIE_OPTIONS = { httpOnly: true, domain: env['REFRESH_TOKEN_COOKIE_DOMAIN'], maxAge: getMilliseconds(env['REFRESH_TOKEN_TTL']), secure: Boolean(env['REFRESH_TOKEN_COOKIE_SECURE']), sameSite: (env['REFRESH_TOKEN_COOKIE_SAME_SITE'] || 'strict'), }; export const SESSION_COOKIE_OPTIONS = { httpOnly: true, domain: env['SESSION_COOKIE_DOMAIN'], maxAge: getMilliseconds(env['SESSION_COOKIE_TTL']), secure: Boolean(env['SESSION_COOKIE_SECURE']), sameSite: (env['SESSION_COOKIE_SAME_SITE'] || 'strict'), }; export const OAS_REQUIRED_SCHEMAS = ['Query', 'x-metadata']; /** Formats from which transformation is supported */ export const SUPPORTED_IMAGE_TRANSFORM_FORMATS = ['image/jpeg', 'image/png', 'image/webp', 'image/tiff', 'image/avif']; /** Formats where metadata extraction is supported */ export const SUPPORTED_IMAGE_METADATA_FORMATS = [ 'image/jpeg', 'image/png', 'image/webp', 'image/gif', 'image/tiff', 'image/avif', ]; /** Resumable uploads */ export const RESUMABLE_UPLOADS = { ENABLED: toBoolean(env['TUS_ENABLED']), CHUNK_SIZE: bytes.parse(env['TUS_CHUNK_SIZE']), MAX_SIZE: bytes.parse(env['FILES_MAX_UPLOAD_SIZE']), EXPIRATION_TIME: getMilliseconds(env['TUS_UPLOAD_EXPIRATION'], 600_000 /* 10min */), SCHEDULE: String(env['TUS_CLEANUP_SCHEDULE']), }; export const ALLOWED_DB_DEFAULT_FUNCTIONS = ['gen_random_uuid()'];