oat-sa / extension-tao-sync
TAO synchronisation for offline client data.
Installs: 3 136
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 46
Forks: 1
Open Issues: 0
Type:tao-extension
Requires
- oat-sa/extension-tao-clientdiag: >=8.0.0
- oat-sa/extension-tao-delivery: >=15.0.0
- oat-sa/extension-tao-delivery-rdf: >=14.0.0
- oat-sa/extension-tao-item: >=11.0.0
- oat-sa/extension-tao-itemqti: >=27.0.0
- oat-sa/extension-tao-oauth: >=6.0.0
- oat-sa/extension-tao-outcome: >=13.0.0
- oat-sa/extension-tao-publishing: >=6.0.0
- oat-sa/extension-tao-task-queue: >=6.0.0
- oat-sa/extension-tao-testcenter: >=10.0.0
- oat-sa/extension-tao-testqti: >=41.0.0
- oat-sa/generis: >=14.0.0
- oat-sa/lib-generis-search: 2.1.2
- oat-sa/oatbox-extension-installer: ~1.1||dev-master
- oat-sa/tao-core: >=47.0.0
- dev-master
- v9.2.3
- v9.2.2
- v9.2.1
- v9.2.0
- v9.1.0
- v9.0.0
- v8.0.1
- v8.0.0
- v7.7.0.2
- v7.7.0.1
- v7.7.0
- v7.6.0
- v7.5.1
- v7.4.0
- v7.3.0
- v7.2.1
- v7.2.0
- v7.1.0
- v7.0.0
- v6.13.2
- v6.13.1
- v6.13.0.6
- v6.13.0.5
- v6.13.0.4
- v6.13.0.3
- v6.13.0.2
- v6.13.0.1
- v6.13.0
- v6.11.0
- v6.5.4
- v6.5.3
- v6.4.0
- v6.0.1
- v6.0.0
- v5.6.2
- v5.5.5
- v5.5.1
- v5.5.0
- v5.0.2
- v5.0.0
- v4.7.1
- v4.5.0
- v4.4.0
- v4.3.1
- v4.2.0
- v3.1.0
- v3.0.1
- v2.1.0
- v2.0.0
- v1.6.8
- v1.6.7.1
- v1.6.7
- v1.6.3.1
- v1.6.3
- v1.6.2.1
- v1.6.2
- v1.6.1.1
- v1.6.1
- v1.5.0.1
- v1.5.0
- v1.4.0.1
- v1.4.0
- v1.3.0.1
- v1.3.0
- v1.2.1.1
- v1.2.1
- v1.0.2
- v1.0.1
- v0.14.3
- v0.14.2
- v0.14.1
- v0.12.3
- v0.12.2
- v0.12.1
- v0.12.0
- v0.11.1
- v0.11.0
- v0.10.3
- v0.10.1
- v0.1.0
- dev-feature/sonarqube-integration
- dev-develop
- dev-fix/update-autoRelease-action-with-bot-user
- dev-feat/ADF-1047-fix-setup
- dev-release/7.7.0.2
- dev-release/v6.13.0.6
- dev-release/v6.13.0.5
- dev-release/v6.13.0.4
- dev-fix/TCA-764/use_csrf_token_verification_implemented_in_common_module
- dev-feature/DPF-451/resource-checksum-cache
- dev-release-6.13.0.3
- dev-remove-jenkinsfile
- dev-feature/box-id
- dev-feature/TAO-9043/import-on-client
- dev-feature/TAO-8740/tus_upload_service
- dev-fix/release_6.13.0.1
- dev-fix/TAO-9173/improve_handshake_performance
- dev-backport/depp-offline
- dev-fix/TAO-9149/update_fr_translations
- dev-feature/i18n-fr-fr
- dev-feature/TAO-8664/export-results-in-package
- dev-fix/TAO-8664/Installation_script_fix
- dev-depp-6.5.4
- dev-fix/TAO-8467/platform-report-exeption-handling
- dev-revert-142-fix/TAO-8467/platform-report-exeption-handling
- dev-feature/TAO-8386_sync_syncmanager_data_during_login
- dev-fix/TAO-7854/fix_problem_with_new_token_sevice
- dev-feature/TAO-7888-with-TAO-7854-connections-speed-data
- dev-feature/TAO-7854/collect_connection_stats_during_syn
- dev-feature/TAO-7782/modify_error_message
- dev-feature/TAO-7782/register_vm_version_checker
- dev-release-4.4.0
- dev-feature/TAO-7237/cast_sync_id_to_int
- dev-test/packagist2
- dev-feature/TAO-7191/create_synchronization_events_and_listeners
- dev-feature/TAO-7191/create-sync_log_service
- dev-feature/TAO-7191/create_sync_dashboard_on_central_server
- dev-test/packagist
- dev-depp/TAO-7070
- dev-backport/v1.6.7.1
- dev-backport/v1.6.3.1
- dev-backport/sprint85.1
- dev-backport/v1.6.1.1
- dev-backport/v1.5.0.1
- dev-backport/v1.4.0.1
- dev-backport/1.3.0.1
- dev-backport/1.2.1.1
- dev-fix/TAO-6612/delete-delivery-if-fails
- dev-fix/use-POST-instead-of-GET
- dev-integration/iave-synchronisation
This package is auto-updated.
Last update: 2024-12-16 16:43:21 UTC
README
The purpose of this extension is to synchronize a local and a remote server.
All types of data and results can be synchronized. All HTTP requests are required to be signed following the OAuth 2 standard, also are all data encrypted.
Important note: While this article uses American spelling, some of the command line instructions are in British spelling for historical reasons, e. g. synchronisation
instead of synchronization
!
Installation instructions
These instructions assume that you already have a TAO installation on your system. If you don't, go to package/tao and follow the installation instructions.
Add the extension to your TAO composer and to the autoloader:
composer require oat-sa/extension-tao-sync
Install the extension on the CLI from the project root:
Linux:
sudo php tao/scripts/installExtension oat-sa/extension-tao-sync
Windows:
php tao\scripts\installExtension oat-sa/extension-tao-sync
As a system administrator you can also install it through the TAO Extension Manager:
- Settings (the gears on the right-hand side of the menu) -> Extension manager
- Select taoSync on the right-hand side, check the box and hit install
Synchronization
Data synchronization
In preparation of a delivery execution, the synchronization process needs to fetch data objects of the following types from the central server:
test-center
administrator
proctor
test-taker
eligibility
delivery
Set the chunkSize
parameter in the taoSync/syncService
configuration to define the amount of data per request, $type
refers to the list above, e. g. test-center
$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\synchronisation\SynchronizeData' [--type=$type]
When a delivery is published it exports a sanpshot of a QTI test package. This snapshot will be used during synchronization.
Result synchronization
Once the Client Server has the delivery result, a script sends it to the Central Server. Only completed delivery executions will be sent, results will be submitted only once. When a delivery execution is sent, the synchronization history will be updated to log the action. You can set the deleteAfterSend
parameter to true
to delete results after the synchronization.
To configure the amount of data per request, use the chunkSize
parameter in the taoSync/resultService
configuration.
Execute the following command to synchronize the result:
$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\synchronisation\SynchronizeResult'
Synchronizing all data and results
To synchronize data and results at the same time, use the following command:
$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\synchronisation\SynchronizeAll'
OAuth credentials
Generating credentials to allow a user to connect to the platform
This command creates a consumer with OAuth credentials.
$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\OAuth\GenerateOAuthCredentials'
The output of this command will contain the following data:
key
secret
tokenUrl
Note: Add the -cmd
flag to this command to execute it on the Client Server.
Importing OAuth credentials to Client Server
The following command will import the consumer you have created above into the Client Server. The arguments are the output from the previous command, $rootUrl
is the domain name of the host server.
$ sudo -u www-data php index.php 'oat\taoSync\scripts\tool\OAuth\ImportOAuthCredentials' -k $key -s $secret -tu $tokenUrl -u $rootUrl
Scoping synchronization to a test center identifier
To be able to bind a synchronization to the organzition ID of a test center, the platform needs to register a test-center
property. The SyncService has also to register new synchronizers to process by organisation id.
$ sudo -u www-data php index.php '\oat\taoSync\scripts\tool\RegisterSyncServiceByOrgId'
Note The test center organization id is http://www.taotesting.com/ontologies/synchro.rdf#organisationId_