Skip to content

docs(FR-3153): add VFolder mount subpath/alias config component spec#7931

Merged
graphite-app[bot] merged 1 commit into
mainfrom
06-16-docs_fr-3153_add_vfolder_mount_subpath_alias_config_component_spec
Jun 29, 2026
Merged

docs(FR-3153): add VFolder mount subpath/alias config component spec#7931
graphite-app[bot] merged 1 commit into
mainfrom
06-16-docs_fr-3153_add_vfolder_mount_subpath_alias_config_component_spec

Conversation

@nowgnuesLee

@nowgnuesLee nowgnuesLee commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Part of FR-3059 (#7756) · Resolves FR-3153

Summary

  • Add the feature spec for a reusable VFolder mount configuration component supporting per-folder subpath (mount source) and alias / mount destination.
  • Clarifies the source (subpath) vs. target (alias) distinction and scopes the work to a reusable, schema-agnostic form component used by both session creation and Deployment revision.
  • Spec: .specs/FR-3059-vfolder-mount-subpath-alias/spec.md

Stack

  1. docs(FR-3153): add VFolder mount subpath/alias config component spec #7931 — spec (this PR)
  2. feat(FR-3154): add reusable BAIVFolderMountConfigInput component #7932 — component (BAIVFolderMountConfigInput)
  3. feat(FR-3155): add Storybook story for BAIVFolderMountConfigInput #7933 — Storybook story

Test plan

  • Spec renders correctly
  • Acceptance criteria are verifiable

@github-actions github-actions Bot added the size:L 100~500 LoC label Jun 16, 2026

nowgnuesLee commented Jun 16, 2026

Copy link
Copy Markdown
Contributor Author

How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent changes, fast-track this PR to the front of the merge queue

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@nowgnuesLee nowgnuesLee force-pushed the 06-16-docs_fr-3153_add_vfolder_mount_subpath_alias_config_component_spec branch from 9ea409a to 5f9f5ab Compare June 16, 2026 07:19
@nowgnuesLee nowgnuesLee marked this pull request as ready for review June 16, 2026 08:03
Copilot AI review requested due to automatic review settings June 16, 2026 08:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a new feature specification under .specs/ describing a reusable “VFolder mount configuration” form component that supports per-folder subpath (mount source) and alias / mount destination (target path), intended to be shared by session creation and Deployment revision flows.

Changes:

  • Add a spec document defining UX, requirements, and validation rules for subpath + alias per selected vfolder.
  • Clarify terminology (source subpath vs target alias) and outline a schema-agnostic component API contract for consumers to map into GraphQL inputs.

Comment thread .specs/FR-3059-vfolder-mount-subpath-alias/spec.md
@nowgnuesLee nowgnuesLee force-pushed the 06-16-docs_fr-3153_add_vfolder_mount_subpath_alias_config_component_spec branch 3 times, most recently from 8238fc4 to 5a9eb17 Compare June 22, 2026 09:34

@agatha197 agatha197 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@ironAiken2 ironAiken2 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@graphite-app

graphite-app Bot commented Jun 29, 2026

Copy link
Copy Markdown

Merge activity

…7931)

Part of **FR-3059** (#7756) · Resolves **FR-3153**

## Summary
- Add the feature spec for a reusable VFolder mount configuration component supporting per-folder **subpath** (mount source) and **alias / mount destination**.
- Clarifies the source (subpath) vs. target (alias) distinction and scopes the work to a reusable, schema-agnostic form component used by both session creation and Deployment revision.
- Spec: `.specs/FR-3059-vfolder-mount-subpath-alias/spec.md`

## Stack
1. **#7931 — spec (this PR)**
2. #7932 — component (`BAIVFolderMountConfigInput`)
3. #7933 — Storybook story

## Test plan
- [ ] Spec renders correctly
- [ ] Acceptance criteria are verifiable
@graphite-app graphite-app Bot force-pushed the 06-16-docs_fr-3153_add_vfolder_mount_subpath_alias_config_component_spec branch from 5a9eb17 to 413d8ff Compare June 29, 2026 00:45
graphite-app Bot pushed a commit that referenced this pull request Jun 29, 2026
Stacked on #7931 · Part of **FR-3059** (#7756) · Resolves **FR-3154**

## Summary
- Add `BAIVFolderMountConfigInput`, a reusable, **schema-agnostic** controlled input for configuring vfolder mounts (`packages/backend.ai-ui/src/components/fragments/`).
- Composes `BAIVFolderSelect` (multiple) to pick folders; each selected folder renders as a row below the select with:
  - a **mount destination (alias)** input — path inside the container (empty falls back to `/home/work/{name}`),
  - an optional **subpath** free-text input — which subfolder of the vfolder to mount as the source (empty = root),
  - a remove (✕) button.
- Emits a single `VFolderMountConfigValue[]` value via `value` / `onChange`, so it wraps in one `Form.Item` and the consumer maps it to any mount mutation input. No GraphQL/schema coupling.
- Inline validation: alias format (`^[a-zA-Z0-9_/.-]*$`), alias overlap between folders, and relative-subpath / no-`..` checks.
- Adds BUI i18n keys (`comp:BAIVFolderMountConfigInput`) for `en` and `ko`.

## Notes
- Standalone component only. Wiring it into session creation / Deployment revision pages is a follow-up (out of scope for this stack, per the spec).

## Verification (`scripts/verify.sh`)
- Relay / Lint / Format: **PASS**
- `backend.ai-ui` package `tsc --noEmit`: **0 errors**
- The single TypeScript failure reported by `verify.sh` is **pre-existing on `main`** (unrelated Relay input-type mismatch in `react/src/pages/AdminDeploymentPresetSettingPage.tsx`, `service.port: number | null` vs `number`) and is not introduced by this PR.

## Test plan
- [ ] Selecting multiple vfolders adds a row per folder with alias + subpath inputs
- [ ] Remove (✕) clears the row and its alias/subpath values
- [ ] Invalid alias format, overlapping mount paths, and invalid subpath show inline errors
- [ ] Empty mount destination shows the effective default path as helper text
@graphite-app graphite-app Bot merged commit 413d8ff into main Jun 29, 2026
8 checks passed
@graphite-app graphite-app Bot deleted the 06-16-docs_fr-3153_add_vfolder_mount_subpath_alias_config_component_spec branch June 29, 2026 00:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100~500 LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants