Description
In order to build an automated task within our cozy-stack, we can create services which are javascript files called from a trigger job.
For instance on Ecolyo, to schedule a mail that alert the user that a new monthly report is available in the application, we add a trigger that is launched every month with a cron attribute. On that trigger we link a .js script then we instantiate this script with cozy-client.
Configuration
Manifest
The service should be described in the manifest.webapp file. it should defined the type, the file and the trigger. See more information in the official doc of Cozy here
Here is an example of service declaration in the ecolyo manifest:
File location is determined after the build, see here.
!!! note "Cron" See the cron definition at cozy-stack.
Ecolyo services
Service code are located under src\targets\services
.
Run services
On alpha
To run services on alpha, a script get_instance_triggers.sh
allows you to get triggers associated with services. You can find the corresponding service by looking at the trigger frequency and comparing it with our manifest.webapp.
Then you need to run the script launch_instance_trigger.sh
.
Locally
To run services on a local dev environment, you need to run a build first.
Then you need to run :
yarn run cozy-konnector-dev -m manifest.webapp <service.js>
# example
yarn run cozy-konnector-dev -m manifest.webapp ./build/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
!!! bug "Expired token error"
If you have an "Expired token" error, you should remove `token.json`
More details on the cozy docs / Services / Execution.