From 053da10e94c2412f58215116a958c0922261a610 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 20 Sep 2023 11:33:36 +0900 Subject: refactor(backend): update directory structure for models --- packages/backend/src/models/Meta.ts | 469 ++++++++++++++++++++++++++++++++++++ 1 file changed, 469 insertions(+) create mode 100644 packages/backend/src/models/Meta.ts (limited to 'packages/backend/src/models/Meta.ts') diff --git a/packages/backend/src/models/Meta.ts b/packages/backend/src/models/Meta.ts new file mode 100644 index 0000000000..a9e116341f --- /dev/null +++ b/packages/backend/src/models/Meta.ts @@ -0,0 +1,469 @@ +/* + * SPDX-FileCopyrightText: syuilo and other misskey contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { Entity, Column, PrimaryColumn, ManyToOne, JoinColumn } from 'typeorm'; +import { id } from './util/id.js'; +import { MiUser } from './User.js'; + +@Entity('meta') +export class MiMeta { + @PrimaryColumn({ + type: 'varchar', + length: 32, + }) + public id: string; + + @Column('varchar', { + length: 1024, nullable: true, + }) + public name: string | null; + + @Column('varchar', { + length: 1024, nullable: true, + }) + public description: string | null; + + /** + * メンテナの名前 + */ + @Column('varchar', { + length: 1024, nullable: true, + }) + public maintainerName: string | null; + + /** + * メンテナの連絡先 + */ + @Column('varchar', { + length: 1024, nullable: true, + }) + public maintainerEmail: string | null; + + @Column('boolean', { + default: false, + }) + public disableRegistration: boolean; + + @Column('varchar', { + length: 1024, array: true, default: '{}', + }) + public langs: string[]; + + @Column('varchar', { + length: 1024, array: true, default: '{}', + }) + public pinnedUsers: string[]; + + @Column('varchar', { + length: 1024, array: true, default: '{}', + }) + public hiddenTags: string[]; + + @Column('varchar', { + length: 1024, array: true, default: '{}', + }) + public blockedHosts: string[]; + + @Column('varchar', { + length: 1024, array: true, default: '{}', + }) + public sensitiveWords: string[]; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public themeColor: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public mascotImageUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public bannerUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public backgroundImageUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public logoImageUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public iconUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public app192IconUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public app512IconUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public serverErrorImageUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public notFoundImageUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public infoImageUrl: string | null; + + @Column('boolean', { + default: false, + }) + public cacheRemoteFiles: boolean; + + @Column('boolean', { + default: true, + }) + public cacheRemoteSensitiveFiles: boolean; + + @Column({ + ...id(), + nullable: true, + }) + public proxyAccountId: MiUser['id'] | null; + + @ManyToOne(type => MiUser, { + onDelete: 'SET NULL', + }) + @JoinColumn() + public proxyAccount: MiUser | null; + + @Column('boolean', { + default: false, + }) + public emailRequiredForSignup: boolean; + + @Column('boolean', { + default: false, + }) + public enableHcaptcha: boolean; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public hcaptchaSiteKey: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public hcaptchaSecretKey: string | null; + + @Column('boolean', { + default: false, + }) + public enableRecaptcha: boolean; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public recaptchaSiteKey: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public recaptchaSecretKey: string | null; + + @Column('boolean', { + default: false, + }) + public enableTurnstile: boolean; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public turnstileSiteKey: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public turnstileSecretKey: string | null; + + @Column('enum', { + enum: ['none', 'all', 'local', 'remote'], + default: 'none', + }) + public sensitiveMediaDetection: 'none' | 'all' | 'local' | 'remote'; + + @Column('enum', { + enum: ['medium', 'low', 'high', 'veryLow', 'veryHigh'], + default: 'medium', + }) + public sensitiveMediaDetectionSensitivity: 'medium' | 'low' | 'high' | 'veryLow' | 'veryHigh'; + + @Column('boolean', { + default: false, + }) + public setSensitiveFlagAutomatically: boolean; + + @Column('boolean', { + default: false, + }) + public enableSensitiveMediaDetectionForVideos: boolean; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public summalyProxy: string | null; + + @Column('boolean', { + default: false, + }) + public enableEmail: boolean; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public email: string | null; + + @Column('boolean', { + default: false, + }) + public smtpSecure: boolean; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public smtpHost: string | null; + + @Column('integer', { + nullable: true, + }) + public smtpPort: number | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public smtpUser: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public smtpPass: string | null; + + @Column('boolean', { + default: false, + }) + public enableServiceWorker: boolean; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public swPublicKey: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public swPrivateKey: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public deeplAuthKey: string | null; + + @Column('boolean', { + default: false, + }) + public deeplIsPro: boolean; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public termsOfServiceUrl: string | null; + + @Column('varchar', { + length: 1024, + default: 'https://github.com/misskey-dev/misskey', + nullable: false, + }) + public repositoryUrl: string; + + @Column('varchar', { + length: 1024, + default: 'https://github.com/misskey-dev/misskey/issues/new', + nullable: true, + }) + public feedbackUrl: string | null; + + @Column('varchar', { + length: 8192, + nullable: true, + }) + public defaultLightTheme: string | null; + + @Column('varchar', { + length: 8192, + nullable: true, + }) + public defaultDarkTheme: string | null; + + @Column('boolean', { + default: false, + }) + public useObjectStorage: boolean; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public objectStorageBucket: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public objectStoragePrefix: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public objectStorageBaseUrl: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public objectStorageEndpoint: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public objectStorageRegion: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public objectStorageAccessKey: string | null; + + @Column('varchar', { + length: 1024, + nullable: true, + }) + public objectStorageSecretKey: string | null; + + @Column('integer', { + nullable: true, + }) + public objectStoragePort: number | null; + + @Column('boolean', { + default: true, + }) + public objectStorageUseSSL: boolean; + + @Column('boolean', { + default: true, + }) + public objectStorageUseProxy: boolean; + + @Column('boolean', { + default: false, + }) + public objectStorageSetPublicRead: boolean; + + @Column('boolean', { + default: true, + }) + public objectStorageS3ForcePathStyle: boolean; + + @Column('boolean', { + default: false, + }) + public enableIpLogging: boolean; + + @Column('boolean', { + default: true, + }) + public enableActiveEmailValidation: boolean; + + @Column('boolean', { + default: true, + }) + public enableChartsForRemoteUser: boolean; + + @Column('boolean', { + default: true, + }) + public enableChartsForFederatedInstances: boolean; + + @Column('boolean', { + default: false, + }) + public enableServerMachineStats: boolean; + + @Column('boolean', { + default: true, + }) + public enableIdenticonGeneration: boolean; + + @Column('jsonb', { + default: { }, + }) + public policies: Record; + + @Column('varchar', { + length: 280, + array: true, + default: '{}', + }) + public serverRules: string[]; + + @Column('varchar', { + length: 8192, + default: '{}', + }) + public manifestJsonOverride: string; + + @Column('varchar', { + length: 1024, array: true, default: '{ "admin", "administrator", "root", "system", "maintainer", "host", "mod", "moderator", "owner", "superuser", "staff", "auth", "i", "me", "everyone", "all", "mention", "mentions", "example", "user", "users", "account", "accounts", "official", "help", "helps", "support", "supports", "info", "information", "informations", "announce", "announces", "announcement", "announcements", "notice", "notification", "notifications", "dev", "developer", "developers", "tech", "misskey" }', + }) + public preservedUsernames: string[]; +} -- cgit v1.2.3-freya