Forms Engine API to simplify REST API creation for PDF forms
Clone or download
LeonidMarushevskyi Merge pull request #7 from ca-cwds/legal-readme-update
Added contact information for
Latest commit 814e1f8 Oct 11, 2018


The CWDS API provides Forms Generation RESTful services for the CWDS CALS Digital Service.


The development team is actively using the Github Wiki.


The development team uses Swagger for documenting the API. NOTE : At this time there is not a publicy available link to the documentation, a link will be provided as soon as one is available.


Application Configuration Parameters

  • APP_VERSION -- Version of application

Data Stores Configuration Parameters

In order for the FORMS API successfully connect to the database the following environment variables are required to be set:

Postgres - NS database

  • DB_FORMS_USER -- the NS database username
  • DB_FORMS_PASSWORD -- the NS database password
  • DB_FORMS_JDBC_URL -- the NS database URL in Java Database Connectivity format
  • DB_FORMS_CP_INITIAL_SIZE -- the NS connections pool iniitial size (default: 2)
  • DB_FORMS_CP_MIN_SIZE -- the NS connections pool minimum size (default: 2)
  • DB_FORMS_CP_MAX_SIZE -- the NS connections pool maximum size (default: 8)

Upgarde Data Base on Start

  • UPGRADE_DB_ON_START -- if "true" then application starts Liquibase Scripts for upgrading DB to the latest state (default true)

Swagger Configuration Parameters**

Shiro Configuration Parameters

  • SHIRO_CONFIG_PATH -- path to Shiro configuration file

The Docker env-file option provides a convenient method to supply these variables. These instructions assume an env file called .env located in the current directory. The repository contains a sample env file called env.sample.

Further configuration options are available in the file config/forms-api.yml.


Integration testing

To run Integration tests set property api.url to point to environment host. Use gradle integrationTest task. In this case token will be generated for default test user, so it's possible to test environment with Perry running in dev mode.

Smoke Testing

Smoke test suite is part of integration tests. Set api.url, use gradle smokeTestSuite task. Smoke test endpoint is not protected by Perry.


If you have any questions regarding the contents of this repository, please email the Office of Systems Integration at