Skip to content

Commit b109adf

Browse files
HyeockJinKimclaudelablup-octodog
authored
feat(BA-5122): Add AND/OR/NOT logical operators to GraphQL filter types (#10250)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: octodog <mu001@lablup.com>
1 parent c952075 commit b109adf

21 files changed

Lines changed: 1194 additions & 18 deletions

File tree

changes/10250.feature.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add AND, OR, NOT logical operators to GraphQL filter types for complex boolean filter expressions.

docs/manager/graphql-reference/supergraph.graphql

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ input AccessTokenFilter
7070
token: StringFilter = null
7171
validUntil: DateTimeFilter = null
7272
createdAt: DateTimeFilter = null
73+
AND: [AccessTokenFilter!] = null
74+
OR: [AccessTokenFilter!] = null
75+
NOT: [AccessTokenFilter!] = null
7376
}
7477

7578
"""Added in 25.16.0"""
@@ -407,6 +410,9 @@ input AgentResourceSlotFilter
407410
@join__type(graph: STRAWBERRY)
408411
{
409412
slotName: StringFilter = null
413+
AND: [AgentResourceSlotFilter!] = null
414+
OR: [AgentResourceSlotFilter!] = null
415+
NOT: [AgentResourceSlotFilter!] = null
410416
}
411417

412418
"""Added in 26.3.0. Ordering specification for agent resource slots."""
@@ -1280,6 +1286,9 @@ input AuditLogFilter
12801286
status: AuditLogStatusFilter = null
12811287
createdAt: DateTimeFilter = null
12821288
triggeredBy: StringFilter = null
1289+
AND: [AuditLogFilter!] = null
1290+
OR: [AuditLogFilter!] = null
1291+
NOT: [AuditLogFilter!] = null
12831292
}
12841293

12851294
"""Added in 25.6.0."""
@@ -1531,6 +1540,9 @@ input AutoScalingRuleFilter
15311540
{
15321541
createdAt: DateTimeFilter = null
15331542
lastTriggeredAt: DateTimeFilter = null
1543+
AND: [AutoScalingRuleFilter!] = null
1544+
OR: [AutoScalingRuleFilter!] = null
1545+
NOT: [AutoScalingRuleFilter!] = null
15341546
}
15351547

15361548
"""Added in 25.19.0"""
@@ -3547,6 +3559,9 @@ input DeploymentHistoryFilter
35473559
message: StringFilter = null
35483560
createdAt: DateTimeFilter = null
35493561
updatedAt: DateTimeFilter = null
3562+
AND: [DeploymentHistoryFilter!] = null
3563+
OR: [DeploymentHistoryFilter!] = null
3564+
NOT: [DeploymentHistoryFilter!] = null
35503565
}
35513566

35523567
"""Order by specification for deployment history"""
@@ -4560,6 +4575,9 @@ input EntityFilter
45604575
{
45614576
entityType: RBACElementType = null
45624577
entityId: StringFilter = null
4578+
AND: [EntityFilter!] = null
4579+
OR: [EntityFilter!] = null
4580+
NOT: [EntityFilter!] = null
45634581
}
45644582

45654583
union EntityNode
@@ -5326,6 +5344,9 @@ input ImageV2AliasFilterGQL
53265344
@join__type(graph: STRAWBERRY)
53275345
{
53285346
alias: StringFilter = null
5347+
AND: [ImageV2AliasFilterGQL!] = null
5348+
OR: [ImageV2AliasFilterGQL!] = null
5349+
NOT: [ImageV2AliasFilterGQL!] = null
53295350
}
53305351

53315352
"""
@@ -5830,6 +5851,9 @@ input KernelResourceAllocationFilter
58305851
@join__type(graph: STRAWBERRY)
58315852
{
58325853
slotName: StringFilter = null
5854+
AND: [KernelResourceAllocationFilter!] = null
5855+
OR: [KernelResourceAllocationFilter!] = null
5856+
NOT: [KernelResourceAllocationFilter!] = null
58335857
}
58345858

58355859
"""
@@ -5955,6 +5979,9 @@ input KernelV2Filter
59555979
id: UUIDFilter = null
59565980
status: KernelV2StatusFilter = null
59575981
sessionId: UUIDFilter = null
5982+
AND: [KernelV2Filter!] = null
5983+
OR: [KernelV2Filter!] = null
5984+
NOT: [KernelV2Filter!] = null
59585985
}
59595986

59605987
"""Added in 26.2.0. Lifecycle and status information for a kernel."""
@@ -8383,6 +8410,9 @@ input PermissionFilter
83838410
roleId: UUID = null
83848411
scopeType: RBACElementType = null
83858412
entityType: RBACElementType = null
8413+
AND: [PermissionFilter!] = null
8414+
OR: [PermissionFilter!] = null
8415+
NOT: [PermissionFilter!] = null
83868416
}
83878417

83888418
"""Added in 26.3.0. Order by specification for permissions"""
@@ -11042,6 +11072,9 @@ input ResourceSlotTypeFilter
1104211072
slotName: StringFilter = null
1104311073
slotType: StringFilter = null
1104411074
displayName: StringFilter = null
11075+
AND: [ResourceSlotTypeFilter!] = null
11076+
OR: [ResourceSlotTypeFilter!] = null
11077+
NOT: [ResourceSlotTypeFilter!] = null
1104511078
}
1104611079

1104711080
"""Added in 26.3.0. Ordering specification for resource slot types."""
@@ -11312,6 +11345,9 @@ input RoleAssignmentFilter
1131211345
role: RoleAssignmentRoleNestedFilter = null
1131311346
username: StringFilter = null
1131411347
email: StringFilter = null
11348+
AND: [RoleAssignmentFilter!] = null
11349+
OR: [RoleAssignmentFilter!] = null
11350+
NOT: [RoleAssignmentFilter!] = null
1131511351
}
1131611352

1131711353
"""Added in 26.3.0. Order by specification for role assignments"""
@@ -11340,6 +11376,9 @@ input RoleAssignmentRoleNestedFilter
1134011376
name: StringFilter = null
1134111377
source: [RoleSource!] = null
1134211378
status: [RoleStatus!] = null
11379+
AND: [RoleAssignmentRoleNestedFilter!] = null
11380+
OR: [RoleAssignmentRoleNestedFilter!] = null
11381+
NOT: [RoleAssignmentRoleNestedFilter!] = null
1134311382
}
1134411383

1134511384
"""Added in 26.3.0. Role connection"""
@@ -11374,7 +11413,7 @@ input RoleFilter
1137411413
status: [RoleStatus!] = null
1137511414
AND: [RoleFilter!] = null
1137611415
OR: [RoleFilter!] = null
11377-
NOT: RoleFilter = null
11416+
NOT: [RoleFilter!] = null
1137811417
}
1137911418

1138011419
"""Added in 26.3.0. Order by specification for roles"""
@@ -11487,6 +11526,9 @@ input RouteFilter
1148711526
{
1148811527
status: [RouteStatus!] = null
1148911528
trafficStatus: [RouteTrafficStatus!] = null
11529+
AND: [RouteFilter!] = null
11530+
OR: [RouteFilter!] = null
11531+
NOT: [RouteFilter!] = null
1149011532
}
1149111533

1149211534
"""Route history record"""
@@ -11552,6 +11594,9 @@ input RouteHistoryFilter
1155211594
message: StringFilter = null
1155311595
createdAt: DateTimeFilter = null
1155411596
updatedAt: DateTimeFilter = null
11597+
AND: [RouteHistoryFilter!] = null
11598+
OR: [RouteHistoryFilter!] = null
11599+
NOT: [RouteHistoryFilter!] = null
1155511600
}
1155611601

1155711602
"""Order by specification for route history"""
@@ -11960,6 +12005,9 @@ input ServiceCatalogFilter
1196012005

1196112006
"""Filter by health status."""
1196212007
status: ServiceCatalogStatus = null
12008+
AND: [ServiceCatalogFilter!] = null
12009+
OR: [ServiceCatalogFilter!] = null
12010+
NOT: [ServiceCatalogFilter!] = null
1196312011
}
1196412012

1196512013
"""
@@ -12174,6 +12222,9 @@ input SessionSchedulingHistoryFilter
1217412222
message: StringFilter = null
1217512223
createdAt: DateTimeFilter = null
1217612224
updatedAt: DateTimeFilter = null
12225+
AND: [SessionSchedulingHistoryFilter!] = null
12226+
OR: [SessionSchedulingHistoryFilter!] = null
12227+
NOT: [SessionSchedulingHistoryFilter!] = null
1217712228
}
1217812229

1217912230
"""Order by specification for session scheduling history"""
@@ -12290,6 +12341,9 @@ input SessionV2Filter
1229012341
domainName: StringFilter = null
1229112342
projectId: UUIDFilter = null
1229212343
userUuid: UUIDFilter = null
12344+
AND: [SessionV2Filter!] = null
12345+
OR: [SessionV2Filter!] = null
12346+
NOT: [SessionV2Filter!] = null
1229312347
}
1229412348

1229512349
"""Added in 26.3.0. Lifecycle status and timestamps for a session."""

docs/manager/graphql-reference/v2-schema.graphql

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ input AccessTokenFilter {
4444
token: StringFilter = null
4545
validUntil: DateTimeFilter = null
4646
createdAt: DateTimeFilter = null
47+
AND: [AccessTokenFilter!] = null
48+
OR: [AccessTokenFilter!] = null
49+
NOT: [AccessTokenFilter!] = null
4750
}
4851

4952
"""Added in 25.16.0"""
@@ -227,6 +230,9 @@ type AgentResourceSlotEdge {
227230
"""Added in 26.3.0. Filter criteria for querying agent resource slots."""
228231
input AgentResourceSlotFilter {
229232
slotName: StringFilter = null
233+
AND: [AgentResourceSlotFilter!] = null
234+
OR: [AgentResourceSlotFilter!] = null
235+
NOT: [AgentResourceSlotFilter!] = null
230236
}
231237

232238
"""Added in 26.3.0. Ordering specification for agent resource slots."""
@@ -892,6 +898,9 @@ input AuditLogFilter {
892898
status: AuditLogStatusFilter = null
893899
createdAt: DateTimeFilter = null
894900
triggeredBy: StringFilter = null
901+
AND: [AuditLogFilter!] = null
902+
OR: [AuditLogFilter!] = null
903+
NOT: [AuditLogFilter!] = null
895904
}
896905

897906
"""Ordering specification for audit logs."""
@@ -1042,6 +1051,9 @@ type AutoScalingRuleEdge {
10421051
input AutoScalingRuleFilter {
10431052
createdAt: DateTimeFilter = null
10441053
lastTriggeredAt: DateTimeFilter = null
1054+
AND: [AutoScalingRuleFilter!] = null
1055+
OR: [AutoScalingRuleFilter!] = null
1056+
NOT: [AutoScalingRuleFilter!] = null
10451057
}
10461058

10471059
"""Added in 25.19.0"""
@@ -1988,6 +2000,9 @@ input DeploymentHistoryFilter {
19882000
message: StringFilter = null
19892001
createdAt: DateTimeFilter = null
19902002
updatedAt: DateTimeFilter = null
2003+
AND: [DeploymentHistoryFilter!] = null
2004+
OR: [DeploymentHistoryFilter!] = null
2005+
NOT: [DeploymentHistoryFilter!] = null
19912006
}
19922007

19932008
"""Order by specification for deployment history"""
@@ -2611,6 +2626,9 @@ type EntityEdge {
26112626
input EntityFilter {
26122627
entityType: RBACElementType = null
26132628
entityId: StringFilter = null
2629+
AND: [EntityFilter!] = null
2630+
OR: [EntityFilter!] = null
2631+
NOT: [EntityFilter!] = null
26142632
}
26152633

26162634
union EntityNode = UserV2 | ProjectV2 | DomainV2 | VirtualFolderNode | ImageV2 | ComputeSessionNode | Artifact | ArtifactRegistry | AppConfig | NotificationChannel | NotificationRule | ModelDeployment | ResourceGroup | ArtifactRevision | Role
@@ -2997,6 +3015,9 @@ Supports filtering by alias string.
29973015
"""
29983016
input ImageV2AliasFilterGQL {
29993017
alias: StringFilter = null
3018+
AND: [ImageV2AliasFilterGQL!] = null
3019+
OR: [ImageV2AliasFilterGQL!] = null
3020+
NOT: [ImageV2AliasFilterGQL!] = null
30003021
}
30013022

30023023
"""
@@ -3342,6 +3363,9 @@ Added in 26.3.0. Filter criteria for querying kernel resource allocations.
33423363
"""
33433364
input KernelResourceAllocationFilter {
33443365
slotName: StringFilter = null
3366+
AND: [KernelResourceAllocationFilter!] = null
3367+
OR: [KernelResourceAllocationFilter!] = null
3368+
NOT: [KernelResourceAllocationFilter!] = null
33453369
}
33463370

33473371
"""
@@ -3452,6 +3476,9 @@ input KernelV2Filter {
34523476
id: UUIDFilter = null
34533477
status: KernelV2StatusFilter = null
34543478
sessionId: UUIDFilter = null
3479+
AND: [KernelV2Filter!] = null
3480+
OR: [KernelV2Filter!] = null
3481+
NOT: [KernelV2Filter!] = null
34553482
}
34563483

34573484
"""Added in 26.2.0. Lifecycle and status information for a kernel."""
@@ -4628,6 +4655,9 @@ input PermissionFilter {
46284655
roleId: UUID = null
46294656
scopeType: RBACElementType = null
46304657
entityType: RBACElementType = null
4658+
AND: [PermissionFilter!] = null
4659+
OR: [PermissionFilter!] = null
4660+
NOT: [PermissionFilter!] = null
46314661
}
46324662

46334663
"""Added in 26.3.0. Order by specification for permissions"""
@@ -6572,6 +6602,9 @@ input ResourceSlotTypeFilter {
65726602
slotName: StringFilter = null
65736603
slotType: StringFilter = null
65746604
displayName: StringFilter = null
6605+
AND: [ResourceSlotTypeFilter!] = null
6606+
OR: [ResourceSlotTypeFilter!] = null
6607+
NOT: [ResourceSlotTypeFilter!] = null
65756608
}
65766609

65776610
"""Added in 26.3.0. Ordering specification for resource slot types."""
@@ -6728,6 +6761,9 @@ input RoleAssignmentFilter {
67286761
role: RoleAssignmentRoleNestedFilter = null
67296762
username: StringFilter = null
67306763
email: StringFilter = null
6764+
AND: [RoleAssignmentFilter!] = null
6765+
OR: [RoleAssignmentFilter!] = null
6766+
NOT: [RoleAssignmentFilter!] = null
67316767
}
67326768

67336769
"""Added in 26.3.0. Order by specification for role assignments"""
@@ -6750,6 +6786,9 @@ input RoleAssignmentRoleNestedFilter {
67506786
name: StringFilter = null
67516787
source: [RoleSource!] = null
67526788
status: [RoleStatus!] = null
6789+
AND: [RoleAssignmentRoleNestedFilter!] = null
6790+
OR: [RoleAssignmentRoleNestedFilter!] = null
6791+
NOT: [RoleAssignmentRoleNestedFilter!] = null
67536792
}
67546793

67556794
"""Added in 26.3.0. Role connection"""
@@ -6778,7 +6817,7 @@ input RoleFilter {
67786817
status: [RoleStatus!] = null
67796818
AND: [RoleFilter!] = null
67806819
OR: [RoleFilter!] = null
6781-
NOT: RoleFilter = null
6820+
NOT: [RoleFilter!] = null
67826821
}
67836822

67846823
"""Added in 26.3.0. Order by specification for roles"""
@@ -6872,6 +6911,9 @@ type RouteEdge {
68726911
input RouteFilter {
68736912
status: [RouteStatus!] = null
68746913
trafficStatus: [RouteTrafficStatus!] = null
6914+
AND: [RouteFilter!] = null
6915+
OR: [RouteFilter!] = null
6916+
NOT: [RouteFilter!] = null
68756917
}
68766918

68776919
"""Route history record"""
@@ -6928,6 +6970,9 @@ input RouteHistoryFilter {
69286970
message: StringFilter = null
69296971
createdAt: DateTimeFilter = null
69306972
updatedAt: DateTimeFilter = null
6973+
AND: [RouteHistoryFilter!] = null
6974+
OR: [RouteHistoryFilter!] = null
6975+
NOT: [RouteHistoryFilter!] = null
69316976
}
69326977

69336978
"""Order by specification for route history"""
@@ -7179,6 +7224,9 @@ input ServiceCatalogFilter {
71797224

71807225
"""Filter by health status."""
71817226
status: ServiceCatalogStatus = null
7227+
AND: [ServiceCatalogFilter!] = null
7228+
OR: [ServiceCatalogFilter!] = null
7229+
NOT: [ServiceCatalogFilter!] = null
71827230
}
71837231

71847232
"""
@@ -7292,6 +7340,9 @@ input SessionSchedulingHistoryFilter {
72927340
message: StringFilter = null
72937341
createdAt: DateTimeFilter = null
72947342
updatedAt: DateTimeFilter = null
7343+
AND: [SessionSchedulingHistoryFilter!] = null
7344+
OR: [SessionSchedulingHistoryFilter!] = null
7345+
NOT: [SessionSchedulingHistoryFilter!] = null
72957346
}
72967347

72977348
"""Order by specification for session scheduling history"""
@@ -7391,6 +7442,9 @@ input SessionV2Filter {
73917442
domainName: StringFilter = null
73927443
projectId: UUIDFilter = null
73937444
userUuid: UUIDFilter = null
7445+
AND: [SessionV2Filter!] = null
7446+
OR: [SessionV2Filter!] = null
7447+
NOT: [SessionV2Filter!] = null
73947448
}
73957449

73967450
"""Added in 26.3.0. Lifecycle status and timestamps for a session."""

0 commit comments

Comments
 (0)