docs(infrastructure-resource-manager): add Infrastructure Resource Manager PRD - #4409
Conversation
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes. 💤 Files selected but had no reviewable changes (1)
⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
code-ranker report for this PR (built on fork): https://reports.code-ranker.com/S2bhYADybqYLlTr99v9iVg/ |
|
@coderabbitai full review |
✅ Action performedFull review finished. |
3f2eccd to
d23c0e0
Compare
|
@coderabbitai full review |
|
|
@coderabbitai full review |
|
e2738ba to
d6d2b60
Compare
|
@coderabbitai full review |
|
…nager PRD Signed-off-by: parviz-93 <rozikovp@gmail.com>
|
|
||
| | **Field** | **Value** | | ||
| |-----------|----------| | ||
| | **Applicable Manifest(s)** | Not referenced — this PRD is self-contained. The rows below state the architecture context in its own terms. | |
There was a problem hiding this comment.
Just a note: Gear is not registered in the platform architecture map. docs/GEARS.md is the architecture index — every gear has a section there with a category
There was a problem hiding this comment.
Not fixed in this commit: docs/GEARS.md is a separate file. IRM is already in the backend roadmap: issue #4319 (milestone 26.09). We will add the IRM section (category, scenarios, PRD link) and link #4319. One question: can we edit docs/GEARS.md ourselves in this PR, or does that file have an owner and a separate process? The category will follow the placement decision (see the line-165 thread).
There was a problem hiding this comment.
docs/GEARS.md has no CODEOWNERS entry — from docs/ only /docs/arch/authorization is owned (@aviator5). Recent edits to it come from three different people, so there is no gate. You can add the section yourselves.
I'd put it in a separate small PR so this one stays docs-only for a single gear, but that's preference, not process.
Apply the agreed dispositions for all 34 comments of the 2026-08-06 review round (10 accepted, 20 accepted with a different fix, 4 declined with rationale in the PR threads). Removals: - Model-migration workstream: scope row 24, fr-model-migration, usecase-migrate-tenant, acceptance criterion 66, the migration risk row, fr-relationship-backfill, and the event-namespace clauses. IRM starts from scratch; existing provider resources enter through discovery and adoption. Risk and decision tracking: - Section 15: six new rows - platform type-publication path, Token Issuer (constructorfabric#4321), Grant Issuance Service, durable-execution substrate, drift ownership residual, post-restore idempotency exposure. - Section 16: new and extended questions - final placement, Token Issuer realization, MVP first slice, RG SLO gap, RG write contract, adapter-contract validation against VHI/OpenStack as first adapter, metric emission; the executor plugin is named (vhp-core Temporal-based reference implementation). - Section 13: new Readiness column; informative Policy Decision Service mapping; constructorfabric#4321 reference; central outbound egress path role with OAGW as the current implementation. Requirement changes: - fr-plan-binding defines current state as the recorded state. - fr-ordered-execution: recovery is explicit rollback. - fr-secret-hygiene narrowed to cross-tenant non-correlation; IRM provisions its own per-tenant key; salt assumption dropped. - Orphan capacity evaluated at plan admission over aggregate detaches. - Three operation-overlap rules: action vs apply, cancel vs cascade teardown, group move vs apply. - Tenant assignment wraps resources in an anonymous deployment and seeds desired state from observed configuration. - Placement invariant scoped to IRM records; reconciler rule and resource_type partition key stated. - fr-policy-gating holds admitted capacity to the terminal state. - fr-adapter-egress rewritten over the egress-path role (+ AC 52); cross-reference in fr-adapter-async-protocol. - Post-restore refresh gate (new nfr-restore-gate). - Per-tenant revision retention window bounds fr-rollback. - Operation-catalog re-submission semantics; package-format compatibility sentence in the adapter contract entry. - Conventions row records OData (filter/orderby, cursor pagination); interface section notes no gRPC projection in this release. - Scope legend: p1 = must ship in the first release; rows 10, 25, 28 re-tiered to p2. - Appendix A: informative VHI/OpenStack walkthrough (package, schema, preview, day-2 action, discovery). Gates: cfs validate --artifact 0 errors / 0 warnings, TOC validated, language check clean. Stable IDs unchanged except three sanctioned removals and one addition (nfr-restore-gate). Signed-off-by: parviz-93 <rozikovp@gmail.com>
Description
Add the Product Requirements Document for the Infrastructure Resource Manager (IRM) gear at
gears/infrastructure-resource-manager/docs/PRD.md(v1.0.0, DRAFT — open for contributor review). The gear name follows the review-meeting decision recorded in #4319 ("Infrastructure Resource Manager") and the platform's kebab-case convention; the artifact is picked up by the Constructor Studio registry autodetect.The document went through multiple review passes (full per-layer semantic review against the PRD checklist, closure verification, a focused inbound/outbound dependency review, an adversarial spec review, and a maintainer validation round). All findings are resolved or explicitly dispositioned; open decisions are tracked in §16 with owners and dates.
Refs #4319. Supersedes #4408.
Type of Change
Testing
make cfs-validate: 0 errors;cfs validate --artifact,validate-toc,check-language: clean; 122cpt-cf-infrastructure-resource-manager-*IDs, traceability verified with no dangling references)Documentation
Checklist
cargo clippy) (N/A — docs-only change)cargo fmt) (N/A — docs-only change)cargo test) (N/A — docs-only change)Related Issues
Refs #4319