Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

feat: Management pages for templates (HEXA-1129, HEXA-1130) #1070

Merged
merged 104 commits into from
Feb 17, 2025
Merged
Show file tree
Hide file tree
Changes from 103 commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
7b61ade
Add tabs
YolanFery Jan 28, 2025
7db7f7a
Feature flag
YolanFery Jan 28, 2025
db79134
Better layout
YolanFery Jan 28, 2025
8f7c30e
Layout
YolanFery Jan 28, 2025
7be1777
Filter
YolanFery Jan 28, 2025
1d36af4
Debounced query
YolanFery Jan 28, 2025
f663f1c
Remove description
YolanFery Jan 28, 2025
5ef8e48
Filter
YolanFery Jan 28, 2025
7762ec4
Merge remote-tracking branch 'origin/main' into HEXA-1129-show-create…
YolanFery Jan 28, 2025
c06aed7
Endpoint to delete
YolanFery Jan 28, 2025
f2a7aee
Endpoint to delete
YolanFery Jan 28, 2025
bfe12d0
Delete templates
YolanFery Jan 28, 2025
ba5a5a1
Can Delete
YolanFery Jan 29, 2025
1aeff68
v1 Dialog
YolanFery Jan 29, 2025
f797449
v2 Dialog
YolanFery Jan 29, 2025
f82a091
Fragment
YolanFery Jan 29, 2025
5fc246a
Fragment
YolanFery Jan 29, 2025
3ebcfcb
Merge remote-tracking branch 'origin/main' into HEXA-1129-show-create…
YolanFery Jan 29, 2025
fd6874c
Translation
YolanFery Jan 29, 2025
a11a9dd
Fix tests
YolanFery Jan 29, 2025
abf51eb
Merge remote-tracking branch 'origin/main' into HEXA-1129-show-create…
YolanFery Feb 3, 2025
38ce9aa
Fix schema
YolanFery Feb 3, 2025
375afdc
Fix schema
YolanFery Feb 3, 2025
0e706f6
Merge
YolanFery Feb 3, 2025
9eb13d6
Fix import
YolanFery Feb 3, 2025
6885e97
Fix test
YolanFery Feb 3, 2025
4c4fc66
Cards
YolanFery Feb 3, 2025
44130f1
V1
YolanFery Feb 4, 2025
241ccc2
Remove download button
YolanFery Feb 4, 2025
6187e5a
Minor
YolanFery Feb 4, 2025
256a72d
Working updates
YolanFery Feb 4, 2025
4ca4267
Permission to update + delete
YolanFery Feb 4, 2025
844b108
Minor
YolanFery Feb 4, 2025
a9493d2
TODO
YolanFery Feb 4, 2025
78128ec
TODO
YolanFery Feb 4, 2025
65413d3
Better layout
YolanFery Feb 4, 2025
97f0261
Better layout
YolanFery Feb 4, 2025
b6db3d3
Show user
YolanFery Feb 4, 2025
e59ec0c
Deeplink
YolanFery Feb 5, 2025
cdcce15
Fix console error
YolanFery Feb 5, 2025
82fbc91
V1 card in the pipeline view
YolanFery Feb 5, 2025
c92e6d8
Simplify fetching
YolanFery Feb 5, 2025
9f4e643
Better layout
YolanFery Feb 5, 2025
f1f56a2
Add user
YolanFery Feb 5, 2025
ee50b79
Small UI improvement
YolanFery Feb 5, 2025
c3cb227
Better query by code
YolanFery Feb 5, 2025
34b1992
Remove nav item
YolanFery Feb 5, 2025
f74b3d5
Ui for cards
YolanFery Feb 5, 2025
d667a73
Descriprtion
YolanFery Feb 5, 2025
939d76b
Per page
YolanFery Feb 5, 2025
7905851
Design
YolanFery Feb 5, 2025
90c974d
TODOs
YolanFery Feb 5, 2025
0c92084
Optional views
YolanFery Feb 5, 2025
5465e66
Better layout
YolanFery Feb 5, 2025
08ee7d7
Fix default
YolanFery Feb 5, 2025
34d4d71
Create button
YolanFery Feb 5, 2025
ec7ecb9
Button on hover
YolanFery Feb 5, 2025
15150a1
Button to create
YolanFery Feb 5, 2025
9909865
Link
YolanFery Feb 5, 2025
446f0a7
Links
YolanFery Feb 5, 2025
b06b4c5
Link to versions
YolanFery Feb 6, 2025
e5c11de
V1 versions
YolanFery Feb 6, 2025
e87fbc5
Bug
YolanFery Feb 6, 2025
49ed155
Merge remote-tracking branch 'origin/main' into HEXA-1130
YolanFery Feb 7, 2025
69ebca4
Fix redirect
YolanFery Feb 7, 2025
00174b5
Routing
YolanFery Feb 7, 2025
f55228f
Rename
YolanFery Feb 7, 2025
77ac394
Rename
YolanFery Feb 7, 2025
2de0da4
Split
YolanFery Feb 7, 2025
e802636
Extract header
YolanFery Feb 7, 2025
c685735
Refactor
YolanFery Feb 7, 2025
84386cd
Error
YolanFery Feb 7, 2025
d156f29
Error
YolanFery Feb 7, 2025
4f34912
Merge remote-tracking branch 'origin/main' into HEXA-1130
YolanFery Feb 10, 2025
a46e184
Error simplify
YolanFery Feb 10, 2025
ea094bf
Translate
YolanFery Feb 10, 2025
58384cd
Merge remote-tracking branch 'origin/main' into HEXA-1130
YolanFery Feb 10, 2025
e6d3c65
Snapshot
YolanFery Feb 10, 2025
86af293
Fix test
YolanFery Feb 10, 2025
8a54c32
Fix test
YolanFery Feb 10, 2025
3d2f238
Merge remote-tracking branch 'origin/main' into HEXA-1130
YolanFery Feb 10, 2025
2b7cf7b
Merge remote-tracking branch 'origin/main' into HEXA-1130
YolanFery Feb 10, 2025
c7a167b
Remove todo
YolanFery Feb 10, 2025
cde06fd
Toggle button
YolanFery Feb 10, 2025
4858455
Translate
YolanFery Feb 10, 2025
93f20f4
Propose initial name and description
YolanFery Feb 10, 2025
2bcb2c4
Propose initial name and description
YolanFery Feb 10, 2025
abe8b54
Fix import
YolanFery Feb 10, 2025
93818d4
minor fixes
qgerome Feb 14, 2025
82990b5
Merge remote-tracking branch 'origin/main' into HEXA-1130
YolanFery Feb 14, 2025
15c419d
Translate
YolanFery Feb 14, 2025
d570870
Remove id
YolanFery Feb 14, 2025
ca8b58b
User fragment
YolanFery Feb 14, 2025
099a6ec
Titlte of page
YolanFery Feb 14, 2025
e33bc09
Fix cron parser
YolanFery Feb 14, 2025
5cceaa7
Small refactor color test button
YolanFery Feb 14, 2025
b179619
Simplify options
YolanFery Feb 14, 2025
98d6886
Actions
YolanFery Feb 14, 2025
4773f6b
Tab change
YolanFery Feb 14, 2025
8c6dea9
Tab change
YolanFery Feb 15, 2025
db60a9a
Downgrade cron parsed
YolanFery Feb 15, 2025
a4aa2f1
Merge remote-tracking branch 'origin/main' into HEXA-1130
YolanFery Feb 15, 2025
93c33ed
Tab
YolanFery Feb 15, 2025
4e843ed
Merge branch 'main' into HEXA-1130
YolanFery Feb 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
"codemirror": "^6.0.1",
"codemirror-lang-r": "^0.1.0-2",
"cookies-next": "^5.0.0",
"cron-parser": "^5.0.0",
"cron-parser": "^4.9.0",
"cronstrue": "^2.50.0",
"deepmerge": "^4.3.1",
"dotenv": "^16.4.5",
Expand Down
14 changes: 12 additions & 2 deletions public/locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,12 @@
"Are you sure you want to delete the access to \"{{name}}\" for this workspace?": "Are you sure you want to delete the access to \"{{name}}\" for this workspace?",
"Are you sure you want to delete the connection \"{{name}}\"?": "Are you sure you want to delete the connection \"{{name}}\"?",
"Are you sure you want to delete the dataset \"{{name}}\"? It will make it unavailable for all workspaces.": "Are you sure you want to delete the dataset \"{{name}}\"? It will make it unavailable for all workspaces.",
"Are you sure you want to delete the template {name}?": "Are you sure you want to delete the template {name}?",
"Are you sure you want to delete the version \"{{name}}\"?": "Are you sure you want to delete the version \"{{name}}\"?",
"Are you sure you want to delete the version \"{{versionNumber}}\"?": "Are you sure you want to delete the version \"{{versionNumber}}\"?",
"Attribute": "Attribute",
"Attributes": "Attributes",
"Available Templates": "Available Templates",
"Back": "Back",
"Be aware that this action is irreversible and the execution cannot be resumed. It can lead to an inconsistent state if there was any database or filesystem operation.": "Be aware that this action is irreversible and the execution cannot be resumed. It can lead to an inconsistent state if there was any database or filesystem operation.",
"Breadcrumbs": "Breadcrumbs",
Expand Down Expand Up @@ -109,7 +112,7 @@
"Create account": "Create account",
"Create connection": "Create connection",
"Create new version": "Create new version",
"Create pipeline {{pipelineName}}": "Create pipeline {{pipelineName}}",
"Create pipeline": "Create pipeline",
"Create your account": "Create your account",
"Created at": "Created at",
"Created At": "Created At",
Expand Down Expand Up @@ -138,6 +141,7 @@
"Delete": "Delete",
"Delete invitation": "Delete invitation",
"Delete pipeline": "Delete pipeline",
"Delete template": "Delete template",
"Deprecated features": "Deprecated features",
"Description": "Description",
"Description is required": "Description is required",
Expand Down Expand Up @@ -211,7 +215,7 @@
"Home": "Home",
"Host": "Host",
"How to create a pipeline": "How to create a pipeline",
"I confirm that I want to publish this Pipeline code as a Template with all OpenHexa users.": "I confirm that I want to publish this Pipeline code as a Template with all OpenHexa users.",
"I confirm that I want to publish this code and make it available <1>to all users of the OpenHEXA platform</1>": "I confirm that I want to publish this code and make it available <1>to all users of the OpenHEXA platform</1>",
"Iaso Instance URL": "Iaso Instance URL",
"Identifier": "Identifier",
"Image": "Image",
Expand Down Expand Up @@ -277,6 +281,7 @@
"No elements to display": "No elements to display",
"No messages": "No messages",
"No outputs": "No outputs",
"No template to show": "No template to show",
"No value": "No value",
"No version yet": "No version yet",
"No workspace available at the moment": "No workspace available at the moment",
Expand Down Expand Up @@ -413,6 +418,7 @@
"succeeded {{relativeTime}} in {{durationStr}}": "succeeded {{relativeTime}} in {{durationStr}}",
"Succeeded on {{relativeTime}}": "Succeeded on {{relativeTime}}",
"Successfully created pipeline {{pipelineName}}": "Successfully created pipeline {{pipelineName}}",
"Successfully deleted template {{ name }}": "Successfully deleted template {{ name }}",
"Suggested help topics": "Suggested help topics",
"Tables": "Tables",
"Tabs": "Tabs",
Expand All @@ -421,6 +427,7 @@
"Template description": "Template description",
"Template Description": "Template Description",
"Template name": "Template name",
"Templates": "Templates",
"Terminating": "Terminating",
"The \"Access key ID\" of the AWS user with access to the bucket. This can be found in the AWS console.": "The \"Access key ID\" of the AWS user with access to the bucket. This can be found in the AWS console.",
"The \"secret access key\" of the AWS user with access to the bucket. This can be found in the AWS console.": "The \"secret access key\" of the AWS user with access to the bucket. This can be found in the AWS console.",
Expand Down Expand Up @@ -508,6 +515,8 @@
"Version {{version}}": "Version {{version}}",
"Version name. ex: v2": "Version name. ex: v2",
"Versions": "Versions",
"Versions of {{pipeline}}": "Versions of {{pipeline}}",
"Versions of {{template}}": "Versions of {{template}}",
"View": "View",
"View all": "View all",
"Viewer": "Viewer",
Expand All @@ -532,6 +541,7 @@
"You are about to replace the workspace database password.": "You are about to replace the workspace database password.",
"You are not allowed to create a pipeline.": "You are not allowed to create a pipeline.",
"You are not allowed to create a Template.": "You are not allowed to create a Template.",
"You are not allowed to delete the template {{ name }}": "You are not allowed to delete the template {{ name }}",
"You are not authorized to perform this action": "You are not authorized to perform this action",
"You can create a connection based on our supported integrations": "You can create a connection based on our supported integrations",
"You can set a custom docker image that will be used to run pipelines and jupyterlab. That image can be created, for example, by extending blsq/openhexa-blsq-environment.": "You can set a custom docker image that will be used to run pipelines and jupyterlab. That image can be created, for example, by extending blsq/openhexa-blsq-environment.",
Expand Down
14 changes: 12 additions & 2 deletions public/locales/fr/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,12 @@
"Are you sure you want to delete the access to \"{{name}}\" for this workspace?": "Êtes-vous sûr de vouloir supprimer l'accès à \"{{name}}\" pour ce workspace ?",
"Are you sure you want to delete the connection \"{{name}}\"?": "Êtes-vous sûr de vouloir supprimer la connexion \"{{name}}\" ?",
"Are you sure you want to delete the dataset \"{{name}}\"? It will make it unavailable for all workspaces.": "Êtes-vous sûr de vouloir supprimer le jeu de données \"{{name}}\" ? Cela le rendra indisponible pour tous les workspaces.",
"Are you sure you want to delete the template {name}?": "Etes-vous sûr de vouloir supprimer le modèle {name}?",
"Are you sure you want to delete the version \"{{name}}\"?": "Êtes-vous sûr de vouloir supprimer la version \"{{name}}\" ?",
"Are you sure you want to delete the version \"{{versionNumber}}\"?": "Êtes vous sûr de vouloir supprimer la version \"{{versionNumber}}\" ?",
"Attribute": "Attribut",
"Attributes": "Attributs",
"Available Templates": "Modèles disponibles",
"Back": "Retour",
"Be aware that this action is irreversible and the execution cannot be resumed. It can lead to an inconsistent state if there was any database or filesystem operation.": "Sachez que cette action est irréversible et que l'exécution ne peut pas être reprise. Elle peut conduire à un état incohérent s'il y a eu une opération sur la base de données ou le système de fichiers.",
"Breadcrumbs": "Chemin de navigation",
Expand Down Expand Up @@ -111,7 +114,7 @@
"Create account": "Créer un compte",
"Create connection": "Créer une connexion",
"Create new version": "Créer une nouvelle version",
"Create pipeline {{pipelineName}}": "Créer la pipeline {{pipelineName}}",
"Create pipeline": "Créer un pipeline",
"Create your account": "Créez votre compte",
"Created at": "Créé à",
"Created At": "Créé à",
Expand Down Expand Up @@ -140,6 +143,7 @@
"Delete": "Supprimer",
"Delete invitation": "Supprimer l'invitation",
"Delete pipeline": "Supprimer la pipeline",
"Delete template": "Supprimer le modèle",
"Deprecated features": "Fonctionnalités obsolètes",
"Description": "Description",
"Description is required": "La description est obligatoire",
Expand Down Expand Up @@ -213,7 +217,7 @@
"Home": "Accueil",
"Host": "Hôte",
"How to create a pipeline": "Comment créer un pipeline",
"I confirm that I want to publish this Pipeline code as a Template with all OpenHexa users.": "Je confirme que je veux publier ce code de pipeline en tant que modèle avec tous les utilisateurs d'OpenHexa.",
"I confirm that I want to publish this code and make it available <1>to all users of the OpenHEXA platform</1>": "Je confirme que je veux publier ce code et le rendre disponible <1>à tous les utilisateurs de la plateforme OpenHEXA</1>",
"Iaso Instance URL": "URL de l'instance Iaso",
"Identifier": "Identifiant",
"Image": "Image",
Expand Down Expand Up @@ -279,6 +283,7 @@
"No elements to display": "Aucun élément à afficher",
"No messages": "Aucun message",
"No outputs": "Aucune sortie",
"No template to show": "Aucun modèle à afficher",
"No value": "Aucune valeur",
"No version yet": "Pas encore de version",
"No workspace available at the moment": "Aucun workspace disponible pour le moment",
Expand Down Expand Up @@ -415,6 +420,7 @@
"succeeded {{relativeTime}} in {{durationStr}}": "a succédé à {{relativeTime}} dans {{durationStr}}",
"Succeeded on {{relativeTime}}": "Réussi le {{relativeTime}}",
"Successfully created pipeline {{pipelineName}}": "Création réussie de la pipeline {{pipelineName}}",
"Successfully deleted template {{ name }}": "Modèle {{ name }} supprimé avec succès",
"Suggested help topics": "Sujets d'aide suggérés",
"Tables": "Tableaux",
"Tabs": "Onglets",
Expand All @@ -423,6 +429,7 @@
"Template description": "Description du modèle",
"Template Description": "Description du modèle",
"Template name": "Nom du modèle",
"Templates": "Modèles",
"Terminating": "En cours d'arrêt",
"The \"Access key ID\" of the AWS user with access to the bucket. This can be found in the AWS console.": "L'ID de la clé d'accès de l'utilisateur AWS ayant accès au seau. Cette clé peut être trouvée dans la console AWS.",
"The \"secret access key\" of the AWS user with access to the bucket. This can be found in the AWS console.": "La \"clé d'accès secrète\" de l'utilisateur AWS ayant accès au seau. Cette clé peut être trouvée dans la console AWS.",
Expand Down Expand Up @@ -510,6 +517,8 @@
"Version {{version}}": "Version {{version}}",
"Version name. ex: v2": "Nom de la version. ex : v2",
"Versions": "Versions",
"Versions of {{pipeline}}": "Versions de {{pipeline}}",
"Versions of {{template}}": "Versions de {{template}}",
"View": "Voir",
"View all": "Voir tous",
"Viewer": "Lecture seule",
Expand All @@ -534,6 +543,7 @@
"You are about to replace the workspace database password.": "Vous êtes sur le point de remplacer le mot de passe de la base de données du workspace.",
"You are not allowed to create a pipeline.": "Vous n'êtes pas autorisé à créer une pipeline.",
"You are not allowed to create a Template.": "Vous n'êtes pas autorisé à créer un modèle.",
"You are not allowed to delete the template {{ name }}": "Vous n'êtes pas autorisé à supprimer le modèle {{ name }}",
"You are not authorized to perform this action": "Vous n'êtes pas autorisé à effectuer cette action",
"You can create a connection based on our supported integrations": "Vous pouvez créer une connexion sur la base de nos intégrations prises en charge",
"You can set a custom docker image that will be used to run pipelines and jupyterlab. That image can be created, for example, by extending blsq/openhexa-blsq-environment.": "Vous pouvez définir une image docker personnalisée qui sera utilisée pour exécuter les pipelines et jupyterlab. Cette image peut être créée, par exemple, en étendant blsq/openhexa-blsq-environment.",
Expand Down
120 changes: 117 additions & 3 deletions schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -724,6 +724,26 @@ enum CreatePipelineFromTemplateVersionError {
PIPELINE_ALREADY_EXISTS
}

"""
Represents the input for deleting a pipeline template.
"""
input DeletePipelineTemplateInput {
id: UUID!
}

"""
Represents the result of deleting a pipeline.
"""
type DeletePipelineTemplateResult {
success: Boolean!
errors: [PipelineTemplateError!]!
}

enum PipelineTemplateError {
PIPELINE_TEMPLATE_NOT_FOUND
PERMISSION_DENIED
}

"""
Represents the input for creating a new pipeline from a template version.
"""
Expand Down Expand Up @@ -2131,6 +2151,7 @@ type Mutation {
"""Creates a new pipeline template version."""
createPipelineTemplateVersion(input: CreatePipelineTemplateVersionInput!): CreatePipelineTemplateVersionResult!
createPipelineFromTemplateVersion(input: CreatePipelineFromTemplateVersionInput!): CreatePipelineFromTemplateVersionResult!
deletePipelineTemplate(input: DeletePipelineTemplateInput): DeletePipelineTemplateResult! @loginRequired
createWorkspace(input: CreateWorkspaceInput!): CreateWorkspaceResult!
updateWorkspace(input: UpdateWorkspaceInput!): UpdateWorkspaceResult!
deleteWorkspace(input: DeleteWorkspaceInput!): DeleteWorkspaceResult!
Expand Down Expand Up @@ -2204,6 +2225,12 @@ type Mutation {

"""Pin or unpin a dataset for a workspace."""
pinDataset(input: PinDatasetInput!): PinDatasetResult!

"""Updates an existing template."""
updatePipelineTemplate(input: UpdateTemplateInput!): UpdateTemplateResult!

updateTemplateVersion(input: UpdateTemplateVersionInput!): UpdateTemplateVersionResult!
deleteTemplateVersion(input: DeleteTemplateVersionInput!): DeleteTemplateVersionResult!
}

type NotebookServer {
Expand Down Expand Up @@ -2488,9 +2515,10 @@ type PipelineTemplate {
code: String!
description: String
config: String
versions: [PipelineTemplateVersion!]
versions(page: Int, perPage: Int): TemplateVersionPage!
currentVersion: PipelineTemplateVersion
sourcePipeline: Pipeline
permissions: PipelineTemplatePermissions!
}

"""Represents paged result of fetching pipeline templates."""
Expand All @@ -2503,7 +2531,18 @@ type PipelineTemplatePage {

"""Represents the permissions for a pipeline template."""
type PipelineTemplatePermissions {
createVersion: Boolean!
delete: Boolean!
update: Boolean!
}

"""
Represents a page of template versions.
"""
type TemplateVersionPage {
items: [PipelineTemplateVersion!]!
pageNumber: Int!
totalPages: Int!
totalItems: Int!
}

"""Represents a version of a pipeline template."""
Expand All @@ -2513,6 +2552,9 @@ type PipelineTemplateVersion {
changelog: String
createdAt: DateTime!
template: PipelineTemplate!
user: User
permissions: PipelineTemplateVersionPermissions!
isLatestVersion: Boolean!
}

"""Represents the permissions for a pipeline template version."""
Expand Down Expand Up @@ -2734,10 +2776,12 @@ type Query {

"""Retrieves a pipeline by workspace slug and code."""
pipelineByCode(workspaceSlug: String!, code: String!): Pipeline
"""Retrieves a template by code."""
templateByCode(code: String!): PipelineTemplate

"""Retrieves a pipeline run by ID."""
pipelineRun(id: UUID!): PipelineRun
pipelineTemplates(page: Int = 1, perPage: Int = 15, search: String): PipelineTemplatePage!
pipelineTemplates(page: Int = 1, perPage: Int = 15, search: String, workspaceSlug: String): PipelineTemplatePage!
workspace(slug: String!): Workspace
workspaces(query: String, page: Int, perPage: Int): WorkspacePage!
pendingWorkspaceInvitations(page: Int! = 1, perPage: Int = 10): WorkspaceInvitationPage!
Expand Down Expand Up @@ -3366,6 +3410,29 @@ input UpdatePipelineInput {
webhookEnabled: Boolean
}

"""
Enum representing the possible errors that can occur when updating a template.
"""
enum UpdateTemplateError {
NOT_FOUND
PERMISSION_DENIED
}

"""Represents the input for updating a template."""
input UpdateTemplateInput {
id: UUID!
name: String
config: JSON
description: String
}

"""Represents the result of updating a template."""
type UpdateTemplateResult {
success: Boolean!
errors: [UpdateTemplateError!]!
template: PipelineTemplate
}

"""Represents the input for updating the progress of a pipeline."""
input UpdatePipelineProgressInput {
percent: Int!
Expand Down Expand Up @@ -3776,3 +3843,50 @@ type WorkspacePermissions {
createDataset: Boolean!
}


"""
Represents the input for deleting a template version.
"""
input DeleteTemplateVersionInput {
id: UUID!
}

"""
Represents the result of deleting a template version.
"""
type DeleteTemplateVersionResult {
success: Boolean!
errors: [DeleteTemplateVersionError!]!
}

enum DeleteTemplateVersionError {
TEMPLATE_VERSION_NOT_FOUND
PERMISSION_DENIED
TEMPLATE_NOT_FOUND
}

"""
Represents the input for updating a template version.
"""
input UpdateTemplateVersionInput {
id: UUID!
changelog: String
}

"""
Enum representing the possible errors that can occur when updating a template version.
"""
enum UpdateTemplateVersionError {
NOT_FOUND
PERMISSION_DENIED
}

"""
Represents the result of updating a template version.
"""
type UpdateTemplateVersionResult {
success: Boolean!
errors: [UpdateTemplateVersionError!]!
templateVersion: PipelineTemplateVersion
}

Loading
Loading