Skip to content

Commit 15bb019

Browse files
Merge pull request #1808 from appwrite/fix-console-on-custom-domains
Fix: multi-region api access with custom-domains
2 parents 678877a + fe82658 commit 15bb019

File tree

8 files changed

+17
-11
lines changed

8 files changed

+17
-11
lines changed

.env.example

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
PUBLIC_APPWRITE_ENDPOINT=https://localhost/v1
21
PUBLIC_CONSOLE_MODE=self-hosted
2+
PUBLIC_APPWRITE_MULTI_REGION=false
3+
PUBLIC_APPWRITE_ENDPOINT=http://localhost/v1
4+
35
PUBLIC_STRIPE_KEY=
46
PUBLIC_GROWTH_ENDPOINT=

.github/workflows/publish.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ jobs:
3939
labels: ${{ steps.meta.outputs.labels }}
4040
build-args: |
4141
"PUBLIC_CONSOLE_MODE=cloud"
42+
"PUBLIC_APPWRITE_MULTI_REGION=true"
4243
"PUBLIC_GROWTH_ENDPOINT=${{ secrets.PUBLIC_GROWTH_ENDPOINT }}"
4344
"PUBLIC_STRIPE_KEY=${{ secrets.PUBLIC_STRIPE_KEY }}"
4445
"SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}"
@@ -77,6 +78,7 @@ jobs:
7778
labels: ${{ steps.meta.outputs.labels }}
7879
build-args: |
7980
"PUBLIC_CONSOLE_MODE=cloud"
81+
"PUBLIC_APPWRITE_MULTI_REGION=true"
8082
"PUBLIC_GROWTH_ENDPOINT=${{ secrets.PUBLIC_GROWTH_ENDPOINT }}"
8183
"PUBLIC_STRIPE_KEY=${{ secrets.PUBLIC_STRIPE_KEY_STAGE }}"
8284
publish-self-hosted:
@@ -113,4 +115,5 @@ jobs:
113115
labels: ${{ steps.meta.outputs.labels }}
114116
build-args: |
115117
"PUBLIC_CONSOLE_MODE=self-hosted"
118+
"PUBLIC_APPWRITE_MULTI_REGION=false"
116119
"PUBLIC_GROWTH_ENDPOINT=${{ secrets.PUBLIC_GROWTH_ENDPOINT }}"

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ ADD ./src /app/src
2121
ADD ./static /app/static
2222

2323
ARG PUBLIC_CONSOLE_MODE
24+
ARG PUBLIC_APPWRITE_MULTI_REGION
2425
ARG PUBLIC_APPWRITE_ENDPOINT
2526
ARG PUBLIC_GROWTH_ENDPOINT
2627
ARG PUBLIC_STRIPE_KEY
@@ -30,6 +31,7 @@ ARG SENTRY_RELEASE
3031
ENV PUBLIC_APPWRITE_ENDPOINT=$PUBLIC_APPWRITE_ENDPOINT
3132
ENV PUBLIC_GROWTH_ENDPOINT=$PUBLIC_GROWTH_ENDPOINT
3233
ENV PUBLIC_CONSOLE_MODE=$PUBLIC_CONSOLE_MODE
34+
ENV PUBLIC_APPWRITE_MULTI_REGION=$PUBLIC_APPWRITE_MULTI_REGION
3335
ENV PUBLIC_STRIPE_KEY=$PUBLIC_STRIPE_KEY
3436
ENV SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN
3537
ENV SENTRY_RELEASE=$SENTRY_RELEASE

build.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ async function main() {
2424
log(bold().magenta('APPWRITE CONSOLE'));
2525
log();
2626
logEnv('CONSOLE MODE', env?.PUBLIC_CONSOLE_MODE);
27+
logEnv('MULTI REGION', env?.PUBLIC_APPWRITE_MULTI_REGION);
2728
logEnv('APPWRITE ENDPOINT', env?.PUBLIC_APPWRITE_ENDPOINT, 'relative');
2829
logEnv('GROWTH ENDPOINT', env?.PUBLIC_GROWTH_ENDPOINT);
2930
log();

compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ services:
55
context: .
66
args:
77
PUBLIC_CONSOLE_MODE: ${PUBLIC_CONSOLE_MODE}
8+
PUBLIC_APPWRITE_MULTI_REGION: ${PUBLIC_APPWRITE_MULTI_REGION}
89
PUBLIC_APPWRITE_ENDPOINT: ${PUBLIC_APPWRITE_ENDPOINT}
910
PUBLIC_GROWTH_ENDPOINT: ${PUBLIC_GROWTH_ENDPOINT}
1011
PUBLIC_STRIPE_KEY: ${PUBLIC_STRIPE_KEY}
@@ -20,6 +21,7 @@ services:
2021
- build/
2122
environment:
2223
- PUBLIC_CONSOLE_MODE
24+
- PUBLIC_APPWRITE_MULTI_REGION
2325
- PUBLIC_APPWRITE_ENDPOINT
2426
- PUBLIC_GROWTH_ENDPOINT
2527
- PUBLIC_STRIPE_KEY

playwright.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const config: PlaywrightTestConfig = {
1414
env: {
1515
PUBLIC_APPWRITE_ENDPOINT: 'https://stage.cloud.appwrite.io/v1',
1616
PUBLIC_CONSOLE_MODE: 'cloud',
17+
PUBLIC_APPWRITE_MULTI_REGION: 'true',
1718
PUBLIC_STRIPE_KEY:
1819
'pk_test_51LT5nsGYD1ySxNCyd7b304wPD8Y1XKKWR6hqo6cu3GIRwgvcVNzoZv4vKt5DfYXL1gRGw4JOqE19afwkJYJq1g3K004eVfpdWn'
1920
},

src/lib/stores/sdk.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ export function getApiEndpoint(region?: string): string {
4040
);
4141
const protocol = url.protocol;
4242
const hostname = url.hostname;
43-
const subdomain = getSubdomain(region);
43+
44+
// If instance supports multi-region, add the region subdomain.
45+
const subdomain = VARS.APPWRITE_MULTI_REGION ? getSubdomain(region) : '';
4446

4547
return `${protocol}//${subdomain}${hostname}/v1`;
4648
}
@@ -95,14 +97,6 @@ export const realtime = {
9597
const endpoint = getApiEndpoint(region);
9698
if (endpoint !== clientRealtime.config.endpoint) {
9799
clientRealtime.setEndpoint(endpoint);
98-
99-
/**
100-
* Workaround: the SDK doesn't update the realtime in `setEndpoint`.
101-
* Until that's fixed, we manually set the realtime endpoint like this:
102-
*/
103-
clientRealtime.setEndpointRealtime(
104-
endpoint.replace('https://', 'wss://').replace('http://', 'ws://')
105-
);
106100
}
107101
return clientRealtime;
108102
}

src/lib/system.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export const VARS = {
1010
CONSOLE_MODE: (env.PUBLIC_CONSOLE_MODE as Mode) ?? undefined,
1111
APPWRITE_ENDPOINT: env.PUBLIC_APPWRITE_ENDPOINT ?? undefined,
1212
GROWTH_ENDPOINT: env.PUBLIC_GROWTH_ENDPOINT ?? undefined,
13-
PUBLIC_STRIPE_KEY: env.PUBLIC_STRIPE_KEY ?? undefined
13+
PUBLIC_STRIPE_KEY: env.PUBLIC_STRIPE_KEY ?? undefined,
14+
APPWRITE_MULTI_REGION: env.PUBLIC_APPWRITE_MULTI_REGION ?? false
1415
};
1516

1617
export const ENV = {

0 commit comments

Comments
 (0)