Skip to content

Commit 0eb5022

Browse files
authored
Disable default project behaviour for pro workspaces (#3605)
* Disable default project behaviour for pro workspaces * Docstring
1 parent 71cc38f commit 0eb5022

File tree

2 files changed

+31
-30
lines changed

2 files changed

+31
-30
lines changed

src/zenml/zen_stores/base_zen_store.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -450,20 +450,6 @@ def _default_project_name(self) -> str:
450450
"""
451451
return os.getenv(ENV_ZENML_DEFAULT_PROJECT_NAME, DEFAULT_PROJECT_NAME)
452452

453-
def _get_default_project(self) -> ProjectResponse:
454-
"""Get the default project.
455-
456-
Raises:
457-
KeyError: If the default project doesn't exist.
458-
459-
Returns:
460-
The default project.
461-
"""
462-
try:
463-
return self.get_project(self._default_project_name)
464-
except KeyError:
465-
raise KeyError("Unable to find default project.")
466-
467453
def _get_default_stack(
468454
self,
469455
) -> StackResponse:

src/zenml/zen_stores/sql_zen_store.py

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,19 +1155,7 @@ def _initialize(self) -> None:
11551155

11561156
def _initialize_database(self) -> None:
11571157
"""Initialize the database if not already initialized."""
1158-
# When running in a Pro ZenML server, the default project is not
1159-
# created on database initialization but on server onboarding.
1160-
create_default_project = True
1161-
if ENV_ZENML_SERVER in os.environ:
1162-
from zenml.config.server_config import ServerConfiguration
1163-
1164-
if (
1165-
ServerConfiguration.get_server_config().deployment_type
1166-
== ServerDeploymentType.CLOUD
1167-
):
1168-
create_default_project = False
1169-
1170-
if create_default_project:
1158+
if self._default_project_enabled:
11711159
# Make sure the default project exists
11721160
self._get_or_create_default_project()
11731161
# Make sure the default stack exists
@@ -9440,7 +9428,8 @@ def update_project(
94409428
session=session,
94419429
)
94429430
if (
9443-
existing_project.name == self._default_project_name
9431+
self._default_project_enabled
9432+
and existing_project.name == self._default_project_name
94449433
and "name" in project_update.model_fields_set
94459434
and project_update.name != existing_project.name
94469435
):
@@ -9481,7 +9470,10 @@ def delete_project(self, project_name_or_id: Union[str, UUID]) -> None:
94819470
schema_class=ProjectSchema,
94829471
session=session,
94839472
)
9484-
if project.name == self._default_project_name:
9473+
if (
9474+
self._default_project_enabled
9475+
and project.name == self._default_project_name
9476+
):
94859477
raise IllegalOperationError(
94869478
"The default project cannot be deleted."
94879479
)
@@ -9542,6 +9534,27 @@ def _get_or_create_default_project(self) -> ProjectResponse:
95429534
ProjectRequest(name=default_project_name)
95439535
)
95449536

9537+
@property
9538+
def _default_project_enabled(self) -> bool:
9539+
"""Check if the default project is enabled.
9540+
9541+
When running in a Pro ZenML server, the default project is not enabled.
9542+
9543+
Returns:
9544+
True if the default project is enabled, False otherwise.
9545+
"""
9546+
default_project_enabled = True
9547+
if ENV_ZENML_SERVER in os.environ:
9548+
from zenml.config.server_config import ServerConfiguration
9549+
9550+
if (
9551+
ServerConfiguration.get_server_config().deployment_type
9552+
== ServerDeploymentType.CLOUD
9553+
):
9554+
default_project_enabled = False
9555+
9556+
return default_project_enabled
9557+
95459558
# =======================
95469559
# Internal helper methods
95479560
# =======================
@@ -9915,7 +9928,7 @@ def _set_filter_project_id(
99159928
session=session,
99169929
)
99179930
project_id = project.id
9918-
else:
9931+
elif self._default_project_enabled:
99199932
# Use the default project as a last resort.
99209933
try:
99219934
project = self._get_schema_by_name_or_id(
@@ -9926,6 +9939,8 @@ def _set_filter_project_id(
99269939
project_id = project.id
99279940
except KeyError:
99289941
raise ValueError("Project scope missing from the filter")
9942+
else:
9943+
raise ValueError("Project scope missing from the filter")
99299944

99309945
filter_model.project = project_id
99319946

0 commit comments

Comments
 (0)