Resolves Jira Issue Title
Please explain the changes you made here.
- Code compiles correctly
- Go to Jira Issue/Test Plan Link or list them below
- For feature branches merging into main: Was this deployed to UAT?
- Screenshots of UI changes added to PR & Original Issue
BEFORE | AFTER |
---|
For Frontend (Presentation) Components
- Add a Storybook file alongside the component file (e.g. create
MyComponent.stories.js
alongsideMyComponent.jsx
) - Give it a title that reflects the component's location within the overall Caseflow hierarchy
- Write a separate story (within the same file) for each discrete variation of the component
Only for Schema Changes
- Add typical timestamps (
created_at
,updated_at
) for new tables - Update column comments; include a "PII" prefix to indicate definite or potential PII data content
- Have your migration classes inherit from
Caseflow::Migration
, especially when adding indexes (useadd_safe_index
) (see Writing DB migrations) - Verify that
migrate:rollback
works as desired (change
supported functions) - Perform query profiling (eyeball Rails log, check bullet and fasterer output)
- For queries using raw sql was an explain plan run by System Team
- Add appropriate indexes (especially for foreign keys, polymorphic columns, unique constraints, and Rails scopes)
- Run
make check-fks
; add any missing foreign keys or add toconfig/initializers/immigrant.rb
(see Record associations and Foreign Keys) - Add
belongs_to
for associations to enable the schema diagrams to be automatically updated - Document any non-obvious semantics or logic useful for interpreting database data at Caseflow Data Model and Dictionary
- Check that Caseflow's external API code for the endpoint matches the code in the relevant integration repo
- Request: Service name, method name, input field names
- Response: Check expected data structure
- Check that calls are wrapped in MetricService record block
- Check that all configuration is coming from ENV variables
- Listed all new ENV variables in description
- Worked with or notified System Team that new ENV variables need to be set
- Update Fakes
- For feature branches: Was this tested in Caseflow UAT
- Add or update code comments at the top of the class, module, and/or component.
Did you include any test coverage for your code? Check below:
- RSpec
- Jest
- Other
Your code does not add any new code climate offenses? If so why?
- No new code climate issues added
- Are performance metrics (e.g., response time, throughput) being tracked?
- Are key application components monitored (e.g., database, cache, queues)?
- Is there a system in place for setting up alerts based on performance thresholds?
- Are logs being produced at appropriate log levels (debug, info, warn, error, fatal)?
- Are logs structured (e.g., using log tags) for easier querying and analysis?
- Are sensitive data (e.g., passwords, tokens) redacted or omitted from logs?
- Is log retention and rotation configured correctly?
- Are logs being forwarded to a centralized logging system if needed?
- Are user actions being logged for audit purposes?
- Are changes to critical data being tracked ?
- Are logs being securely stored and protected from tampering or exposing protected data?
- Are errors being caught and handled gracefully?
- Are appropriate error messages being displayed to users?
- Are critical errors being reported to an error tracking system (e.g., Sentry, ELK)?
- Are unhandled exceptions being caught at the application level ?
- Are custom exceptions defined and used where appropriate?
- Is exception handling consistent throughout the codebase?
- Are exceptions logged with relevant context and stack trace information?
- Are exceptions being grouped and categorized for easier analysis and resolution?