-
Notifications
You must be signed in to change notification settings - Fork 5
Sprint 23 #790
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sprint 23 #790
Conversation
The Docker image that is used to build the project uses Node version 18 by default, which will reach end-of-life support on 2025-04-30. ``` b'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n' -- 106 | b'!! !!\n' 107 | b'!! Node 18 is approaching end-of-life and will no longer be supported in new releases after 2025-04-30. !!\n' 108 | b'!! Please upgrade to a supported node version as soon as possible. !!\n' 109 | b'!! !!\n' 110 | b'!! This software is currently running on node v18.20.6. !!\n' 111 | b'!! As of the current release of this software, supported node releases are: !!\n' 112 | b'!! - ^22.0.0 (Planned end-of-life: 2027-04-30) !!\n' 113 | b'!! - ^20.0.0 (Planned end-of-life: 2026-04-30) !!\n' 114 | b'!! - ^18.0.0 (Planned end-of-life: 2025-04-30) [DEPRECATED] !!\n' 115 | b'!! !!\n' 116 | b'!! This warning can be silenced by setting the JSII_SILENCE_WARNING_DEPRECATED_NODE_VERSION environment variable. !!\n' 117 | b'!! !!\n' 118 | b'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n' ``` This updates the CodeBuild buildspec configuration to install Node version 22 ### Testing List - Verified pipeline synth in test environment Closes #750 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Updated build environment to include both Python 3.12 and Node.js 22.x during the build process. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
several jurisdictions have reported that they set different privilege fees based on the type of license for which the privilege record is being purchased. This deprecates the old jurisdictionFee field in place of a 'privilegeFees' field, which is a list of objects defining the amount for every license type supported by the compact. ### Testing List - tests/test data updated to reference new schema Closes #635 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced support for jurisdiction-specific privilege fees, allowing multiple license types with distinct fee amounts per jurisdiction. - Added new configuration fields for privilege fees across various jurisdictions and compacts. - Updated API responses and schemas to include detailed privilege fee information for each license type. - **Bug Fixes** - Improved validation to ensure all required license types have corresponding privilege fees and to detect duplicates or unknown license types. - **Refactor** - Deprecated the single jurisdiction fee field in favor of the new privilege fees structure. - Enhanced fee calculation logic to apply discounts and determine fees by license type. - Renamed license type properties for clarity and improved configuration validation. - **Tests** - Updated test data and assertions to validate the new privilege fees structure and deprecation of the old fee field. - Improved test coverage for multiple license types and privilege fee scenarios. - **Chores** - Added new environment variable to smoke test configuration. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
### Requirements List - _None_ ### Description List - Create a common style mixin for the purchase-flow button UI - Update the purchase-flow HTML templates to support the desired tab order of buttons - Various HTML / style cleanup in the purchase-flow button UI - Minor style updates to match the latest designs ### Testing List - `yarn test:unit:all` should run without errors or warnings - `yarn serve` should run without errors or warnings - `yarn build` should run without errors or warnings - Code review - Testing - As a practitioner who is able to purchase privileges, begin the purchase process - Go through the purchase forms on both mobile and desktop, making sure the buttons at the bottom of each form still look & work as expected from the designs (e.g. Cancel, Back, Next) - Confirm keyboard tab navigation on each purchase form has the order of the tab selection of the buttons at the bottom of each form order as follows: 1) Next / Continue, 2) Back, 3) Cancel Closes #549 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Style** - Unified and improved button row styling across all purchase-related forms for a more consistent and responsive layout. - Primary navigation buttons (submit, back) are now grouped together and visually separated from the cancel button in all purchase flows. - Enhanced button alignment and spacing for better usability on both desktop and mobile devices. - **New Features** - Introduced a reusable style for purchase flow buttons, ensuring consistent appearance and behavior throughout the application. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
We have received a request to add Arkansas as an selectable state for the Counseling Compact in the beta environment. This adds the needed configuration file and adds the Counseling compact to the beta environment as well. Closes #767 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added a new configuration for Arkansas, enabling licensee registration and specifying jurisdiction details. - Introduced new access scopes related to the Counseling compact for Arkansas. - **Chores** - Included placeholder data for Arkansas to support test and beta environment setups. - **Tests** - Updated tests to cover the beta environment alongside the test environment. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
### Requirements List - ### Description List - Updated text in front end as described by ticket - Updated text in backend yml as described by ticket and tests ### Testing List - `yarn test:unit:all` should run without errors or warnings - `yarn serve` should run without errors or warnings - `yarn build` should run without errors or warnings - Run backend tests - Code review - look at the `PrivilegePurchaseSelection` screen and confirm it looks good Closes #621 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Updated attestation text to clarify that violations may result in revocation of both Compact Privileges and licenses. - **Style** - Improved English and Spanish attestation labels to prompt users to actively read and affirm the scope of practice. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Dana Stiefel <[email protected]>
### Requirements List - _None_ ### Description List - Update button labels on the public dashboard - Update registration page form - Re-order inputs - Update labels - Add descriptive text - Remove some input placeholders - Add return-to-dashboard link to registration success UI - Toggle off html warning in i18n (translations are not user generated; and we need to access to sub elements) - Update CSS reset to support basic emphasis element styling ### Testing List - `yarn test:unit:all` should run without errors or warnings - `yarn serve` should run without errors or warnings - `yarn build` should run without errors or warnings - Code review - Public Dashboard page - Applicable buttons should now say "Practitioner" (rather than "Provider") - Staff login should now be labeled "Login as Compact or State Staff" - Registration page - Added helpful subtext above form - Changed name fields to be labeled "First name" / "Last name" (rather than "given" / "family") - Removed input placeholder text from: - First name & Last name - Last 4 of SSN - Email - Changed email label to "Email" (rather than "Email address") - Added helpful subtext below email input - On registration success, added a "Go to dashboard" button link Closes #646 Closes #740 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added new explanatory subtext elements to the licensee registration form, providing clearer guidance for users. - Introduced a navigation link to the public dashboard on the registration success screen. - **Enhancements** - Improved consistency and clarity of English and Spanish localization strings, including updated labels and additional instructions. - Updated select dropdowns to use disabled placeholder options for better usability. - Improved visual hierarchy and spacing on the registration form with new and updated styles. - Made emphasized text display in bold for better readability. - **Bug Fixes** - Added pointer cursor to login links, indicating clickability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
### Requirements List - `yarn install --ignore-engines` ### Description List - Updated License model to account for new backend props: - `licenseStatus` - _same as previous License `status` field; only on License responses; Privilege responses still have `status`_ - `licenseStatusName` - `compactEligibility` - Updated License model tests for new fields + some clean up some gaps & consistency items - Updated the Licensee model to move to new server-calculated eligibility status - Updated License card UI to match updated designs - Updated Privilege card UI to match updated designs - Updated the purchase multi-license-select step 1 to be based off of eligible licenses - Updated the mock data to add another licensee license so we still have all scenarios available - Fixed minor type related to active military affiliations - Updated transitive dependency `http-proxy-middleware` #760 ### Testing List - `yarn test:unit:all` should run without errors or warnings - `yarn serve` should run without errors or warnings - `yarn build` should run without errors or warnings - Code review - Testing - _Use both mock API and live API (mock API makes it easy to test all cases)_ - Active License cards match the updated designs - Inactive License cards match the updated designs - Active Privilege cards match the updated designs - Inactive Privilege cards match the updated designs Closes #682 Closes #760 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Added a new LicenseHome icon component with SVG rendering for use in license displays. - License cards now display eligibility status with visual indicators and tooltips for status descriptions. - License and privilege cards feature updated layouts, icons, and clearer status/eligibility displays. - **Enhancements** - Improved styling for license and privilege cards, including new color schemes, typography, and responsive design adjustments. - Home state and eligibility information are now passed and displayed more consistently across dashboard and detail views. - Tooltip support added for overflowing status descriptions. - **Localization** - Added English and Spanish translations for "Compact Eligible" and "Not Compact Eligible" status labels. - **Bug Fixes** - Corrected typos in method names affecting military affiliation logic. - **Tests** - Expanded and updated test coverage for new eligibility and status features in license and licensee models, and added tests for the new LicenseHome icon component. - **Chores** - Updated mock data to include detailed license status and eligibility fields. - Adjusted font weight variable for extra bold text. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This adds a document that is to be sent to State IT staff instructing them how to authenticate with the compact connect system. It includes an overview of the compact connect system and some example curl commands they can use to upload license data into the beta system. While testing the curl commands for this, I discovered that the 'ssn' field was accidentally removed from the POST license schema validation in CDK several commit back when we made the license status field updates. This adds the fix to put the field back in, along with CDK tests to catch this issue in the future should it happen again. Closes #774 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added onboarding instructions for state IT departments to integrate with the CompactConnect API, including authentication, data upload, schema requirements, and troubleshooting guidance. - **Bug Fixes** - Corrected environment names and clarified documentation regarding API scopes and credential sharing. - **Documentation** - Updated credential transmission instructions for app clients, emphasizing secure sharing methods. - Added explicit Cognito token URLs for beta and production environments. - Introduced a new section on attaching onboarding instructions in communications. - **Tests** - Introduced tests to validate the POST licenses API endpoint configuration and schema. - Added JSON schema files for license request and response validation. - **Refactor** - Improved API implementation by assigning handlers and endpoints to instance variables for better accessibility and maintainability. - **Style** - Minor formatting improvements in schema definitions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
In the event that a request is malformed JSON, we want to handle this issue gracefully and return a 400 This also sets the registration endpoint request schema to strict, to avoid allowing the user to specify any unrecognized fields. Closes #761 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Improved validation of provider registration requests by strictly enforcing accepted fields. - Enhanced API request handling to reject unsupported media types and malformed JSON payloads, returning clear error responses for each case. - **New Features** - Introduced specific error messaging for unsupported media types in API requests. - **Tests** - Added unit tests to verify error handling for unsupported media types and malformed JSON in API requests. - **Style** - Reformatted code for improved readability without affecting functionality. - **Chores** - Updated test resources to include the "Content-Type: application/json" header for consistency. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Justin Frahm <[email protected]>
### Requirements List - ### Description List - Updated `PrivilegePurchaseOption` model to incorporate fees per license type change - Update references in UI - Updated mockAPI - Fixed bug where `SelectedStatePurchaseData` could refer to the wrong licenses expirationdate - updated tests ### Testing List - `yarn test:unit:all` should run without errors or warnings - `yarn serve` should run without errors or warnings - `yarn build` should run without errors or warnings - Code review - run through the app on the mock and real APIs and confirm that we are now referring to the licensetype relevant fees and looking at the right expiration date in `SelectedStatePurchaseData` Closes #636 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Fee calculations and displays now support multiple license types, allowing different fees per license type to be shown and totaled during the purchase process. - **Bug Fixes** - The expiration date shown now accurately reflects the selected license rather than the previously active license. - **Refactor** - Internal logic updated to use a structured fees object instead of a single fee value, improving flexibility and maintainability. - UI text labels and messages in the purchase finalization component are now fully localized using direct translation calls. - **Tests** - Test cases updated to validate the new multi-fee structure and ensure correct fee handling for all license types. - **Chores** - Mock data revised to provide differentiated fees per license type for more realistic testing. - Deprecated jurisdiction fee fields removed from configuration files, API schemas, test data, and documentation to streamline fee management. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Dana Stiefel <[email protected]> Co-authored-by: Landon Shumway <[email protected]>
…vileges (#769) State Admins need the ability to upload adverse actions against a practitioner to denote they are not able to practice with a specific license or privilege in a state. As part of this change, we've started hitting pain points with using static json files for checking our expected responses from the API. This adds a TestDataGenerator class which can be used to create any number of variations in our tests to test specific use cases. We have also added data classes for abstracting the database layer from our application logic, which should greatly simplify how we are reading/writing data to our tables. This change is not a complete refactor, rather just a starting point for us to work with as we continue to develop the project. ### Requirements List - This adds a new field to the provider detailed response body, which should be a backwards compatible change ### Description List - Added endpoints for uploading adverse actions against licenses and privileges - Added adverse action schema with needed fields according to the data model design - Returning list of adverse actions for any privilege/license that has them in the provider detailed response - Added data classes for each record schema type for abstracting database layer from application logic. - Added TestDataGenerator util class to make it easier to generate tests with variable data. ### Testing List - Added test cases for adverse action related changes - For API configuration changes: CDK tests added/updated in `backend/compact-connect/tests/unit/test_api.py` Closes #672 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added API endpoints to encumber provider privileges and licenses with adverse actions, enabling administrative control to restrict privileges. - Introduced adverse action data models and validation schemas for detailed recording of encumbrances. - Included adverse actions in provider, license, and privilege response data. - Added a new authorization decorator enforcing state-level permission scopes. - Added utility to retrieve license type information by abbreviation within compacts. - **Bug Fixes** - Made deactivation note mandatory when deactivating privileges. - **Refactor** - Renamed and restructured provider management API classes and resources for clearer privilege and license operations. - Consolidated and updated data models for licenses, privileges, adverse actions, military affiliations, and related entities. - Centralized timezone handling for expiration dates. - Updated schema imports and validation logic for consistency. - **Tests** - Added thorough unit and integration tests for encumbrance endpoints, adverse action schemas, and provider responses. - Enhanced test data generators and standardized test constants for consistent testing. - **Documentation** - Improved API schema definitions and comments to specify required fields and clarify request/response formats. - Updated OpenAPI specification with new encumbrance endpoints and request schemas. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Justin Frahm <[email protected]>
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
### Requirements List - Add georga ### Description List - Added GA and UT to counseling compact in test Closes #781 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added initial configuration files for the Georgia and Utah jurisdictions, including placeholder data for license types, privilege fees, and environment-specific settings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jusdino @jsandoval81 @landonshumway-ia @ChiefStief
Two items related to military affiliation might involve backend work.
Several other items relate to keyboard navigation (space vs enter), so it may be worth discussing our broader strategy / philosophy on that before proceeding so we can take a uniform approach in future sprints. Let me know what you think.
My preference would be to hotfix (1) and (2), and (7) if it's not too much work.
@isabeleliassen This is good to merge after merging #806. This is a Sprint PR, so should be merged using a merge commit. |
I made these edits to support bootstrapping users on a sandbox environment for sprint reviews. I'm treating this as a starting point for further development, as necessary (e.g., uploading mock data, creating provider accounts, etc.).
npm audit
andpip audit
) to ensure that there are no vulnerabilities that will be deployed to production (as opposed to vulnerabilities that only have an impact on the development environment)