|
3 | 3 | type ProviderInfo,
|
4 | 4 | RPC_URLS,
|
5 | 5 | type StorageContext,
|
| 6 | + type StorageServiceOptions, |
6 | 7 | Synapse,
|
7 | 8 | type SynapseOptions,
|
8 | 9 | } from '@filoz/synapse-sdk'
|
@@ -158,7 +159,12 @@ export async function createStorageContext(
|
158 | 159 | // The storage context manages the data set and provider interactions
|
159 | 160 | logger.info({ event: 'synapse.storage.create' }, 'Creating storage context')
|
160 | 161 |
|
161 |
| - const storage = await synapse.storage.createContext({ |
| 162 | + // Optional override: allow selecting a specific provider via env vars |
| 163 | + const envProviderAddress = process.env.PROVIDER_ADDRESS?.trim() |
| 164 | + const envProviderIdRaw = process.env.PROVIDER_ID?.trim() |
| 165 | + const envProviderId = envProviderIdRaw != null && envProviderIdRaw !== '' ? Number(envProviderIdRaw) : undefined |
| 166 | + |
| 167 | + const createOptions: StorageServiceOptions = { |
162 | 168 | ...DEFAULT_STORAGE_CONTEXT_CONFIG,
|
163 | 169 | // Callbacks provide visibility into the storage lifecycle
|
164 | 170 | // These are crucial for debugging and monitoring in production
|
@@ -227,7 +233,24 @@ export async function createStorageContext(
|
227 | 233 | )
|
228 | 234 | },
|
229 | 235 | },
|
230 |
| - }) |
| 236 | + } |
| 237 | + |
| 238 | + // Apply provider override if present |
| 239 | + if (envProviderAddress) { |
| 240 | + createOptions.providerAddress = envProviderAddress |
| 241 | + logger.info( |
| 242 | + { event: 'synapse.storage.provider_override', by: 'env', providerAddress: envProviderAddress }, |
| 243 | + 'Overriding provider via PROVIDER_ADDRESS' |
| 244 | + ) |
| 245 | + } else if (envProviderId != null && Number.isFinite(envProviderId)) { |
| 246 | + createOptions.providerId = envProviderId |
| 247 | + logger.info( |
| 248 | + { event: 'synapse.storage.provider_override', by: 'env', providerId: envProviderId }, |
| 249 | + 'Overriding provider via PROVIDER_ID' |
| 250 | + ) |
| 251 | + } |
| 252 | + |
| 253 | + const storage = await synapse.storage.createContext(createOptions) |
231 | 254 |
|
232 | 255 | logger.info(
|
233 | 256 | {
|
|
0 commit comments