Skip to content

Commit 0e821aa

Browse files
authored
fix: breaking changes mechanism (HEXA-1469) (#340)
1 parent b0017e7 commit 0e821aa

6 files changed

Lines changed: 567 additions & 10 deletions

File tree

openhexa/cli/api.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,19 @@ def _detect_graphql_breaking_changes(token):
150150
)
151151
for change in breaking_changes:
152152
click.secho(f"- {change.description}", fg="yellow")
153-
click.secho(
154-
"This could lead to unexpected results.\n"
155-
f"Please update the SDK to the latest version {latest_version} "
156-
f"(using `pip install openhexa-sdk=={latest_version}`) or use a version of the SDK compatible with the server.",
157-
fg="red",
158-
)
153+
click.secho("This could lead to unexpected results.", fg="red")
154+
if current_version == latest_version:
155+
click.secho(
156+
"The SDK has schema changes not yet supported by the server. "
157+
"To ensure compatibility with the server, it might be required to use a older version of the SDK.",
158+
fg="red",
159+
)
160+
else:
161+
click.secho(
162+
f"Please update the SDK to the latest version {latest_version} "
163+
f"(using `pip install openhexa-sdk=={latest_version}`) to ensure compatibility.",
164+
fg="red",
165+
)
159166

160167

161168
def graphql(query: str, variables=None, token=None):

openhexa/cli/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def app(ctx):
7979
if settings.last_version_check is None or now_timestamp - settings.last_version_check > ONE_HOUR:
8080
installed_version, latest_version = get_library_versions()
8181
settings.last_version_check = now_timestamp
82-
if installed_version != latest_version or True:
82+
if installed_version != latest_version:
8383
click.secho(
8484
"\n".join(
8585
(

openhexa/graphql/graphql_client/__init__.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
AccessmodProjectOrder,
9090
AddOrganizationMemberError,
9191
AddToFavoritesError,
92+
AddWebappToShortcutsError,
9293
ApproveAccessmodAccessRequestError,
9394
ArchiveWorkspaceError,
9495
BucketObjectType,
@@ -105,6 +106,7 @@
105106
CreateDatasetVersionError,
106107
CreateDatasetVersionFileError,
107108
CreateMembershipError,
109+
CreateOrganizationError,
108110
CreatePipelineFromTemplateVersionError,
109111
CreatePipelineTemplateVersionError,
110112
CreateTeamError,
@@ -126,6 +128,7 @@
126128
DeleteDatasetVersionError,
127129
DeleteMembershipError,
128130
DeleteMetadataAttributeError,
131+
DeleteOrganizationError,
129132
DeleteOrganizationInvitationError,
130133
DeleteOrganizationMemberError,
131134
DeletePipelineVersionError,
@@ -152,6 +155,7 @@
152155
IASOMetadataType,
153156
InviteOrganizationMemberError,
154157
InviteWorkspaceMembershipError,
158+
IssueWorkspaceTokenError,
155159
JoinWorkspaceError,
156160
LaunchAccessmodAnalysisError,
157161
LaunchNotebookServerError,
@@ -174,12 +178,14 @@
174178
PipelineRunStatus,
175179
PipelineRunTrigger,
176180
PipelineTemplateError,
181+
PipelineTemplateOrderBy,
177182
PipelineType,
178183
PrepareObjectDownloadError,
179184
PrepareObjectUploadError,
180185
PrepareVersionFileDownloadError,
181186
RegisterError,
182187
RemoveFromFavoritesError,
188+
RemoveWebappFromShortcutsError,
183189
RequestAccessmodAccessError,
184190
ResendOrganizationInvitationError,
185191
ResendWorkspaceInvitationError,
@@ -197,7 +203,9 @@
197203
UpdateDatasetError,
198204
UpdateDatasetVersionError,
199205
UpdateMembershipError,
206+
UpdateOrganizationError,
200207
UpdateOrganizationMemberError,
208+
UpdateOrganizationSubscriptionError,
201209
UpdatePipelineError,
202210
UpdatePipelineVersionError,
203211
UpdateTeamError,
@@ -209,6 +217,7 @@
209217
UpdateWorkspaceMemberError,
210218
UpgradePipelineVersionFromTemplateError,
211219
VerifyDeviceError,
220+
WebappType,
212221
WorkspaceInvitationStatus,
213222
WorkspaceMembershipRole,
214223
)
@@ -237,6 +246,7 @@
237246
AddOrganizationMemberInput,
238247
AddPipelineOutputInput,
239248
AddToFavoritesInput,
249+
AddWebappToShortcutsInput,
240250
ApproveAccessmodAccessRequestInput,
241251
ArchiveWorkspaceInput,
242252
ConnectionFieldInput,
@@ -253,6 +263,7 @@
253263
CreateDatasetVersionFileInput,
254264
CreateDatasetVersionInput,
255265
CreateMembershipInput,
266+
CreateOrganizationInput,
256267
CreatePipelineFromTemplateVersionInput,
257268
CreatePipelineInput,
258269
CreatePipelineRecipientInput,
@@ -272,6 +283,7 @@
272283
DeleteDatasetVersionInput,
273284
DeleteMembershipInput,
274285
DeleteMetadataAttributeInput,
286+
DeleteOrganizationInput,
275287
DeleteOrganizationInvitationInput,
276288
DeleteOrganizationMemberInput,
277289
DeletePipelineInput,
@@ -295,6 +307,7 @@
295307
IASOQueryFilterInput,
296308
InviteOrganizationMemberInput,
297309
InviteWorkspaceMemberInput,
310+
IssueWorkspaceTokenInput,
298311
JoinWorkspaceInput,
299312
LaunchAccessmodAnalysisInput,
300313
LaunchNotebookServerInput,
@@ -314,10 +327,12 @@
314327
PrepareVersionFileDownloadInput,
315328
RegisterInput,
316329
RemoveFromFavoritesInput,
330+
RemoveWebappFromShortcutsInput,
317331
RequestAccessmodAccessInput,
318332
ResendOrganizationInvitationInput,
319333
ResendWorkspaceInvitationInput,
320334
ResetPasswordInput,
335+
ResourceCountsInput,
321336
RunDAGInput,
322337
RunPipelineInput,
323338
SetDAGRunFavoriteInput,
@@ -334,7 +349,9 @@
334349
UpdateDatasetInput,
335350
UpdateDatasetVersionInput,
336351
UpdateMembershipInput,
352+
UpdateOrganizationInput,
337353
UpdateOrganizationMemberInput,
354+
UpdateOrganizationSubscriptionInput,
338355
UpdatePipelineInput,
339356
UpdatePipelineProgressInput,
340357
UpdatePipelineRecipientInput,
@@ -443,6 +460,8 @@
443460
"AddToFavoritesInput",
444461
"AddWebappToFavorites",
445462
"AddWebappToFavoritesAddToFavorites",
463+
"AddWebappToShortcutsError",
464+
"AddWebappToShortcutsInput",
446465
"ApproveAccessmodAccessRequestError",
447466
"ApproveAccessmodAccessRequestInput",
448467
"ArchiveWorkspace",
@@ -486,6 +505,8 @@
486505
"CreateDatasetVersionInput",
487506
"CreateMembershipError",
488507
"CreateMembershipInput",
508+
"CreateOrganizationError",
509+
"CreateOrganizationInput",
489510
"CreatePipeline",
490511
"CreatePipelineCreatePipeline",
491512
"CreatePipelineCreatePipelinePipeline",
@@ -562,6 +583,8 @@
562583
"DeleteMembershipInput",
563584
"DeleteMetadataAttributeError",
564585
"DeleteMetadataAttributeInput",
586+
"DeleteOrganizationError",
587+
"DeleteOrganizationInput",
565588
"DeleteOrganizationInvitationError",
566589
"DeleteOrganizationInvitationInput",
567590
"DeleteOrganizationMemberError",
@@ -637,6 +660,8 @@
637660
"InviteWorkspaceMemberInviteWorkspaceMember",
638661
"InviteWorkspaceMemberInviteWorkspaceMemberWorkspaceMembership",
639662
"InviteWorkspaceMembershipError",
663+
"IssueWorkspaceTokenError",
664+
"IssueWorkspaceTokenInput",
640665
"JoinWorkspaceError",
641666
"JoinWorkspaceInput",
642667
"LaunchAccessmodAnalysisError",
@@ -680,6 +705,7 @@
680705
"PipelineRunStatus",
681706
"PipelineRunTrigger",
682707
"PipelineTemplateError",
708+
"PipelineTemplateOrderBy",
683709
"PipelineTokenInput",
684710
"PipelineType",
685711
"Pipelines",
@@ -704,13 +730,16 @@
704730
"RemoveFromFavoritesInput",
705731
"RemoveWebappFromFavorites",
706732
"RemoveWebappFromFavoritesRemoveFromFavorites",
733+
"RemoveWebappFromShortcutsError",
734+
"RemoveWebappFromShortcutsInput",
707735
"RequestAccessmodAccessError",
708736
"RequestAccessmodAccessInput",
709737
"ResendOrganizationInvitationError",
710738
"ResendOrganizationInvitationInput",
711739
"ResendWorkspaceInvitationError",
712740
"ResendWorkspaceInvitationInput",
713741
"ResetPasswordInput",
742+
"ResourceCountsInput",
714743
"RunDAGError",
715744
"RunDAGInput",
716745
"RunPipelineInput",
@@ -750,8 +779,12 @@
750779
"UpdateDatasetVersionInput",
751780
"UpdateMembershipError",
752781
"UpdateMembershipInput",
782+
"UpdateOrganizationError",
783+
"UpdateOrganizationInput",
753784
"UpdateOrganizationMemberError",
754785
"UpdateOrganizationMemberInput",
786+
"UpdateOrganizationSubscriptionError",
787+
"UpdateOrganizationSubscriptionInput",
755788
"UpdatePipelineError",
756789
"UpdatePipelineHeartbeat",
757790
"UpdatePipelineHeartbeatUpdatePipelineHeartbeat",
@@ -790,6 +823,7 @@
790823
"UploadPipelineUploadPipeline",
791824
"VerifyDeviceError",
792825
"VerifyDeviceInput",
826+
"WebappType",
793827
"Workspace",
794828
"WorkspaceInvitationInput",
795829
"WorkspaceInvitationStatus",

openhexa/graphql/graphql_client/enums.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ class AddToFavoritesError(str, Enum):
8282
WEBAPP_NOT_FOUND = "WEBAPP_NOT_FOUND"
8383

8484

85+
class AddWebappToShortcutsError(str, Enum):
86+
ITEM_ALREADY_EXISTS = "ITEM_ALREADY_EXISTS"
87+
ITEM_NOT_FOUND = "ITEM_NOT_FOUND"
88+
89+
8590
class ApproveAccessmodAccessRequestError(str, Enum):
8691
INVALID = "INVALID"
8792

@@ -171,6 +176,12 @@ class CreateMembershipError(str, Enum):
171176
PERMISSION_DENIED = "PERMISSION_DENIED"
172177

173178

179+
class CreateOrganizationError(str, Enum):
180+
INVALID_EMAIL = "INVALID_EMAIL"
181+
NAME_DUPLICATE = "NAME_DUPLICATE"
182+
PERMISSION_DENIED = "PERMISSION_DENIED"
183+
184+
174185
class CreatePipelineFromTemplateVersionError(str, Enum):
175186
PERMISSION_DENIED = "PERMISSION_DENIED"
176187
PIPELINE_TEMPLATE_VERSION_NOT_FOUND = "PIPELINE_TEMPLATE_VERSION_NOT_FOUND"
@@ -208,6 +219,7 @@ class CreateWorkspaceError(str, Enum):
208219
INVALID_SLUG = "INVALID_SLUG"
209220
ORGANIZATION_NOT_FOUND = "ORGANIZATION_NOT_FOUND"
210221
PERMISSION_DENIED = "PERMISSION_DENIED"
222+
WORKSPACES_LIMIT_REACHED = "WORKSPACES_LIMIT_REACHED"
211223

212224

213225
class DAGRunOrderBy(str, Enum):
@@ -313,6 +325,11 @@ class DeleteMetadataAttributeError(str, Enum):
313325
TARGET_NOT_FOUND = "TARGET_NOT_FOUND"
314326

315327

328+
class DeleteOrganizationError(str, Enum):
329+
NOT_FOUND = "NOT_FOUND"
330+
PERMISSION_DENIED = "PERMISSION_DENIED"
331+
332+
316333
class DeleteOrganizationInvitationError(str, Enum):
317334
INVITATION_NOT_FOUND = "INVITATION_NOT_FOUND"
318335
PERMISSION_DENIED = "PERMISSION_DENIED"
@@ -427,6 +444,7 @@ class InviteOrganizationMemberError(str, Enum):
427444
ALREADY_MEMBER = "ALREADY_MEMBER"
428445
ORGANIZATION_NOT_FOUND = "ORGANIZATION_NOT_FOUND"
429446
PERMISSION_DENIED = "PERMISSION_DENIED"
447+
USERS_LIMIT_REACHED = "USERS_LIMIT_REACHED"
430448
WORKSPACE_NOT_FOUND = "WORKSPACE_NOT_FOUND"
431449

432450

@@ -437,6 +455,16 @@ class InviteWorkspaceMembershipError(str, Enum):
437455
WORKSPACE_NOT_FOUND = "WORKSPACE_NOT_FOUND"
438456

439457

458+
class IssueWorkspaceTokenError(str, Enum):
459+
AUTH_UNAUTHENTICATED = "AUTH_UNAUTHENTICATED"
460+
CLOCK_ERROR = "CLOCK_ERROR"
461+
CONFIG_MISSING_PRIVATE_KEY = "CONFIG_MISSING_PRIVATE_KEY"
462+
INPUT_INVALID = "INPUT_INVALID"
463+
MEMBERSHIP_REQUIRED = "MEMBERSHIP_REQUIRED"
464+
ROLE_UNRESOLVED = "ROLE_UNRESOLVED"
465+
WORKSPACE_NOT_FOUND = "WORKSPACE_NOT_FOUND"
466+
467+
440468
class JoinWorkspaceError(str, Enum):
441469
ALREADY_ACCEPTED = "ALREADY_ACCEPTED"
442470
ALREADY_EXISTS = "ALREADY_EXISTS"
@@ -549,6 +577,7 @@ class PipelineError(str, Enum):
549577
PIPELINE_CODE_PARSING_ERROR = "PIPELINE_CODE_PARSING_ERROR"
550578
PIPELINE_DOES_NOT_SUPPORT_PARAMETERS = "PIPELINE_DOES_NOT_SUPPORT_PARAMETERS"
551579
PIPELINE_NOT_FOUND = "PIPELINE_NOT_FOUND"
580+
PIPELINE_RUNS_LIMIT_REACHED = "PIPELINE_RUNS_LIMIT_REACHED"
552581
PIPELINE_VERSION_NOT_FOUND = "PIPELINE_VERSION_NOT_FOUND"
553582
TABLE_NOT_FOUND = "TABLE_NOT_FOUND"
554583
WORKSPACE_NOT_FOUND = "WORKSPACE_NOT_FOUND"
@@ -583,6 +612,7 @@ class PipelineRunStatus(str, Enum):
583612
failed = "failed"
584613
queued = "queued"
585614
running = "running"
615+
skipped = "skipped"
586616
stopped = "stopped"
587617
success = "success"
588618
terminating = "terminating"
@@ -599,6 +629,15 @@ class PipelineTemplateError(str, Enum):
599629
PIPELINE_TEMPLATE_NOT_FOUND = "PIPELINE_TEMPLATE_NOT_FOUND"
600630

601631

632+
class PipelineTemplateOrderBy(str, Enum):
633+
CREATED_AT_ASC = "CREATED_AT_ASC"
634+
CREATED_AT_DESC = "CREATED_AT_DESC"
635+
NAME_ASC = "NAME_ASC"
636+
NAME_DESC = "NAME_DESC"
637+
PIPELINES_COUNT_ASC = "PIPELINES_COUNT_ASC"
638+
PIPELINES_COUNT_DESC = "PIPELINES_COUNT_DESC"
639+
640+
602641
class PipelineType(str, Enum):
603642
notebook = "notebook"
604643
zipFile = "zipFile"
@@ -631,6 +670,10 @@ class RemoveFromFavoritesError(str, Enum):
631670
WEBAPP_NOT_FOUND = "WEBAPP_NOT_FOUND"
632671

633672

673+
class RemoveWebappFromShortcutsError(str, Enum):
674+
ITEM_NOT_FOUND = "ITEM_NOT_FOUND"
675+
676+
634677
class RequestAccessmodAccessError(str, Enum):
635678
ALREADY_EXISTS = "ALREADY_EXISTS"
636679
INVALID = "INVALID"
@@ -725,12 +768,26 @@ class UpdateMembershipError(str, Enum):
725768
PERMISSION_DENIED = "PERMISSION_DENIED"
726769

727770

771+
class UpdateOrganizationError(str, Enum):
772+
INVALID_LOGO = "INVALID_LOGO"
773+
INVALID_SHORT_NAME = "INVALID_SHORT_NAME"
774+
NAME_DUPLICATE = "NAME_DUPLICATE"
775+
NOT_FOUND = "NOT_FOUND"
776+
PERMISSION_DENIED = "PERMISSION_DENIED"
777+
SHORT_NAME_DUPLICATE = "SHORT_NAME_DUPLICATE"
778+
779+
728780
class UpdateOrganizationMemberError(str, Enum):
729781
INVALID_ROLE = "INVALID_ROLE"
730782
NOT_FOUND = "NOT_FOUND"
731783
PERMISSION_DENIED = "PERMISSION_DENIED"
732784

733785

786+
class UpdateOrganizationSubscriptionError(str, Enum):
787+
NOT_FOUND = "NOT_FOUND"
788+
PERMISSION_DENIED = "PERMISSION_DENIED"
789+
790+
734791
class UpdatePipelineError(str, Enum):
735792
INVALID_CONFIG = "INVALID_CONFIG"
736793
MISSING_VERSION_CONFIG = "MISSING_VERSION_CONFIG"
@@ -791,6 +848,13 @@ class VerifyDeviceError(str, Enum):
791848
NO_DEVICE = "NO_DEVICE"
792849

793850

851+
class WebappType(str, Enum):
852+
BUNDLE = "BUNDLE"
853+
HTML = "HTML"
854+
IFRAME = "IFRAME"
855+
SUPERSET = "SUPERSET"
856+
857+
794858
class WorkspaceInvitationStatus(str, Enum):
795859
ACCEPTED = "ACCEPTED"
796860
DECLINED = "DECLINED"

0 commit comments

Comments
 (0)