summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/federation
diff options
context:
space:
mode:
authorJulia <julia@insertdomain.name>2025-05-29 00:07:38 +0000
committerJulia <julia@insertdomain.name>2025-05-29 00:07:38 +0000
commit6b554c178b81f13f83a69b19d44b72b282a0c119 (patch)
treef5537f1a56323a4dd57ba150b3cb84a2d8b5dc63 /packages/backend/src/server/api/endpoints/federation
parentmerge: Security fixes (!970) (diff)
parentbump version for release (diff)
downloadsharkey-6b554c178b81f13f83a69b19d44b72b282a0c119.tar.gz
sharkey-6b554c178b81f13f83a69b19d44b72b282a0c119.tar.bz2
sharkey-6b554c178b81f13f83a69b19d44b72b282a0c119.zip
merge: release 2025.4.2 (!1051)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1051 Approved-by: Hazelnoot <acomputerdog@gmail.com> Approved-by: Marie <github@yuugi.dev> Approved-by: Julia <julia@insertdomain.name>
Diffstat (limited to 'packages/backend/src/server/api/endpoints/federation')
-rw-r--r--packages/backend/src/server/api/endpoints/federation/instances.ts35
-rw-r--r--packages/backend/src/server/api/endpoints/federation/update-remote-user.ts3
2 files changed, 10 insertions, 28 deletions
diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts
index 97384d2498..eeaebc3708 100644
--- a/packages/backend/src/server/api/endpoints/federation/instances.ts
+++ b/packages/backend/src/server/api/endpoints/federation/instances.ts
@@ -113,11 +113,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
}
if (typeof ps.blocked === 'boolean') {
- const meta = await this.metaService.fetch(true);
if (ps.blocked) {
- query.andWhere(meta.blockedHosts.length === 0 ? '1=0' : 'instance.host IN (:...blocks)', { blocks: meta.blockedHosts });
+ query.andWhere('instance.host IN (select unnest("blockedHosts") as x from "meta")');
} else {
- query.andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT IN (:...blocks)', { blocks: meta.blockedHosts });
+ query.andWhere('instance.host NOT IN (select unnest("blockedHosts") as x from "meta")');
}
}
@@ -146,36 +145,18 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
}
if (typeof ps.silenced === 'boolean') {
- const meta = await this.metaService.fetch(true);
-
if (ps.silenced) {
- if (meta.silencedHosts.length === 0) {
- return [];
- }
- query.andWhere('instance.host IN (:...silences)', {
- silences: meta.silencedHosts,
- });
- } else if (meta.silencedHosts.length > 0) {
- query.andWhere('instance.host NOT IN (:...silences)', {
- silences: meta.silencedHosts,
- });
+ query.andWhere('instance.host IN (select unnest("silencedHosts") as x from "meta")');
+ } else {
+ query.andWhere('instance.host NOT IN (select unnest("silencedHosts") as x from "meta")');
}
}
if (typeof ps.bubble === 'boolean') {
- const meta = await this.metaService.fetch(true);
-
if (ps.bubble) {
- if (meta.bubbleInstances.length === 0) {
- return [];
- }
- query.andWhere('instance.host IN (:...bubble)', {
- bubble: meta.bubbleInstances,
- });
- } else if (meta.bubbleInstances.length > 0) {
- query.andWhere('instance.host NOT IN (:...bubble)', {
- bubble: meta.bubbleInstances,
- });
+ query.andWhere('instance.host IN (select unnest("bubbleInstances") as x from "meta")');
+ } else {
+ query.andWhere('instance.host NOT IN (select unnest("bubbleInstances") as x from "meta")');
}
}
diff --git a/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts b/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts
index 5217f79065..67fa5ed343 100644
--- a/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts
+++ b/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts
@@ -16,7 +16,8 @@ export const meta = {
// Up to 10 calls, then 4 / second.
// This allows for reliable automation.
limit: {
- max: 10,
+ type: 'bucket',
+ size: 10,
dripRate: 250,
},
} as const;