Skip to content
Snippets Groups Projects
index.md 2.01 KiB
Newer Older
  • Learn to ignore specific revisions
  • Bastien DUMONT's avatar
    Bastien DUMONT committed
    # Description
    
    
    Yoan VALLET's avatar
    Yoan VALLET committed
    In order to build an automated task within our cozy-stack, we can create *services* which are javascript files called from a trigger job.
    
    
    Hugo NOUTS's avatar
    Hugo NOUTS committed
    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.
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    ## Configuration
    
    ### Manifest
    
    
    Yoan VALLET's avatar
    Yoan VALLET committed
    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/)
    
    
    Hugo NOUTS's avatar
    Hugo NOUTS committed
    Here is an example of service declaration in the ecolyo manifest:
    
    Yoan VALLET's avatar
    Yoan VALLET committed
    
    ![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).
    
    Yoan VALLET's avatar
    Yoan VALLET committed
    
    !!! note "Cron"
        See the cron definition at [cozy-stack](https://docs.cozy.io/en/cozy-stack/jobs/#cron-syntax).
    
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    ## 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
    ```
    
    More details on the [cozy docs / Services / Execution](https://docs.cozy.io/en/howTos/dev/services/#execution).