Skip to content

Prod deploy - May 2026#23

Merged
jmgasper merged 6 commits into
masterfrom
dev
May 27, 2026
Merged

Prod deploy - May 2026#23
jmgasper merged 6 commits into
masterfrom
dev

Conversation

@jmgasper
Copy link
Copy Markdown
Contributor

jmgasper and others added 6 commits April 27, 2026 09:31
What was broken
Clearing a billing account from an existing project did not persist. The Work UI sent an explicit null billingAccountId, but the Projects API treated that value as omitted, so the old billing account stayed on the project and appeared again after save.

Root cause
UpdateProjectDto inherited CreateProjectDto billingAccountId parsing, which normalizes null and empty string to undefined. The service clear path depended on a derived flag that is not materialized by class-transformer when only billingAccountId is sent.

What was changed
UpdateProjectDto now owns the update-time billingAccountId field, preserving null and empty string as explicit clear requests while still parsing numeric billing account ids. ProjectService now clears when the DTO billingAccountId is null, in addition to the existing internal clear flag.

Any added/updated tests
Added DTO coverage for null, empty string, and numeric billingAccountId updates. Updated the project service clear test to exercise billingAccountId: null directly.
PM-4904: Allow project billing account clears
What was broken
Copilot project members were treated as eligible for the EDIT_PROJECT permission, so users with copilot project access could update project details.

Root cause
The named EDIT_PROJECT permission explicitly allowed copilot project membership, and the legacy UPDATE_PROJECT policy metadata still listed copilot and customer project roles.

What was changed
Removed copilot membership from the EDIT_PROJECT permission check. Updated the legacy UPDATE_PROJECT policy and generated permission documentation summary so project detail edits are limited to management-level project roles, manager-tier platform roles, admins, and machine project-write tokens.

Any added/updated tests
Added PermissionService coverage that verifies a project copilot cannot edit project details through either the named permission path or the legacy UPDATE_PROJECT policy.
PM-4988: Restrict project edit permissions for copilots
@jmgasper jmgasper merged commit ce73c61 into master May 27, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants