// ---------------------------------------------------------------------------
-const LAST_MIGRATION_VERSION = 375
+const LAST_MIGRATION_VERSION = 400
// ---------------------------------------------------------------------------
USER_NOTIFICATIONS: [ 'createdAt' ],
- VIDEO_PLAYLISTS: [ 'displayName', 'createdAt', 'updatedAt' ]
+ VIDEO_PLAYLISTS: [ 'displayName', 'createdAt', 'updatedAt' ],
+
+ PLUGINS: [ 'name', 'createdAt', 'updatedAt' ],
+
+ AVAILABLE_PLUGINS: [ 'npmName', 'popularity' ]
}
const OAUTH_LIFETIME = {
removeOldJobs: 60000 * 60, // 1 hour
updateVideos: 60000, // 1 minute
youtubeDLUpdate: 60000 * 60 * 24, // 1 day
+ checkPlugins: 60000 * 60 * 24, // 1 day
removeOldViews: 60000 * 60 * 24, // 1 day
removeOldHistory: 60000 * 60 * 24 // 1 day
}
// ---------------------------------------------------------------------------
-let CONSTRAINTS_FIELDS = {
+const CONSTRAINTS_FIELDS = {
USERS: {
NAME: { min: 1, max: 120 }, // Length
DESCRIPTION: { min: 3, max: 1000 }, // Length
PASSWORD: { min: 6, max: 255 }, // Length
VIDEO_QUOTA: { min: -1 },
VIDEO_QUOTA_DAILY: { min: -1 },
+ VIDEO_LANGUAGES: { max: 500 }, // Array length
BLOCKED_REASON: { min: 3, max: 250 } // Length
},
VIDEO_ABUSES: {
CONTACT_FORM: {
FROM_NAME: { min: 1, max: 120 }, // Length
BODY: { min: 3, max: 5000 } // Length
- }
-}
-
-const RATES_LIMIT = {
- LOGIN: {
- WINDOW_MS: CONFIG.RATES_LIMIT.LOGIN.WINDOW_MS,
- MAX: CONFIG.RATES_LIMIT.LOGIN.MAX
},
- ASK_SEND_EMAIL: {
- WINDOW_MS: CONFIG.RATES_LIMIT.ASK_SEND_EMAIL.WINDOW_MS,
- MAX: CONFIG.RATES_LIMIT.ASK_SEND_EMAIL.MAX
+ PLUGINS: {
+ NAME: { min: 1, max: 214 }, // Length
+ DESCRIPTION: { min: 1, max: 20000 } // Length
}
}
// ---------------------------------------------------------------------------
+const PLUGIN_GLOBAL_CSS_FILE_NAME = 'plugins-global.css'
+const PLUGIN_GLOBAL_CSS_PATH = join(CONFIG.STORAGE.TMP_DIR, PLUGIN_GLOBAL_CSS_FILE_NAME)
+
+const DEFAULT_THEME_NAME = 'default'
+const DEFAULT_USER_THEME_NAME = 'instance-default'
+
+// ---------------------------------------------------------------------------
+
// Special constants for a test instance
if (isTestInstance() === true) {
PRIVATE_RSA_KEY_SIZE = 1024
FILES_CACHE.VIDEO_CAPTIONS.MAX_AGE = 3000
MEMOIZE_TTL.OVERVIEWS_SAMPLE = 1
ROUTE_CACHE_LIFETIME.OVERVIEWS.VIDEOS = '0ms'
-
- RATES_LIMIT.LOGIN.MAX = 20
}
updateWebserverUrls()
PREVIEWS_SIZE,
REMOTE_SCHEME,
FOLLOW_STATES,
+ DEFAULT_USER_THEME_NAME,
SERVER_ACTOR_NAME,
+ PLUGIN_GLOBAL_CSS_FILE_NAME,
+ PLUGIN_GLOBAL_CSS_PATH,
PRIVATE_RSA_KEY_SIZE,
ROUTE_CACHE_LIFETIME,
SORTABLE_COLUMNS,
HLS_STREAMING_PLAYLIST_DIRECTORY,
FEEDS,
JOB_TTL,
+ DEFAULT_THEME_NAME,
NSFW_POLICY_TYPES,
STATIC_MAX_AGE,
STATIC_PATHS,
SCHEDULER_INTERVALS_MS,
REPEAT_JOBS,
STATIC_DOWNLOAD_PATHS,
- RATES_LIMIT,
MIMETYPES,
CRAWL_REQUEST_CONCURRENCY,
DEFAULT_AUDIO_RESOLUTION,