Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
490cccb
updated backend to set a default output type for research output tabl…
briri Mar 17, 2026
5176eb0
Merge pull request #639 from CDLUC3/stage
briri Mar 17, 2026
106fd26
Update aws-sdk-js-v3 monorepo to v3.1009.0
renovate[bot] Mar 17, 2026
b89bef0
Merge pull request #640 from CDLUC3/bug/ro-type
briri Mar 17, 2026
1ae3cf7
Merge pull request #628 from CDLUC3/renovate/aws-sdk-js-v3-monorepo
briri Mar 17, 2026
327621f
Update opensearchproject/opensearch Docker tag to v1.3.20
renovate[bot] Mar 18, 2026
165f81b
added override for fast-sml-parser. updated aws-sdk deps. updated @dm…
briri Mar 18, 2026
d94fb6f
removed old dependabot config
briri Mar 18, 2026
a2b40dd
Merge pull request #643 from CDLUC3/chore/update-cred-prov
briri Mar 18, 2026
95e98d5
Added debug vals for sso passthrough
briri Mar 18, 2026
0121cf1
fix issue with field name in AffiliationEmailDomain model
briri Mar 18, 2026
6eed586
comment out tests in buildspec. add debug to process migrartion script
briri Mar 19, 2026
af7f643
update ssocallbackcontroller to display saml resp
briri Mar 20, 2026
7ae5b24
Merge pull request #645 from CDLUC3/sso
briri Mar 20, 2026
240e07e
revert commenting out buildspec
briri Mar 20, 2026
139b749
Merge pull request #646 from CDLUC3/sso
briri Mar 20, 2026
121c4ac
added override for flatted and updated override for fast-xml-parser
briri Mar 20, 2026
1486bb9
Merge pull request #647 from CDLUC3/chore/flatted-upd
briri Mar 20, 2026
9687c93
Update dependency nodemailer to v8.0.3
renovate[bot] Mar 22, 2026
e0978ef
Update dependency typescript-eslint to v8.57.1
renovate[bot] Mar 22, 2026
0eb2cbb
Merge pull request #649 from CDLUC3/renovate/nodemailer-8.x-lockfile
briri Mar 23, 2026
307adc8
Merge pull request #641 from CDLUC3/renovate/opensearchproject-opense…
briri Mar 23, 2026
cdf34b2
Merge pull request #650 from CDLUC3/renovate/typescript-eslint-monorepo
briri Mar 23, 2026
c68555a
Bump typescript-eslint from 8.57.1 to 8.57.2
dependabot[bot] Mar 23, 2026
39df8ef
Bump @aws-sdk/credential-providers from 3.1011.0 to 3.1015.0
dependabot[bot] Mar 23, 2026
e7c6775
Updated the VersionedTemplateSearchResult to return versionedTemplate…
jupiter007 Mar 24, 2026
cb8eb34
Update dependency mysql2 to v3.20.0
renovate[bot] Mar 25, 2026
6dca07f
Bump the npm_and_yarn group across 1 directory with 2 updates
dependabot[bot] Mar 25, 2026
fb0067c
responded to PR comment. Adjusted the VersionedTemplateSearchResults.…
jupiter007 Mar 25, 2026
d6b3a60
Merge pull request #656 from CDLUC3/feature/157/JS-update-template-qu…
jupiter007 Mar 25, 2026
4c79e90
Updated PlanProgressSection so that it returns custom sections, and t…
jupiter007 Mar 26, 2026
5b45c72
More changes related to adding records to versionedSections and versi…
jupiter007 Mar 26, 2026
9de3f4b
Update dependency @apollo/server to v5.5.0 [SECURITY]
renovate[bot] Mar 27, 2026
b99c757
Update dependency nodemailer to v8.0.4 [SECURITY]
renovate[bot] Mar 27, 2026
1ddff16
Update dependency fast-xml-parser to v5.5.9
renovate[bot] Mar 29, 2026
4be5c22
Updated PlanSectionProgress so that it returns custom sections and co…
jupiter007 Mar 29, 2026
9880c58
Adjusted some tabbing changes
jupiter007 Mar 29, 2026
72d4f3c
Adjusted tabbing for templateCustomization resolver
jupiter007 Mar 29, 2026
e2c0b9f
Updates to VersionedCustomQuestion and VersionedCustomSection and res…
jupiter007 Mar 30, 2026
2c3f519
added versionedCustomSectionId and versionedCustomQuestionId to answe…
jupiter007 Mar 31, 2026
a05f1f7
Merge pull request #660 from CDLUC3/renovate/npm-apollo-server-vulner…
briri Mar 31, 2026
bb69c23
Merge pull request #661 from CDLUC3/renovate/npm-nodemailer-vulnerabi…
briri Mar 31, 2026
361e054
Merge pull request #658 from CDLUC3/renovate/mysql2-3.x-lockfile
briri Mar 31, 2026
2ba790a
Merge pull request #653 from CDLUC3/dependabot/npm_and_yarn/developme…
briri Mar 31, 2026
ab0121f
Merge pull request #655 from CDLUC3/dependabot/npm_and_yarn/developme…
briri Mar 31, 2026
55cc7ab
Responded to PR comments
jupiter007 Mar 31, 2026
aa89320
Merge branch 'renovate/fast-xml-parser-5.x' of github.com:CDLUC3/dmpt…
briri Mar 31, 2026
fac338c
Merge branch 'dependabot/npm_and_yarn/npm_and_yarn-03b1571268' of git…
briri Mar 31, 2026
e088b13
Responded to PR comments
jupiter007 Mar 31, 2026
06d8e02
updated dependencies based on Renovate PRs. Fixed name and descriptio…
briri Mar 31, 2026
75c55f2
Merge branch 'development' into feature/167/update-plan-query-to-retu…
jupiter007 Mar 31, 2026
3a01c73
Merge pull request #669 from CDLUC3/chore/renovate
briri Mar 31, 2026
a11c93e
merged development into branch
jupiter007 Apr 1, 2026
b04bc3e
Merge pull request #666 from CDLUC3/feature/167/update-plan-query-to-…
jupiter007 Apr 1, 2026
83c8940
merged development into branch
jupiter007 Apr 1, 2026
f785a36
Merge pull request #668 from CDLUC3/feature/159/JS-update-publishedSe…
jupiter007 Apr 1, 2026
b0d77bc
update renovate to rebase when behind the base branch
briri Apr 2, 2026
b98d2cb
Merge pull request #670 from CDLUC3/chore/renovate-rebase
briri Apr 2, 2026
4d537c1
Updates related to including customization guidance
jupiter007 Apr 3, 2026
42d5593
remove indent
jupiter007 Apr 3, 2026
206f606
Updated CHANGELOG.md
jupiter007 Apr 3, 2026
03389f8
Added missing unit tests
jupiter007 Apr 3, 2026
74428e5
Removed LOCAL_STACK line from docker-compose.yaml
jupiter007 Apr 3, 2026
005bdf2
Updated publishedQuestions to return sorted base and custom questions…
jupiter007 Apr 3, 2026
df2183c
Updated CHANGELOG.md
jupiter007 Apr 3, 2026
e3791c2
Updated comments
jupiter007 Apr 3, 2026
feac3c2
merged development into branch
jupiter007 Apr 6, 2026
c3fbf5e
Merge pull request #671 from CDLUC3/feature/171/JS-update-guidance-re…
jupiter007 Apr 6, 2026
962fe07
Added override for lodash v4.18.1 to address high vulnerability
jupiter007 Apr 6, 2026
16634dd
Merge pull request #674 from CDLUC3/chore/JS-address-high-vulnerabili…
briri Apr 6, 2026
e0e5adf
Added publishedCustomQuestion to get custom questions, and updated th…
jupiter007 Apr 7, 2026
7db6ddb
Updated CHANGELOG.md
jupiter007 Apr 7, 2026
26dc310
removed console.log from versionedQuestion
jupiter007 Apr 7, 2026
a299fa1
Updated sql query in findActiveByTemplateAffiliationAndQuestion funct…
jupiter007 Apr 8, 2026
4cee738
Updated CHANGELOG.md
jupiter007 Apr 8, 2026
bf36772
Updated answerByVersionedQuestionId query and addAnswer mutation to p…
jupiter007 Apr 8, 2026
ba62afe
Updated Plan model functions to return correct answeredQuestions coun…
jupiter007 Apr 8, 2026
ae3fb27
Updated unit tests for Plan model
jupiter007 Apr 9, 2026
40e6fb6
Merge pull request #678 from CDLUC3/feature/173/JS-updated-publishedQ…
jupiter007 Apr 9, 2026
9f095b9
Use batches of DMPs to merge related works (#667)
jdddog Apr 10, 2026
cce5ff6
Updated sql query to use a different method of check whether there is…
jupiter007 Apr 10, 2026
5d761ee
merged development into branch
jupiter007 Apr 10, 2026
0f72215
Merge pull request #682 from CDLUC3/feature/161/updates-for-custom-qu…
jupiter007 Apr 10, 2026
352b65a
fixed linter issues in relatedWorksTables test and updated nodemailer…
briri Apr 10, 2026
df1f615
Merge pull request #683 from CDLUC3/bug/fix-linter
briri Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions .github/dependabot.yaml

This file was deleted.

35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@
## v1.1.0

### Added
- Added `fetchAnswerCustomQuestion` to `Plan` model in order to get answered counts for custom questions [#161]
- Added `publishedCustomQuestion` query resolver and added to schema [#173]
- Added `ON DELETE CASCADE` sql migration script for deletion of `versionedTemplateCustomization` and `templateCustomization` FKs [#171]
- Added `findByPosition` function to `CustomQuestion` to assist with reordering of custom questions [#171]
- Added `findActiveByTemplateAffiliationAndQuestion` to `VersionedQuestionCustomization` and `findActiveByTemplateAffiliationAndSection` to `VersionedSectionCustomization` to help surface custom guidance [#171]
- Added `MoveCustomQuestionDirection` enum to `questionCustomization` schema [#171]
- Added new `templateCustomizationPublishHelpers.ts` service to help update snapshot child customization records when publishing a templateCustomization [#171]
- Added `versionedCustomSectionId` and `versionedCustomQuestionId` files to `answers` table [#159]
- Added `findByVersionedCustomSectionId` and `findByVersionedSectionIdAndType` functions to VersionedCustomQuestion model [#159]
- Added `versionedCustomSection` and `versionedCustomQuestion` chained resolvers to `answer` query [#159]
- Added logic to set a default output type for each entry in a `ResearchOutputTable` answer.
- Added `guidanceText` and `sampleText` fields to `addQuestionCustomization` and added `json`, `questionText`, `requirementText`, `guidanceText`, `sampleText`, `useSampleTextAsDefault` and `required` to `addCustomQuestionInput` [#130]
- Added `questionCustomizationByVersionedQuestion` resolver [#130]
- Added `findByCustomizationAndVersionedQuestion` method to `QuestionCustomization` model [#130]
Expand Down Expand Up @@ -47,6 +58,24 @@
- added data-migration to fix question JSON so that `"selected": 0` is now `"selected": false` (and `1` -> `true`).

### Updated
- Updated `nodemailer`
- Updated `relatedWorksTables.spec.ts` to fix linter issues
- Updated `PlanProgress.findByPlanId` to use `fetchAnswerCustomQuestions` and return answered question counts that include the custom questions [#161]
- Updated `PlanProgress.findByPlanId` to reuse the `PlanSectionProgress.findByPlanId` function to return `totalQuestions` and `answeredQuestions` [#161]
- Updated the `batch_update_related_works` stored procedure to operate on batches of DMPs and improve speed of stored procedure by joining based on plan ID rather than plan ID or DMP DOI. Updated the unit tests to use `@testcontainers/mysql` so that they can run in CI, are self-contained and don't affect local tables.
- Updated `answerByVersionedQuestionId` query and `addAnswer` mutation to pass in `versionedCustomSectionId` and `versionedCustomQuestionid` variables so that we can get and save the correct answers [#173]
- Updated sql query in `findActiveByTemplateAffiliationAndQuestion` function in `VersionedQuestionCustomization` model to include `affiliationId` so that we can get the name of the org that made the customization [#173]
- Updated `publishedQuestion` resolver in `versionedQuestion.ts` to return customization info, including customized sample answer and name of org that made the customization [#173]
- Updated `VersionedQuestion` schema to include `customizationId`, `customizationGuidanceText`, `customizationSampleText` and `customizationOwnerAffiliation` fields [#173]
- Updated `guidanceSourcesForPlan` query to pass in `customQuestionId` and updated `getGuidanceSourcesForPlan` service to add `customQuestion` guidance [#173]
- Updated renovate config to rebase when behind the base branch
- Updated `Answer` model with `versionedCustomSectionId` and `versionedCustomQuestionId`, and added new `findFilledAnswersByCustomQuestionIds` and `findByPlanIdAndVersionedCustomQuestionId` functions, and updated `isValid` function to account for new id fields, and updated `create` function to check both `versionedQuestionId` and `versionedCustomQuestionId` for already existing answer [#159]
- Updated `publishedQuestions` query in `versionedQuestion` resolver to return both `BASE` and `CUSTOM` versioned questions for the given versionedSectionId. Also, added `publishedCustomQuestions` query to return the `customQuestions` associated with a `customSection` [#159]
- Updated `PlanSectionProgress` so that it returns custom sections, and correct totalQuestions counts that include customQuestions [#167]
- Updated `PlanSearchResult` `versionedSections` chained resolver to include `versionedTemplateId` [#167]
- Updated dependencies based on Renovate PRs
- Updated the `VersionedTemplateSearchResult` to return `versionedTemplateCustomizationId` for the `search` function [#166]
- Update `domain` to `emailDomain` in `AffiliationEmailDomain` model to match field name in table
- Update buildspec to use `--omit=dev` instead of `--production` on `npm` commands
- Updated `re3data-os-populate.ts` because `fetchWithTimeout` kept erroring out when we populate the OpenSearch data. We needed to add a `catch` and `retries` because a single failed attempt would kill the entire sync. [#118]
- Moved the data migration script that populates the researchOutputTypes db table to `local-only` directory, because it was not
Expand Down Expand Up @@ -86,6 +115,8 @@
- Updates to appease newer version of eslint

### Removed
- Removed old dependabot config
- Removed override for `minimatch` and `immutable` dependencies
- Removed the `unique_vTemplateCusts` restriction from `versionedTemplateCustomizations` table, because it was not allowing the publishing of a templateCustomization more than twice, because the combination of `templateCustomizationId` and `active` had to be unique [#428]
- Removed `src/datasources/dynamo` data source. Writes to Dynamo are now being handled by the `generateMaDMPRecord` Lambda Function.
- Removed `src/models/PlanVersion`
Expand All @@ -105,6 +136,10 @@
- In `preparePaginationOptions` function, wrapped each cursorField with `COALESCE` to handle `NULL` values in SQL `CONCAT`, otherwise if any cursorField is NULL, it would just return a null value due to the way `CONCAT` works [#107]
- Fixed breaking cloning of template. The `addTemplate` was updated to accept a `copyFromVersionedTemplateId` so that we copy from versioned template, section and questions, when it's not a template from the user's org. Otherwise we check for `copyFromTemplateId` to copy/clone from templates, sections and questions, and if neither are present, we continue to create a new record for `templates` table [#1006]
- Fixed issue with templates not cloning with sections and questions by updating the `addTemplate` mutation to clone from non-versioned template, section and question [#1006]

### Chore
- Added override for `lodash` to `4.18.1` to address high vulnerability issue

## v1.0

### Updated
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
ALTER TABLE `answers`
MODIFY `versionedSectionId` int unsigned NULL,
MODIFY `versionedQuestionId` int unsigned NULL,
ADD COLUMN `versionedCustomSectionId` int unsigned NULL,
ADD COLUMN `versionedCustomQuestionId` int unsigned NULL,
ADD KEY `versionedCustomSectionId` (`versionedCustomSectionId`),
ADD KEY `versionedCustomQuestionId` (`versionedCustomQuestionId`),
ADD CONSTRAINT `answers_ibfk_6`
FOREIGN KEY (`versionedCustomSectionId`)
REFERENCES `versionedCustomSections` (`id`) ON DELETE CASCADE,
ADD CONSTRAINT `answers_ibfk_7`
FOREIGN KEY (`versionedCustomQuestionId`)
REFERENCES `versionedCustomQuestions` (`id`) ON DELETE CASCADE,
-- Answer can be linked to either a question or a custom question, but not both. This constraint ensures that only
-- one of the pairs (versionedSectionId, versionedQuestionId) or (versionedCustomSectionId, versionedCustomQuestionId) can be non-null at any given time.
ADD CONSTRAINT `chk_answer_question_type` CHECK (
(
versionedSectionId IS NOT NULL AND
versionedQuestionId IS NOT NULL AND
versionedCustomSectionId IS NULL AND
versionedCustomQuestionId IS NULL
)
OR
(
versionedCustomSectionId IS NOT NULL AND
versionedCustomQuestionId IS NOT NULL AND
versionedSectionId IS NULL AND
versionedQuestionId IS NULL
)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
-- Add ON DELETE CASCADE to versionedTemplateCustomizationId FKs on all four
-- child tables. Previously these had no cascade, requiring manual deletion
-- in application code when rolling back a published snapshot.
--
-- Note: MariaDB requires DROP and ADD of a same-named FK constraint to be
-- in separate ALTER TABLE statements to avoid a duplicate constraint name error.

ALTER TABLE versionedSectionCustomizations
DROP FOREIGN KEY fk_vSectionCust_templateCustId;
ALTER TABLE versionedSectionCustomizations
ADD CONSTRAINT fk_vSectionCust_templateCustId_cascade
FOREIGN KEY (versionedTemplateCustomizationId)
REFERENCES versionedTemplateCustomizations(id)
ON DELETE CASCADE;


ALTER TABLE versionedQuestionCustomizations
DROP FOREIGN KEY fk_vQCust_templateCustId;
ALTER TABLE versionedQuestionCustomizations
ADD CONSTRAINT fk_vQCust_templateCustId_cascade
FOREIGN KEY (versionedTemplateCustomizationId)
REFERENCES versionedTemplateCustomizations(id)
ON DELETE CASCADE;


ALTER TABLE versionedCustomSections
DROP FOREIGN KEY fk_vCustomSecs_templateCustId;
ALTER TABLE versionedCustomSections
ADD CONSTRAINT fk_vCustomSecs_templateCustId_cascade
FOREIGN KEY (versionedTemplateCustomizationId)
REFERENCES versionedTemplateCustomizations(id)
ON DELETE CASCADE;


ALTER TABLE versionedCustomQuestions
DROP FOREIGN KEY fk_vCustomQs_templateCustId;
ALTER TABLE versionedCustomQuestions
ADD CONSTRAINT fk_vCustomQs_templateCustId_cascade
FOREIGN KEY (versionedTemplateCustomizationId)
REFERENCES versionedTemplateCustomizations(id)
ON DELETE CASCADE;
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
-- Add ON DELETE CASCADE to ensure that when a template customization is deleted,
-- all associated versioned records are also deleted so that we don't have orphaned versioned records that reference deleted template customizations.
ALTER TABLE customQuestions
DROP FOREIGN KEY fk_customQs_templateCustId;
ALTER TABLE customQuestions
ADD CONSTRAINT fk_customQs_templateCustId_cascade
FOREIGN KEY (templateCustomizationId) REFERENCES templateCustomizations(id) ON DELETE CASCADE;

ALTER TABLE customSections
DROP FOREIGN KEY fk_customSecs_templateCustId;
ALTER TABLE customSections
ADD CONSTRAINT fk_customSecs_templateCustId_cascade
FOREIGN KEY (templateCustomizationId) REFERENCES templateCustomizations(id) ON DELETE CASCADE;

ALTER TABLE questionCustomizations
DROP FOREIGN KEY fk_qCust_templateCustId;
ALTER TABLE questionCustomizations
ADD CONSTRAINT fk_qCust_templateCustId_cascade
FOREIGN KEY (templateCustomizationId) REFERENCES templateCustomizations(id) ON DELETE CASCADE;

ALTER TABLE sectionCustomizations
DROP FOREIGN KEY fk_sectionCust_templateCustId;
ALTER TABLE sectionCustomizations
ADD CONSTRAINT fk_sectionCust_templateCustId_cascade
FOREIGN KEY (templateCustomizationId) REFERENCES templateCustomizations(id) ON DELETE CASCADE;

ALTER TABLE versionedTemplateCustomizations
DROP FOREIGN KEY fk_vTemplateCust_templateId;
ALTER TABLE versionedTemplateCustomizations
ADD CONSTRAINT fk_vTemplateCust_templateId_cascade
FOREIGN KEY (templateCustomizationId) REFERENCES templateCustomizations(id) ON DELETE CASCADE;

ALTER TABLE versionedCustomQuestions
DROP FOREIGN KEY fk_vCustomQs_questionId;
ALTER TABLE versionedCustomQuestions
ADD CONSTRAINT fk_vCustomQs_questionId_cascade
FOREIGN KEY (customQuestionId) REFERENCES customQuestions(id) ON DELETE CASCADE;

ALTER TABLE versionedCustomSections
DROP FOREIGN KEY fk_vCustomSecs_sectionId;
ALTER TABLE versionedCustomSections
ADD CONSTRAINT fk_vCustomSecs_sectionId_cascade
FOREIGN KEY (customSectionId) REFERENCES customSections(id) ON DELETE CASCADE;

ALTER TABLE versionedQuestionCustomizations
DROP FOREIGN KEY fk_vQCust_questionId;
ALTER TABLE versionedQuestionCustomizations
ADD CONSTRAINT fk_vQCust_questionId_cascade
FOREIGN KEY (questionCustomizationId) REFERENCES questionCustomizations(id) ON DELETE CASCADE;

ALTER TABLE versionedSectionCustomizations
DROP FOREIGN KEY fk_vSectionCust_sectionId;
ALTER TABLE versionedSectionCustomizations
ADD CONSTRAINT fk_vSectionCust_sectionId_cascade
FOREIGN KEY (sectionCustomizationId) REFERENCES sectionCustomizations(id) ON DELETE CASCADE;
31 changes: 31 additions & 0 deletions data-migrations/2026-04-08-update-chk-answer-question-type.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-- The answers table now includes versionedCustomSectionId and versionedCustomQuestionId. We can have three valid combinations of these four fields:
-- 1) Base question in a base section: versionedSectionId and versionedQuestionId are non-null, versionedCustomSectionId and versionedCustomQuestionId are null
-- 2) Custom question in a custom section: versionedCustomSectionId and versionedCustomQuestionId are non-null, versionedSectionId and versionedQuestionId are null
-- 3) Custom question pinned to a base section: versionedSectionId and versionedCustomQuestionId are non-null, versionedQuestionId and versionedCustomSectionId are null
ALTER TABLE `answers`
DROP CONSTRAINT `chk_answer_question_type`,
ADD CONSTRAINT `chk_answer_question_type` CHECK (
-- Base question in a base section
(
versionedSectionId IS NOT NULL AND
versionedQuestionId IS NOT NULL AND
versionedCustomSectionId IS NULL AND
versionedCustomQuestionId IS NULL
)
OR
-- Custom question in a custom section
(
versionedCustomSectionId IS NOT NULL AND
versionedCustomQuestionId IS NOT NULL AND
versionedSectionId IS NULL AND
versionedQuestionId IS NULL
)
OR
-- Custom question pinned to a base section
(
versionedSectionId IS NOT NULL AND
versionedCustomQuestionId IS NOT NULL AND
versionedQuestionId IS NULL AND
versionedCustomSectionId IS NULL
)
);
Loading
Loading