Add shareable ReadWriteMany volumes across apps #60
+330
−42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
ReadWriteManyto be shared across multiple apps in the same project so the same PVC can be mounted into foreign apps under independent mount paths.Description
shareWithOtherApps(Boolean) andsharedVolumeId(String?) and update the generated Zod model accordingly.storage-edit-overlay.tsx) to allow togglingShare with other apps in projectforReadWriteManyvolumes and to select an existing shared volume from other apps when adding a volume to a foreign app, preserving an independent mount path per app.getShareableVolumesserver action andgetShareableVolumesByProjectIdservice method to list eligible shared volumes in the same project (must beReadWriteMany,shareWithOtherApps=true, and not already a shared replica).saveVolumeaction to support saving a foreign-app volume that references asharedVolumeId, including validation that the shared volume belongs to the same project, is from a different app, and is shareable.pvc.service.tsso a single base PVC is created for a shared volume and mounted into all apps referencing it, while each app keeps its own mount path; dedupe PVC definitions and map mounts tosharedVolumeId ?? id.monitoring.service.ts) and UI list (storages.tsx) to report usage and capacity using the base shared volume when relevant.file-browser-service.ts,restore.service.ts).Testing
yarn dev, the app started and a page screenshot was captured, but full runtime failed at app initialization due to missing Prisma client / NextAuth secret (development environment constraint).Codex Task