Skip to content

refactor: consolidate POD service orchestration - #36

Merged
VPRamon merged 2 commits into
mainfrom
10-consolidate-service-orchestration
Oct 4, 2026
Merged

VPRamon merged 2 commits into
mainfrom
10-consolidate-service-orchestration

Conversation

@VPRamon

@VPRamon VPRamon commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Summary

The previous service layer mixed configuration validation, synthetic workflow setup, pipeline execution, artifact writing, and transport concerns. CLI and REST had to know pipeline details, while the public result exposed only a manifest path and failures surfaced as std::io::Error or pipeline errors.

This PR makes spod an application/service layer around Siderust:

  • adds a high-level Runner / RunRequest / RunResult service boundary;
  • introduces explicit Workflow, Artifacts, RunProvenance, and categorized ServiceError types;
  • validates schema, workflow, forces, and unsupported real-data inputs before execution;
  • routes both CLI and REST synthetic execution through the same runner;
  • keeps the deterministic synthetic workflow as an explicit reference/integration workflow;
  • keeps artifact layout and SP3, OEM, residual CSV, QC JSON, and manifest generation unchanged;
  • documents the Siderust ownership boundary and the temporary local Vallado SGP4/SDP4 exception.

The configuration schema remains deliberately small. Unknown fields fail explicitly, workflow: synthetic is supported (and defaults for existing configs), and relative output directories resolve relative to the configuration file.

Deferred scope

This does not implement the full job lifecycle/persistence work planned for #11, real GNSS POD from #20, dataset acquisition from #21, mission profiles from #22, or Siderust SGP4/SDP4 parity (#29 / Siderust#98). Production scheduling, persistence, authentication, and new science remain out of scope.

Validation

  • cargo fmt --all -- --check
  • cargo check --locked --workspace --all-targets --all-features
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --workspace --no-fail-fast
  • cargo test --workspace --no-default-features --no-fail-fast
  • cargo test --workspace --all-features --no-fail-fast
  • cargo test --doc --workspace --all-features
  • cargo doc --workspace --no-deps
  • bash scripts/check_dep_graph.sh
  • bash scripts/check_no_todos.sh
  • bash scripts/check_legacy_name_refs.sh
  • cargo deny --all-features check (passes with existing duplicate-crate warning)
  • cargo run --quiet --bin spod -- run examples/configs/leo_gnss_mvp1.yaml

Closes #10

Introduce a typed service runner boundary with explicit workflow dispatch, categorized errors, structured artifacts, and provenance. Route CLI and REST execution through the runner while preserving the synthetic reference workflow and documenting the service architecture.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 07b1e25255

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/service/rest.rs Outdated
Hide synthetic pipeline internals, preserve scientific versus artifact error categories, centralize deterministic artifact paths, fix relative REST job output resolution, and align architecture documentation with direct dependencies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@VPRamon
VPRamon merged commit ca48fc8 into main Oct 4, 2026
14 checks passed
@VPRamon
VPRamon deleted the 10-consolidate-service-orchestration branch October 4, 2026 21:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consolidate the POD service orchestration layer

1 participant