ACORN Security Refactor Project Charter
I. Problem/Value Statement
Technical Problem Statement
ACORN (A COnservation Records Network) is the Weissman Preservation Center's (WPC) primary application for documenting preservation treatments. It also supports registrarial functions, stores electronic communications, records non-treatment activities, and facilitates reporting. ACORN is convenient for staff, who access the web-based application at the location of their choice.
ACORN was built using Angular on the front end and NodeJS with Express on the back end. Over the years, ACORN’s front end has become increasingly difficult to maintain. Frequent security updates compound the challenge further and have resulted in unresolved vulnerabilities with a high security risk. ACORN’s authentication protocol also needs to be updated to align with the University’s security requirements.
Business Value
Refactoring ACORN’s front-end codebase to shift from Angular to a more easily-maintainable and popular language, like React, will facilitate sustainable maintenance and help prevent the future accrual of security risks by improving the rapidity with which Library Technology Services can respond to security updates. Updating ACORN’s authentication protocol will bring the application in line with current University security requirements.
II. Vision and Approach
The longer-term vision for ACORN is a sustainable, open-source application that supports conservation activities at Harvard and beyond. Work remains to remove references to Harvard-specific systems (e.g., DRS, HOLLIS), although some Harvard-specific dependencies have already been removed, such as Aeon integration. While work to support the move to open source is currently deprioritized within the department, updating the underlying front-end code with an eye to easier maintenance and sustainability supports this vision while also addressing immediate-term security concerns.
The ACORN security refactor aligns with the following Harvard Library multi-year goals and objectives (MYGOs) and HUIT objectives and key results (OKRs):
- Harvard Library MYGOs: Evolve our digital infrastructure to meet our directional goals
- Adopt a sustainable organizational approach to technology lifecycle management and preparing for the future.
- Simplify and enhance systems that support the discovery and delivery of information resources.
- Harvard Library MYGOs: Evolve our digital infrastructure to meet our directional goals
- HUIT OKRs: Ingrain privacy and security best practices into Harvard's culture and work
III. In Scope/Out of Scope
In Scope
- Retire ACORN’s use of Angular for its front-end solution
- Address security vulnerabilities and optimize sustainability for future updates
- Ensure code is has robust integration and unit test coverage
- Achieve 100% feature parity with refactored code
- Update the authentication protocol to use OpenID Connect (OIDC)
- Update documentation to support the new React front-end codebase
Out of Scope
New features
Back-end code (NodeJS with Express) changes or enhancements unrelated to the front-end refactor or authentication protocol update
Integration of enterprise group and access management
Automated QA test suite
IV. Deliverables and Work Products
- Fully-functional ACORN application with a React front-end
- Implementation of OIDC authentication protocol
- Zero security vulnerabilities
- All dependencies addressed
Definition of Done
This project will be successful once we are able to release an updated ACORN application with a React front-end and OIDC-compliant authentication that is free of security vulnerabilities and supported with clear documentation in an easily-findable location.
V. Stakeholders
Stakeholder | Title | Participation |
---|---|---|
Stu Snydman | Associate University Librarian and Managing Director, Library Technology | Executive Sponsor |
Enrique Diaz | Manager of Library Software Engineering, LTS | LTS Discovery Portfolio Manager |
Debra Cuoco | Paper Conservator for Special Collections | ACORN Service Owner |
VI. Team members
Team member | Role(s) | Affiliation |
---|---|---|
Enrique Diaz | LTS Discovery Portfolio Manager | LTS |
TBD vendor | Design, development, QA testing, project management, documentation | TBD vendor |
Dave Mayo | Code review, documentation review | LTS |
Phil Plencner | Code review, documentation review | LTS |
Maura Carbone | Application deployment, automation verification | LTS |
Debra Cuoco | User acceptance testing | Library Preservation |
Sara Rubinow | LTS Discovery Portfolio Project Manager | LTS |
VII. Estimated Schedule
Note: Schedule TBD pending vendor estimate and engagement.
Phase | Phase duration | Completion Milestone |
---|---|---|
Kickoff & onboarding | - Project kickoff meeting | |
Code review & analysis | - Complete thorough review of existing Angular codebase | |
Design & Development & Testing & Documentation | - Iterative QA releases: - Complete refactoring of the first major component/feature - Test each component as it is developed to ensure functionality and security. Include regression testing. | |
Security & compliance review | - Complete and document security audit of new codebase and authentication protocol | |
User testing & fixes, Support/Ops handoff | - Stakeholder confirmation of 100% feature parity with no regression | |
Production release | - Deploy app to production with no errors | |
Project close | - Hold a project review meeting to evaluate successes and identify lessons learned for future projects. |
VIII. Assumptions, Risks, and Constraints
Assumptions
The Executive Sponsor and other stakeholders are empowered to make the decisions required for the project to be a success.
Stakeholders will be available to participate in project activities and to complete tasks as requested in a timely manner.
React is a suitable replacement for Angular.
Existing functionality can be fully replicated in React, achieving 100% feature parity.
ACORN’s back-end requires nominal or no changes to support the new front-end move to React. In the event such changes are required, they’ll have no material impact on the project schedule.
All front-end security vulnerabilities can be resolved by refactoring with React.
ACORN’s codebase allows for the straightforward integration of OIDC without extensive refactoring.
Stakeholders are supportive of the shift from Angular to React and understand both the benefits and potential challenges of this transition.
The vendor is technically proficient to meet project needs. This includes proficiency in React with the ability to readily understand the current Angular codebase of ACORN as well as the OIDC authentication protocol.
The vendor will continue through to project completion with no significant gaps in availability.
The vendor will be available as necessary for check-in meetings.
The documentation deliverable will be sufficient for LTS developers to understand, maintain, and further develop the application.
The project will not require additional resources for development work beyond those identified in section VI. “Team members.”
The budget is sufficient to cover all project costs.
The timeline allows for the completion of all project deliverables.
Risks
Description | Impact | Plan | Owner |
---|---|---|---|
Integration and Compatibility Issues: The vendor may encounter compatibility issues in refactoring the front-end codebase from Angular to React, or in updating the authentication protocol. These updates may be more complex and time-consuming than initially estimated. | Project delays and/or increased costs. | Include sufficient time for the developer to become acquainted with the application and review extant documentation. Conduct a thorough technical assessment before starting the transition to identify and document potential compatibility issues. Conduct thorough code reviews and testing throughout the development process to catch any issues early. | Portfolio Manager |
Back-end Stability: Although it's assumed that the back-end does not require significant changes, unexpected issues could arise that necessitate significant changes to the back-end code, which is out of scope for this project. | Project delay and added complexity. | Regularly monitor and test the back end to identify any potential issues early. If back-end issues must be addressed, the selected vendor will agree to make resources available to resolve and unblock the issues in a timely fashion. The project timeline will necessarily be adjusted to accommodate the expanded project scope. | Portfolio Manager |
Security: The process of refactoring code and updating the authentication protocol, could inadvertently introduce new vulnerabilities. | Risk to the application's security and data integrity. Resolution of new vulnerabilities could also delay the project. | Implement a robust security testing and review process to identify and address vulnerabilities. Regularly update and patch the application to maintain security. Conduct regular security audits throughout the development process. | Portfolio Manager |
Feature Parity: Achieving 100% feature parity with the refactored code might be more challenging than anticipated. There is a risk that not all features of the existing Angular application can be replicated in React. Some might be missed. | Project delays or dissatisfaction among end users. | Clearly define the features that need to be replicated in the new code. Prioritize critical features during the refactoring process. Regularly review and test the application to ensure all features are functioning as expected. Perform regression testing against the old app. | Portfolio Manager |
Testing: The resources involved in the project might not have the availability or skillset to conduct thorough testing. | Release with bugs or other issues, which would negatively impact user experience. | Allocate sufficient time for user acceptance testing in the project plan. Include unit, integration, and user acceptance testing in the development and release cycle. | Portfolio Manager |
Knowledge Transfer: Since the development work will be done by an outside vendor, there is a risk of siloed knowledge. At the end of the project, it could be difficult for LTS developers to understand and maintain the refactored code. | This would hinder the ability of LTS devs to understand, maintain, and further develop the application. | Require the vendor to include detailed code comments. Hold regular check-ins between the vendor and the LTS team. Ensure the vendor’s documentation is regularly updated throughout the development process and that LTS team members review documentation to ensure it is comprehensive and up-to-date. | Portfolio Manager |
Stakeholder Engagement: The stakeholders might not be satisfied with the new application or the process of transition from Angular to React. There could be conflicting opinions or priorities. | This could lead to project delays by adding extra time to address these concerns or lead to changes in project scope. | Regularly communicate with stakeholders to understand their expectations and address any concerns. Involve stakeholders in key decisions. Manage their expectations and provide regular updates on the project's progress. | Portfolio Manager |
Budget: The project could go over budget due to unforeseen costs associated with the refactoring process or the need for additional resources | The project may require additional funds to continue. | Regularly monitor and review the project's budget. | Portfolio Manager |
Timeline: Unforeseen challenges in coding, changes in requirements, technical approach or other external factors could render the anticipated schedule obsolete. | Delayed project delivery. | Develop a realistic project schedule with buffer times for unexpected delays. Regularly monitor and update the project schedule. | Portfolio Manager |
Constraints
- Time: There are constraints as to what can be accomplished within the given timeline.
- Scope: The project is focused on refactoring the front-end codebase, updating the authentication protocol, and addressing all security vulnerabilities. New features and changes to back-end code outside this focus are out of scope, which could potentially limit application updates or extend development time.
- Resources: Since the development work will be done by a vendor, the amount of work that can be done is limited by the vendor’s availability and capacity.
- Skillset: The project is dependent on the vendor’s proficiency in React, their understanding of the existing Angular codebase, as well as their familiarity with authentication protocols. If the vendor lacks in these areas, it could impact the project's progress.
- Technology: The front-end refactor is constrained by the need to shift from Angular to React. This could limit the design and functionality options for the new front-end.
- Quality: The project aims to achieve 100% feature parity with the refactored code. This sets a high standard for the quality of the refactored code and the documentation.
- Stakeholders: The project must meet the expectations of multiple stakeholders, each with their own expectations. Balancing their requirements and feedback could influence the project's direction and outcomes.
- Budget: The project must adhere to a budget, which could constrain development if there are unforeseen costs associated with the refactoring process or the need for additional resources.
IX. Acceptance
Accepted by Stu Snydman [8/6/2024]
Prepared by Sara Rubinow, with assistance from ChatGPT 4