summaryrefslogtreecommitdiff
path: root/packages/backend/src/server
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-05-12 16:55:01 +0900
committerGitHub <noreply@github.com>2025-05-12 16:55:01 +0900
commit26506677c2debbe7d58b26f1e5c98b834bc72e0f (patch)
treef6b8da6b0e7ddf837b41895ef4de1e3f36275d0b /packages/backend/src/server
parent🎨 (diff)
downloadmisskey-26506677c2debbe7d58b26f1e5c98b834bc72e0f.tar.gz
misskey-26506677c2debbe7d58b26f1e5c98b834bc72e0f.tar.bz2
misskey-26506677c2debbe7d58b26f1e5c98b834bc72e0f.zip
enhance: いくつかの設定ファイルの項目をコントロールパネルで設定するように (#16026)
* wip * Update CHANGELOG.md * feat: migrate to existing config value (#16030) * wip * Update CHANGELOG.md --------- Co-authored-by: anatawa12 <anatawa12@icloud.com>
Diffstat (limited to 'packages/backend/src/server')
-rw-r--r--packages/backend/src/server/ServerService.ts6
-rw-r--r--packages/backend/src/server/api/endpoints/admin/meta.ts15
-rw-r--r--packages/backend/src/server/api/endpoints/admin/update-meta.ts15
3 files changed, 33 insertions, 3 deletions
diff --git a/packages/backend/src/server/ServerService.ts b/packages/backend/src/server/ServerService.ts
index c859f1d82c..23c085ee27 100644
--- a/packages/backend/src/server/ServerService.ts
+++ b/packages/backend/src/server/ServerService.ts
@@ -108,7 +108,7 @@ export class ServerService implements OnApplicationShutdown {
// this will break lookup that involve copying a URL from a third-party server, like trying to lookup http://charlie.example.com/@alice@alice.com
//
// this is not required by standard but protect us from peers that did not validate final URL.
- if (this.config.disallowExternalApRedirect) {
+ if (!this.meta.allowExternalApRedirect) {
const maybeApLookupRegex = /application\/activity\+json|application\/ld\+json.+activitystreams/i;
fastify.addHook('onSend', (request, reply, _, done) => {
const location = reply.getHeader('location');
@@ -133,8 +133,8 @@ export class ServerService implements OnApplicationShutdown {
reply.header('content-type', 'text/plain; charset=utf-8');
reply.header('link', `<${encodeURI(location)}>; rel="canonical"`);
done(null, [
- "Refusing to relay remote ActivityPub object lookup.",
- "",
+ 'Refusing to relay remote ActivityPub object lookup.',
+ '',
`Please remove 'application/activity+json' and 'application/ld+json' from the Accept header or fetch using the authoritative URL at ${location}.`,
].join('\n'));
});
diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts
index cd36985485..0cd46b614f 100644
--- a/packages/backend/src/server/api/endpoints/admin/meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/meta.ts
@@ -555,6 +555,18 @@ export const meta = {
enum: ['all', 'local', 'none'],
optional: false, nullable: false,
},
+ proxyRemoteFiles: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ signToActivityPubGet: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ allowExternalApRedirect: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
},
},
} as const;
@@ -702,6 +714,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
deliverSuspendedSoftware: instance.deliverSuspendedSoftware,
singleUserMode: instance.singleUserMode,
ugcVisibilityForVisitor: instance.ugcVisibilityForVisitor,
+ proxyRemoteFiles: instance.proxyRemoteFiles,
+ signToActivityPubGet: instance.signToActivityPubGet,
+ allowExternalApRedirect: instance.allowExternalApRedirect,
};
});
}
diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
index a96fbd759c..0e3569d667 100644
--- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
@@ -201,6 +201,9 @@ export const paramDef = {
type: 'string',
enum: ['all', 'local', 'none'],
},
+ proxyRemoteFiles: { type: 'boolean' },
+ signToActivityPubGet: { type: 'boolean' },
+ allowExternalApRedirect: { type: 'boolean' },
},
required: [],
} as const;
@@ -703,6 +706,18 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
set.ugcVisibilityForVisitor = ps.ugcVisibilityForVisitor;
}
+ if (ps.proxyRemoteFiles !== undefined) {
+ set.proxyRemoteFiles = ps.proxyRemoteFiles;
+ }
+
+ if (ps.signToActivityPubGet !== undefined) {
+ set.signToActivityPubGet = ps.signToActivityPubGet;
+ }
+
+ if (ps.allowExternalApRedirect !== undefined) {
+ set.allowExternalApRedirect = ps.allowExternalApRedirect;
+ }
+
const before = await this.metaService.fetch(true);
await this.metaService.update(set);