Skip to content
Snippets Groups Projects
index.md 2.07 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Services
    
    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](https://docs.cozy.io/en/howTos/dev/services/)
    
    Here is an example of service declaration in the ecolyo manifest:
    
    ![Manifest.webapp](/img/services/monthly-service.png)
    
    File location is determined after the build, see [here](https://forge.grandlyon.com/web-et-numerique/factory/llle_project/ecolyo/-/tree/build/services/monthlyReport).
    
    
    :::note Cron
    See the cron definition at [cozy-stack](https://docs.cozy.io/en/cozy-stack/jobs/#cron-syntax).
    :::
    
    
    ## 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](https://forge.grandlyon.com/web-et-numerique/factory/llle_project/ecolyo/-/blob/dev/manifest.webapp#L171).
    
    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 :
    
    ```sh
    yarn run cozy-konnector-dev -m manifest.webapp <service.js>
    # example
    yarn run cozy-konnector-dev -m manifest.webapp ./build/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
    ```
    
    
    :::danger Expired token error
    If you have an "Expired token" error, you should remove `token.json`
    :::
    
    
    More details on the [cozy docs / Services / Execution](https://docs.cozy.io/en/howTos/dev/services/#execution).