apollo_integration_tests,apollo_node_config: load integration-test node config via native format#14629
Conversation
nimrod-starkware
left a comment
There was a problem hiding this comment.
@nimrod-starkware made 1 comment.
Reviewable status: 0 of 4 files reviewed, 1 unresolved discussion.
crates/apollo_integration_tests/src/executable_setup.rs line 109 at r1 (raw file):
/// Config files passed to the native loader, base first then secrets, matching the /// `[base, secret]` arity expected by `load_native`. pub fn node_config_paths(&self) -> Vec<PathBuf> {
Suggestion:
pub(crate) fn node_config_paths(&self) -> [PathBuf; 2] {ad01662 to
81e18a7
Compare
2e11c32 to
aa981cd
Compare
81e18a7 to
4614c66
Compare
aa981cd to
cfcf68f
Compare
4614c66 to
76ce25d
Compare
…de config via native format
Make the integration-test harness emit a nested native config artifact plus a
secrets file and boot the node with --config_format native (two --config_file
paths: nested base first, flat secrets second), instead of the legacy preset
single-file path. Adds as_native_value/dump_native_config_file alongside the
retained preset as_value, a {} secrets file, and node_config_paths() returning
[base, secrets]; both spawn_run_node call sites pass the two-file vector.
This is the prerequisite that lets the integration suite exercise the native
load path before the preset path is torn down.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
cfcf68f to
ab93940
Compare
76ce25d to
0797ffc
Compare
PR SummaryMedium Risk Overview The harness writes a nested base JSON (
Reviewed by Cursor Bugbot for commit 0797ffc. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0797ffc. Configure here.
| /// in contrast to the flat preset produced by `as_value`. | ||
| pub fn as_native_value(&self) -> Value { | ||
| serde_json::to_value(&self.config).expect("Should be able to serialize config to value") | ||
| } |
There was a problem hiding this comment.
Native dump skips pointer map
Medium Severity
as_native_value serializes only self.config, while as_value merges config_pointers_map via combine_config_map_and_pointers. The native loader does not resolve pointers, so booted nodes can see different values (e.g. shared recorder_url, native_classes_whitelist) than under the previous preset file path, including after modify_config_pointers without matching struct updates.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 0797ffc. Configure here.



Make the integration-test harness emit a nested native config artifact plus a
secrets file and boot the node with --config_format native (two --config_file
paths: nested base first, flat secrets second), instead of the legacy preset
single-file path. Adds as_native_value/dump_native_config_file alongside the
retained preset as_value, a {} secrets file, and node_config_paths() returning
[base, secrets]; both spawn_run_node call sites pass the two-file vector.
This is the prerequisite that lets the integration suite exercise the native
load path before the preset path is torn down.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com