Caseflow is a suite of web-based tools to manage VA appeals. It's currently in development by the Appeals Modernization team (est. 2016). It will replace the current system of record for appeals, the Veterans Appeals Control and Location System (VACOLS), which was created in 1979 on now-outdated infrastructure. Additionally, Caseflow will allow the Board of Veterans' Appeals to process appeals under the new guidelines created by the Veterans Appeals Improvement and Modernization Act of 2017, which goes into effect February 14th, 2019.
The Appeals Modernization team's mission is to empower employees with technology to increase timely, accurate appeals decisions and improve the Veteran experience. Most of the team's products live here, in the main Caseflow repository.
- Caseflow
Tracking Appeals Modernization Act reviews in a single system.
Workflow management at the Board of Veterans' Appeals.
Increases the speed with which attorneys and Veterans Law Judges (VLJs) review and annotate electronic case files.
Scheduling and supporting Board of Veterans' Appeals hearings.
Facilitates the transfer of cases from the Agency of Original Jurisdiction (AOJ) to the Board of Veterans' Appeals (the Board).
Improving the timeliness and Veteran experience of Board hearings.
Providing Veterans transparent information about the status of their appeal
Facilitates the transfer of cases from the Agency of Original Jurisdiction (AOJ) to the Board of Veterans' Appeals (the Board).
Product | GitHub Repository | Contiuous Integration Tests |
---|---|---|
Caseflow | caseflow | CircleCI - Caseflow |
eFolder Express | caseflow-efolder | Circle CI - eFolder |
Commons | caseflow-commons | Travis CI - Commons |
Request an invite to the department-of-veterans-affairs organization
We are using 2-factor authentication with Github so, for example, when you access a repository using Git on the command line using commands like git clone, git fetch, git pull or git push with HTTPS URLs, you must provide your GitHub username and your personal access token when prompted for a username and password. Follow directions here on how to do that.
- Windows
- Mac
We use the simplecov gem to evaluate test coverage as part of the CircleCI process.
If you see a test coverage failure at CircleCI, you can evaluate test coverage locally for the affected files using the single_cov gem.
Locally, add the below statement to the first line of any rspec file:
SingleCov.covered!
and run that file under rspec.
SINGLE_COV=true bundle exec rspec spec/path/to/file_spec.rb
Missing test coverage will be reported automatically at the end of the test run.
See debugging steps as well as more information about FACOLS in our wiki or join the DSVA slack channel #appeals-development.
Review the FACOLS documentation for details.
We use NewRelic to monitor the app. By default, it's disabled locally. To enable it, do:
NEW_RELIC_LICENSE_KEY='<key as displayed on NewRelic.com>' NEW_RELIC_AGENT_ENABLED=true bundle exec foreman start
You may wish to do this if you are debugging our NewRelic integration, for instance.
When a VA employee logs in through the VA's unified login system (CSS) a session begins with the user. Within this session the user gets a set of roles. These roles determine what pages a user has access to. In dev mode, we don't log in with CSS and instead take on the identity of a user in the database.
To test the app connected to external dependencies, you'll need to set up Oracle, decrypt the environment variables, install staging gems, and run the app.
First you'll need to install ansible-vault and credstash.
pip install ansible-vault
pip install credstash
For more credstash setup, follow the doc
We'll need to obtain the Ansible vault password using credstash:
export VAULT_PASSWORD=$(credstash -t appeals-credstash get devops.vault_pass)
Clone the appeals-deployment repo, and run:
./decrypt.sh $VAULT_PASSWORD
In order to load these environment variables, run:
source /path/to/appeals-deployment/decrypted/uat/env.sh
Install the gems required to run the app connected to VBMS and VACOLS:
bundle install --with staging
bundle exec rails s -e staging
Select 'Switch User' from the dropdown or navigate to http://localhost:3000/dev/users. You can use this page to switch to any user that is currently in the database. The users' names specify what roles they have and therefore what pages they can access. To add new users with new roles, you should seed them in the database via the seeds.rb file. The css_id of the user should be a comma separated list of roles you want that user to have.
In order to impersonate other user, the user will need to have Global Admin role.
(To grant a role refer to https://github.com/department-of-veterans-affairs/caseflow-commons#functions)
On test/users page, switch to a user that has Global Admin role. Log in as user
interface
will show up where you will have to specify User ID and Station ID.
This page also contains links to different parts of the site to make dev-ing faster. Please add more links and users as needed.
See Caseflow Commons
To enable and disable 'Out of Service' feature using rails c
. Example usage:
# enable globally
Rails.cache.write("out_of_service", true)
# enable for certification only
Rails.cache.write("certification_out_of_service", true)
# enable for dispatch only
Rails.cache.write("dispatch_out_of_service", true)
# enable for hearings only
Rails.cache.write("hearings_out_of_service", true)
# enable for reader only
Rails.cache.write("reader_out_of_service", true)
# to disable, e.g.
Rails.cache.write("certification_out_of_service", false)
We show a "Degraded Service" banner across all Caseflow applications automatically when Caseflow Monitor detects that our dependencies may be down. To enable this banner manually, overriding our automatic checks, run the following code from the Rails console:
Rails.cache.write(:degraded_service_banner, :always_show)
When the dependencies have recovered, switch the banner back to automatic mode:
Rails.cache.write(:degraded_service_banner, :auto)
DANGER: If Caseflow Monitor is incorrectly reporting a dependency issue, you can disable the "Degraded Service" banner with the following code:
Rails.cache.write(:degraded_service_banner, :never_show)
When Caseflow Monitor starts working again, switch the banner back to automatic mode:
Rails.cache.write(:degraded_service_banner, :auto)
We have a lot of technical documentation spread over a lot of different repositories. Here is a non-exhaustive mapping of where to find documentation:
- Local Caseflow Setup
- Test data setup in lower environments
- Caseflow specific devops documentation This folder also contains our first responder manual, which is super in understanding our production systems.
- Non-Caseflow specific devops documentation. This documentation is shared with the vets.gov team, so not all of it is relevant.
- Project documentation