summaryrefslogtreecommitdiff
path: root/packages/backend/src/models/Meta.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-09-20 11:33:36 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-09-20 11:33:36 +0900
commit053da10e94c2412f58215116a958c0922261a610 (patch)
treed608ce6350d5b209178390c3ab56c1fd0d30c438 /packages/backend/src/models/Meta.ts
parentfix (diff)
downloadmisskey-053da10e94c2412f58215116a958c0922261a610.tar.gz
misskey-053da10e94c2412f58215116a958c0922261a610.tar.bz2
misskey-053da10e94c2412f58215116a958c0922261a610.zip
refactor(backend): update directory structure for models
Diffstat (limited to 'packages/backend/src/models/Meta.ts')
-rw-r--r--packages/backend/src/models/Meta.ts469
1 files changed, 469 insertions, 0 deletions
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<string, any>;
+
+ @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[];
+}