You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In order to align with the new project management architecture, we need to split the current Jobs object into two distinct entities: Projects and Tasks. This is a foundational change that will enable a more granular and accurate representation of user workflows in Talis — such as long-running networks with multiple instance batches.
Background
Currently, the Jobs object represents both high-level and low-level actions. This has made it difficult to model the user-intended workflow cleanly. With the new model:
A Project represents a long-running environment like a testnet or persistent test.
A Task represents a discrete action within a project, such as provisioning or deleting instances and it is created automatically without direct user's intervention.
This separation improves traceability, auditability, and aligns with the desired API semantics.
Goals
Introduce a Project model to encapsulate a persistent testing environment.
Introduce a Task model to represent actions initiated by the user (e.g. provisioning instances).
Migrate existing Jobs data into this new structure (if needed).
Refactor any services, APIs, or DB code that currently relies on the old Jobs object.
Update the /jobs routes to /projects and implement new endpoints to access tasks under a project.
Ensure proper relationship is enforced between projects and tasks in the database (i.e. foreign keys or references).
Update task tracking logic to append tasks to the appropriate project.
Scope
Define and implement Project and Task DB models (replacing/augmenting Job)
Update ORM usage and DB migrations accordingly
Replace /jobs API routes with /projects and introduce nested /projects/:id/tasks
Update internal logic for creation and tracking of tasks when a project or instance is created
Update all relevant tests to use the new models (especially client_test.go)
🔧 Split Jobs Object into Projects and Tasks
Overview
In order to align with the new project management architecture, we need to split the current
Jobs
object into two distinct entities:Projects
andTasks
. This is a foundational change that will enable a more granular and accurate representation of user workflows in Talis — such as long-running networks with multiple instance batches.Background
Currently, the
Jobs
object represents both high-level and low-level actions. This has made it difficult to model the user-intended workflow cleanly. With the new model:This separation improves traceability, auditability, and aligns with the desired API semantics.
Goals
Project
model to encapsulate a persistent testing environment.Task
model to represent actions initiated by the user (e.g. provisioning instances).Jobs
data into this new structure (if needed).Jobs
object./jobs
routes to/projects
and implement new endpoints to access tasks under a project.Scope
Project
andTask
DB models (replacing/augmentingJob
)/jobs
API routes with/projects
and introduce nested/projects/:id/tasks
client_test.go
)Jobs
referencesReferences
The text was updated successfully, but these errors were encountered: