Skip to content
This repository was archived by the owner on Sep 18, 2026. It is now read-only.

OSAC-1110, OSAC-1111: UI design for Storage Backend and Tier catalogs - #112

Closed
ElayAharoni wants to merge 3 commits into
osac-project:mainfrom
ElayAharoni:docs/OSAC-1110-1111-storage-ui-design
Closed

ElayAharoni wants to merge 3 commits into
osac-project:mainfrom
ElayAharoni:docs/OSAC-1110-1111-storage-ui-design

Conversation

@ElayAharoni

@ElayAharoni ElayAharoni commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Adds docs/storage-ui-design.md: the osac-ui implementation design for StorageTier (OSAC-1110), a single "Storage tiers" admin list page for composing named tier offerings from registered StorageBackend (OSAC-1111) infrastructure.
  • StorageBackend gets no admin UI in this design — neither PRD states a UI requirement, and it's structurally identical to NetworkClass, which this codebase already manages via direct API access with zero CRUD screen. StorageBackend is consumed only through a minimal read-only hook (List/Get) for the Tier form's backend picker and the Tier list table's name lookup.
  • Covers the Tier hooks-layer, list/create/edit form design, the one new UI primitive with no in-repo precedent (immutable-field-on-edit for the tier name), and failure/security/RBAC handling.
  • One open question remains for the backend design owner (whether the server enforces DNS-label formatting on Tier names) — see §8 of the doc.

Context

  • Neither StorageBackend nor StorageTier has merged in fulfillment-service yet; both design.md docs are treated as a fixed contract. This UI work is blocked on that merge + a pnpm gen-types run (both protos are needed even though only Tier gets a CRUD UI), and is submitted now as a design-only doc.

Test plan

  • Design doc reviewed by OSAC-1110/OSAC-1111 design owner (Roy Golan) for the remaining open question
  • No code changes in this PR — nothing to test

🤖 Generated with Claude Code

Specifies the osac-ui implementation for the StorageBackend (OSAC-1111)
and StorageTier (OSAC-1110) admin catalogs: a combined "Storage" nav
entry with Backends and Tiers tabs, full CRUD hooks, lifecycle-state
actions, and the masked-credential and immutable-field-on-edit form
primitives neither resource has precedent for in this codebase. Both
fulfillment-service protos are design-stage only; this UI work is
blocked on their merge and a subsequent pnpm gen-types run.

Assisted-by: Claude Code <noreply@anthropic.com>
Signed-off-by: Elay Aharoni <elayaha@gmail.com>
@openshift-ci-robot

openshift-ci-robot commented Aug 2, 2026 •

Copy link
Copy Markdown

@ElayAharoni: This pull request references OSAC-1110 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "5.0.0" version, but no target version was set.

This pull request references OSAC-1111 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Adds docs/storage-ui-design.md: the osac-ui implementation design for StorageBackend (OSAC-1111) and StorageTier (OSAC-1110), delivered as one combined admin surface (a "Storage" nav entry with Backends/Tiers tabs) since a Tier cannot be created without a registered Backend.
  • Covers hooks-layer additions (private-only CRUD + a dedicated lifecycle-state mutation for Backend), list/create/edit form design, two new UI primitives with no in-repo precedent (masked credential input, immutable-field-on-edit), and failure/security/RBAC handling.
  • Two open questions remain for the backend design owner (credential redaction on Get, DNS-label enforcement on Tier names) — see §8 of the doc.

Context

  • Neither StorageBackend nor StorageTier has merged in fulfillment-service yet; both design.md docs are treated as a fixed contract. This UI work is blocked on that merge + a pnpm gen-types run, and is submitted now as a design-only doc.

Test plan

  • Design doc reviewed by OSAC-1110/OSAC-1111 design owner (Roy Golan) for the two open questions
  • No code changes in this PR — nothing to test

🤖 Generated with Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci

openshift-ci Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ElayAharoni

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved label Aug 2, 2026
@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: osac-project/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7166458a-e0b0-4487-8621-248a8e672909

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Cut the StorageBackend admin screen (create/edit/delete, lifecycle
actions, masked-credential input) after review: neither PRD states a
UI requirement, and StorageBackend is structurally identical to
NetworkClass, which this codebase already manages via direct API
access with zero CRUD UI. StorageBackend is now consumed only through
a minimal read-only hook module for the Tier form's backend picker and
the Tier list table's name lookup, mirroring the existing
useNetworkClasses()/instance-types.ts pattern.

Assisted-by: Claude Code <noreply@anthropic.com>
Signed-off-by: Elay Aharoni <elayaha@gmail.com>
Decomposition review surfaced that the design assumed an existing
"Administration" nav section (with a "Catalog management" entry) to
add alongside — that section and its role-gating were fully removed
on 2026-07-30 (commit 5ccf669) when the feature that used them
(OSAC-2932) was reverted. navRowsForRole currently ignores role
entirely. This design now reintroduces role-gated admin navigation
and a matching role-conditional route from scratch, using the removed
code's exact shape as a reference pattern, which is a stronger design
than the original (adds a real route-level guard, not just nav-hiding).

Assisted-by: Claude Code <noreply@anthropic.com>
Signed-off-by: Elay Aharoni <elayaha@gmail.com>
@ElayAharoni

ElayAharoni commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Update: decomposition review (/decompose) surfaced that this design's Navigation/RBAC sections assumed an existing "Administration" nav section (with a "Catalog management" entry) to add alongside. That section and its role-gating were fully removed on 2026-07-30 (commit 5ccf669) when the feature that used it (OSAC-2932) was reverted — confirmed by reading the current shellNav.ts/AppShell.tsx directly. The design now correctly specifies reintroducing role-gated admin navigation and a role-conditional route from scratch (the prior code had both, not just nav-hiding), citing the removed code's exact shape as a reference pattern. Net effect: the design is now more accurate and slightly stronger (a real route-level guard, not just nav-hiding).

🤖 Generated with Claude Code

@ElayAharoni

Copy link
Copy Markdown
Contributor Author

Superseded by osac-project/enhancement-proposals#183 — per follow-up direction, this design doc is published to the enhancement-proposals repo (alongside the existing StorageTier PRD/design.md) instead of living in osac-ui's own docs/ folder.

@ElayAharoni ElayAharoni closed this Aug 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants