Skip to content

Commit

Permalink
Merge pull request #1626 from appwrite/fix-realtime-endpoint
Browse files Browse the repository at this point in the history
fix: realtime using project namespace
  • Loading branch information
TorstenDittmann authored Jan 22, 2025
2 parents 5a5b4d4 + 9af0556 commit f7aca88
Show file tree
Hide file tree
Showing 10 changed files with 98 additions and 79 deletions.
22 changes: 12 additions & 10 deletions src/lib/components/backupRestoreBox.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -125,16 +125,18 @@
// fast path: don't subscribe if org is on a free plan or is self-hosted.
if (isSelfHosted || (isCloud && $organization.billingPlan === BillingPlan.FREE)) return;
return sdk.forConsole.client.subscribe('console', (response) => {
if (!response.channels.includes(`projects.${getProjectId()}`)) return;
if (
response.events.includes('archives.*') ||
response.events.includes('restorations.*')
) {
updateOrAddItem(response.payload);
}
});
return sdk
.forProject($page.params.region, $page.params.project)
.client.subscribe('console', (response) => {
if (!response.channels.includes(`projects.${getProjectId()}`)) return;
if (
response.events.includes('archives.*') ||
response.events.includes('restorations.*')
) {
updateOrAddItem(response.payload);
}
});
});
</script>

Expand Down
17 changes: 10 additions & 7 deletions src/lib/components/migrationBox.svelte
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<script lang="ts" context="module">
import { page } from '$app/stores';
import { parseIfString } from '$lib/helpers/object';
import { getProjectId } from '$lib/helpers/project';
import { sdk } from '$lib/stores/sdk';
Expand Down Expand Up @@ -49,13 +50,15 @@
})();
onMount(() => {
return sdk.forConsole.client.subscribe<Models.Migration>(['console'], async (response) => {
if (!response.channels.includes(`projects.${getProjectId()}`)) return;
if (response.events.includes('migrations.*')) {
if (response.payload.source === 'Backup') return;
migration = response.payload;
}
});
return sdk
.forProject($page.params.region, $page.params.project)
.client.subscribe<Models.Migration>(['console'], async (response) => {
if (!response.channels.includes(`projects.${getProjectId()}`)) return;
if (response.events.includes('migrations.*')) {
if (response.payload.source === 'Backup') return;
migration = response.payload;
}
});
});
</script>

Expand Down
7 changes: 4 additions & 3 deletions src/lib/pages/domains/create.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@
import { onMount } from 'svelte';
import { sdk } from '$lib/stores/sdk';
import type { Models } from '@appwrite.io/console';
import { page } from '$app/stores';
onMount(() => {
domain.set({ $id: '', domain: '' });
return sdk.forConsole.client.subscribe<Models.ProxyRule>('console', (data) =>
domain.set(data.payload)
);
return sdk
.forProject($page.params.region, $page.params.region)
.client.subscribe<Models.ProxyRule>('console', (data) => domain.set(data.payload));
});
async function onFinish() {
Expand Down
14 changes: 8 additions & 6 deletions src/routes/(console)/project-[region]-[project]/+layout.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,15 @@
} from '$lib/stores/roles';
onMount(() => {
return sdk.forConsole.client.subscribe(['project', 'console'], (response) => {
if (response.events.includes('stats.connections')) {
for (const [projectId, value] of Object.entries(response.payload)) {
stats.add(projectId, [new Date(response.timestamp).toISOString(), value]);
return sdk
.forProject($page.params.region, $page.params.project)
.client.subscribe(['project', 'console'], (response) => {
if (response.events.includes('stats.connections')) {
for (const [projectId, value] of Object.entries(response.payload)) {
stats.add(projectId, [new Date(response.timestamp).toISOString(), value]);
}
}
}
});
});
});
$: $registerCommands([
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,14 +159,19 @@
};
onMount(() => {
return sdk.forConsole.client.subscribe('console', (response) => {
// fast path return.
if (!response.channels.includes(`projects.${getProjectId()}`)) return;
return sdk
.forProject($page.params.region, $page.params.project)
.client.subscribe(['project', 'console'], (response) => {
// fast path return.
if (!response.channels.includes(`projects.${getProjectId()}`)) return;
if (response.events.includes('archives.*') || response.events.includes('policies.*')) {
invalidate(Dependencies.BACKUPS);
}
});
if (
response.events.includes('archives.*') ||
response.events.includes('policies.*')
) {
invalidate(Dependencies.BACKUPS);
}
});
});
</script>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,16 @@
let unsubscribe: { (): void };
onMount(() => {
unsubscribe = sdk.forConsole.client.subscribe('console', (response) => {
if (
response.events.includes('databases.*.collections.*.attributes.*') ||
response.events.includes('databases.*.collections.*.indexes.*')
) {
invalidate(Dependencies.COLLECTION);
}
});
unsubscribe = sdk
.forProject($page.params.region, $page.params.project)
.client.subscribe(['project', 'console'], (response) => {
if (
response.events.includes('databases.*.collections.*.attributes.*') ||
response.events.includes('databases.*.collections.*.indexes.*')
) {
invalidate(Dependencies.COLLECTION);
}
});
});
onDestroy(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,27 @@
onMount(() => {
let previousStatus = null;
return sdk.forConsole.client.subscribe<Models.Deployment>('console', (message) => {
if (previousStatus === message.payload.status) {
return;
}
previousStatus = message.payload.status;
if (message.events.includes('functions.*.deployments.*.create')) {
invalidate(Dependencies.DEPLOYMENTS);
return;
}
if (message.events.includes('functions.*.deployments.*.update')) {
invalidate(Dependencies.DEPLOYMENTS);
invalidate(Dependencies.FUNCTION);
return;
}
if (message.events.includes('functions.*.deployments.*.delete')) {
invalidate(Dependencies.DEPLOYMENTS);
return;
}
});
return sdk
.forProject($page.params.region, $page.params.project)
.client.subscribe<Models.Deployment>('console', (message) => {
if (previousStatus === message.payload.status) {
return;
}
previousStatus = message.payload.status;
if (message.events.includes('functions.*.deployments.*.create')) {
invalidate(Dependencies.DEPLOYMENTS);
return;
}
if (message.events.includes('functions.*.deployments.*.update')) {
invalidate(Dependencies.DEPLOYMENTS);
invalidate(Dependencies.FUNCTION);
return;
}
if (message.events.includes('functions.*.deployments.*.delete')) {
invalidate(Dependencies.DEPLOYMENTS);
return;
}
});
});
$: $registerCommands([
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@
return;
}
const unsubscribe = sdk.forConsole.client.subscribe<Models.Deployment>(
'console',
(message) => {
const unsubscribe = sdk
.forProject($page.params.region, $page.params.project)
.client.subscribe<Models.Deployment>('console', (message) => {
if (
message.events.includes(
`functions.${$page.params.function}.deployments.${$page.params.deployment}.update`
Expand All @@ -69,8 +69,7 @@
invalidate(Dependencies.DEPLOYMENT);
}
}
}
);
});
return () => {
unsubscribe();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import QuickFilters from './quickFilters.svelte';
import { Pill } from '$lib/elements';
import { tags } from '$lib/components/filters/store';
import { page } from '$app/stores';
export let data;
Expand Down Expand Up @@ -146,11 +147,13 @@
let showMobileFilters = false;
onMount(() => {
data?.query ? (showMobileFilters = true) : (showMobileFilters = false);
return sdk.forConsole.client.subscribe('console', (response) => {
if (response.events.includes('functions.*.executions.*')) {
invalidate(Dependencies.EXECUTIONS);
}
});
return sdk
.forProject($page.params.region, $page.params.project)
.client.subscribe('functions.*.executiole', (response) => {
if (response.events.includes('functions.*.executions.*')) {
invalidate(Dependencies.EXECUTIONS);
}
});
});
function clearAll() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import { readOnly } from '$lib/stores/billing';
import type { Models } from '@appwrite.io/console';
import { canWriteProjects } from '$lib/stores/roles';
import { page } from '$app/stores';
export let data;
let migration: Models.Migration = null;
Expand All @@ -44,12 +45,14 @@
return 'pending';
};
onMount(async () => {
sdk.forConsole.client.subscribe(['project', 'console'], (response) => {
if (response.events.includes('migrations.*')) {
invalidate(Dependencies.MIGRATIONS);
}
});
onMount(() => {
return sdk
.forProject($page.params.region, $page.params.project)
.client.subscribe(['project', 'console'], (response) => {
if (response.events.includes('migrations.*')) {
invalidate(Dependencies.MIGRATIONS);
}
});
});
$: $registerCommands([
Expand Down

0 comments on commit f7aca88

Please sign in to comment.