diff --git a/bundle/config/validate/folder_permissions.go b/bundle/config/validate/folder_permissions.go index acd0283b3..a376bd776 100644 --- a/bundle/config/validate/folder_permissions.go +++ b/bundle/config/validate/folder_permissions.go @@ -26,7 +26,7 @@ func (f *folderPermissions) Apply(ctx context.Context, b bundle.ReadOnlyBundle) rootPath := b.Config().Workspace.RootPath paths := []string{} - if !libraries.IsVolumesPath(rootPath) { + if !libraries.IsVolumesPath(rootPath) && !libraries.IsWorkspaceSharedPath(rootPath) { paths = append(paths, rootPath) } @@ -40,9 +40,15 @@ func (f *folderPermissions) Apply(ctx context.Context, b bundle.ReadOnlyBundle) b.Config().Workspace.StatePath, b.Config().Workspace.ResourcePath, } { - if !strings.HasPrefix(p, rootPath) && !libraries.IsVolumesPath(p) { - paths = append(paths, p) + if libraries.IsWorkspaceSharedPath(p) || libraries.IsVolumesPath(p) { + continue } + + if strings.HasPrefix(p, rootPath) { + continue + } + + paths = append(paths, p) } var diags diag.Diagnostics diff --git a/bundle/libraries/path.go b/bundle/libraries/path.go index 4533f6de3..3bad40fac 100644 --- a/bundle/libraries/path.go +++ b/bundle/libraries/path.go @@ -41,3 +41,7 @@ func IsWorkspaceLibrary(library *compute.Library) bool { func IsVolumesPath(path string) bool { return strings.HasPrefix(path, "/Volumes/") } + +func IsWorkspaceSharedPath(path string) bool { + return strings.HasPrefix(path, "/Workspace/Shared/") +} diff --git a/bundle/permissions/validate.go b/bundle/permissions/validate.go index acd2e6062..f1a18f430 100644 --- a/bundle/permissions/validate.go +++ b/bundle/permissions/validate.go @@ -3,9 +3,9 @@ package permissions import ( "context" "fmt" - "strings" "github.com/databricks/cli/bundle" + "github.com/databricks/cli/bundle/libraries" "github.com/databricks/cli/libs/diag" ) @@ -21,17 +21,13 @@ func (*validateSharedRootPermissions) Name() string { } func (*validateSharedRootPermissions) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnostics { - if isWorkspaceSharedRoot(b.Config.Workspace.RootPath) { + if libraries.IsWorkspaceSharedPath(b.Config.Workspace.RootPath) { return isUsersGroupPermissionSet(b) } return nil } -func isWorkspaceSharedRoot(path string) bool { - return strings.HasPrefix(path, "/Workspace/Shared/") -} - // isUsersGroupPermissionSet checks that top-level permissions set for bundle contain group_name: users with CAN_MANAGE permission. func isUsersGroupPermissionSet(b *bundle.Bundle) diag.Diagnostics { var diags diag.Diagnostics