We need to migrate the existing authentication code from vets-website for Sign in Service integrations, and general use cases for vets-website and outside general use cases. Several main tasks we need to investigate and accomplish include the following:
Project Setup and Requirements Analysis - Roughly 1 to 2 sprints (nearly over but still needs to clean up to make sure these are captured)
[x] Determine target platforms to support Support the same thing that vets-website is doing
[x] Determine programming language to use - Use Typescript
[x] Decide package build tools to use #77745
[x] Define project scope, gather and prioritize requirements
[x] Conduct a detailed requirement analysis
[x] [SPIKE] Familiarize with industry standards #78583
[x] [SPIKE] Research common identity-related use cases to support #78581
[x] [SPIKE] Research existing SDK Libraries for inspiration #77197
~- [ ] [SPIKE] Research Web Components for Identity SDK Library #77746~ move to backlog for now
~- [ ] [SPIKE] Research Rust WASM implementation (optional)~ move to backlog for now
[x] [SPIKE] Identity components that needs to be migrated #77193
Design Phase - Estimated sprints: 3rd sprints and 4th sprints
[ ] SDK Architecture Design
[ ] [SPIKE] Define SDK library's architecture and API Design #79388
[ ] Decide on the architecture for the SDK Library
[ ] Modular architecture - Define modular approach for AuthN and AuthZ #79664
[ ] Define different functionalities into separate modules
[ ] Authentication
[ ] Authorization
[ ] User Management
[ ] Layered approach - Define and document the login flow
[ ] Data access
[ ] Business Login
[ ] API Interface
[ ] Types and Interfaces - Define the types and interfaces for the data models / API responses
[ ] Define types and interfaces
[ ] Data Models
[ ] API Responses
[x] Common utilities
[x] Research existing utilities in vets-website #77194
[ ] Define the API and Data Models
[ ] Establish error handling and logging strategies
[ ] Design a simple user interface elements for the components (PoC) #77193
[ ] Decide on styling for React / Web Components #77748
[ ] Plat for future extensions and customization
[ ] List security considerations
[ ] Encryption and data protection
[ ] Authentication and authorization
[ ] Vulnerability management
[ ] Define generic components for authentication capabilities
[ ] Define CreateAccountLink component #78165
[ ] Define Modal component #78022
[ ] Define Login component #77904
[ ] Define Banner component #77906
[ ] API Design
[ ] RESTful implementation
[ ] Consistent naming convention
[ ] Async/Await for Asynchronous Operations
[ ] Comprehensive Error Handling
[ ] Documentation and Types
[ ] Outline security protocols
[ ] Security Considerations
[ ] Start documentation
Core Development - Estimate on 5th sprint to 10th sprint after the 4th sprint is done
[ ] Implement core functionalities
[ ] Integrate existing code
[ ] Conduct initial testing
[ ] Focused areas for development
[ ] authentication
[ ] authorization
[ ] user management
[ ] basic user security features
[ ] Create a Storybook to showcase components
[ ] Unit testing + Integration testing - will be using node.js built-in testing until RTL + Jest is needed
Security and Compliance
[ ] Perform security audits
[ ] Ensure compliance with relevant standards
[ ] Address vulnerabilities
[ ] Refine security features
Extended Features and Integrations
[ ] Develop additional features and integrations based on the initial plan and feedback
@asg5704 and @acald-creator let @kingbmike and I know when you wanna sync on this stuff. We will take some time tomorrow to start writing some tickets based on Alex's Notion Notes (notiotes?)
Description
We need to migrate the existing authentication code from
vets-website
for Sign in Service integrations, and general use cases forvets-website
and outside general use cases. Several main tasks we need to investigate and accomplish include the following:Setup repository- Created here: https://github.com/department-of-veterans-affairs/identity-sdkDetermine target platforms to supportSupport the same thing thatvets-website
is doingDetermine programming language to use- Use TypescriptDecide package build tools to use #77745vets-website
#77194CreateAccountLink
component #78165Modal
component #78022Login
component #77904Banner
component #77906Security and Compliance
Extended Features and Integrations
Testing and Quality Assurance