Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
dd18bab
Use title-case registry organization statuses
jdalphond-mitre Sep 9, 2026
cf3decf
build: use distroless runtime image
afoote-mitre Jul 22, 2026
fc1a920
updating package.json verison too
Sep 30, 2026
ccba587
Moving legacy org reads to use BaseOrg but projected as the legacy fo…
jdalphond-mitre Aug 17, 2026
14c9f7b
Updating tests to cover moving to the compatibility layer. Also split…
jdalphond-mitre Aug 18, 2026
2a33b94
Making test output readable
jdalphond-mitre Aug 18, 2026
7e04a2d
Moving user reads to BaseUser but projected as the legacy format
jdalphond-mitre Aug 18, 2026
5c388bf
Move CVE-ID reads to BaseOrg and BaseUser
jdalphond-mitre Aug 18, 2026
406f578
Move legacy Org create and update writes to BaseOrg ONLY
jdalphond-mitre Aug 18, 2026
f21debb
Move registry org writes and CNA authorization to BaseOrg.
jdalphond-mitre Aug 18, 2026
9c66687
Use BaseOrg for CVE-ID updates and reservations
jdalphond-mitre Aug 18, 2026
d69bd1b
Move onlyAdps, cnaMustOwnID, and CVE controller org lookups and autho…
jdalphond-mitre Aug 18, 2026
b96daf2
Move CVE-ID reservation locking and quota checks to BaseOrg
jdalphond-mitre Aug 18, 2026
0540b23
Aggregate CVE-ID PUT responses from BaseOrg and BaseUser.Remove the o…
jdalphond-mitre Aug 18, 2026
1ba8eec
Removing stray console.logs
jdalphond-mitre Aug 19, 2026
0706f64
Fixing fragile cve-id in reserved state test.
jdalphond-mitre Aug 19, 2026
b6f1c5c
Add legacy user write contract integration coverage
jdalphond-mitre Aug 19, 2026
b352672
Remove legacy UserRepository dependency from BaseUser flows
jdalphond-mitre Aug 19, 2026
a7907e5
Drop ADMIN only when a registry user changes organization
jdalphond-mitre Aug 19, 2026
9297246
Move CVE and CVE-ID audit lookups to BaseUser
jdalphond-mitre Aug 19, 2026
6b001a7
Remove legacy User dual-writes from BaseOrg admin role updates
jdalphond-mitre Aug 19, 2026
ce6fc9d
Remove retired UserRepository factory support
jdalphond-mitre Aug 19, 2026
a242a40
Remove legacy Org/User population and migration path
jdalphond-mitre Aug 19, 2026
c5c332e
Remove unused legacy org and user repositories
jdalphond-mitre Aug 31, 2026
4761d29
lint tests
jdalphond-mitre Aug 31, 2026
a43f2b6
Require active BaseUser status for authenticated requests
jdalphond-mitre Sep 8, 2026
4a81f70
Fix legacy organization roles for disabled BaseOrg records
Oct 1, 2026
f899132
created at migration
Oct 6, 2026
d628d9d
Require enabled organizations before authenticating users
Oct 7, 2026
c64d1cf
Prevent Secretariat organizations from being disabled
Oct 7, 2026
f9b8d91
Fix legacy active-role reporting for inactive users
Oct 8, 2026
78c94c9
Fixing unit tests
Oct 8, 2026
4c9f020
Fixing some tests
Oct 9, 2026
44feb9d
Source code fixes
Oct 13, 2026
c5ae5b9
New and updated tests
Oct 13, 2026
075f82d
Fixes for other generic tests from binding to ipv6 addresses
Oct 13, 2026
21ce3a6
fixing _some_ tests
Oct 14, 2026
496bc11
test: align legacy role expectations and fix pagination setup
Oct 14, 2026
43ad8dc
Align legacy organization roles with disabled-state defaults
Oct 14, 2026
9ccd136
test: add CVE-ID reservation concurrency regression coverage
Oct 15, 2026
51852a8
more explicitly defined the relationship between disabled and authori…
Oct 15, 2026
68b1fd5
fix: preserve organization timestamps during CVE-ID reservations
Oct 15, 2026
3055b6a
F03 fixes, will need to discuss
Oct 15, 2026
d6d9ee2
When a user is moved they lose admin rights
Oct 15, 2026
f0dd548
Zero quota for roots
Oct 15, 2026
c152f28
some more fixes
Oct 15, 2026
6410c69
api documentation
Oct 15, 2026
d3fa6f7
Fixing race conditions
Oct 15, 2026
447b2b8
After discussion, the team decided to leave the admin field showing i…
Oct 19, 2026
d7b80cf
fixing tests
Oct 19, 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
2 changes: 1 addition & 1 deletion .github/workflows/test-http.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- name: Sleep
run: bash -c "while ! docker compose --file docker/docker-compose.yml logs --tail=10 cveawg | grep -q 'Serving on port'; do sleep 1; done"
- name: Load Data into MongoDb
run: docker compose -f docker/docker-compose.yml exec -T cveawg npm run populate:dev y; docker compose -f docker/docker-compose.yml exec -T cveawg npm run migrate:test-black-box
run: docker compose -f docker/docker-compose.yml exec -T cveawg npm run populate:dev y
- name: Run Black Box Tests
run: |
docker compose --file test-http/docker/docker-compose.yml exec -T demon pytest src/ | tee test-http/src/testOutput.txt
Expand Down
12 changes: 6 additions & 6 deletions api-docs/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -1983,7 +1983,7 @@
"Organization"
],
"summary": "Creates an organization as specified in the request body (accessible to Secretariat)",
"description": " <h2>Access Control</h2> <p>User must belong to an organization with the <b>Secretariat</b> role</p> <h2>Expected Behavior</h2> <p><b>Secretariat:</b> Creates an organization</p> ",
"description": " <h2>Access Control</h2> <p>User must belong to an organization with the <b>Secretariat</b> role</p> <h2>Expected Behavior</h2> <p><b>Secretariat:</b> Creates an organization</p> <p>Organizations whose only role is ROOT have an ID quota of zero, even when a positive quota is supplied.</p> ",
"operationId": "orgCreateSingle",
"parameters": [
{
Expand Down Expand Up @@ -2168,7 +2168,7 @@
"Organization"
],
"summary": "Updates information about the organization specified by short name (accessible to Secretariat)",
"description": " <h2>Access Control</h2> <p>User must belong to an organization with the <b>Secretariat</b> role</p> <h2>Expected Behavior</h2> <p><b>Secretariat:</b> Updates any organization's information</p>",
"description": " <h2>Access Control</h2> <p>User must belong to an organization with the <b>Secretariat</b> role</p> <h2>Expected Behavior</h2> <p><b>Secretariat:</b> Updates any organization's information</p> <p>Organizations whose only role is ROOT have an ID quota of zero. A supplied positive quota is normalized to zero, including when changing the organization's role to ROOT.</p>",
"operationId": "orgUpdateSingle",
"parameters": [
{
Expand Down Expand Up @@ -2663,7 +2663,7 @@
"Users"
],
"summary": "Updates information about a user for the specified username and organization shortname (accessible to self, same-organization Admins, or Secretariat)",
"description": " <h2>Access Control</h2> <p>Authenticated users can update their own name fields. Organization admins can update users in their organization. Secretariat users can update users in any organization.</p> <h2>Expected Behavior</h2> <p><b>Regular User:</b> Updates the user's own information. Only name fields may be changed.</p> <p><b>Admin User:</b> Updates information about a user in the Admin's organization. Allowed to change all fields except org_short_name. </p> <p><b>Secretariat:</b> Updates information about a user in any organization. Allowed to change all fields.</p>",
"description": " <h2>Access Control</h2> <p>Authenticated users can update their own name fields. Organization admins can update users in their organization. Secretariat users can update users in any organization.</p> <h2>Expected Behavior</h2> <p><b>Regular User:</b> Updates the user's own information. Only name fields may be changed.</p> <p><b>Admin User:</b> Updates information about a user in the Admin's organization. Allowed to change all fields except org_short_name. </p> <p><b>Secretariat:</b> Updates information about a user in any organization. Allowed to change all fields.</p> <p>Deactivation preserves assigned ADMIN membership while preventing authentication. Legacy active_roles continues to show ADMIN while inactive if the assignment remains. Reactivation restores admin access without a separate role grant. Explicit revocation or an organization move removes ADMIN.</p> <p>Moving a user to another organization removes ADMIN in both the source and destination. ADMIN requested in the move is not granted; promotion requires a separate authorized request after the move.</p>",
"operationId": "userUpdateSingle",
"parameters": [
{
Expand Down Expand Up @@ -3077,7 +3077,7 @@
"Registry Organization"
],
"summary": "Creates an organization (accessible to Secretariat)",
"description": " <h2>Access Control</h2> <p>User must belong to an organization with the <b>Secretariat</b> role</p> <h2>Expected Behavior</h2> <p><b>Secretariat:</b> Creates a new organization</p>",
"description": " <h2>Access Control</h2> <p>User must belong to an organization with the <b>Secretariat</b> role</p> <h2>Expected Behavior</h2> <p><b>Secretariat:</b> Creates a new organization</p> <p>Organizations whose only role is ROOT are created with an ID quota of zero. The ROOT request schema does not accept an id_quota field.</p>",
"operationId": "registryOrgCreateSingle",
"parameters": [
{
Expand Down Expand Up @@ -3759,7 +3759,7 @@
"Registry User"
],
"summary": "Updates information about a user for the specified username and organization shortname (accessible to self, same-organization Admins, or Secretariat)",
"description": " <h2>Access Control</h2> <p>Authenticated users can update their own name fields. Organization admins can update users in their organization. Secretariat users can update users in any organization.</p> <h2>Expected Behavior</h2> <p><b>Regular User:</b> Updates the user's own information. Only name fields may be changed.</p> <p><b>Admin User:</b> Updates information about a user in the Admin's organization. Allowed to change all fields except org_short_name. </p> <p><b>Secretariat:</b> Updates information about a user in any organization. Allowed to change all fields.</p>",
"description": " <h2>Access Control</h2> <p>Authenticated users can update their own name fields. Organization admins can update users in their organization. Secretariat users can update users in any organization.</p> <h2>Expected Behavior</h2> <p><b>Regular User:</b> Updates the user's own information. Only name fields may be changed.</p> <p><b>Admin User:</b> Updates information about a user in the Admin's organization. Allowed to change all fields except org_short_name. </p> <p><b>Secretariat:</b> Updates information about a user in any organization. Allowed to change all fields.</p> <p>Deactivation preserves assigned ADMIN membership while preventing authentication. Reactivation retains that assignment unless ADMIN was explicitly revoked or the user moved organizations. Omitting role from a profile update does not revoke ADMIN.</p> <p>Moving a user to another organization removes ADMIN in both the source and destination. ADMIN requested in the move is not granted; promotion requires a separate authorized request after the move.</p>",
"operationId": "registryUserUpdateSingle",
"parameters": [
{
Expand Down Expand Up @@ -3979,7 +3979,7 @@
"Registry Organization"
],
"summary": "Updates information about the organization specified by short name (accessible to Secretariat or same-organization Admin)",
"description": " <h2>Access Control</h2> <p>User must belong to an organization with the <b>Secretariat</b> role or be an <b>Admin</b> of the requested organization.</p> <p>With Joint Approval required for the following fields:</p> <h2>Expected Behavior</h2> <b>This endpoint expects a full organization object in the request body.</b> <p><b>Secretariat:</b> Updates any organization's information</p> <p><b>Organization Admin:</b> Requests changes to its organization's information</p> <ul> <li>short_name</li> <li>long_name</li> <li>authority</li> <li>aliases</li> <li>oversees</li> <li>top_level_root</li> <li>is_top_level_root</li> <li>is_last_resort</li> <li>charter_or_scope</li> <li>product_list</li> <li>disclosure_policy</li> <li>contact_info.websites</li> <li>contact_info.emails</li> <li>partner_role_type</li> <li>partner_country</li> <li>advisory_locations</li> <li>advisory_location_require_credentials</li> <li>vulnerability_advisory_location_for_web_scraping</li> <li>industry</li> <li>tl_root_start_date</li> <li>is_cna_discussion_list</li> </ul>",
"description": " <h2>Access Control</h2> <p>User must belong to an organization with the <b>Secretariat</b> role or be an <b>Admin</b> of the requested organization.</p> <p>With Joint Approval required for the following fields:</p> <h2>Expected Behavior</h2> <b>This endpoint expects a full organization object in the request body.</b> <p><b>Secretariat:</b> Updates any organization's information</p> <p><b>Organization Admin:</b> Requests changes to its organization's information</p> <p>Organizations whose only role is ROOT have an ID quota of zero. An approved change to ROOT resets the quota to zero, even when the request omits it.</p> <ul> <li>short_name</li> <li>long_name</li> <li>authority</li> <li>aliases</li> <li>oversees</li> <li>top_level_root</li> <li>is_top_level_root</li> <li>is_last_resort</li> <li>charter_or_scope</li> <li>product_list</li> <li>disclosure_policy</li> <li>contact_info.websites</li> <li>contact_info.emails</li> <li>partner_role_type</li> <li>partner_country</li> <li>advisory_locations</li> <li>advisory_location_require_credentials</li> <li>vulnerability_advisory_location_for_web_scraping</li> <li>industry</li> <li>tl_root_start_date</li> <li>is_cna_discussion_list</li> </ul>",
"operationId": "registryOrgUpdateSingle",
"parameters": [
{
Expand Down
Loading
Loading