diff --git a/packages/pds/src/config/config.ts b/packages/pds/src/config/config.ts index 77c943be6f8..52713d459f3 100644 --- a/packages/pds/src/config/config.ts +++ b/packages/pds/src/config/config.ts @@ -176,6 +176,7 @@ export const envToCfg = (env: ServerEnvironment): ServerConfig => { alternate: env.bskyAppviewAlternateUrl ? { url: env.bskyAppviewAlternateUrl, + did: env.bskyAppviewAlternateDid ?? env.bskyAppViewDid, users: env.bskyAppviewAlternateUsers ?? [], } : undefined, @@ -344,6 +345,7 @@ export type BksyAppViewConfig = { cdnUrlPattern?: string alternate?: { url: string + did: string users: string[] } } diff --git a/packages/pds/src/config/env.ts b/packages/pds/src/config/env.ts index dbdbd449291..141d0882c47 100644 --- a/packages/pds/src/config/env.ts +++ b/packages/pds/src/config/env.ts @@ -71,6 +71,7 @@ export const readEnv = (): ServerEnvironment => { bskyAppViewDid: envStr('PDS_BSKY_APP_VIEW_DID'), bskyAppViewCdnUrlPattern: envStr('PDS_BSKY_APP_VIEW_CDN_URL_PATTERN'), bskyAppviewAlternateUrl: envStr('PDS_BSKY_APP_VIEW_ALTERNATE_URL'), + bskyAppviewAlternateDid: envStr('PDS_BSKY_APP_VIEW_ALTERNATE_DID'), bskyAppviewAlternateUsers: envList('PDS_BSKY_APP_VIEW_ALTERNATE_USERS'), // mod service @@ -172,6 +173,7 @@ export type ServerEnvironment = { bskyAppViewDid?: string bskyAppViewCdnUrlPattern?: string bskyAppviewAlternateUrl?: string + bskyAppviewAlternateDid?: string bskyAppviewAlternateUsers?: string[] // mod service diff --git a/packages/pds/src/context.ts b/packages/pds/src/context.ts index 176cccdb210..6c72ce00671 100644 --- a/packages/pds/src/context.ts +++ b/packages/pds/src/context.ts @@ -269,7 +269,11 @@ export class AppContext { } async appviewAuthHeaders(did: string) { - return this.serviceAuthHeaders(did, this.cfg.bskyAppView.did) + const appviewDid = + this.cfg.bskyAppView.alternate && this.alternateAppviewUsers.has(did) + ? this.cfg.bskyAppView.alternate.did + : this.cfg.bskyAppView.did + return this.serviceAuthHeaders(did, appviewDid) } async moderationAuthHeaders(did: string) {