@@ -118,6 +118,29 @@ function collectDeploymentEnvRows(config: PaperclipConfig | null, configPath: st
118118 const dbUrl = process . env . DATABASE_URL ?? config ?. database ?. connectionString ?? "" ;
119119 const databaseMode = config ?. database ?. mode ?? "embedded-postgres" ;
120120 const dbUrlSource : EnvSource = process . env . DATABASE_URL ? "env" : config ?. database ?. connectionString ? "config" : "missing" ;
121+ const publicUrl =
122+ process . env . PAPERCLIP_PUBLIC_URL ??
123+ process . env . PAPERCLIP_AUTH_PUBLIC_BASE_URL ??
124+ process . env . BETTER_AUTH_URL ??
125+ process . env . BETTER_AUTH_BASE_URL ??
126+ config ?. auth ?. publicBaseUrl ??
127+ "" ;
128+ const publicUrlSource : EnvSource =
129+ process . env . PAPERCLIP_PUBLIC_URL
130+ ? "env"
131+ : process . env . PAPERCLIP_AUTH_PUBLIC_BASE_URL || process . env . BETTER_AUTH_URL || process . env . BETTER_AUTH_BASE_URL
132+ ? "env"
133+ : config ?. auth ?. publicBaseUrl
134+ ? "config"
135+ : "missing" ;
136+ let trustedOriginsDefault = "" ;
137+ if ( publicUrl ) {
138+ try {
139+ trustedOriginsDefault = new URL ( publicUrl ) . origin ;
140+ } catch {
141+ trustedOriginsDefault = "" ;
142+ }
143+ }
121144
122145 const heartbeatInterval = process . env . HEARTBEAT_SCHEDULER_INTERVAL_MS ?? DEFAULT_HEARTBEAT_SCHEDULER_INTERVAL_MS ;
123146 const heartbeatEnabled = process . env . HEARTBEAT_SCHEDULER_ENABLED ?? "true" ;
@@ -192,6 +215,24 @@ function collectDeploymentEnvRows(config: PaperclipConfig | null, configPath: st
192215 required : false ,
193216 note : "HTTP listen port" ,
194217 } ,
218+ {
219+ key : "PAPERCLIP_PUBLIC_URL" ,
220+ value : publicUrl ,
221+ source : publicUrlSource ,
222+ required : false ,
223+ note : "Canonical public URL for auth/callback/invite origin wiring" ,
224+ } ,
225+ {
226+ key : "BETTER_AUTH_TRUSTED_ORIGINS" ,
227+ value : process . env . BETTER_AUTH_TRUSTED_ORIGINS ?? trustedOriginsDefault ,
228+ source : process . env . BETTER_AUTH_TRUSTED_ORIGINS
229+ ? "env"
230+ : trustedOriginsDefault
231+ ? "default"
232+ : "missing" ,
233+ required : false ,
234+ note : "Comma-separated auth origin allowlist (auto-derived from PAPERCLIP_PUBLIC_URL when possible)" ,
235+ } ,
195236 {
196237 key : "PAPERCLIP_AGENT_JWT_TTL_SECONDS" ,
197238 value : process . env . PAPERCLIP_AGENT_JWT_TTL_SECONDS ?? DEFAULT_AGENT_JWT_TTL_SECONDS ,
0 commit comments