### Install and Start Redis Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Installs Redis using Homebrew and starts the Redis service. ```bash brew install redis brew services start redis ``` -------------------------------- ### Run Vets-API Final Setup Script Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Executes the `bin/setup` script, which prepares the database, installs missing dependencies, and finalizes the local environment setup for Vets-API. ```bash bin/setup ``` -------------------------------- ### Install Rails and Verify Installation Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Installs the Rails gem globally and verifies the installation by checking the Rails version. ```bash sudo gem install rails rails -v ``` -------------------------------- ### Install and Configure Rails Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Installs the Rails framework and provides commands to resolve common development environment installation issues. ```bash sudo gem install rails rails -v # Troubleshooting ruby-dev sudo apt update sudo apt install ruby-dev build-essential sudo gem install rails ``` -------------------------------- ### Install System Dependencies Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Installs essential system utilities including ImageMagick, Poppler, and pdftk. ```bash sudo apt install -y imagemagick sudo apt install -y poppler-utils sudo apt install -y pdftk ``` -------------------------------- ### Install Binary Dependencies using Brewfile Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Installs all binary dependencies defined in the project's Brewfile using the `brew bundle` command. ```bash brew bundle ``` -------------------------------- ### Install PDFTK Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Installs the PDFTK (PDF Toolkit) utility using Homebrew. ```bash brew install pdftk-java ``` -------------------------------- ### Install Redis Server Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Installs and configures Redis to use systemd for process management. ```bash sudo apt install -y redis-server sudo sed -i 's/^supervised no/supervised systemd/' /etc/redis/redis.conf sudo systemctl restart redis.service sudo systemctl status redis ``` -------------------------------- ### Install Bundler and Project Dependencies Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Installs Bundler, a Ruby gem dependency manager, and then installs all the project's required gems. ```bash gem install bundler bundle install ``` -------------------------------- ### Troubleshoot `pg` Gem Installation Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Provides commands to resolve issues when the `pg` (PostgreSQL) gem fails to install by installing libpq and configuring the build path. ```bash brew install libpq brew link --force libpq bundle config --local build.pg --with-pg-config=$(brew --prefix libpq)/bin/pg_config bundle install ``` -------------------------------- ### Troubleshoot `nokogiri` Gem Installation Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Provides commands to resolve issues when the `nokogiri` gem fails to install by installing the `xz` package. ```bash brew install xz bundle install ``` -------------------------------- ### Run Application and Tests Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Commands to start the application using Foreman and execute the test suite in parallel. ```bash foreman start -m all=1,clamd=0,freshclam=0 RAILS_ENV=test NOCOVERAGE=true bundle exec parallel_rspec spec modules ``` -------------------------------- ### Install PostGIS Extension Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Installs the PostGIS extension for PostgreSQL and configures a test database for spatial data operations. ```bash sudo apt install -y postgresql-14-postgis-3 sudo -i -u postgres createuser postgis_test createdb postgis_db -O postgis_test psql -d postgis_db ``` ```sql CREATE EXTENSION postgis; SELECT PostGIS_version(); \q ``` -------------------------------- ### Install and Configure PostgreSQL 14 Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Commands to install PostgreSQL 14 on Debian-based systems, verify the version, and create a superuser for local development. ```bash echo "deb http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt update sudo apt install postgresql-14 psql --version sudo -i -u postgres createuser --superuser YOURNAME exit ``` -------------------------------- ### Set Up Vets-API Database Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Creates the database, loads the schema, runs migrations, and seeds the database with initial data for the Vets-API project. ```bash rails db:create db:schema:load db:migrate db:seed ``` -------------------------------- ### Troubleshoot `mimemagic` Gem Installation Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Provides commands to resolve issues when the `mimemagic` gem fails to install by installing the `shared-mime-info` package. ```bash brew install shared-mime-info bundle install ``` -------------------------------- ### Initialize Databases and Migrations Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Commands to create, setup, and migrate the Rails database, including troubleshooting for missing user roles. ```bash bin/rails db:create bin/rails db:setup bin/rails db:migrate # Troubleshooting missing role sudo -i -u postgres createuser --superuser SOME_NAME_HERE exit ``` -------------------------------- ### Install and Set Global Ruby Version with asdf Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Installs a specific Ruby version (3.3.6) using asdf and then sets it as the global default Ruby version for the environment. Finally, it verifies the installed version. ```bash asdf install ruby 3.3.6 asdf global ruby 3.3.6 ruby -v ``` -------------------------------- ### Manage Ruby Dependencies with Bundler Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Installs Bundler, manages gem dependencies, and provides troubleshooting steps for the pg gem. ```bash sudo gem install bundler bundle install # Troubleshooting pg installation sudo apt install libpq-dev bundle install ``` -------------------------------- ### Install GPG Keys for RVM Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Imports necessary GPG keys from a keyserver to verify the authenticity of RVM installation packages. This is a prerequisite for securely installing RVM. ```bash gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB ``` -------------------------------- ### Install asdf Version Manager Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Installs the asdf version manager by cloning its repository and configuring the shell environment to load asdf. It also sets a default editor and enables legacy version file support. ```bash git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1 echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc echo 'legacy_version_file = yes' >> ~/.asdfrc echo 'export EDITOR="code --wait"' >> ~/.bashrc exec $SHELL ``` -------------------------------- ### Install and Configure Ruby Version Manager (rbenv) Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Installs rbenv for managing Ruby versions, initializes it for the shell, and installs a specific Ruby version (3.3.6) for the project. ```bash brew install rbenv rbenv init rbenv install 3.3.6 rbenv local 3.3.6 ruby -v ``` -------------------------------- ### Start SSH Agent and Add Key Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Starts the SSH agent in the background and adds the newly generated SSH private key to it. This allows you to use the SSH key for authentication without repeatedly entering your passphrase. ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 ``` -------------------------------- ### Install Ruby Version with RVM Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Installs Ruby version 3.3.6 using the RVM (Ruby Version Manager). This command may prompt for a password if system-level changes are required. ```bash rvm install ruby-3.3.6 ``` -------------------------------- ### Install Postgresql & PostGIS on OSX Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/native.md Instructions for installing PostgreSQL and PostGIS on macOS. It recommends using Postgres.app for an easier setup or alternatively using Homebrew to install PostgreSQL 15 and PostGIS 3, including extension management with 'pex'. ```bash sudo mkdir -p /etc/paths.d && echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp ARCHFLAGS="-arch x86_64" gem install pg -v 1.5.6 ``` ```bash brew install postgresql@15 brew services start postgresql@15 # Install the pex manager # Install the postgis extension PG_CPPFLAGS='-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H -I/usr/local/include' CFLAGS='-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H -I/usr/local/include' pex install postgis ``` -------------------------------- ### POST /evidence-submissions Request Example Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/supplemental_claims/v0/api_description_dev.md Initiates an evidence submission request to obtain a GUID and a location URL for uploading the document package. The response includes a unique identifier and a temporary URL for the next step. ```shell curl -X POST https://api.va.gov/services/va_facilities/v1/all ``` -------------------------------- ### Clone Vets-API Mock Data Repository Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Clones the `vets-api-mockdata` repository into a directory adjacent to the `vets-api` project. ```bash cd .. git clone https://github.com/department-of-veterans-affairs/vets-api-mockdata.git ``` -------------------------------- ### Medical Records Logging - Ruby Quick Start Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/lib/medical_records/README.md Demonstrates the basic usage of MedicalRecords::MedicalRecordsLog for different logging levels (info, diagnostic, warn, error). It shows how to instantiate the logger with a user and log events with associated resources and actions. It also highlights the use of predefined domain constants. ```ruby log = MedicalRecords::MedicalRecordsLog.new(user: current_user) log.info(resource: MedicalRecordsLog::CLINICAL_NOTES, action: 'index', total: 12) # always-on log.diagnostic(resource: MedicalRecordsLog::CLINICAL_NOTES, action: 'filter', filtered: 8) # toggle-gated log.warn(resource: MedicalRecordsLog::CLINICAL_NOTES, action: 'anomaly', rate: 85.0) # always-on log.error(resource: MedicalRecordsLog::CLINICAL_NOTES, action: 'show', error_message: 'timeout') ``` -------------------------------- ### Verify Ruby Version with RVM Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Verifies the currently active Ruby version after installation or switching. This command confirms that RVM has correctly set up the specified Ruby version. ```bash ruby -v ``` -------------------------------- ### Clone Vets-API Repository and Create Certs Directory Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Clones the Vets-API repository from GitHub and navigates into the project directory. It also creates a necessary directory for SSL certificates. ```bash git clone https://github.com/department-of-veterans-affairs/vets-api.git cd vets-api mkdir -p config/certs touch config/certs/vetsgov-localhost.crt touch config/certs/vetsgov-localhost.key ``` -------------------------------- ### Install Ask VA API Module Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/ask_va_api/README.md Instructions for adding the Ask VA API module to the project Gemfile and installing the necessary dependencies. ```ruby gem 'ask_va_api', path: 'modules/ask_va_api' ``` ```bash bundle install make db ``` -------------------------------- ### Define Rswag API Request with Multiple Examples Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/rswag_setup.md This Rswag example demonstrates how to define a POST request for 'Higher-Level Reviews'. It includes setting up parameters for the request body with multiple examples and a header. The `let` blocks are used to define the values for these parameters, ensuring lazy evaluation. ```ruby # ... describe 'Higher-Level Reviews', openapi_spec: 'modules/appeals_api/app/swagger/appeals_api/v2/swagger.json', type: :request do let(:apikey) { 'apikey' } path '/higher_level_reviews' do post 'Creates a new Higher-Level Review' do # tags, operationId, description, etc parameter name: :hlr_body, in: :body, schema: { '$ref' => '#/components/schemas/hlrCreate' } # => ^ as stated before the value passed to the name: parameter is important as you will need to set its value later) parameter in: :body, examples: { 'minimum fields used' => { value: JSON.parse(File.read(AppealsApi::Engine.root.join('spec', 'fixtures', 'v2', 'valid_200996_minimum.json'))) }, 'all fields used' => { value: JSON.parse(File.read(AppealsApi::Engine.root.join('spec', 'fixtures', 'v2', 'valid_200996.json'))) } } # ^ the value of keys in the examples hash will be used in the request bodies drop down selector parameter in: :header, type: :string, name: 'X-VA-SSN', required: true, description: 'Veteran\'s SSN' let(:'X-VA-SSN') { '000000000' } response '200', 'Info about a single Higher-Level Review' do let(:hlr_body) do JSON.parse(File.read(AppealsApi::Engine.root.join('spec', 'fixtures', 'v2', 'valid_200996_minimum.json'))) end # ^ referencing the parameter named above (:hlr_body) so Rswag knows to send this json as the body of the request # schema ... before do |example| submit_request(example.metadata) end it 'minimum fields used' do |example| assert_response_matches_metadata(example.metadata) end after do |example| response_title = example.metadata[:description] example.metadata[:response][:content] = { 'application/json' => { examples: { "#{response_title}": { value: JSON.parse(response.body, symbolize_names: true) } } # ^ To have multiple responses (shown in the swagger UI via a drop down) you have to nest them under 'examples' instead of directly in 'example' # You can set the text statically here or use the examples metadata from the 'it ... do' - in this case 'minimum fields used'. Providing that you don't over write it with a subsequent example. } } end end response '200', 'Info about a single Higher-Level Review' do let(:hlr_body) do JSON.parse(File.read(AppealsApi::Engine.root.join('spec', 'fixtures', 'v2', 'valid_200996.json'))) end # schema ... before do |example| submit_request(example.metadata) end it 'all fields used' do |example| assert_response_matches_metadata(example.metadata) end # ^ This is another '200' response but because the description is different than the above '200' example it will show up as two different possible examples in the swagger UI after do |example| response_title = example.metadata[:description] example.metadata[:response][:content] = { 'application/json' => { examples: { "#{response_title}": { value: JSON.parse(response.body, symbolize_names: true) } } } } end end end end end ``` -------------------------------- ### Create Certificate Directory and Files Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Creates a `config/certs` directory within the vets-api project and initializes empty placeholder files for the SSL certificate and key. These are often required for local development with HTTPS. ```bash cd vets-api mkdir -p config/certs touch config/certs/vetsgov-localhost.crt touch config/certs/vetsgov-localhost.key ``` -------------------------------- ### Install Homebrew and Update Shell Profile Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine.md Installs Homebrew, the macOS package manager, and configures the shell profile to use Homebrew's environment variables. ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" echo >> ~/.zprofile echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)" ``` -------------------------------- ### GET /evidence-submissions/{id} Status Check Example Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/supplemental_claims/v0/api_description_dev.md Retrieves the status of an evidence document upload using the GUID obtained from the initial submission request. This allows clients to track the progress of their uploaded documents. ```shell curl -X GET https://api.va.gov/services/appeals/v1/evidence_submissions/{id} ``` -------------------------------- ### Initialize Vets API Repository and Local Configuration Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/index.md Commands to clone the repository and prepare the local directory structure for authentication certificates and configuration files. ```bash git clone https://github.com/department-of-veterans-affairs/vets-api.git mkdir config/certs touch config/certs/vetsgov-localhost.crt touch config/certs/vetsgov-localhost.key cp config/settings.local.yml.example config/settings.local.yml ``` -------------------------------- ### GET /evidence-submissions/{id} Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/supplemental_claims/v0/api_description_dev.md Retrieves the status of an evidence document upload using its unique GUID. ```APIDOC ## GET /evidence-submissions/{id} ### Description Retrieves the current status of an evidence document upload using the unique GUID provided in the initial POST request. Status data is cached for 1 hour. ### Method GET ### Endpoint /evidence-submissions/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The GUID of the evidence submission. #### Query Parameters None #### Request Body None ### Request Example ```bash curl https://api.example.com/evidence-submissions/a1b2c3d4-e5f6-7890-1234-567890abcdef ``` ### Response #### Success Response (200) - **status** (string) - The current status of the upload (e.g., pending, uploaded, received, processing, success, vbms, error). - **updated_at** (string) - The timestamp of the last status update. #### Response Example ```json { "status": "uploaded", "updated_at": "2023-10-27T10:00:00Z" } ``` ``` -------------------------------- ### GET /evidence_submissions/{uuid} Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/decision_reviews/v2/api_description.md Retrieves the current processing status of an evidence upload using the GUID. ```APIDOC ## GET /notice_of_disagreements/evidence_submissions/{uuid} ## GET /supplemental_claims/evidence_submissions/{uuid} ### Description Checks the status of an evidence upload. Statuses include: pending, uploaded, received, processing, success, vbms, or error. ### Method GET ### Endpoint /notice_of_disagreements/evidence_submissions/{uuid} ### Parameters #### Path Parameters - **uuid** (string) - Required - The GUID returned during the initial POST request. ### Response #### Success Response (200) - **status** (string) - The current state of the document upload. #### Response Example { "status": "uploaded" } ``` -------------------------------- ### Copy Local Settings Example Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/README.md This command copies the example local settings file to be used as the actual local configuration. This file is used to customize settings for your local development environment. ```bash cp config/settings.local.yml.example config/settings.local.yml ``` -------------------------------- ### GET /evidence_submissions/{uuid} Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/decision_reviews/v2/api_description_dev.md Retrieves the current status of an evidence upload using the GUID provided during initiation. ```APIDOC ## GET /notice_of_disagreements/evidence_submissions/{uuid} ## GET /supplemental_claims/evidence_submissions/{uuid} ### Description Checks the processing status of an evidence upload. Statuses include: pending, uploaded, received, processing, success, vbms, or error. ### Method GET ### Endpoint /notice_of_disagreements/evidence_submissions/{uuid} ### Parameters #### Path Parameters - **uuid** (string) - Required - The GUID returned from the POST initiation endpoint. ### Response #### Success Response (200) - **status** (string) - Current state of the document package. #### Response Example { "status": "uploaded" } ``` -------------------------------- ### GET /evidence_submissions/{uuid} Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/decision_reviews/v2/description_with_final_status_dev.md Retrieves the current status of an evidence upload session using the GUID returned during initiation. ```APIDOC ## GET /notice_of_disagreements/evidence_submissions/{uuid} ## GET /supplemental_claims/evidence_submissions/{uuid} ### Description Checks the status of an evidence upload. Statuses include 'pending', 'uploaded', or 'expired'. ### Method GET ### Endpoint /notice_of_disagreements/evidence_submissions/{uuid} ### Parameters #### Path Parameters - **uuid** (string) - Required - The GUID returned from the POST initiation request. ### Response #### Success Response (200) - **status** (string) - The current state of the upload (e.g., 'uploaded', 'expired'). ``` -------------------------------- ### GET /evidence-submissions/{id} Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/notice_of_disagreements/v0/api_description_dev.md Retrieves the current status of an evidence document upload using the GUID provided during initialization. ```APIDOC ## GET /evidence-submissions/{id} ### Description Checks the status of an evidence upload. Statuses include pending, uploaded, received, processing, success, vbms, and error. ### Method GET ### Endpoint /evidence-submissions/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The GUID returned from the POST /evidence-submissions endpoint. ### Response #### Success Response (200) - **status** (string) - Current status of the upload. - **updated_at** (string) - Timestamp of the last status update. #### Response Example { "status": "uploaded", "updated_at": "2023-10-27T10:00:00Z" } ``` -------------------------------- ### Instantiate CHIP Service Client Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/lib/chip/README.md Initializes the CHIP service client by retrieving tenant-specific credentials from application settings. The credentials object must contain the tenant ID, name, username, and password, and is frozen to ensure immutability. ```ruby def chip_service settings = Settings.chip.tenant_name chip_creds = { tenant_id: settings.tenant_id, tenant_name: 'my_tenant_name', username: settings.username, password: settings.password }.freeze ::Chip::Service.new(chip_creds) end ``` -------------------------------- ### GET /notice_of_disagreements/evidence_submissions/{uuid} Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/appeals_api/v1/api_description.md Retrieves the current processing status of an evidence submission using the GUID obtained during initialization. ```APIDOC ## GET /notice_of_disagreements/evidence_submissions/{uuid} ### Description Checks the status of an evidence upload. Note: Status data is cached for one hour. ### Method GET ### Endpoint /notice_of_disagreements/evidence_submissions/{uuid} ### Parameters #### Path Parameters - **uuid** (string) - Required - The GUID returned from the POST initialization request. ### Response #### Success Response (200) - **status** (string) - Current status (pending, uploaded, received, processing, success, vbms, error). - **updated_at** (string) - Timestamp of the last status update. #### Response Example { "status": "received", "updated_at": "2023-10-27T10:00:00Z" } ``` -------------------------------- ### Initiate Evidence Upload (POST) Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/decision_reviews/v2/api_description_dev.md Initiates an evidence upload for NOD or SC by sending a POST request to the respective endpoint. The response provides a unique GUID and a temporary location URL for the subsequent upload. The URL is valid for 15 minutes. ```HTTP POST /notice_of_disagreements/evidence_submissions POST /supplemental_claims/evidence_submissions ``` -------------------------------- ### Check Evidence Upload Status (GET) Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/decision_reviews/v2/api_description_dev.md Retrieves the status of an evidence document upload using the GUID obtained during the initiation step. This GET request can be made to either the NOD or SC endpoint, followed by the specific UUID. ```HTTP GET /notice_of_disagreements/evidence_submissions/{uuid} GET /supplemental_claims/evidence_submissions/{uuid} ``` -------------------------------- ### Display SSH Public Key Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Prints the content of the SSH public key to the console. This key needs to be copied and added to your GitHub account settings to enable SSH authentication. ```bash cat ~/.ssh/id_ed25519.pub ``` -------------------------------- ### Initiate Evidence Upload (POST Request) Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/modules/appeals_api/app/swagger/supplemental_claims/v0/api_description.md Initiates the evidence upload process by sending a POST request to the `/evidence-submissions` endpoint. This returns a unique GUID and a temporary location URL for the subsequent upload. ```http POST /evidence-submissions HTTP/1.1 Host: example.com Content-Type: application/json { "data": { "attributes": { "confirmationCode": "some_confirmation_code" } } } ``` -------------------------------- ### Clone Vets-API Repository Source: https://github.com/department-of-veterans-affairs/vets-api/blob/master/docs/setup/new_machine_wsl.md Clones the vets-api repository from GitHub using SSH. This command downloads the entire project history and files to the local machine. ```bash git clone git@github.com:department-of-veterans-affairs/vets-api.git ```