@jahia/cypress 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +10 -1
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +1 -0
  5. package/dist/page-object/html/iframe.d.ts +1 -1
  6. package/dist/page-object/material/muiinput.d.ts +1 -1
  7. package/dist/page-object/material/muiradio.d.ts +1 -1
  8. package/dist/page-object/moonstone/accordion.d.ts +1 -1
  9. package/dist/page-object/moonstone/button.d.ts +1 -1
  10. package/dist/page-object/moonstone/collapsible.d.ts +1 -1
  11. package/dist/page-object/moonstone/dropdown.d.ts +1 -1
  12. package/dist/page-object/moonstone/menu.d.ts +1 -1
  13. package/dist/page-object/moonstone/menu.js +1 -1
  14. package/dist/page-object/moonstone/pagination.d.ts +1 -1
  15. package/dist/page-object/moonstone/primaryNav.d.ts +1 -1
  16. package/dist/page-object/moonstone/primaryNav.js +1 -1
  17. package/dist/page-object/moonstone/secondaryNav.d.ts +1 -1
  18. package/dist/page-object/moonstone/table.d.ts +2 -2
  19. package/dist/page-object/utils.d.ts +2 -2
  20. package/dist/support/apollo/apollo.js +39 -41
  21. package/dist/support/apollo/apolloClient.js +1 -1
  22. package/dist/support/apollo/links.js +3 -5
  23. package/dist/support/commands.d.ts +1 -0
  24. package/dist/support/commands.js +3 -0
  25. package/dist/support/fixture.js +1 -1
  26. package/dist/support/logout.js +1 -1
  27. package/dist/support/provisioning/runProvisioningScript.js +6 -4
  28. package/dist/utils/Utils.d.ts +12 -0
  29. package/dist/utils/Utils.js +79 -0
  30. package/dist/utils/index.d.ts +1 -0
  31. package/dist/utils/index.js +13 -0
  32. package/fixtures/graphql/jcr/mutation/addNode.graphql +18 -0
  33. package/fixtures/graphql/jcr/{deleteNode.graphql → mutation/deleteNode.graphql} +1 -1
  34. package/fixtures/graphql/jcr/mutation/grantRoles.graphql +16 -0
  35. package/fixtures/graphql/jcr/mutation/setProperty.graphql +9 -0
  36. package/fixtures/graphql/jcr/query/getJobsWithStatus.graphql +13 -0
  37. package/fixtures/graphql/jcr/query/getNodeByPath.graphql +15 -0
  38. package/package.json +6 -1
  39. package/schema.graphql +941 -76
  40. package/src/custom.d.ts +1 -1
  41. package/src/index.ts +4 -3
  42. package/src/page-object/baseComponent.ts +7 -7
  43. package/src/page-object/basePage.ts +1 -1
  44. package/src/page-object/html/iframe.ts +12 -13
  45. package/src/page-object/html/index.ts +1 -1
  46. package/src/page-object/index.ts +6 -6
  47. package/src/page-object/material/index.ts +2 -2
  48. package/src/page-object/material/muiinput.ts +5 -7
  49. package/src/page-object/material/muiradio.ts +3 -5
  50. package/src/page-object/moonstone/accordion.ts +7 -8
  51. package/src/page-object/moonstone/button.ts +3 -5
  52. package/src/page-object/moonstone/collapsible.ts +9 -10
  53. package/src/page-object/moonstone/dropdown.ts +6 -8
  54. package/src/page-object/moonstone/index.ts +9 -9
  55. package/src/page-object/moonstone/menu.ts +8 -8
  56. package/src/page-object/moonstone/pagination.ts +8 -9
  57. package/src/page-object/moonstone/primaryNav.ts +5 -5
  58. package/src/page-object/moonstone/secondaryNav.ts +3 -3
  59. package/src/page-object/moonstone/table.ts +9 -10
  60. package/src/page-object/utils.ts +12 -10
  61. package/src/plugins/env.ts +13 -12
  62. package/src/plugins/index.ts +1 -1
  63. package/src/plugins/registerPlugins.ts +3 -3
  64. package/src/support/apollo/apollo.ts +47 -49
  65. package/src/support/apollo/apolloClient.ts +18 -18
  66. package/src/support/apollo/index.ts +2 -2
  67. package/src/support/apollo/links.ts +38 -37
  68. package/src/support/commands.ts +1 -0
  69. package/src/support/fixture.ts +8 -8
  70. package/src/support/index.ts +5 -5
  71. package/src/support/login.ts +8 -10
  72. package/src/support/logout.ts +7 -8
  73. package/src/support/provisioning/executeGroovy.ts +3 -5
  74. package/src/support/provisioning/index.ts +3 -3
  75. package/src/support/provisioning/installBundle.ts +3 -5
  76. package/src/support/provisioning/runProvisioningScript.ts +34 -33
  77. package/src/support/registerSupport.ts +16 -16
  78. package/src/support/repeatUntil.ts +19 -19
  79. package/src/utils/Utils.ts +75 -0
  80. package/src/utils/index.ts +1 -0
  81. package/fixtures/graphql/jcr/addNode.graphql +0 -16
  82. /package/fixtures/graphql/jcr/{mutateNode.graphql → mutation/mutateNode.graphql} +0 -0
package/schema.graphql CHANGED
@@ -24,6 +24,8 @@ interface JCRItemDefinition {
24
24
 
25
25
  "GraphQL representation of a JCR node"
26
26
  interface JCRNode {
27
+ "Get ACL info for this node"
28
+ acl: GqlAcl
27
29
  "Get the last modified date of this node and its descendants. The recursion in descendants can be controlled by recursionTypesFilter. If no filter is passed, recursion will stop by default on sub pages."
28
30
  aggregatedLastModifiedDate(
29
31
  "The language to use to get the last modified date, if not specified, returns last modification date in any language"
@@ -83,8 +85,10 @@ interface JCRNode {
83
85
  "Filter of child nodes by their property values; null to avoid such filtering"
84
86
  propertiesFilter: InputNodePropertiesInput,
85
87
  "Filter of child nodes by their types; null to avoid such filtering"
86
- typesFilter: InputNodeTypesInput
87
- ): JCRNodeConnection!
88
+ typesFilter: InputNodeTypesInput,
89
+ "Language to use to get children"
90
+ validInLanguage: String
91
+ ): JCRNodeConnection
88
92
  "Read default Work in progress information. Set by \"wip.checkbox.checked\" system proprety"
89
93
  defaultWipInfo: wipInfo
90
94
  "Returns the node definition that applies to this node."
@@ -121,8 +125,10 @@ interface JCRNode {
121
125
  "Filter out and stop recursion on nodes by their types; null to avoid such filtering"
122
126
  recursionTypesFilter: InputNodeTypesInput,
123
127
  "Filter of descendant nodes by their types; null to avoid such filtering"
124
- typesFilter: InputNodeTypesInput
125
- ): JCRNodeConnection!
128
+ typesFilter: InputNodeTypesInput,
129
+ "Language to use to get children"
130
+ validInLanguage: String
131
+ ): JCRNodeConnection
126
132
  "The display name of the JCR node this object represents in the requested language"
127
133
  displayName(
128
134
  "The language to obtain the display name in"
@@ -182,14 +188,18 @@ interface JCRNode {
182
188
  "The language to obtain the properties in; must be a valid language code in case any internationalized properties are requested, does not matter for non-internationalized ones"
183
189
  language: String,
184
190
  "The names of the JCR properties; null to obtain all properties"
185
- names: [String]
191
+ names: [String],
192
+ "When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option \"Replace untranslated content with the default language content\" is not activated for the site of the requested node. Will also return null if there is no translation for the default language."
193
+ useFallbackLanguage: Boolean = false
186
194
  ): [JCRProperty]!
187
195
  "The GraphQL representation of the property in the requested language; null if the property does not exist"
188
196
  property(
189
197
  "The language to obtain the property in; must be a valid language code for internationalized properties, does not matter for non-internationalized ones"
190
198
  language: String,
191
199
  "The name of the JCR property"
192
- name: String!
200
+ name: String!,
201
+ "When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option \"Replace untranslated content with the default language content\" is not activated for the site of the requested node. Will also return null if there is no translation for the default language."
202
+ useFallbackLanguage: Boolean = false
193
203
  ): JCRProperty
194
204
  "GraphQL representations of the reference properties that target the current JCR Node"
195
205
  references(
@@ -212,8 +222,12 @@ interface JCRNode {
212
222
  renderedContent(
213
223
  "Rendering context configuration"
214
224
  contextConfiguration: String,
225
+ "Is edit mode"
226
+ isEditMode: Boolean,
215
227
  "Language"
216
228
  language: String,
229
+ "Main resource path"
230
+ mainResourcePath: String,
217
231
  "Additional request attributes"
218
232
  requestAttributes: [InputRenderRequestAttributeInput],
219
233
  "Template type"
@@ -223,6 +237,11 @@ interface JCRNode {
223
237
  ): RenderedNode
224
238
  "GraphQL representation of the site the JCR node belongs to, or the system site in case the node does not belong to any site"
225
239
  site: JCRSite
240
+ "Returns languages of available translations for this node"
241
+ translationLanguages(
242
+ "Optional: Return languages only if it is active for the site"
243
+ isActiveOnly: Boolean
244
+ ): [String]
226
245
  "The UUID of the JCR node this object represents"
227
246
  uuid: String!
228
247
  "Get vanity URLs from the current node filtered by the parameters"
@@ -242,6 +261,29 @@ interface JCRNode {
242
261
  interface Principal {
243
262
  "Full display name"
244
263
  displayName: String
264
+ "List of groups this principal belongs to"
265
+ groupMembership(
266
+ "fetching only nodes after this node (exclusive)"
267
+ after: String,
268
+ "fetching only nodes before this node (exclusive)"
269
+ before: String,
270
+ "Filter by graphQL fields values"
271
+ fieldFilter: InputFieldFiltersInput,
272
+ "Group fields according to specified criteria"
273
+ fieldGrouping: InputFieldGroupingInput,
274
+ "Sort by graphQL fields values"
275
+ fieldSorter: InputFieldSorterInput,
276
+ "fetching only the first certain number of nodes"
277
+ first: Int,
278
+ "fetching only the last certain number of nodes"
279
+ last: Int,
280
+ "fetching only the first certain number of nodes"
281
+ limit: Int,
282
+ "fetching only nodes after this node (inclusive)"
283
+ offset: Int,
284
+ "Return only groups which belong to this site"
285
+ site: String
286
+ ): GroupConnection!
245
287
  "Is this principal member of the specified group"
246
288
  memberOf(
247
289
  "Target group"
@@ -253,31 +295,72 @@ interface Principal {
253
295
  name: String!
254
296
  "Get the corresponding JCR node"
255
297
  node: JCRNode
298
+ "Get principal type for this principal"
299
+ principalType: PrincipalType
256
300
  "Site where the principal is defined"
257
301
  site: JCRSite
258
302
  }
259
303
 
304
+ "GraphQL representation of a Jahia ACL role"
305
+ type AclRole {
306
+ "List of dependencies for a given role"
307
+ dependencies: [AclRole]
308
+ "Role description for a given locale"
309
+ description(
310
+ "locale"
311
+ locale: String
312
+ ): String
313
+ "Role label for a given locale"
314
+ label(
315
+ "locale"
316
+ locale: String
317
+ ): String
318
+ "Role name"
319
+ name: String
320
+ "Role group"
321
+ roleGroup: String
322
+ }
323
+
324
+ "Admin mutations"
325
+ type AdminMutation {
326
+ "Get Jahia admin mutation"
327
+ jahia: JahiaAdminMutation!
328
+ "Personal API tokens mutations"
329
+ personalApiTokens: PersonalApiTokensMutation
330
+ "Sitemap API mutations"
331
+ sitemap: GqlSitemapMutation
332
+ }
333
+
260
334
  "Admin queries root"
261
335
  type AdminQuery {
336
+ "Details about the Jahia cluster"
337
+ cluster: Cluster
262
338
  "Current datetime"
263
339
  datetime: String
340
+ "Get Jahia admin query"
341
+ jahia: JahiaAdminQuery!
264
342
  "Personal API tokens queries"
265
343
  personalApiTokens: PersonalApiTokensQuery
344
+ "Get available ACL roles; does not include any hidden or privileged roles"
345
+ roles: [AclRole]
346
+ "Sitemap API queries"
347
+ sitemap: GqlSitemapQueries
348
+ "Get user administration endpoint"
349
+ userAdmin: UserAdminQuery
350
+ "Get user group endpoint"
351
+ userGroup: UserGroupQuery
266
352
  "Version of the running Jahia instance"
267
- version: String! @deprecated(reason : "Deprecated")
353
+ version: String! @deprecated(reason: "Deprecated")
268
354
  }
269
355
 
270
356
  "Asset type for files"
271
357
  type Asset {
272
358
  "Asset metadata"
273
359
  metadata: Metadata
274
- path: String
275
360
  "Asset size"
276
361
  size: Long
277
362
  "Mime type of the asset"
278
363
  type: String
279
- url: String
280
- uuid: String
281
364
  }
282
365
 
283
366
  "Category type"
@@ -286,10 +369,84 @@ type Category {
286
369
  description: String
287
370
  "Asset metadata"
288
371
  metadata: Metadata
289
- path: String
290
372
  "Title"
291
373
  title: String
292
- uuid: String
374
+ }
375
+
376
+ "Details about the Jahia Cluster"
377
+ type Cluster {
378
+ "Is the cluster mode activated on this Jahia instance"
379
+ isActivated: Boolean
380
+ }
381
+
382
+ "Mutation for configuration value object"
383
+ type ConfigurationItemValuesMutation {
384
+ "Modify a list of items"
385
+ mutateList(
386
+ "property name part"
387
+ name: String
388
+ ): ConfigurationItemsListMutation
389
+ "Modify a structured object"
390
+ mutateObject(
391
+ "property name part"
392
+ name: String
393
+ ): ConfigurationItemValuesMutation
394
+ "Remove the specified property and all sub/list properties"
395
+ remove(
396
+ "property name part"
397
+ name: String
398
+ ): Boolean
399
+ "Set a property value"
400
+ value(
401
+ "property name part"
402
+ name: String,
403
+ value: String
404
+ ): String
405
+ }
406
+
407
+ "Query for configuration value object"
408
+ type ConfigurationItemValuesQuery {
409
+ "Get keys"
410
+ keys: [String]
411
+ "Get a list of items"
412
+ list(
413
+ "property name part"
414
+ name: String
415
+ ): ConfigurationItemsListQuery
416
+ "Get a sub structured object value"
417
+ object(
418
+ "property name part"
419
+ name: String
420
+ ): ConfigurationItemValuesQuery
421
+ "Get a property value"
422
+ value(
423
+ "property name part"
424
+ name: String
425
+ ): String
426
+ "Get property values"
427
+ values: [GqlConfigurationProperty]
428
+ }
429
+
430
+ "Mutation for configuration list of values"
431
+ type ConfigurationItemsListMutation {
432
+ "Adds a new sub list to the list"
433
+ addList: ConfigurationItemsListMutation
434
+ "Adds a new structured object to the list"
435
+ addObject: ConfigurationItemValuesMutation
436
+ "Adds a property value to the list"
437
+ addValue(value: String): String
438
+ }
439
+
440
+ "Query for configuration list of values"
441
+ type ConfigurationItemsListQuery {
442
+ "Get sub lists of items"
443
+ lists: [ConfigurationItemsListQuery]
444
+ "Get sub structured object values"
445
+ objects: [ConfigurationItemValuesQuery]
446
+ "Adds a new structured object to the list"
447
+ size: Int
448
+ "Get property values"
449
+ values: [String]
293
450
  }
294
451
 
295
452
  "Simple node count aggregation"
@@ -303,6 +460,44 @@ type CountAggregation {
303
460
  ): Int
304
461
  }
305
462
 
463
+ "GraphQL representation of a Jahia current user"
464
+ type Current_32_user {
465
+ "Full display name"
466
+ displayName: String
467
+ "Email of the user"
468
+ email: String
469
+ "First name of the user"
470
+ firstname: String
471
+ "Preferred language by the user"
472
+ language: String
473
+ "Last name of the user"
474
+ lastname: String
475
+ "Displays if user is locked"
476
+ locked: Boolean
477
+ "Is this principal member of the specified group"
478
+ memberOf(
479
+ "Target group"
480
+ group: String,
481
+ "Site where the group is defined"
482
+ site: String
483
+ ): Boolean
484
+ "User name"
485
+ name: String! @deprecated(reason: "Deprecated")
486
+ "Get the corresponding JCR node"
487
+ node: JCRNode
488
+ "User organization"
489
+ organization: String
490
+ "User property"
491
+ property(
492
+ "The name of the property"
493
+ name: String!
494
+ ): String
495
+ "Site where the user is defined"
496
+ site: JCRSite
497
+ "Username of the user"
498
+ username: String!
499
+ }
500
+
306
501
  type EditorForm {
307
502
  "Retrieve a description text for the form, might contain explanations on how to use the form"
308
503
  description: String
@@ -319,6 +514,8 @@ type EditorForm {
319
514
  type EditorFormField {
320
515
  "This value contains the current existing values for the field."
321
516
  currentValues: [EditorFormFieldValue]
517
+ "The declaring node type for the field"
518
+ declaringNodeType: String
322
519
  "This value contains the default values for the field."
323
520
  defaultValues: [EditorFormFieldValue]
324
521
  "The description of the field"
@@ -376,6 +573,8 @@ type EditorFormFieldValue {
376
573
  type EditorFormFieldValueConstraint {
377
574
  "The value as it is intended to be displayed in UIs"
378
575
  displayValue: String
576
+ "The key of the value to get the translated value from the client side"
577
+ displayValueKey: String
379
578
  "The properties for the value"
380
579
  properties: [EditorFormProperty]
381
580
  "The actual value to be used in storage"
@@ -387,6 +586,8 @@ type EditorFormProperty {
387
586
  name: String
388
587
  "Property value"
389
588
  value: String
589
+ "Property values"
590
+ values: [String]
390
591
  }
391
592
 
392
593
  type EditorFormSection {
@@ -394,6 +595,8 @@ type EditorFormSection {
394
595
  description: String
395
596
  "Retrieve the displayable name of the section"
396
597
  displayName: String
598
+ "Is the section expanded"
599
+ expanded: Boolean
397
600
  "Returns the field sets contained in this section"
398
601
  fieldSets: [EditorFormFieldSet]
399
602
  "Check if this section should be hide"
@@ -404,6 +607,8 @@ type EditorFormSection {
404
607
 
405
608
  "GraphQL representation of a generic JCR node"
406
609
  type GenericJCRNode implements JCRNode {
610
+ "Get ACL info for this node"
611
+ acl: GqlAcl
407
612
  "Get the last modified date of this node and its descendants. The recursion in descendants can be controlled by recursionTypesFilter. If no filter is passed, recursion will stop by default on sub pages."
408
613
  aggregatedLastModifiedDate(
409
614
  "The language"
@@ -463,8 +668,10 @@ type GenericJCRNode implements JCRNode {
463
668
  "Filter of child nodes by their property values; null to avoid such filtering"
464
669
  propertiesFilter: InputNodePropertiesInput,
465
670
  "Filter of child nodes by their types; null to avoid such filtering"
466
- typesFilter: InputNodeTypesInput
467
- ): JCRNodeConnection!
671
+ typesFilter: InputNodeTypesInput,
672
+ "Language to use to get children"
673
+ validInLanguage: String
674
+ ): JCRNodeConnection
468
675
  "Read default Work in progress information. Set by \"wip.checkbox.checked\" system proprety"
469
676
  defaultWipInfo: wipInfo
470
677
  "Returns the node definition that applies to this node."
@@ -501,9 +708,11 @@ type GenericJCRNode implements JCRNode {
501
708
  "Filter out and stop recursion on nodes by their types; null to avoid such filtering"
502
709
  recursionTypesFilter: InputNodeTypesInput,
503
710
  "Filter of descendant nodes by their types; null to avoid such filtering"
504
- typesFilter: InputNodeTypesInput
505
- ): JCRNodeConnection!
506
- "GraphQL representation of the parent JCR node"
711
+ typesFilter: InputNodeTypesInput,
712
+ "Language to use to get children"
713
+ validInLanguage: String
714
+ ): JCRNodeConnection
715
+ "The displayable name of the JCR node"
507
716
  displayName(
508
717
  "Language"
509
718
  language: String
@@ -562,14 +771,18 @@ type GenericJCRNode implements JCRNode {
562
771
  "The language to obtain the properties in; must be a valid language code in case any internationalized properties are requested, does not matter for non-internationalized ones"
563
772
  language: String,
564
773
  "The names of the JCR properties; null to obtain all properties"
565
- names: [String]
774
+ names: [String],
775
+ "When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option \"Replace untranslated content with the default language content\" is not activated for the site of the requested node. Will also return null if there is no translation for the default language."
776
+ useFallbackLanguage: Boolean = false
566
777
  ): [JCRProperty]!
567
778
  "The GraphQL representation of the property in the requested language; null if the property does not exist"
568
779
  property(
569
780
  "The language to obtain the property in; must be a valid language code for internationalized properties, does not matter for non-internationalized ones"
570
781
  language: String,
571
782
  "The name of the JCR property"
572
- name: String!
783
+ name: String!,
784
+ "When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option \"Replace untranslated content with the default language content\" is not activated for the site of the requested node. Will also return null if there is no translation for the default language."
785
+ useFallbackLanguage: Boolean = false
573
786
  ): JCRProperty
574
787
  "GraphQL representations of the reference properties that target the current JCR Node"
575
788
  references(
@@ -592,8 +805,12 @@ type GenericJCRNode implements JCRNode {
592
805
  renderedContent(
593
806
  "Rendering context configuration"
594
807
  contextConfiguration: String,
808
+ "Is edit mode"
809
+ isEditMode: Boolean,
595
810
  "Language"
596
811
  language: String,
812
+ "Main resource path"
813
+ mainResourcePath: String,
597
814
  "Additional request attributes"
598
815
  requestAttributes: [InputRenderRequestAttributeInput],
599
816
  "Template type"
@@ -603,6 +820,11 @@ type GenericJCRNode implements JCRNode {
603
820
  ): RenderedNode
604
821
  "GraphQL representation of the site the JCR node belongs to, or the system site in case the node does not belong to any site"
605
822
  site: JCRSite
823
+ "Returns languages of available translations for this node"
824
+ translationLanguages(
825
+ "Optional: Return languages only if it is active for the site"
826
+ isActiveOnly: Boolean
827
+ ): [String]
606
828
  "The UUID of the JCR node this object represents"
607
829
  uuid: String!
608
830
  "Get vanity URLs from the current node filtered by the parameters"
@@ -618,23 +840,67 @@ type GenericJCRNode implements JCRNode {
618
840
  workspace: Workspace!
619
841
  }
620
842
 
843
+ "ACL properties and list of access control entry"
844
+ type GqlAcl {
845
+ "Get list of access control entries for this ACL"
846
+ aclEntries(
847
+ "The languages to check"
848
+ inclInherited: Boolean,
849
+ "Fetch ACL entry only for this principal"
850
+ principalFilter: InputPrincipalInput
851
+ ): [GqlAclEntry]
852
+ "Get inheritance break attribute for this node"
853
+ inheritanceBreak: Boolean
854
+ "Get parent node for this ACL"
855
+ parentNode: JCRNode
856
+ }
857
+
858
+ "ACL entry"
859
+ type GqlAclEntry {
860
+ "Type of access for this ACL entry - one of GRANT, DENY or EXTERNAL"
861
+ aclEntryType: String
862
+ "External permissions name "
863
+ externalPermissionsName: String
864
+ "Return true if this ACL entry did not originate from this ACL's parent node"
865
+ inherited: Boolean
866
+ "Get node where this ACL entry originated from"
867
+ inheritedFrom: JCRNode
868
+ "Get principal for this entry"
869
+ principal: Principal
870
+ "Get role for this entry"
871
+ role: AclRole
872
+ }
873
+
874
+ "Background job"
621
875
  type GqlBackgroundJob {
622
876
  "The amount of time the job ran for (in milliseconds). The returned value will be -1 until the job has actually completed"
623
877
  duration: Long
624
878
  "The job group name"
625
879
  group: String
626
880
  "The job (Boolean) property that correspond to the given name. The returned value will be null in case the job doesn't have the property"
627
- jobBooleanProperty(name: String): Boolean
881
+ jobBooleanProperty(
882
+ "The job name"
883
+ name: String
884
+ ): Boolean
628
885
  "The job (Int) property that correspond to the given name. The returned value will be null in case the job doesn't have the property"
629
- jobIntegerProperty(name: String): Int
886
+ jobIntegerProperty(
887
+ "The job name"
888
+ name: String
889
+ ): Int
630
890
  "The job (Long) property that correspond to the given name. The returned value will be null in case the job doesn't have the property"
631
- jobLongProperty(name: String): Long
891
+ jobLongProperty(
892
+ "The job name"
893
+ name: String
894
+ ): Long
632
895
  "The job state is different from the status, it reflect the last action done on the job instance (Started, Vetoed, Finished)"
633
896
  jobState: GqlBackgroundJobState
634
897
  "The job status"
635
898
  jobStatus: GqlBackgroundJobStatus
636
899
  "The job (String) property that correspond to the given name. The returned value will be null in case the job doesn't have the property"
637
- jobStringProperty(name: String): String
900
+ jobStringProperty(
901
+ "The job name"
902
+ name: String
903
+ ): String
638
904
  "The job name"
639
905
  name: String
640
906
  "The site key. The returned value will be null in case the job doesn't have associated site key"
@@ -643,6 +909,66 @@ type GqlBackgroundJob {
643
909
  userKey: String
644
910
  }
645
911
 
912
+ "Mutation for OSGi configuration"
913
+ type GqlConfigurationMutation {
914
+ "Modify a list of items"
915
+ mutateList(
916
+ "property name part"
917
+ name: String
918
+ ): ConfigurationItemsListMutation
919
+ "Modify a structured object"
920
+ mutateObject(
921
+ "property name part"
922
+ name: String
923
+ ): ConfigurationItemValuesMutation
924
+ "Remove the specified property and all sub/list properties"
925
+ remove(
926
+ "property name part"
927
+ name: String
928
+ ): Boolean
929
+ "Set a property value"
930
+ value(
931
+ "property name part"
932
+ name: String,
933
+ value: String
934
+ ): String
935
+ }
936
+
937
+ "OSGi configuration property"
938
+ type GqlConfigurationProperty {
939
+ "The property key"
940
+ key: String
941
+ "The property value"
942
+ value: String
943
+ }
944
+
945
+ "Query for OSGi configuration"
946
+ type GqlConfigurationQuery {
947
+ "Get all properties of the configuration, as they are stored in OSGi"
948
+ flatKeys: [String]
949
+ "Get all properties of the configuration, as they are stored in OSGi"
950
+ flatProperties: [GqlConfigurationProperty]
951
+ "Get keys"
952
+ keys: [String]
953
+ "Get a list of items"
954
+ list(
955
+ "property name part"
956
+ name: String
957
+ ): ConfigurationItemsListQuery
958
+ "Get a sub structured object value"
959
+ object(
960
+ "property name part"
961
+ name: String
962
+ ): ConfigurationItemValuesQuery
963
+ "Get a property value"
964
+ value(
965
+ "property name part"
966
+ name: String
967
+ ): String
968
+ "Get property values"
969
+ values: [GqlConfigurationProperty]
970
+ }
971
+
646
972
  type GqlDashboard {
647
973
  "Retrieves the list of modules currently available on the platform"
648
974
  modules: [GqlModule]
@@ -651,6 +977,13 @@ type GqlDashboard {
651
977
  }
652
978
 
653
979
  type GqlEditorFormMutations {
980
+ "Publish the edited node with the associated technical sub nodes (visibility conditions, vanity urls, ACLs)"
981
+ publishForm(
982
+ "A string representation of a locale, in IETF BCP 47 language tag format, ie en_US, en, fr, fr_CH, ..."
983
+ locale: String!,
984
+ "UUID or path of the edited node."
985
+ uuidOrPath: String!
986
+ ): Boolean
654
987
  "Unlock the given node for edition, if the node is locked."
655
988
  unlockEditor(
656
989
  "An ID generated client side used to identify the lock"
@@ -736,11 +1069,6 @@ type GqlEditorForms {
736
1069
  ): Int
737
1070
  }
738
1071
 
739
- type GqlEditorLockHeartBeat {
740
- "The empty heartbeat signal"
741
- heartbeat: String
742
- }
743
-
744
1072
  type GqlJcrImageTransformMutation {
745
1073
  "Crop an image under the current node"
746
1074
  cropImage(
@@ -818,6 +1146,13 @@ type GqlPublicationInfo {
818
1146
  workInProgress: Boolean
819
1147
  }
820
1148
 
1149
+ "Scheduler object which allows to access to background jobs"
1150
+ type GqlScheduler {
1151
+ "List of active jobs"
1152
+ jobs: [GqlBackgroundJob]
1153
+ }
1154
+
1155
+ "API Scope"
821
1156
  type GqlScope {
822
1157
  "The description of the scope"
823
1158
  description: String
@@ -825,19 +1160,140 @@ type GqlScope {
825
1160
  name: String
826
1161
  }
827
1162
 
1163
+ type GqlSitemapMutation {
1164
+ "Delete existing sitemap cache if exists before expiration time difference"
1165
+ deleteSitemapCache(
1166
+ "Site key"
1167
+ siteKey: String
1168
+ ): Boolean
1169
+ "Sending sitemap(s) based on either sitemap index XML or sitemap XML URL to search engine URL(s) specified in CFG"
1170
+ sendSitemapToSearchEngine(
1171
+ "Sitemap index XML or sitemap XML URL"
1172
+ sitemapURL: String!
1173
+ ): Boolean
1174
+ }
1175
+
1176
+ type GqlSitemapQueries {
1177
+ "Get site URL with only server domain appended from sitemap URL"
1178
+ siteUrl(
1179
+ "Sitemap index XML or sitemap XML URL"
1180
+ siteKey: String!
1181
+ ): String
1182
+ }
1183
+
1184
+ type GqlWorkflowEvent {
1185
+ "Number of tasks for current user"
1186
+ activeWorkflowTaskCountForUser: Int
1187
+ "Task that has just been created"
1188
+ createdTask: Task
1189
+ "Task that has just been ended"
1190
+ endedTask: Task
1191
+ "Workflow that has just been ended"
1192
+ endedWorkflow: Workflow
1193
+ "Workflow that has just been started"
1194
+ startedWorkflow: Workflow
1195
+ }
1196
+
1197
+ "GraphQL representation of a Jahia group"
1198
+ type Group implements Principal {
1199
+ "Full display name"
1200
+ displayName: String
1201
+ "List of groups this principal belongs to"
1202
+ groupMembership(
1203
+ "fetching only nodes after this node (exclusive)"
1204
+ after: String,
1205
+ "fetching only nodes before this node (exclusive)"
1206
+ before: String,
1207
+ "Filter by graphQL fields values"
1208
+ fieldFilter: InputFieldFiltersInput,
1209
+ "Group fields according to specified criteria"
1210
+ fieldGrouping: InputFieldGroupingInput,
1211
+ "Sort by graphQL fields values"
1212
+ fieldSorter: InputFieldSorterInput,
1213
+ "fetching only the first certain number of nodes"
1214
+ first: Int,
1215
+ "fetching only the last certain number of nodes"
1216
+ last: Int,
1217
+ "fetching only the first certain number of nodes"
1218
+ limit: Int,
1219
+ "fetching only nodes after this node (inclusive)"
1220
+ offset: Int,
1221
+ "Return only groups which belong to this site"
1222
+ site: String
1223
+ ): GroupConnection!
1224
+ "Is this principal member of the specified group"
1225
+ memberOf(
1226
+ "Target group"
1227
+ group: String,
1228
+ "Site where the group is defined"
1229
+ site: String
1230
+ ): Boolean
1231
+ "Group members"
1232
+ members(
1233
+ "fetching only nodes after this node (exclusive)"
1234
+ after: String,
1235
+ "fetching only nodes before this node (exclusive)"
1236
+ before: String,
1237
+ "Filter by graphQL fields values"
1238
+ fieldFilter: InputFieldFiltersInput,
1239
+ "Group fields according to specified criteria"
1240
+ fieldGrouping: InputFieldGroupingInput,
1241
+ "Sort by graphQL fields values"
1242
+ fieldSorter: InputFieldSorterInput,
1243
+ "fetching only the first certain number of nodes"
1244
+ first: Int,
1245
+ "fetching only the last certain number of nodes"
1246
+ last: Int,
1247
+ "fetching only the first certain number of nodes"
1248
+ limit: Int,
1249
+ "fetching only nodes after this node (inclusive)"
1250
+ offset: Int
1251
+ ): PrincipalConnection!
1252
+ "Group name"
1253
+ name: String!
1254
+ "Get the corresponding JCR node"
1255
+ node: JCRNode
1256
+ "Return GROUP principal type"
1257
+ principalType: PrincipalType
1258
+ "Group property"
1259
+ property(
1260
+ "The name of the property"
1261
+ name: String!
1262
+ ): String
1263
+ "Site where the group is defined"
1264
+ site: JCRSite
1265
+ }
1266
+
1267
+ "A connection to a list of items."
1268
+ type GroupConnection {
1269
+ "a list of edges"
1270
+ edges: [GroupEdge]
1271
+ "a list of nodes"
1272
+ nodes: [Group]
1273
+ "details about this specific page"
1274
+ pageInfo: PageInfo!
1275
+ }
1276
+
1277
+ "An edge in a connection"
1278
+ type GroupEdge {
1279
+ "cursor marks a unique position or index into the connection"
1280
+ cursor: String!
1281
+ "index in the connection"
1282
+ index: Int
1283
+ "The item at the end of the edge"
1284
+ node: Group
1285
+ }
1286
+
828
1287
  "Asset type for image"
829
1288
  type ImageAsset {
830
1289
  "Image height"
831
1290
  height: Long
832
1291
  "Asset metadata"
833
1292
  metadata: Metadata
834
- path: String
835
1293
  "Image size"
836
1294
  size: Long
837
1295
  "Mime type of image"
838
1296
  type: String
839
- url: String
840
- uuid: String
841
1297
  "Image width"
842
1298
  width: Long
843
1299
  }
@@ -885,7 +1341,9 @@ type JCRMutation {
885
1341
  "Name of the request part that contains desired import file body"
886
1342
  file: String!,
887
1343
  "The path or id of the parent node"
888
- parentPathOrId: String!
1344
+ parentPathOrId: String!,
1345
+ "Specify the behaviour in case of existing content, possible values are in the DocumentViewImportHandler class"
1346
+ rootBehaviour: Int = 2
889
1347
  ): Boolean
890
1348
  "Marks the existing node and all its children for deletion"
891
1349
  markNodeForDeletion(
@@ -1059,6 +1517,15 @@ type JCRNodeMutation {
1059
1517
  ): Boolean
1060
1518
  "Delete the current node (and its subgraph)"
1061
1519
  delete: Boolean
1520
+ "Grant role permissions to specified principal user/group for the given node"
1521
+ grantRoles(
1522
+ "Name of principal (user/group)"
1523
+ principalName: String!,
1524
+ "Type of principal (user/group) specified"
1525
+ principalType: PrincipalType!,
1526
+ "Roles to grant user/group for this node"
1527
+ roleNames: [String]!
1528
+ ): Boolean
1062
1529
  "Import a file under the current node"
1063
1530
  importContent(
1064
1531
  "Name of the request part that contains desired import file body"
@@ -1135,6 +1602,8 @@ type JCRNodeMutation {
1135
1602
  node: JCRNode
1136
1603
  "Publish the node in certain languages"
1137
1604
  publish(
1605
+ "Publish all sub tree including sub pages. Default is false."
1606
+ includeSubTree: Boolean = false,
1138
1607
  "Languages to publish the node in"
1139
1608
  languages: [String],
1140
1609
  "Publish all sub and related nodes. Default is true."
@@ -1157,6 +1626,15 @@ type JCRNodeMutation {
1157
1626
  "The target position of reordered child nodes. The default value is inplace."
1158
1627
  position: ReorderedChildrenPosition = INPLACE
1159
1628
  ): Boolean
1629
+ "Remove/deny roles to specified principal user/group for the given node"
1630
+ revokeRoles(
1631
+ "Name of principal (user/group)"
1632
+ principalName: String!,
1633
+ "Type of principal (user/group) specified"
1634
+ principalType: PrincipalType!,
1635
+ "Roles to grant user/group for this node"
1636
+ roleNames: [String]!
1637
+ ): Boolean
1160
1638
  "Mutates or creates a set of properties on the current node"
1161
1639
  setPropertiesBatch(
1162
1640
  "The collection of JCR properties to set"
@@ -1270,6 +1748,24 @@ type JCRNodeTypeEdge {
1270
1748
 
1271
1749
  "GraphQL representation of a JCR property."
1272
1750
  type JCRProperty {
1751
+ "The value of the JCR property as a Boolean in case the property is single-valued, null otherwise"
1752
+ booleanValue: Boolean
1753
+ "The values of the JCR property as Booleans in case the property is multiple-valued, null otherwise"
1754
+ booleanValues: [Boolean]
1755
+ "The value of the JCR property rendered by the specified choicelist renderer in case the property is single-valued, null otherwise"
1756
+ choicelistValue(
1757
+ "The language"
1758
+ language: String,
1759
+ "The choicelist renderer name to be used"
1760
+ renderer: String
1761
+ ): String
1762
+ "The value of the JCR property rendered by the specified choicelist renderer in case the property is multiple-valued, null otherwise"
1763
+ choicelistValues(
1764
+ "The language"
1765
+ language: String,
1766
+ "The choicelist renderer name to be used"
1767
+ renderer: String
1768
+ ): [String]
1273
1769
  "The decrypted value of the JCR encrypted property as a String in case the property is single-valued, null otherwise"
1274
1770
  decryptedValue: String
1275
1771
  "The decrypted values of the JCR encrypted property as a Strings in case the property is multiple-valued, null otherwise"
@@ -1386,16 +1882,40 @@ type JCRPropertyMutation {
1386
1882
  "JCR Queries"
1387
1883
  type JCRQuery {
1388
1884
  "Retrieves the number of active workflow tasks for the current user"
1389
- activeWorkflowTaskCountForUser: Int
1885
+ activeWorkflowTaskCountForUser: Int @deprecated(reason: "Use /workflow/activeWorkflowTaskCountForUser instead")
1390
1886
  "Get GraphQL representation of a node by its UUID"
1391
1887
  nodeById(
1392
1888
  "The UUID of the node"
1393
- uuid: String!
1889
+ uuid: String!,
1890
+ """
1891
+
1892
+ Check node validity in this language.
1893
+
1894
+ Node validity is determined by multiple conditions:
1895
+
1896
+ * The node exists
1897
+ * The node is not attached to a visibility condition preventing its display
1898
+ * The node is published in this language
1899
+ * The node's language has not been invalidated.
1900
+ """
1901
+ validInLanguage: String
1394
1902
  ): JCRNode
1395
1903
  "Get GraphQL representation of a node by its path"
1396
1904
  nodeByPath(
1397
1905
  "The path of the node"
1398
- path: String!
1906
+ path: String!,
1907
+ """
1908
+
1909
+ Check node validity in this language.
1910
+
1911
+ Node validity is determined by multiple conditions:
1912
+
1913
+ * The node exists
1914
+ * The node is not attached to a visibility condition preventing its display
1915
+ * The node is published in this language
1916
+ * The node's language has not been invalidated.
1917
+ """
1918
+ validInLanguage: String
1399
1919
  ): JCRNode
1400
1920
  "Get a node type by its name"
1401
1921
  nodeTypeByName(
@@ -1452,12 +1972,36 @@ type JCRQuery {
1452
1972
  "Get GraphQL representations of multiple nodes by their UUIDs"
1453
1973
  nodesById(
1454
1974
  "The UUIDs of the nodes"
1455
- uuids: [String!]!
1975
+ uuids: [String!]!,
1976
+ """
1977
+
1978
+ Check node validity in this language.
1979
+
1980
+ Node validity is determined by multiple conditions:
1981
+
1982
+ * The node exists
1983
+ * The node is not attached to a visibility condition preventing its display
1984
+ * The node is published in this language
1985
+ * The node's language has not been invalidated.
1986
+ """
1987
+ validInLanguage: String
1456
1988
  ): [JCRNode]!
1457
1989
  "Get GraphQL representations of multiple nodes by their paths"
1458
1990
  nodesByPath(
1459
1991
  "The paths of the nodes"
1460
- paths: [String!]!
1992
+ paths: [String!]!,
1993
+ """
1994
+
1995
+ Check node validity in this language.
1996
+
1997
+ Node validity is determined by multiple conditions:
1998
+
1999
+ * The node exists
2000
+ * The node is not attached to a visibility condition preventing its display
2001
+ * The node is published in this language
2002
+ * The node's language has not been invalidated.
2003
+ """
2004
+ validInLanguage: String
1461
2005
  ): [JCRNode]!
1462
2006
  "Get GraphQL representations of nodes using a query language supported by JCR"
1463
2007
  nodesByQuery(
@@ -1469,11 +2013,11 @@ type JCRQuery {
1469
2013
  fieldFilter: InputFieldFiltersInput,
1470
2014
  "Group fields by criteria"
1471
2015
  fieldGrouping: InputFieldGroupingInput,
1472
- "sort by GraphQL field values"
2016
+ "Sort by GraphQL field values"
1473
2017
  fieldSorter: InputFieldSorterInput,
1474
2018
  "fetching only the first certain number of nodes"
1475
2019
  first: Int,
1476
- "Language to access node properties in"
2020
+ "Language to use for the query"
1477
2021
  language: String,
1478
2022
  "fetching only the last certain number of nodes"
1479
2023
  last: Int,
@@ -1492,6 +2036,8 @@ type JCRQuery {
1492
2036
 
1493
2037
  "GraphQL representation of a site node"
1494
2038
  type JCRSite implements JCRNode {
2039
+ "Get ACL info for this node"
2040
+ acl: GqlAcl
1495
2041
  "Get the last modified date of this node and its descendants. The recursion in descendants can be controlled by recursionTypesFilter. If no filter is passed, recursion will stop by default on sub pages."
1496
2042
  aggregatedLastModifiedDate(
1497
2043
  "The language"
@@ -1551,8 +2097,10 @@ type JCRSite implements JCRNode {
1551
2097
  "Filter of child nodes by their property values; null to avoid such filtering"
1552
2098
  propertiesFilter: InputNodePropertiesInput,
1553
2099
  "Filter of child nodes by their types; null to avoid such filtering"
1554
- typesFilter: InputNodeTypesInput
1555
- ): JCRNodeConnection!
2100
+ typesFilter: InputNodeTypesInput,
2101
+ "Language to use to get children"
2102
+ validInLanguage: String
2103
+ ): JCRNodeConnection
1556
2104
  "Site default language"
1557
2105
  defaultLanguage: String
1558
2106
  "Read default Work in progress information. Set by \"wip.checkbox.checked\" system proprety"
@@ -1591,11 +2139,13 @@ type JCRSite implements JCRNode {
1591
2139
  "Filter out and stop recursion on nodes by their types; null to avoid such filtering"
1592
2140
  recursionTypesFilter: InputNodeTypesInput,
1593
2141
  "Filter of descendant nodes by their types; null to avoid such filtering"
1594
- typesFilter: InputNodeTypesInput
1595
- ): JCRNodeConnection!
2142
+ typesFilter: InputNodeTypesInput,
2143
+ "Language to use to get children"
2144
+ validInLanguage: String
2145
+ ): JCRNodeConnection
1596
2146
  "Site description"
1597
2147
  description: String
1598
- "GraphQL representation of the parent JCR node"
2148
+ "The displayable name of the JCR node"
1599
2149
  displayName(
1600
2150
  "Language"
1601
2151
  language: String
@@ -1609,6 +2159,8 @@ type JCRSite implements JCRNode {
1609
2159
  "The name of the permission"
1610
2160
  permissionName: String!
1611
2161
  ): Boolean
2162
+ "Returns the node of the home page"
2163
+ homePage: JCRNode
1612
2164
  "Retrieves a collection of module IDs, which are installed on the site, the node belongs to"
1613
2165
  installedModules: [String]
1614
2166
  "Retrieves a collection of module IDs, which are installed on the site, the node belongs to, as well as dependencies of those modules"
@@ -1660,14 +2212,18 @@ type JCRSite implements JCRNode {
1660
2212
  "The language to obtain the properties in; must be a valid language code in case any internationalized properties are requested, does not matter for non-internationalized ones"
1661
2213
  language: String,
1662
2214
  "The names of the JCR properties; null to obtain all properties"
1663
- names: [String]
2215
+ names: [String],
2216
+ "When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option \"Replace untranslated content with the default language content\" is not activated for the site of the requested node. Will also return null if there is no translation for the default language."
2217
+ useFallbackLanguage: Boolean = false
1664
2218
  ): [JCRProperty]!
1665
2219
  "The GraphQL representation of the property in the requested language; null if the property does not exist"
1666
2220
  property(
1667
2221
  "The language to obtain the property in; must be a valid language code for internationalized properties, does not matter for non-internationalized ones"
1668
2222
  language: String,
1669
2223
  "The name of the JCR property"
1670
- name: String!
2224
+ name: String!,
2225
+ "When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option \"Replace untranslated content with the default language content\" is not activated for the site of the requested node. Will also return null if there is no translation for the default language."
2226
+ useFallbackLanguage: Boolean = false
1671
2227
  ): JCRProperty
1672
2228
  "GraphQL representations of the reference properties that target the current JCR Node"
1673
2229
  references(
@@ -1690,8 +2246,12 @@ type JCRSite implements JCRNode {
1690
2246
  renderedContent(
1691
2247
  "Rendering context configuration"
1692
2248
  contextConfiguration: String,
2249
+ "Is edit mode"
2250
+ isEditMode: Boolean,
1693
2251
  "Language"
1694
2252
  language: String,
2253
+ "Main resource path"
2254
+ mainResourcePath: String,
1695
2255
  "Additional request attributes"
1696
2256
  requestAttributes: [InputRenderRequestAttributeInput],
1697
2257
  "Template type"
@@ -1705,6 +2265,11 @@ type JCRSite implements JCRNode {
1705
2265
  site: JCRSite
1706
2266
  "Site key"
1707
2267
  sitekey: String
2268
+ "Returns languages of available translations for this node"
2269
+ translationLanguages(
2270
+ "Optional: Return languages only if it is active for the site"
2271
+ isActiveOnly: Boolean
2272
+ ): [String]
1708
2273
  "The UUID of the JCR node this object represents"
1709
2274
  uuid: String!
1710
2275
  "Get vanity URLs from the current node filtered by the parameters"
@@ -1770,6 +2335,92 @@ type JWTToken {
1770
2335
  token: String
1771
2336
  }
1772
2337
 
2338
+ "Admin mutations"
2339
+ type JahiaAdminMutation {
2340
+ "Mutate an OSGi configuration"
2341
+ configuration(
2342
+ "If factory pid, configiration identifier (filename suffix)"
2343
+ identifier: String,
2344
+ "Configuration pid ot factory pid"
2345
+ pid: String!
2346
+ ): GqlConfigurationMutation
2347
+ }
2348
+
2349
+ "Jahia admin queries root"
2350
+ type JahiaAdminQuery {
2351
+ "Read an OSGi configuration"
2352
+ configuration(
2353
+ "If factory pid, configuration identifier (filename suffix)"
2354
+ identifier: String,
2355
+ "Configuration pid ot factory pid"
2356
+ pid: String!
2357
+ ): GqlConfigurationQuery
2358
+ "Details about the database Jahia is connected to"
2359
+ database: JahiaDatabase
2360
+ "Get jobs scheduler"
2361
+ scheduler: GqlScheduler
2362
+ "Details about the system hosting Jahia"
2363
+ system: JahiaSystem
2364
+ "Version of the running Jahia instance"
2365
+ version: JahiaVersion
2366
+ }
2367
+
2368
+ "Details about the database Jahia is connected to"
2369
+ type JahiaDatabase {
2370
+ "Name of the driver used to connect to the database"
2371
+ driverName: String
2372
+ "Version of the driver used to connect to the database"
2373
+ driverVersion: String
2374
+ "Name of the database vendor"
2375
+ name: String
2376
+ "Type of database specified in Jahia configuration"
2377
+ type: String
2378
+ "Version of the database"
2379
+ version: String
2380
+ }
2381
+
2382
+ "Details about the system used to run Jahia"
2383
+ type JahiaSystem {
2384
+ "Details about the operating system"
2385
+ java: JahiaSystemJava
2386
+ "Details about the operating system"
2387
+ os: JahiaSystemOs
2388
+ }
2389
+
2390
+ "Details about the system OS used to run Jahia"
2391
+ type JahiaSystemJava {
2392
+ "Java Runtime name"
2393
+ runtimeName: String
2394
+ "Java Runtime version"
2395
+ runtimeVersion: String
2396
+ "Java vendor"
2397
+ vendor: String
2398
+ "Java vendor version"
2399
+ vendorVersion: String
2400
+ }
2401
+
2402
+ "Details about the system OS used to run Jahia"
2403
+ type JahiaSystemOs {
2404
+ "Operating System Architecture (amd64, arm64, ...)"
2405
+ architecture: String
2406
+ "Operating System Name"
2407
+ name: String
2408
+ "Operating System Version"
2409
+ version: String
2410
+ }
2411
+
2412
+ "Version of the running Jahia instance"
2413
+ type JahiaVersion {
2414
+ "Build number of the running Jahia instance"
2415
+ build: String
2416
+ "Build date of the running Jahia instance"
2417
+ buildDate: String
2418
+ "Flag returning if running Jahia instance is a SNAPSHOT"
2419
+ isSnapshot: Boolean
2420
+ "Release of the running Jahia instance"
2421
+ release: String
2422
+ }
2423
+
1773
2424
  "Information on node lock"
1774
2425
  type LockInfo {
1775
2426
  "Can the node be locked"
@@ -1799,14 +2450,12 @@ type Metadata {
1799
2450
  lastPublished: Date
1800
2451
  "Author of last publication of the associated content"
1801
2452
  lastPublishedBy: String
1802
- path: String
1803
- uuid: String
1804
2453
  }
1805
2454
 
1806
2455
  "Root mutation type"
1807
2456
  type Mutation {
1808
2457
  "Admin Mutation"
1809
- admin: adminMutation
2458
+ admin: AdminMutation!
1810
2459
  "Main access field to the DX GraphQL Form mutation API"
1811
2460
  forms: GqlEditorFormMutations
1812
2461
  "JCR Mutation"
@@ -1933,6 +2582,7 @@ type PersonalApiTokensMutation {
1933
2582
 
1934
2583
  "Queries for Personal Api Tokens"
1935
2584
  type PersonalApiTokensQuery {
2585
+ "Get available scopes"
1936
2586
  availableScopes: [GqlScope]
1937
2587
  "Get token details, based on key"
1938
2588
  tokenByKey(
@@ -1976,6 +2626,26 @@ type PersonalApiTokensQuery {
1976
2626
  ): Boolean
1977
2627
  }
1978
2628
 
2629
+ "A connection to a list of items."
2630
+ type PrincipalConnection {
2631
+ "a list of edges"
2632
+ edges: [PrincipalEdge]
2633
+ "a list of nodes"
2634
+ nodes: [Principal]
2635
+ "details about this specific page"
2636
+ pageInfo: PageInfo!
2637
+ }
2638
+
2639
+ "An edge in a connection"
2640
+ type PrincipalEdge {
2641
+ "cursor marks a unique position or index into the connection"
2642
+ cursor: String!
2643
+ "index in the connection"
2644
+ index: Int
2645
+ "The item at the end of the edge"
2646
+ node: Principal
2647
+ }
2648
+
1979
2649
  "Root query type"
1980
2650
  type Query {
1981
2651
  "Admin Queries"
@@ -1997,7 +2667,7 @@ type Query {
1997
2667
  preview: Boolean = false
1998
2668
  ): Category
1999
2669
  "Get the current user"
2000
- currentUser: User
2670
+ currentUser: Current_32_user
2001
2671
  "Main access field to the DX GraphQL Dashboard API"
2002
2672
  dashboard: GqlDashboard
2003
2673
  "Main access field to the DX GraphQL Form API"
@@ -2009,6 +2679,8 @@ type Query {
2009
2679
  ): JCRQuery!
2010
2680
  "Tag Queries"
2011
2681
  tag: JCRTags
2682
+ "Retrieves the number of active workflow tasks for the current user"
2683
+ workflow: WorkflowService
2012
2684
  }
2013
2685
 
2014
2686
  "Rendering result for a node"
@@ -2079,15 +2751,86 @@ type Subscription {
2079
2751
  subscribeToEditorLock(
2080
2752
  "An ID generated client side used to identify the lock"
2081
2753
  editorID: String!,
2082
- "Path of the node to be locked."
2083
- nodePath: String!
2084
- ): GqlEditorLockHeartBeat
2754
+ "Uuid of the node to be locked."
2755
+ nodeId: String!
2756
+ ): String
2757
+ "Subscription on workflows"
2758
+ workflowEvent: GqlWorkflowEvent
2759
+ }
2760
+
2761
+ "Workflow task"
2762
+ type Task {
2763
+ "Task assignee"
2764
+ assignee: User
2765
+ "Creation time"
2766
+ creationTime: String
2767
+ "Due date"
2768
+ dueDate: String
2769
+ "Task id"
2770
+ id: String
2771
+ "Task name"
2772
+ name: String
2773
+ "Parent workflow"
2774
+ workflow: Workflow
2775
+ }
2776
+
2777
+ "A connection to a list of items."
2778
+ type TaskConnection {
2779
+ "a list of edges"
2780
+ edges: [TaskEdge]
2781
+ "a list of nodes"
2782
+ nodes: [Task]
2783
+ "details about this specific page"
2784
+ pageInfo: PageInfo!
2785
+ }
2786
+
2787
+ "An edge in a connection"
2788
+ type TaskEdge {
2789
+ "cursor marks a unique position or index into the connection"
2790
+ cursor: String!
2791
+ "index in the connection"
2792
+ index: Int
2793
+ "The item at the end of the edge"
2794
+ node: Task
2085
2795
  }
2086
2796
 
2087
2797
  "GraphQL representation of a Jahia user"
2088
2798
  type User implements Principal {
2089
2799
  "Full display name"
2090
2800
  displayName: String
2801
+ "Email of the user"
2802
+ email: String
2803
+ "First name of the user"
2804
+ firstname: String
2805
+ "List of groups this principal belongs to"
2806
+ groupMembership(
2807
+ "fetching only nodes after this node (exclusive)"
2808
+ after: String,
2809
+ "fetching only nodes before this node (exclusive)"
2810
+ before: String,
2811
+ "Filter by graphQL fields values"
2812
+ fieldFilter: InputFieldFiltersInput,
2813
+ "Group fields according to specified criteria"
2814
+ fieldGrouping: InputFieldGroupingInput,
2815
+ "Sort by graphQL fields values"
2816
+ fieldSorter: InputFieldSorterInput,
2817
+ "fetching only the first certain number of nodes"
2818
+ first: Int,
2819
+ "fetching only the last certain number of nodes"
2820
+ last: Int,
2821
+ "fetching only the first certain number of nodes"
2822
+ limit: Int,
2823
+ "fetching only nodes after this node (inclusive)"
2824
+ offset: Int,
2825
+ "Return only groups which belong to this site"
2826
+ site: String
2827
+ ): GroupConnection!
2828
+ "Preferred language by the user"
2829
+ language: String
2830
+ "Last name of the user"
2831
+ lastname: String
2832
+ "Displays if user is locked"
2833
+ locked: Boolean
2091
2834
  "Is this principal member of the specified group"
2092
2835
  memberOf(
2093
2836
  "Target group"
@@ -2096,9 +2839,13 @@ type User implements Principal {
2096
2839
  site: String
2097
2840
  ): Boolean
2098
2841
  "User name"
2099
- name: String!
2842
+ name: String! @deprecated(reason: "Deprecated")
2100
2843
  "Get the corresponding JCR node"
2101
2844
  node: JCRNode
2845
+ "User organization"
2846
+ organization: String
2847
+ "Return USER principal type"
2848
+ principalType: PrincipalType
2102
2849
  "User property"
2103
2850
  property(
2104
2851
  "The name of the property"
@@ -2106,10 +2853,77 @@ type User implements Principal {
2106
2853
  ): String
2107
2854
  "Site where the user is defined"
2108
2855
  site: JCRSite
2856
+ "Username of the user"
2857
+ username: String!
2858
+ }
2859
+
2860
+ "User admin queries"
2861
+ type UserAdminQuery {
2862
+ "Get a user"
2863
+ user(
2864
+ "Site where the user is defined"
2865
+ site: String,
2866
+ "User name"
2867
+ username: String!
2868
+ ): User
2869
+ "Get users list"
2870
+ users(
2871
+ "fetching only nodes after this node (exclusive)"
2872
+ after: String,
2873
+ "fetching only nodes before this node (exclusive)"
2874
+ before: String,
2875
+ "Filter by graphQL fields values"
2876
+ fieldFilter: InputFieldFiltersInput,
2877
+ "Group fields according to specified criteria"
2878
+ fieldGrouping: InputFieldGroupingInput,
2879
+ "Sort by graphQL fields values"
2880
+ fieldSorter: InputFieldSorterInput,
2881
+ "fetching only the first certain number of nodes"
2882
+ first: Int,
2883
+ "fetching only the last certain number of nodes"
2884
+ last: Int,
2885
+ "fetching only the first certain number of nodes"
2886
+ limit: Int,
2887
+ "fetching only nodes after this node (inclusive)"
2888
+ offset: Int
2889
+ ): UserConnection
2890
+ }
2891
+
2892
+ "A connection to a list of items."
2893
+ type UserConnection {
2894
+ "a list of edges"
2895
+ edges: [UserEdge]
2896
+ "a list of nodes"
2897
+ nodes: [User]
2898
+ "details about this specific page"
2899
+ pageInfo: PageInfo!
2900
+ }
2901
+
2902
+ "An edge in a connection"
2903
+ type UserEdge {
2904
+ "cursor marks a unique position or index into the connection"
2905
+ cursor: String!
2906
+ "index in the connection"
2907
+ index: Int
2908
+ "The item at the end of the edge"
2909
+ node: User
2910
+ }
2911
+
2912
+ "User group queries"
2913
+ type UserGroupQuery {
2914
+ "Get a group"
2915
+ group(
2916
+ "Group name"
2917
+ groupName: String!,
2918
+ "Site where the group is defined"
2919
+ site: String
2920
+ ): Group
2109
2921
  }
2110
2922
 
2111
2923
  "GraphQL representation of a vanity URL"
2112
2924
  type VanityUrl implements JCRNode {
2925
+ "Get ACL info for this node"
2926
+ acl: GqlAcl
2113
2927
  "true if the URL mapping is activated or false if it is not activated"
2114
2928
  active: Boolean
2115
2929
  "Get the last modified date of this node and its descendants. The recursion in descendants can be controlled by recursionTypesFilter. If no filter is passed, recursion will stop by default on sub pages."
@@ -2171,8 +2985,10 @@ type VanityUrl implements JCRNode {
2171
2985
  "Filter of child nodes by their property values; null to avoid such filtering"
2172
2986
  propertiesFilter: InputNodePropertiesInput,
2173
2987
  "Filter of child nodes by their types; null to avoid such filtering"
2174
- typesFilter: InputNodeTypesInput
2175
- ): JCRNodeConnection!
2988
+ typesFilter: InputNodeTypesInput,
2989
+ "Language to use to get children"
2990
+ validInLanguage: String
2991
+ ): JCRNodeConnection
2176
2992
  "true whether this URL mapping is the default one for the language"
2177
2993
  default: Boolean
2178
2994
  "Read default Work in progress information. Set by \"wip.checkbox.checked\" system proprety"
@@ -2211,9 +3027,11 @@ type VanityUrl implements JCRNode {
2211
3027
  "Filter out and stop recursion on nodes by their types; null to avoid such filtering"
2212
3028
  recursionTypesFilter: InputNodeTypesInput,
2213
3029
  "Filter of descendant nodes by their types; null to avoid such filtering"
2214
- typesFilter: InputNodeTypesInput
2215
- ): JCRNodeConnection!
2216
- "GraphQL representation of the parent JCR node"
3030
+ typesFilter: InputNodeTypesInput,
3031
+ "Language to use to get children"
3032
+ validInLanguage: String
3033
+ ): JCRNodeConnection
3034
+ "The displayable name of the JCR node"
2217
3035
  displayName(
2218
3036
  "Language"
2219
3037
  language: String
@@ -2274,14 +3092,18 @@ type VanityUrl implements JCRNode {
2274
3092
  "The language to obtain the properties in; must be a valid language code in case any internationalized properties are requested, does not matter for non-internationalized ones"
2275
3093
  language: String,
2276
3094
  "The names of the JCR properties; null to obtain all properties"
2277
- names: [String]
3095
+ names: [String],
3096
+ "When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option \"Replace untranslated content with the default language content\" is not activated for the site of the requested node. Will also return null if there is no translation for the default language."
3097
+ useFallbackLanguage: Boolean = false
2278
3098
  ): [JCRProperty]!
2279
3099
  "The GraphQL representation of the property in the requested language; null if the property does not exist"
2280
3100
  property(
2281
3101
  "The language to obtain the property in; must be a valid language code for internationalized properties, does not matter for non-internationalized ones"
2282
3102
  language: String,
2283
3103
  "The name of the JCR property"
2284
- name: String!
3104
+ name: String!,
3105
+ "When set to true, returns the node in the default language if there is no translation for the requested language. Returns null if the option \"Replace untranslated content with the default language content\" is not activated for the site of the requested node. Will also return null if there is no translation for the default language."
3106
+ useFallbackLanguage: Boolean = false
2285
3107
  ): JCRProperty
2286
3108
  "GraphQL representations of the reference properties that target the current JCR Node"
2287
3109
  references(
@@ -2304,8 +3126,12 @@ type VanityUrl implements JCRNode {
2304
3126
  renderedContent(
2305
3127
  "Rendering context configuration"
2306
3128
  contextConfiguration: String,
3129
+ "Is edit mode"
3130
+ isEditMode: Boolean,
2307
3131
  "Language"
2308
3132
  language: String,
3133
+ "Main resource path"
3134
+ mainResourcePath: String,
2309
3135
  "Additional request attributes"
2310
3136
  requestAttributes: [InputRenderRequestAttributeInput],
2311
3137
  "Template type"
@@ -2317,6 +3143,11 @@ type VanityUrl implements JCRNode {
2317
3143
  site: JCRSite
2318
3144
  "The node targeted by this vanity URL"
2319
3145
  targetNode: JCRNode
3146
+ "Returns languages of available translations for this node"
3147
+ translationLanguages(
3148
+ "Optional: Return languages only if it is active for the site"
3149
+ isActiveOnly: Boolean
3150
+ ): [String]
2320
3151
  "The vanity URL"
2321
3152
  url: String
2322
3153
  "The UUID of the JCR node this object represents"
@@ -2359,7 +3190,13 @@ type VanityUrlMappingMutation {
2359
3190
  uuid: String
2360
3191
  }
2361
3192
 
3193
+ "Workflow process"
2362
3194
  type Workflow {
3195
+ "Workflow creation time"
3196
+ creationTime: String
3197
+ "Workflow due date"
3198
+ dueDate: String
3199
+ "Username who started the workflow"
2363
3200
  startUser: String
2364
3201
  }
2365
3202
 
@@ -2368,6 +3205,27 @@ type WorkflowMutation {
2368
3205
  workflow: Workflow
2369
3206
  }
2370
3207
 
3208
+ "Workflow service"
3209
+ type WorkflowService {
3210
+ "Retrieves the number of active workflow tasks for the current user"
3211
+ activeWorkflowTaskCountForUser: Int
3212
+ "Retrieves the active workflow tasks for the current user"
3213
+ activeWorkflowTasksForUser(
3214
+ "fetching only nodes after this node (exclusive)"
3215
+ after: String,
3216
+ "fetching only nodes before this node (exclusive)"
3217
+ before: String,
3218
+ "fetching only the first certain number of nodes"
3219
+ first: Int,
3220
+ "fetching only the last certain number of nodes"
3221
+ last: Int,
3222
+ "fetching only the first certain number of nodes"
3223
+ limit: Int,
3224
+ "fetching only nodes after this node (inclusive)"
3225
+ offset: Int
3226
+ ): TaskConnection
3227
+ }
3228
+
2371
3229
  type ZipFileMutation {
2372
3230
  "zip a file"
2373
3231
  addToZip(
@@ -2381,14 +3239,6 @@ type ZipFileMutation {
2381
3239
  ): Boolean
2382
3240
  }
2383
3241
 
2384
- "Admin mutations"
2385
- type adminMutation {
2386
- "Personal API tokens mutations"
2387
- personalApiTokens: PersonalApiTokensMutation
2388
- "Stub mutation to get version of the running Jahia instance"
2389
- version: String!
2390
- }
2391
-
2392
3242
  "Work in progress information"
2393
3243
  type wipInfo {
2394
3244
  "The languages set for Work in progress"
@@ -2520,6 +3370,14 @@ enum PathType {
2520
3370
  PARENT
2521
3371
  }
2522
3372
 
3373
+ "Principal type"
3374
+ enum PrincipalType {
3375
+ "Group principal type"
3376
+ GROUP
3377
+ "User principal type"
3378
+ USER
3379
+ }
3380
+
2523
3381
  enum PropertyEvaluation {
2524
3382
  "The property is absent"
2525
3383
  ABSENT
@@ -2626,6 +3484,12 @@ enum Workspace {
2626
3484
  LIVE
2627
3485
  }
2628
3486
 
3487
+ "Date type"
3488
+ scalar Date
3489
+
3490
+ "Long type"
3491
+ scalar Long
3492
+
2629
3493
  "Info about a node to be reproduced at (moved or copied to) another parent node"
2630
3494
  input InputCarriedJCRNode {
2631
3495
  "The name of the node at the new location or null if its current name should be preserved"
@@ -2839,6 +3703,14 @@ input InputNodeTypesListInput {
2839
3703
  siteKey: String
2840
3704
  }
2841
3705
 
3706
+ "Describes input using name and with principal type (user/group)"
3707
+ input InputPrincipalInput {
3708
+ "Get principal name"
3709
+ name: String
3710
+ "Get principal type (user/group)"
3711
+ type: PrincipalType
3712
+ }
3713
+
2842
3714
  "Request attribute that can be use by rendering API"
2843
3715
  input InputRenderRequestAttributeInput {
2844
3716
  "The name of the request attribute"
@@ -2865,10 +3737,3 @@ input InputwipInfo {
2865
3737
  "Get WIP status"
2866
3738
  status: WipStatus
2867
3739
  }
2868
-
2869
-
2870
- "Long type"
2871
- scalar Long
2872
-
2873
- "Date type"
2874
- scalar Date