Commit Graph

38721 Commits

Author SHA1 Message Date
Moritz Tanner
85bcdb1cc4
Fix NAS backup filename for legacy LINSTOR path (#13538)
Some checks failed
Build / build (push) Has been cancelled
Simulator CI / build (component/find_hosts_for_migration component/test_acl_isolatednetwork component/test_acl_isolatednetwork_delete component/test_acl_listsnapshot) (push) Has been cancelled
Simulator CI / build (component/test_acl_listvm component/test_acl_listvolume) (push) Has been cancelled
Simulator CI / build (component/test_acl_sharednetwork component/test_acl_sharednetwork_deployVM-impersonation component/test_user_private_gateway component/test_user_shared_network) (push) Has been cancelled
Simulator CI / build (component/test_affinity_groups_projects component/test_allocation_states component/test_assign_vm) (push) Has been cancelled
Simulator CI / build (component/test_concurrent_snapshots_limit component/test_cpu_domain_limits component/test_cpu_limits component/test_cpu_max_limits component/test_cpu_project_limits component/test_deploy_vm_userdata_multi_nic component/test_deploy_vm_lease) (push) Has been cancelled
Simulator CI / build (component/test_egress_fw_rules component/test_invalid_gw_nm component/test_ip_reservation) (push) Has been cancelled
Simulator CI / build (component/test_lb_secondary_ip component/test_list_nics component/test_list_pod component/test_memory_limits) (push) Has been cancelled
Simulator CI / build (component/test_mm_domain_limits component/test_mm_max_limits component/test_mm_project_limits component/test_network_offering component/test_non_contiguous_vlan) (push) Has been cancelled
Simulator CI / build (component/test_persistent_networks component/test_project_configs component/test_project_limits component/test_project_resources) (push) Has been cancelled
Simulator CI / build (component/test_project_usage component/test_protocol_number_security_group component/test_public_ip component/test_resource_limits component/test_resource_limit_tags) (push) Has been cancelled
Simulator CI / build (component/test_regions_accounts component/test_routers component/test_snapshots component/test_stopped_vm component/test_tags component/test_templates component/test_updateResourceCount component/test_update_vm) (push) Has been cancelled
Simulator CI / build (component/test_volumes component/test_vpc component/test_vpc_distributed_routing_offering component/test_vpc_network component/test_vpc_offerings component/test_vpc_routers component/test_vpn_users component/test_vpc_network_lbrules) (push) Has been cancelled
Simulator CI / build (smoke/test_accounts smoke/test_account_access smoke/test_affinity_groups smoke/test_affinity_groups_projects smoke/test_annotations smoke/test_async_job smoke/test_attach_multiple_volumes smoke/test_backup_recovery_dummy smoke/test_certauthority… (push) Has been cancelled
Simulator CI / build (smoke/test_cluster_drs smoke/test_dynamicroles smoke/test_enable_account_settings_for_domain smoke/test_enable_role_based_users_in_projects smoke/test_events_resource smoke/test_global_settings smoke/test_guest_vlan_range smoke/test_host_mainten… (push) Has been cancelled
Simulator CI / build (smoke/test_list_accounts smoke/test_list_disk_offerings smoke/test_list_domains smoke/test_list_hosts smoke/test_list_service_offerings smoke/test_list_storage_pools smoke/test_list_volumes) (push) Has been cancelled
Simulator CI / build (smoke/test_network smoke/test_network_acl smoke/test_network_ipv6 smoke/test_network_permissions smoke/test_nic smoke/test_nic_adapter_type smoke/test_non_contigiousvlan smoke/test_object_stores smoke/test_outofbandmanagement smoke/test_outofban… (push) Has been cancelled
Simulator CI / build (smoke/test_router_dhcphosts smoke/test_router_dns smoke/test_router_dnsservice smoke/test_routers smoke/test_routers_iptables_default_policy smoke/test_routers_network_ops smoke/test_scale_vm smoke/test_secondary_storage smoke/test_service_offer… (push) Has been cancelled
Coverage Check / codecov (push) Has been cancelled
PR Merge Conflict Check / triage (push) Has been cancelled
License Check / build (push) Has been cancelled
UI Build / build (push) Has been cancelled
When backing up a running VM, nasbackup.sh derives the backup filename
from the disk source path reported by libvirt. VMs started before the
switch to /dev/drbd/by-res/ paths still carry the raw DRBD device node
(e.g. /dev/drbd1098) in their live domain XML, which fell into the
basename fallback and produced root.drbd1098.qcow2 instead of
root.<volume-uuid>.qcow2. Restore always expects the UUID-based name, so
these backups could not be restored until the VM was stopped and started.

Resolve raw /dev/drbdNNNN device nodes back to the volume UUID by asking
udev for the device's /dev/drbd/by-res/cs-<uuid> symlink. Apply the same
handling in all three backup loops (running-VM XML build, sparsify, and
stopped-VM convert).

Signed-off-by: Moritz Tanner <moritz.tanner@linbit.com>
2026-08-19 08:59:13 +02:00
Abhishek Kumar
7fc063ec13 build: fix after forward-merge
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 19:24:22 +05:30
Abhishek Kumar
7fd56e573b Merge remote-tracking branch 'apache/4.20' into 4.22 2026-08-18 18:54:19 +05:30
Pearl Dsilva
2a02733057 Escape HTML in username, VM display name and diagnostics output 2026-08-18 18:42:52 +05:30
Pearl Dsilva
90f6b2a4cd Validate URL before obtaining remote size 2026-08-18 18:42:52 +05:30
Pearl Dsilva
9c32086e60 Restrict listHostTags to hosts dedicated to the caller's domain (including sub-domains and accounts in a domain) 2026-08-18 18:42:52 +05:30
dahn
f2df4d9754 saml: reject signed SAMLResponse when IdP has no signing certificate registered
When a SAML Response or EncryptedAssertion carries a ds:Signature element
but the IdP metadata contains no signing certificate, the previous code
silently skipped signature validation (the guard was
`idpMetadata.getSigningCertificate() != null && sig != null`).
An attacker could forge a SAMLResponse with an arbitrary bogus signature
against a cert-less IdP and obtain a valid session — a full
unauithenticated authentication bypass.

Fix: when a signature IS present we now require a signing certificate to
be registered.  If none is found we immediately reject the request with
an ACCOUNT_ERROR.  The same guard is applied to the EncryptedAssertion
signature block.
2026-08-18 18:42:52 +05:30
Abhishek Kumar
1790275bab webhook: additional check for payload url
Adds new global configurations to give more flexibility in controlling
payload URL for the webhooks. New domain-scope configs:
- webhook.delivery.blocklist
- webhook.delivery.allow.redirects
- webhook.delivery.allow.http
- webhook.delivery.block.local.addresses (Hidden)

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:42:52 +05:30
Henrique Sato
e8f200afa3 Fix database connection leak
Fixes connection leak with scoped config retrievals.
2026-08-18 18:42:52 +05:30
Abhishek Kumar
b98e1f568c oauth2: improve google provider flow
Improves Google OAuth provider.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:42:52 +05:30
Abhishek Kumar
aa77259f48 oauth2: improve list providers api for access
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:42:52 +05:30
Pearl Dsilva
f52f9da27b Prevent command injections in get/run diagnostics API 2026-08-18 18:42:52 +05:30
Pearl Dsilva
53a7c29465 Fix issue in direct download and NFS templates 2026-08-18 18:42:52 +05:30
Pearl Dsilva
6c0e152ad2 Upgrade axios to 0.31.1 which has the config merge fix 2026-08-18 18:42:52 +05:30
Abhishek Kumar
fb758afbbc server: fix access for disable user 2fa
Only admins should be able to disable 2FA for a user.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:42:52 +05:30
Abhishek Kumar
8221f62511 webhook: improve deliveries access
Improves access for deliveries for different account types.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:42:52 +05:30
Pearl Dsilva
a40d068228 Restrict domain admin access to project roles within their own domain and add tests to cover perm check for proj role permissions 2026-08-18 18:42:52 +05:30
Pearl Dsilva
443f20bf1c Allow only authorized users to add and list entity's annotations 2026-08-18 18:42:52 +05:30
Abhishek Kumar
56ad044865 api,server,kvm: improve backup repository mount handling
Improves handling of mount options for backup repository.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Wei Zhou <weizhou@apache.org>
2026-08-18 18:42:52 +05:30
Pearl Dsilva
6b9fdd0d06 Add proper access check before proceeding with adding or removing nodes from a CKS cluster 2026-08-18 18:42:52 +05:30
Abhishek Kumar
a72f60519f ldap: improve config access
Improves access to LDAP configurations based on the user priviledge.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:42:52 +05:30
Wei Zhou
d463cb42a8 api: add ACL on ApiConstants.USER_DATA_ID 2026-08-18 18:42:52 +05:30
Bernardo De Marco Gonçalves
72bdf5989b add access validation for the deleteUserData, linkUserDataToTemplate and resetUserDataForVirtualMachine APIs 2026-08-18 18:42:51 +05:30
Abhishek Kumar
9b9d0cf63b api,server: improve async job storage
Adds encryption for AsyncJobVO's job_cmd_info and job_result when they
may contain user information.
While publishing event as well prevent adding sensitive user
information.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:42:49 +05:30
Wei Zhou
6136ac9385 api: add ACL on ApiConstants.USER_DATA_ID 2026-08-18 18:17:45 +05:30
Bernardo De Marco Gonçalves
8985a1fc7c add access validation for the deleteUserData, linkUserDataToTemplate and resetUserDataForVirtualMachine APIs 2026-08-18 18:17:45 +05:30
dahn
0459833631 saml: reject signed SAMLResponse when IdP has no signing certificate registered
When a SAML Response or EncryptedAssertion carries a ds:Signature element
but the IdP metadata contains no signing certificate, the previous code
silently skipped signature validation (the guard was
`idpMetadata.getSigningCertificate() != null && sig != null`).
An attacker could forge a SAMLResponse with an arbitrary bogus signature
against a cert-less IdP and obtain a valid session — a full
unauthenticated authentication bypass.

Fix: when a signature IS present we now require a signing certificate to
be registered.  If none is found we immediately reject the request with
an ACCOUNT_ERROR.  The same guard is applied to the EncryptedAssertion
signature block.
2026-08-18 18:15:23 +05:30
Abhishek Kumar
2c7f13b709 webhook: additional check for payload url
Adds new global configurations to give more flexibility in controlling
payload URL for the webhooks. New domain-scope configs:
- webhook.delivery.blocklist
- webhook.delivery.allow.redirects
- webhook.delivery.allow.http
- webhook.delivery.block.local.addresses (Hidden)

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:05:25 +05:30
Henrique Sato
ea75dc3c43 Fix database connection leak
Fixes connection leak with scoped config retrievals.
2026-08-18 18:05:24 +05:30
Abhishek Kumar
9781fb906a api,server,kvm: improve backup repository mount handling
Improves handling of mount options for backup repository.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Wei Zhou <weizhou@apache.org>
2026-08-18 18:05:24 +05:30
Abhishek Kumar
b17edb538e oauth2: improve google provider flow
Improves Google OAuth provider.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:05:24 +05:30
Abhishek Kumar
f320f552c3 oauth2: improve list providers api for access
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:05:24 +05:30
Pearl Dsilva
5b325dd49e Prevent command injections in get/run diagnostics API 2026-08-18 18:05:24 +05:30
Abhishek Kumar
7c872a988a api,server: improve async job storage
Adds encryption for AsyncJobVO's job_cmd_info and job_result when they
may contain user information.
While publishing event as well prevent adding sensitive user
information.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:05:20 +05:30
Pearl Dsilva
07e09db0af Fix issue in direct download and NFS templates 2026-08-18 18:00:14 +05:30
Pearl Dsilva
3eb928bc72 Escape HTML in username, VM display name and diagnostics output 2026-08-18 18:00:14 +05:30
Pearl Dsilva
113ccb28e3 Upgrade axios to 0.31.1 which has the config merge fix 2026-08-18 18:00:14 +05:30
Abhishek Kumar
57a2b4d505 server: fix access for disable user 2fa
Only admins should be able to disable 2FA for a user.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:00:14 +05:30
Abhishek Kumar
19d31cf6fa ldap: improve config access
Improves access to LDAP configurations based on the user priviledge.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:00:13 +05:30
Pearl Dsilva
bbd37271c6 Validate URL before obtaining remote size 2026-08-18 18:00:13 +05:30
Abhishek Kumar
e6640803ed webhook: improve deliveries access
Improves access for deliveries for different account types.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-18 18:00:13 +05:30
Pearl Dsilva
4ae69bc7fd Restrict listHostTags to hosts dedicated to the caller's domain (including sub-domains and accounts in a domain) 2026-08-18 18:00:13 +05:30
Pearl Dsilva
30e6abb63f Restrict domain admin access to project roles within their own domain and add tests to cover perm check for proj role permissions 2026-08-18 18:00:13 +05:30
Pearl Dsilva
18c1a30028 Allow only authorized users to add and list entity's annotations 2026-08-18 18:00:13 +05:30
Suresh Kumar Anaparti
5432a04ae6
Ensure VM IP is removed from VR DHCP records in dnsmasq.leases after expunge VM (#13194)
Some checks failed
Build / build (push) Has been cancelled
Simulator CI / build (component/find_hosts_for_migration component/test_acl_isolatednetwork component/test_acl_isolatednetwork_delete component/test_acl_listsnapshot) (push) Has been cancelled
Simulator CI / build (component/test_acl_listvm component/test_acl_listvolume) (push) Has been cancelled
Simulator CI / build (component/test_acl_sharednetwork component/test_acl_sharednetwork_deployVM-impersonation component/test_user_private_gateway component/test_user_shared_network) (push) Has been cancelled
Simulator CI / build (component/test_affinity_groups_projects component/test_allocation_states component/test_assign_vm) (push) Has been cancelled
Simulator CI / build (component/test_concurrent_snapshots_limit component/test_cpu_domain_limits component/test_cpu_limits component/test_cpu_max_limits component/test_cpu_project_limits component/test_deploy_vm_userdata_multi_nic) (push) Has been cancelled
Simulator CI / build (component/test_egress_fw_rules component/test_invalid_gw_nm component/test_ip_reservation) (push) Has been cancelled
Simulator CI / build (component/test_lb_secondary_ip component/test_list_nics component/test_list_pod component/test_memory_limits) (push) Has been cancelled
Simulator CI / build (component/test_mm_domain_limits component/test_mm_max_limits component/test_mm_project_limits component/test_network_offering component/test_non_contiguous_vlan) (push) Has been cancelled
Simulator CI / build (component/test_persistent_networks component/test_project_configs component/test_project_limits component/test_project_resources) (push) Has been cancelled
Simulator CI / build (component/test_project_usage component/test_protocol_number_security_group component/test_public_ip component/test_resource_limits component/test_resource_limit_tags) (push) Has been cancelled
Simulator CI / build (component/test_regions_accounts component/test_routers component/test_snapshots component/test_stopped_vm component/test_tags component/test_templates component/test_updateResourceCount component/test_update_vm) (push) Has been cancelled
Simulator CI / build (component/test_volumes component/test_vpc component/test_vpc_distributed_routing_offering component/test_vpc_network component/test_vpc_offerings component/test_vpc_routers component/test_vpn_users component/test_vpc_network_lbrules) (push) Has been cancelled
Simulator CI / build (smoke/test_accounts smoke/test_account_access smoke/test_affinity_groups smoke/test_affinity_groups_projects smoke/test_annotations smoke/test_async_job smoke/test_attach_multiple_volumes smoke/test_backup_recovery_dummy smoke/test_certauthority… (push) Has been cancelled
Simulator CI / build (smoke/test_cluster_drs smoke/test_dynamicroles smoke/test_enable_account_settings_for_domain smoke/test_enable_role_based_users_in_projects smoke/test_events_resource smoke/test_global_settings smoke/test_guest_vlan_range smoke/test_host_mainten… (push) Has been cancelled
Simulator CI / build (smoke/test_list_accounts smoke/test_list_disk_offerings smoke/test_list_domains smoke/test_list_hosts smoke/test_list_service_offerings smoke/test_list_storage_pools smoke/test_list_volumes) (push) Has been cancelled
Simulator CI / build (smoke/test_network smoke/test_network_acl smoke/test_network_ipv6 smoke/test_network_permissions smoke/test_nic smoke/test_nic_adapter_type smoke/test_non_contigiousvlan smoke/test_object_stores smoke/test_outofbandmanagement smoke/test_outofban… (push) Has been cancelled
Simulator CI / build (smoke/test_router_dhcphosts smoke/test_router_dns smoke/test_router_dnsservice smoke/test_routers smoke/test_routers_iptables_default_policy smoke/test_routers_network_ops smoke/test_scale_vm smoke/test_secondary_storage smoke/test_service_offer… (push) Has been cancelled
Coverage Check / codecov (push) Has been cancelled
PR Merge Conflict Check / triage (push) Has been cancelled
License Check / build (push) Has been cancelled
UI Build / build (push) Has been cancelled
* Ensure VM IP is removed from VR DHCP records in dnsmasq.leases after expunge VM

This also reverts the PR #10183 changes (for #10182), in turn resulting in #11877.

* review changes
2026-08-17 13:22:46 +05:30
Vishesh
2bc8d29973
Don't allow adding of existing host to another zone, pod or cluster (#13182) 2026-08-17 13:15:00 +05:30
dahn
1e5d534c3c
guard against stopping stats background threads (#13659)
* guard against stopping stats background threats

* stats cleanup test

* override annotation, and specic and generic enough catch

---------

Co-authored-by: Daan Hoogland <dahn@apache.org>
2026-08-17 13:12:54 +05:30
Abhishek Kumar
69fc541737
server: ignore projectid=-1 for finding owner (#12695)
Fixes #12693

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2026-08-17 12:58:35 +05:30
dahn
f8a3762f07
do not send jetty version on failure to start (#13744)
Co-authored-by: Daan Hoogland <dahn@apache.org>
2026-08-17 12:27:48 +05:30
Nicolas Vazquez
5dcb8abaf3
Fix checkRoleEscalation performance and bugs in access checking (#12973)
Some checks failed
Build / build (push) Has been cancelled
Simulator CI / build (component/find_hosts_for_migration component/test_acl_isolatednetwork component/test_acl_isolatednetwork_delete component/test_acl_listsnapshot) (push) Has been cancelled
Simulator CI / build (component/test_acl_listvm component/test_acl_listvolume) (push) Has been cancelled
Simulator CI / build (component/test_acl_sharednetwork component/test_acl_sharednetwork_deployVM-impersonation component/test_user_private_gateway component/test_user_shared_network) (push) Has been cancelled
Simulator CI / build (component/test_affinity_groups_projects component/test_allocation_states component/test_assign_vm) (push) Has been cancelled
Simulator CI / build (component/test_concurrent_snapshots_limit component/test_cpu_domain_limits component/test_cpu_limits component/test_cpu_max_limits component/test_cpu_project_limits component/test_deploy_vm_userdata_multi_nic component/test_deploy_vm_lease) (push) Has been cancelled
Simulator CI / build (component/test_egress_fw_rules component/test_invalid_gw_nm component/test_ip_reservation) (push) Has been cancelled
Simulator CI / build (component/test_lb_secondary_ip component/test_list_nics component/test_list_pod component/test_memory_limits) (push) Has been cancelled
Simulator CI / build (component/test_mm_domain_limits component/test_mm_max_limits component/test_mm_project_limits component/test_network_offering component/test_non_contiguous_vlan) (push) Has been cancelled
Simulator CI / build (component/test_persistent_networks component/test_project_configs component/test_project_limits component/test_project_resources) (push) Has been cancelled
Simulator CI / build (component/test_project_usage component/test_protocol_number_security_group component/test_public_ip component/test_resource_limits component/test_resource_limit_tags) (push) Has been cancelled
Simulator CI / build (component/test_regions_accounts component/test_routers component/test_snapshots component/test_stopped_vm component/test_tags component/test_templates component/test_updateResourceCount component/test_update_vm) (push) Has been cancelled
Simulator CI / build (component/test_volumes component/test_vpc component/test_vpc_distributed_routing_offering component/test_vpc_network component/test_vpc_offerings component/test_vpc_routers component/test_vpn_users component/test_vpc_network_lbrules) (push) Has been cancelled
Simulator CI / build (smoke/test_accounts smoke/test_account_access smoke/test_affinity_groups smoke/test_affinity_groups_projects smoke/test_annotations smoke/test_async_job smoke/test_attach_multiple_volumes smoke/test_backup_recovery_dummy smoke/test_certauthority… (push) Has been cancelled
Simulator CI / build (smoke/test_cluster_drs smoke/test_dynamicroles smoke/test_enable_account_settings_for_domain smoke/test_enable_role_based_users_in_projects smoke/test_events_resource smoke/test_global_settings smoke/test_guest_vlan_range smoke/test_host_mainten… (push) Has been cancelled
Simulator CI / build (smoke/test_list_accounts smoke/test_list_disk_offerings smoke/test_list_domains smoke/test_list_hosts smoke/test_list_service_offerings smoke/test_list_storage_pools smoke/test_list_volumes) (push) Has been cancelled
Simulator CI / build (smoke/test_network smoke/test_network_acl smoke/test_network_ipv6 smoke/test_network_permissions smoke/test_nic smoke/test_nic_adapter_type smoke/test_non_contigiousvlan smoke/test_object_stores smoke/test_outofbandmanagement smoke/test_outofban… (push) Has been cancelled
Simulator CI / build (smoke/test_router_dhcphosts smoke/test_router_dns smoke/test_router_dnsservice smoke/test_routers smoke/test_routers_iptables_default_policy smoke/test_routers_network_ops smoke/test_scale_vm smoke/test_secondary_storage smoke/test_service_offer… (push) Has been cancelled
Coverage Check / codecov (push) Has been cancelled
PR Merge Conflict Check / triage (push) Has been cancelled
License Check / build (push) Has been cancelled
UI Build / build (push) Has been cancelled
* Fix checkRoleEscalation performance and bugs in access checking

Replace per-API-command loop (~1,484 DB calls) with batch
getApisAllowedToAccount calls using cached role permissions, reducing
to ~2 DB calls (or 0 with warm cache). Fix NPE on pde.getAccount(),
format string mismatch (3 %s but 4 args), and use cached permissions
in DynamicRoleBasedAPIAccessChecker.checkAccess(Account, String).

* Add tests for checkRoleEscalation, checkAccess, and getApisAllowedToAccount

Add tests for DynamicRoleBasedAPIAccessChecker covering checkAccess(Account,
String) and getApisAllowedToAccount including cache verification, admin
pass-through, allow/deny filtering, and annotation fallback. Add tests for
AccountManagerImpl.checkRoleEscalation covering same permissions, caller
superset, escalation detection, empty API list, and multi-checker chaining.

* Add debug logging exception

* make logging vars consistent to other files

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix complation and test

* fix mokito UnnecessaryStubbing

* fix cachePeriodField illegal arg

* fix null test

* Fix build

* Remove unnecessary stubbings

* Improve error message on escalation error

* Invalidate cache on create or delete role permissions

* Fix for error decoding response

---------

Co-authored-by: Aaron Chung <aaron_chung@apple.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-15 01:02:42 +03:00