Parent: #317
Stack position: 1 of 7. This is the enabling change for every subsequent module move.
Problem
The analyzer currently parses client.rs, models.rs, and meta.rs as flat syn::File values and inventories top-level items only. Moving declarations behind private out-of-line modules such as mod services; pub use services::*; would make operations and models invisible to drift and response-policy checks.
Scope
- Make the analyzer follow inline and out-of-line Rust modules, including private modules containing public declarations.
- Inventory
Client methods, structs, enums, aliases, VALUES constants, manual Default implementations, Serde defaults, and integer fields across the complete module tree.
- Update the analyzer executable and library APIs to accept the required source tree without duplicating Rust parsing in Python or tests.
- Update
spec_coverage_test.rs, analyzer entrypoint coverage, and drift-script tests for the new input shape.
- Replace the raw
models.rs SCIM substring count with analyzer-backed model inventory.
- Add a focused fixture using private nested modules and facade re-exports.
Acceptance
Out of scope
- Moving Cloud API models, methods, or conversions.
- Changing report semantics, the public API model policy, or drift exemptions.
Parent: #317
Stack position: 1 of 7. This is the enabling change for every subsequent module move.
Problem
The analyzer currently parses
client.rs,models.rs, andmeta.rsas flatsyn::Filevalues and inventories top-level items only. Moving declarations behind private out-of-line modules such asmod services; pub use services::*;would make operations and models invisible to drift and response-policy checks.Scope
Clientmethods, structs, enums, aliases,VALUESconstants, manualDefaultimplementations, Serde defaults, and integer fields across the complete module tree.spec_coverage_test.rs, analyzer entrypoint coverage, and drift-script tests for the new input shape.models.rsSCIM substring count with analyzer-backed model inventory.Acceptance
impl Clientmethods are inventoried identically to flat equivalents.cargo test -p clickhouse-cloud-api -p clickhouse-openapi-analyzerpasses.cargo clippy -p clickhouse-cloud-api -p clickhouse-openapi-analyzer --all-targets -- -D warningspasses.Out of scope