graphdb-workbench-tests 3.3.0-TR5 → 3.3.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 (41) hide show
  1. package/e2e-legacy/explore/visual-graph/graphs-config.spec.js +4 -4
  2. package/e2e-legacy/explore/visual-graph/visual.graph.spec.js +1 -1
  3. package/e2e-legacy/guides/connectors/connectors-guide.spec.js +12 -1
  4. package/e2e-legacy/guides/create-similarity-index/create-similarity-index-guide.spec.js +74 -0
  5. package/e2e-legacy/guides/download-guide-resource/download-guide-resource-guide.js +55 -0
  6. package/e2e-legacy/guides/ttyg/conversation/ttyg-conversation-guide.spec.js +88 -0
  7. package/e2e-legacy/help/guides/guides-autostart.spec.js +93 -0
  8. package/e2e-legacy/import/import-server-files.spec.js +2 -2
  9. package/e2e-legacy/import/import-user-data.spec.js +2 -2
  10. package/e2e-legacy/repository/ontop-repository.spec.js +1 -1
  11. package/e2e-legacy/repository/url-with-repository-id-parameter.spec.js +155 -0
  12. package/e2e-legacy/setup/jdbc/jdbc-create.spec.js +4 -4
  13. package/e2e-legacy/setup/users-and-access/user-and-access.spec.js +82 -71
  14. package/e2e-legacy/sparql-editor/saved-query/share-query.spec.js +4 -1
  15. package/e2e-legacy/ttyg/chat-panel.spec.js +5 -1
  16. package/fixtures/guides/connectors/lucene-connector-guide.json +14 -0
  17. package/fixtures/guides/create-similarity-index/create-similarity-index-guide.json +36 -0
  18. package/fixtures/guides/download-guide-resource/download-guide-resource-guide.json +25 -0
  19. package/fixtures/guides/download-resource.ttl +629 -0
  20. package/fixtures/guides/ttyg/conversation/ttyg-conversation-guide.json +26 -0
  21. package/fixtures/ttyg/chats/explain-response-3.json +12 -0
  22. package/npm-shrinkwrap.json +422 -427
  23. package/package.json +3 -3
  24. package/steps/explore/similarity-index-create-steps.js +5 -3
  25. package/steps/explore/similarity-indexes-steps.js +4 -0
  26. package/steps/guides/guide-dialog-steps.js +5 -0
  27. package/steps/guides/guide-steps.js +17 -0
  28. package/steps/home-steps.js +4 -0
  29. package/steps/import/import-steps.js +1 -1
  30. package/steps/main-menu-steps.js +4 -0
  31. package/steps/modal-dialog-steps.js +9 -0
  32. package/steps/repository-steps.js +5 -1
  33. package/steps/resource/resource-steps.js +2 -2
  34. package/steps/ttyg/chat-panel-steps.js +19 -1
  35. package/steps/ttyg/ttyg-agent-settings-modal.steps.js +8 -0
  36. package/steps/yasgui/yasgui-loader.js +3 -3
  37. package/stubs/guides/guides-stubs.js +19 -1
  38. package/support/connector-commands.js +1 -1
  39. package/support/user-commands.js +9 -4
  40. /package/e2e-legacy/help/guides/{star-wars-interactive-guide.js → star-wars-interactive-guide.spec.js} +0 -0
  41. /package/e2e-legacy/setup/sparql-template/{sparql-template-create.js → sparql-template-create.spec.js} +0 -0
@@ -9,24 +9,25 @@ import {MainMenuSteps} from '../../../steps/main-menu-steps';
9
9
 
10
10
  describe('User and Access', () => {
11
11
 
12
- const PASSWORD = "password";
13
- const ROLE_USER = "#roleUser";
14
- const ROLE_REPO_MANAGER = "#roleRepoAdmin";
15
- const ROLE_CUSTOM_ADMIN = "#roleAdmin";
16
- const DEFAULT_ADMIN_PASSWORD = "root";
12
+ const PASSWORD = 'password';
13
+ const ROLE_USER = '#roleUser';
14
+ const ROLE_REPO_MANAGER = '#roleRepoAdmin';
15
+ const ROLE_CUSTOM_ADMIN = '#roleAdmin';
16
+ const DEFAULT_ADMIN_PASSWORD = 'root';
17
17
 
18
18
  // eslint-disable-next-line no-undef
19
19
  context('', () => {
20
- const user = "user";
20
+ const user = 'user';
21
21
 
22
22
  beforeEach(() => {
23
23
  UserAndAccessSteps.visit();
24
24
  // Users table should be visible
25
25
  UserAndAccessSteps.getUsersTable().should('be.visible');
26
+ cy.switchOffSecurity(true);
26
27
  });
27
28
 
28
29
  afterEach(() => {
29
- cy.loginAsAdmin().then(()=> {
30
+ cy.loginAsAdmin().then(() => {
30
31
  cy.deleteUser(user, true);
31
32
  cy.switchOffSecurity(true);
32
33
  cy.switchOffFreeAccess(false);
@@ -126,7 +127,7 @@ describe('User and Access', () => {
126
127
  // When I enable security
127
128
  UserAndAccessSteps.toggleSecurity();
128
129
  // When I log in as an Admin
129
- LoginSteps.loginWithUser("admin", DEFAULT_ADMIN_PASSWORD);
130
+ LoginSteps.loginWithUser('admin', DEFAULT_ADMIN_PASSWORD);
130
131
  // Then the page should load
131
132
  UserAndAccessSteps.getSplashLoader().should('not.be.visible');
132
133
  UserAndAccessSteps.getUsersTable().should('be.visible');
@@ -142,7 +143,7 @@ describe('User and Access', () => {
142
143
  UserAndAccessSteps.getFreeAccessSwitchInput().should('be.checked');
143
144
  // And I should see a success message
144
145
  ToasterSteps.verifySuccess('Free access has been enabled.');
145
- ToasterSteps.getToast().should('not.exist')
146
+ ToasterSteps.getToast().should('not.exist');
146
147
  UserAndAccessSteps.getUsersTable().should('be.visible');
147
148
  // When I toggle Free Access OFF
148
149
  UserAndAccessSteps.toggleFreeAccess();
@@ -153,16 +154,27 @@ describe('User and Access', () => {
153
154
 
154
155
  it('should redirect to previous page after logout and then login', () => {
155
156
  UserAndAccessSteps.toggleSecurity();
156
- LoginSteps.loginWithUser("admin", DEFAULT_ADMIN_PASSWORD);
157
+ LoginSteps.loginWithUser('admin', DEFAULT_ADMIN_PASSWORD);
157
158
  MainMenuSteps.clickOnSparqlMenu();
158
159
  cy.url().should('include', '/sparql');
159
160
 
160
161
  LoginSteps.logout();
161
162
  cy.url().should('include', '/login');
162
- LoginSteps.loginWithUser("admin", DEFAULT_ADMIN_PASSWORD);
163
+ LoginSteps.loginWithUser('admin', DEFAULT_ADMIN_PASSWORD);
163
164
  cy.url().should('include', '/sparql');
164
165
  });
165
- })
166
+
167
+ it('should redirect to correct return url when user is authenticated and on login page', () => {
168
+ UserAndAccessSteps.visit();
169
+ UserAndAccessSteps.toggleSecurity();
170
+ LoginSteps.loginWithUser('admin', DEFAULT_ADMIN_PASSWORD);
171
+ UserAndAccessSteps.getUsersTable().should('be.visible');
172
+
173
+ cy.visit('/login?r=%252Fsparql');
174
+ cy.reload();
175
+ UserAndAccessSteps.getUrl().should('include', '/sparql');
176
+ });
177
+ });
166
178
  // eslint-disable-next-line no-undef
167
179
  context('GraphQL only', () => {
168
180
  let repositoryId1;
@@ -302,7 +314,7 @@ describe('User and Access', () => {
302
314
  //enable security
303
315
  UserAndAccessSteps.toggleSecurity();
304
316
  //login with the admin
305
- LoginSteps.loginWithUser("admin", DEFAULT_ADMIN_PASSWORD);
317
+ LoginSteps.loginWithUser('admin', DEFAULT_ADMIN_PASSWORD);
306
318
  // The Free Access toggle should be OFF
307
319
  UserAndAccessSteps.getFreeAccessSwitchInput().should('not.be.checked');
308
320
  // When I toggle Free Access ON
@@ -326,14 +338,14 @@ describe('User and Access', () => {
326
338
  // I change the repository to this with GraphQL only rights
327
339
  RepositorySelectorSteps.selectRepository(repositoryId3);
328
340
  // Then I should have GraphQL only rights
329
- FREE_ACCESS_MENU_ITEMS_WITHOUT_GRAPHQL.forEach(({path, expectedUrl, checks, expectedTitle}) => {
341
+ FREE_ACCESS_MENU_ITEMS_WITHOUT_GRAPHQL.forEach(({path, expectedUrl, checks, expectedTitle}) => {
330
342
  navigateMenuPath(path, expectedUrl, expectedTitle);
331
343
  if (checks) {
332
344
  runChecks(checks);
333
345
  }
334
346
  });
335
347
  // Turn free access off
336
- cy.loginAsAdmin().then(()=> {
348
+ cy.loginAsAdmin().then(() => {
337
349
  cy.switchOffFreeAccess(true);
338
350
  });
339
351
  });
@@ -343,7 +355,7 @@ describe('User and Access', () => {
343
355
  if (repoName === '*') {
344
356
  UserAndAccessSteps.clickGraphqlAccessAny();
345
357
  } else {
346
- UserAndAccessSteps.clickGraphqlAccessRepo(repoName);
358
+ UserAndAccessSteps.clickGraphqlAccessRepo(repoName);
347
359
  }
348
360
  }
349
361
 
@@ -371,7 +383,7 @@ describe('User and Access', () => {
371
383
  UserAndAccessSteps.selectRoleRadioButton(role);
372
384
  UserAndAccessSteps.getRoleRadioButton(role).should('be.checked');
373
385
 
374
- if (role === "#roleUser") {
386
+ if (role === '#roleUser') {
375
387
  setRoles(opts);
376
388
  UserAndAccessSteps.confirmUserCreate();
377
389
  } else if (role === ROLE_CUSTOM_ADMIN && opts.noPassword) {
@@ -409,7 +421,7 @@ describe('User and Access', () => {
409
421
  function testForUser(name, isAdmin) {
410
422
  //enable security
411
423
  UserAndAccessSteps.toggleSecurity();
412
- LoginSteps.visitLoginPageWithReturnUrl('/users')
424
+ LoginSteps.visitLoginPageWithReturnUrl('/users');
413
425
  //login new user
414
426
  LoginSteps.loginWithUser(name, PASSWORD);
415
427
  //verify permissions
@@ -425,7 +437,7 @@ describe('User and Access', () => {
425
437
  function assertUserAuths(username, {repo, read = false, write = false, graphql = false} = {}) {
426
438
  UserAndAccessSteps.findUserRowAlias(username, 'userRow');
427
439
 
428
- if(!read && !write) {
440
+ if (!read && !write) {
429
441
  return UserAndAccessSteps.getRepoLine('@userRow', repo).should('not.exist');
430
442
  }
431
443
 
@@ -511,59 +523,59 @@ describe('User and Access', () => {
511
523
 
512
524
  const noAuthChecks = {
513
525
  'div[role="main]': [
514
- 'not.exist'
526
+ 'not.exist',
515
527
  ],
516
528
  '.no-authority-panel .alert-warning': [
517
529
  'be.visible',
518
530
  ['contains.text', 'Some functionalities are not available because'],
519
- ['contains.text', 'you do not have the required repository permissions.']
520
- ]
521
- }
531
+ ['contains.text', 'you do not have the required repository permissions.'],
532
+ ],
533
+ };
522
534
 
523
535
  const hasAuthChecks = {
524
536
  'div[role="main"]': [
525
537
  'exist',
526
- 'be.visible'
538
+ 'be.visible',
527
539
  ],
528
540
  '.no-authority-panel .alert-warning': [
529
- 'not.exist'
530
- ]
531
- }
541
+ 'not.exist',
542
+ ],
543
+ };
532
544
 
533
545
  const MENU_ITEMS_WITHOUT_GRAPHQL = [
534
546
  // 1) Import
535
547
  {
536
548
  path: ['Import'],
537
549
  expectedUrl: '/import',
538
- checks: noAuthChecks
550
+ checks: noAuthChecks,
539
551
  },
540
552
 
541
553
  // 2) Explore
542
554
  {
543
555
  path: ['Explore', 'Graphs overview'],
544
556
  expectedUrl: '/graphs',
545
- checks: noAuthChecks
557
+ checks: noAuthChecks,
546
558
  },
547
559
  {
548
560
  path: ['Explore', 'Class hierarchy'],
549
561
  expectedUrl: '/hierarchy',
550
- checks: noAuthChecks
562
+ checks: noAuthChecks,
551
563
  },
552
564
  {
553
565
  path: ['Explore', 'Class relationships'],
554
566
  expectedUrl: '/relationships',
555
- checks: noAuthChecks
567
+ checks: noAuthChecks,
556
568
  },
557
569
  {
558
570
  path: ['Explore', 'Visual graph'],
559
571
  expectedUrl: '/graphs-visualizations',
560
- checks: noAuthChecks
572
+ checks: noAuthChecks,
561
573
  },
562
574
  {
563
575
  path: ['Explore', 'Similarity'],
564
576
  expectedTitle: 'Similarity indexes',
565
577
  expectedUrl: '/similarity',
566
- checks: noAuthChecks
578
+ checks: noAuthChecks,
567
579
  },
568
580
 
569
581
  // 3) SPARQL
@@ -571,7 +583,7 @@ describe('User and Access', () => {
571
583
  path: ['SPARQL'],
572
584
  expectedTitle: 'SPARQL Query & Update',
573
585
  expectedUrl: '/sparql',
574
- checks: noAuthChecks
586
+ checks: noAuthChecks,
575
587
  },
576
588
 
577
589
  // 4) GraphQL
@@ -581,7 +593,7 @@ describe('User and Access', () => {
581
593
  path: ['Monitor', 'Queries and Updates'],
582
594
  expectedUrl: '/monitor/queries',
583
595
  expectedTitle: 'Query and Update monitoring',
584
- checks: noAuthChecks
596
+ checks: noAuthChecks,
585
597
  },
586
598
 
587
599
  // 6) Setup
@@ -589,58 +601,58 @@ describe('User and Access', () => {
589
601
  path: ['Setup', 'My Settings'],
590
602
  expectedUrl: '/settings',
591
603
  expectedTitle: 'Settings',
592
- checks: hasAuthChecks
604
+ checks: hasAuthChecks,
593
605
  },
594
606
  {
595
607
  path: ['Setup', 'Connectors'],
596
608
  expectedUrl: '/connectors',
597
609
  expectedTitle: 'Connector management',
598
- checks: noAuthChecks
610
+ checks: noAuthChecks,
599
611
  },
600
612
  {
601
613
  path: ['Setup', 'Cluster'],
602
614
  expectedUrl: '/cluster',
603
615
  expectedTitle: 'Cluster management',
604
- checks: hasAuthChecks
616
+ checks: hasAuthChecks,
605
617
  },
606
618
  {
607
619
  path: ['Setup', 'Plugins'],
608
620
  expectedUrl: '/plugins',
609
- checks: noAuthChecks
621
+ checks: noAuthChecks,
610
622
  },
611
623
  {
612
624
  path: ['Setup', 'Namespaces'],
613
625
  expectedUrl: '/namespaces',
614
- checks: noAuthChecks
626
+ checks: noAuthChecks,
615
627
  },
616
628
  {
617
629
  path: ['Setup', 'Autocomplete'],
618
630
  expectedUrl: '/autocomplete',
619
631
  expectedTitle: 'Autocomplete index',
620
- checks: noAuthChecks
632
+ checks: noAuthChecks,
621
633
  },
622
634
  {
623
635
  path: ['Setup', 'RDF Rank'],
624
636
  expectedUrl: '/rdfrank',
625
- checks: noAuthChecks
637
+ checks: noAuthChecks,
626
638
  },
627
639
  {
628
640
  path: ['Setup', 'JDBC'],
629
641
  expectedUrl: '/jdbc',
630
642
  expectedTitle: 'JDBC configuration',
631
- checks: noAuthChecks
643
+ checks: noAuthChecks,
632
644
  },
633
645
  {
634
646
  path: ['Setup', 'SPARQL Templates'],
635
647
  expectedUrl: '/sparql-templates',
636
- checks: noAuthChecks
648
+ checks: noAuthChecks,
637
649
  },
638
650
 
639
651
  // 7) Lab
640
652
  {
641
653
  path: ['Lab', 'Talk to Your Graph'],
642
654
  expectedUrl: '/ttyg',
643
- checks: noAuthChecks
655
+ checks: noAuthChecks,
644
656
  },
645
657
 
646
658
  // 8) Help
@@ -648,38 +660,38 @@ describe('User and Access', () => {
648
660
  path: ['Help', 'REST API'],
649
661
  expectedUrl: '/webapi',
650
662
  expectedTitle: 'REST API documentation',
651
- checks: hasAuthChecks
652
- }
663
+ checks: hasAuthChecks,
664
+ },
653
665
  ];
654
666
 
655
667
  const GRAPHQL_READ_MENU_ITEMS = [
656
668
  {
657
669
  path: ['GraphQL', 'GraphQL Playground'],
658
670
  expectedUrl: '/graphql/playground',
659
- checks: hasAuthChecks
660
- }
671
+ checks: hasAuthChecks,
672
+ },
661
673
  ];
662
674
  const GRAPHQL_REPO_MANAGER_MENU_ITEMS = [
663
675
  {
664
676
  path: ['GraphQL', 'Endpoint Management'],
665
677
  expectedUrl: '/graphql/endpoints',
666
- checks: hasAuthChecks
678
+ checks: hasAuthChecks,
667
679
  },
668
680
  {
669
681
  path: ['GraphQL', 'GraphQL Playground'],
670
682
  expectedUrl: '/graphql/playground',
671
- checks: hasAuthChecks
683
+ checks: hasAuthChecks,
672
684
  },
673
685
  {
674
686
  path: ['Monitor', 'Backup and Restore'],
675
687
  expectedUrl: '/monitor/backup-and-restore',
676
- checks: hasAuthChecks
688
+ checks: hasAuthChecks,
677
689
  },
678
690
  {
679
691
  path: ['Help', 'Interactive guides'],
680
692
  expectedUrl: '/guides',
681
- checks: hasAuthChecks
682
- }
693
+ checks: hasAuthChecks,
694
+ },
683
695
  ];
684
696
 
685
697
  const FREE_ACCESS_MENU_ITEMS_WITHOUT_GRAPHQL = [
@@ -687,35 +699,35 @@ describe('User and Access', () => {
687
699
  {
688
700
  path: ['Import'],
689
701
  expectedUrl: '/import',
690
- checks: noAuthChecks
702
+ checks: noAuthChecks,
691
703
  },
692
704
 
693
705
  // 2) Explore
694
706
  {
695
707
  path: ['Explore', 'Graphs overview'],
696
708
  expectedUrl: '/graphs',
697
- checks: noAuthChecks
709
+ checks: noAuthChecks,
698
710
  },
699
711
  {
700
712
  path: ['Explore', 'Class hierarchy'],
701
713
  expectedUrl: '/hierarchy',
702
- checks: noAuthChecks
714
+ checks: noAuthChecks,
703
715
  },
704
716
  {
705
717
  path: ['Explore', 'Class relationships'],
706
718
  expectedUrl: '/relationships',
707
- checks: noAuthChecks
719
+ checks: noAuthChecks,
708
720
  },
709
721
  {
710
722
  path: ['Explore', 'Visual graph'],
711
723
  expectedUrl: '/graphs-visualizations',
712
- checks: noAuthChecks
724
+ checks: noAuthChecks,
713
725
  },
714
726
  {
715
727
  path: ['Explore', 'Similarity'],
716
728
  expectedTitle: 'Similarity indexes',
717
729
  expectedUrl: '/similarity',
718
- checks: noAuthChecks
730
+ checks: noAuthChecks,
719
731
  },
720
732
 
721
733
  // 3) SPARQL
@@ -723,48 +735,47 @@ describe('User and Access', () => {
723
735
  path: ['SPARQL'],
724
736
  expectedTitle: 'SPARQL Query & Update',
725
737
  expectedUrl: '/sparql',
726
- checks: noAuthChecks
738
+ checks: noAuthChecks,
727
739
  },
728
740
 
729
-
730
741
  // 6) Setup
731
742
  {
732
743
  path: ['Setup', 'Connectors'],
733
744
  expectedUrl: '/connectors',
734
745
  expectedTitle: 'Connector management',
735
- checks: noAuthChecks
746
+ checks: noAuthChecks,
736
747
  },
737
748
  {
738
749
  path: ['Setup', 'Plugins'],
739
750
  expectedUrl: '/plugins',
740
- checks: noAuthChecks
751
+ checks: noAuthChecks,
741
752
  },
742
753
  {
743
754
  path: ['Setup', 'Namespaces'],
744
755
  expectedUrl: '/namespaces',
745
- checks: noAuthChecks
756
+ checks: noAuthChecks,
746
757
  },
747
758
  {
748
759
  path: ['Setup', 'Autocomplete'],
749
760
  expectedUrl: '/autocomplete',
750
761
  expectedTitle: 'Autocomplete index',
751
- checks: noAuthChecks
762
+ checks: noAuthChecks,
752
763
  },
753
764
  {
754
765
  path: ['Setup', 'RDF Rank'],
755
766
  expectedUrl: '/rdfrank',
756
- checks: noAuthChecks
767
+ checks: noAuthChecks,
757
768
  },
758
769
  {
759
770
  path: ['Setup', 'JDBC'],
760
771
  expectedUrl: '/jdbc',
761
772
  expectedTitle: 'JDBC configuration',
762
- checks: noAuthChecks
773
+ checks: noAuthChecks,
763
774
  },
764
775
  {
765
776
  path: ['Setup', 'SPARQL Templates'],
766
777
  expectedUrl: '/sparql-templates',
767
- checks: noAuthChecks
778
+ checks: noAuthChecks,
768
779
  },
769
780
 
770
781
  // 7) Help
@@ -772,7 +783,7 @@ describe('User and Access', () => {
772
783
  path: ['Help', 'REST API'],
773
784
  expectedUrl: '/webapi',
774
785
  expectedTitle: 'REST API documentation',
775
- checks: hasAuthChecks
776
- }
786
+ checks: hasAuthChecks,
787
+ },
777
788
  ];
778
789
  });
@@ -37,7 +37,10 @@ describe('Share saved queries', () => {
37
37
  // Then I expect that share query dialog will be opened
38
38
  ShareSavedQueryDialog.getDialog().should('be.visible');
39
39
  ShareSavedQueryDialog.getShareLink().then((shareLink) => {
40
- expect(shareLink).to.have.string(`/sparql?savedQueryName=${encodeURIComponent(savedQueryName)}`);
40
+ const url = new URL(shareLink);
41
+ expect(url.pathname).to.equal('/sparql');
42
+ expect(url.searchParams.get('repositoryId')).to.equal(repositoryId);
43
+ expect(url.searchParams.get('savedQueryName')).to.equal(savedQueryName);
41
44
  });
42
45
  // When I click copy button
43
46
  ShareSavedQueryDialog.copyLink();
@@ -138,8 +138,9 @@ describe('Ttyg ChatPanel', () => {
138
138
 
139
139
  // When I click on first explain response button
140
140
  TTYGViewSteps.getExplainResponseButton(0).realHover();
141
- // Then I expect to explain button to be visible.
141
+ // Then I expect to explain button to be visible and not disabled.
142
142
  TTYGViewSteps.getExplainResponseButton(0).should('be.visible');
143
+ TTYGViewSteps.getExplainResponseButton(0).should('not.be.disabled');
143
144
 
144
145
  // When I click on the button.
145
146
  TTYGStubs.stubExplainResponse();
@@ -217,6 +218,9 @@ describe('Ttyg ChatPanel', () => {
217
218
  expect(text.trim()).to.equal('Request cancelled by the user.');
218
219
  });
219
220
  ChatPanelSteps.getAssistantIcon(2).should('not.exist');
221
+ // And I expect the explain response button to be visible but disabled
222
+ TTYGViewSteps.getExplainResponseButton(2).should('be.visible');
223
+ TTYGViewSteps.getExplainResponseButton(2).should('be.disabled');
220
224
  });
221
225
 
222
226
  // Can't test this on CI
@@ -68,6 +68,20 @@
68
68
  "instanceName": "NamedIndividuals"
69
69
  }
70
70
  },
71
+ {
72
+ "guideBlockName": "connectors-lucene-fields-remaining-fields-intro",
73
+ "options": {
74
+ "instanceName": "NamedIndividuals"
75
+ }
76
+ },
77
+ {
78
+ "guideBlockName": "show-documentation-link",
79
+ "options": {
80
+ "title": "Lucene connector",
81
+ "url": "connectors",
82
+ "documentationPath": "my-custom-link.html"
83
+ }
84
+ },
71
85
  {
72
86
  "guideBlockName": "connectors-lucene-languages-intro",
73
87
  "options": {
@@ -0,0 +1,36 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Create Similarity Index Guide"
5
+ },
6
+ "options": {},
7
+ "steps": [
8
+ {
9
+ "guideBlockName": "create-similarity-index"
10
+ },
11
+ {
12
+ "guideBlockName": "similarity-view-created-index",
13
+ "options": {
14
+ "indexName": "new-similarity-index",
15
+ "title": "Select by index name"
16
+ }
17
+ },
18
+ {
19
+ "guideBlockName": "similarity-view-created-index",
20
+ "options": {
21
+ "rowIndex": 0,
22
+ "title": "Select by row index 0 (first row)"
23
+ }
24
+ },
25
+ {
26
+ "guideBlockName": "similarity-view-created-index",
27
+ "options": {
28
+ "title": "Select default index 0 (first row)"
29
+ }
30
+ },
31
+ {
32
+ "guideBlockName": "guide-end"
33
+ }
34
+ ]
35
+ }
36
+ ]
@@ -0,0 +1,25 @@
1
+ [
2
+ {
3
+ "guideName": {
4
+ "en": "Download guide resource"
5
+ },
6
+ "steps": [
7
+ {
8
+ "guideBlockName": "download-guide-resource",
9
+ "options": {
10
+ "resourcePath": "file-path",
11
+ "resourceFile": "file.ttl"
12
+ }
13
+ },
14
+ {
15
+ "guideBlockName": "download-guide-resource",
16
+ "options": {
17
+ "title": "Download guide resource - with repositoryId",
18
+ "resourcePath": "file-path",
19
+ "resourceFile": "file.ttl",
20
+ "repositoryId": "test-repo"
21
+ }
22
+ }
23
+ ]
24
+ }
25
+ ]