diff --git a/rest/database/models/enums.py b/rest/database/models/enums.py index ed4ad701..9f2fe8a3 100644 --- a/rest/database/models/enums.py +++ b/rest/database/models/enums.py @@ -9,6 +9,14 @@ class Config: use_enum_values = True +class PieceExecutionMode(str, enum.Enum): + docker = 'docker' + worker = 'worker' + + class Config: + use_enum_values = True + + class Permission(str, enum.Enum): owner = 'owner' read = 'read' diff --git a/rest/database/models/piece_repository.py b/rest/database/models/piece_repository.py index 6d087b5e..1d6725c7 100644 --- a/rest/database/models/piece_repository.py +++ b/rest/database/models/piece_repository.py @@ -1,6 +1,6 @@ from database.models.base import Base, BaseDatabaseModel from sqlalchemy import Column, String, Integer, DateTime, Enum, JSON, ForeignKey -from database.models.enums import RepositorySource +from database.models.enums import RepositorySource, PieceExecutionMode from sqlalchemy.orm import relationship from datetime import datetime @@ -16,6 +16,7 @@ class PieceRepository(Base, BaseDatabaseModel): path = Column(String(250), nullable=True) url = Column(String(250), nullable=True) version = Column(String(10), nullable=True) + piece_execution_mode = Column(Enum(PieceExecutionMode), nullable=False, default=PieceExecutionMode.docker.value) dependencies_map = Column(JSON, nullable=True) compiled_metadata = Column(JSON, nullable=True) workspace_id = Column(Integer, ForeignKey("workspace.id", ondelete='cascade'), nullable=False)