applySafeConfigEnvironmentVariables function
void
applySafeConfigEnvironmentVariables({})
Apply environment variables from trusted sources.
In the Dart port this is a simplified version that demonstrates the flow. Callers should provide the settings retrieval callbacks.
Implementation
void applySafeConfigEnvironmentVariables({
required Map<String, String>? Function() getGlobalConfigEnv,
required Map<String, String>? Function(String source) getSettingsForSourceEnv,
required Map<String, String>? Function() getAllSettingsEnv,
required bool Function(String source) isSettingSourceEnabled,
}) {
// Capture CCD spawn-env keys before any settings.env is applied (once).
if (!_ccdSpawnEnvKeysInitialised) {
_ccdSpawnEnvKeysInitialised = true;
if (Platform.environment['MAGE_ENTRYPOINT'] == 'claude-desktop') {
_ccdSpawnEnvKeys = Platform.environment.keys.toSet();
}
}
// Global config
final globalEnv = filterSettingsEnv(getGlobalConfigEnv());
globalEnv.forEach((key, value) {
Platform.environment[key] = value;
});
// Trusted sources (except policy)
for (final source in _trustedSettingSources) {
if (source == 'policySettings') continue;
if (!isSettingSourceEnabled(source)) continue;
final env = filterSettingsEnv(getSettingsForSourceEnv(source));
env.forEach((key, value) {
Platform.environment[key] = value;
});
}
// Policy settings last
final policyEnv = filterSettingsEnv(
getSettingsForSourceEnv('policySettings'),
);
policyEnv.forEach((key, value) {
Platform.environment[key] = value;
});
// Safe vars from merged settings
final settingsEnv = filterSettingsEnv(getAllSettingsEnv());
for (final entry in settingsEnv.entries) {
if (safeEnvVars.contains(entry.key.toUpperCase())) {
Platform.environment[entry.key] = entry.value;
}
}
}