René's URL Explorer Experiment


Title: API key pair restructure by KlausDornsbach · Pull Request #9504 · apache/cloudstack · GitHub

Open Graph Title: API key pair restructure by KlausDornsbach · Pull Request #9504 · apache/cloudstack

X Title: API key pair restructure by KlausDornsbach · Pull Request #9504 · apache/cloudstack

Description: Description API access keypairs are primarily used to support interactions between systems, without the need to create sessions (through user and password authentication). Currently, CloudStack's implementation of API keypairs does not allow you to specify permissions for each keypair, simply using the account's default permissions. Additionally, the number of keypairs is limited to one per user and they have no start and end dates. An extension of the API keypairs functionality was implemented, adding several new features that increase flexibility and security. It is now possible to specify a subset of permissions (from the base account) for each keypair, as well as create more than one key per user. It is also possible to define start and end dates for the validity of a keypair. A key created without an expiration date will always be valid up until it is deleted. It should be noted that creating API keypairs without specifying permissions just creates an API keypair with all account's base permissions. Also, API keypairs older than this patch will always be viewed as keypairs with full account permissions. The following endpoints were created: A new listUserKeys API was added. Through this API the user will be able to specify a single keypairid to fetch its specific properties, or apikeyfilter to return a specific keypair based on an apikey. The user can inform an userid to fetch an user's api keypair list. If no keypairid, apikeyfilter or userid is provided, the API defaults to fetching information on the calling user. The listall property allows for fetching all keypairs in the structure that are visible based on the calling user/keypair permissions, if not specified, it defaults to false, fetching only the apikeys on the level of the calling user/keypair. Also, it is possible to inform showpermissions to list all permissions associated with each returned apikey. Name Description Required Default userid id of the owner of the keypairs no none keypairid id of the keypair no none listall list all accessable keypairs no false apikeyfilter apikey of they keypair no none showpermissions lists all associated apikey permissions no false The API getUserKeys was modified preserving backwards compatibility. It now fetches the last keypair created for the informed user. The api registerUserKeys was modified so the new API keypair parameters could be specified on creation: Name Description Required Example Default id user id Yes b8914774-771e-11ee-8e59-5254003754dc none name name of the keypair No MyKey userId + " - API Keypair" startdate date when key becomes valid No 2024-04-09 none enddate date when key expires No 2024-04-09 never expires description keypair description No read only permissions none rules list of API access rules No rules[1].rule=list* rules[1].permission=allow all user API permissions based on Account Role A new keypair deletion API was added (deleteUserKeys). It will accept only one required argument, the keypair id. Name Description Required keypairid id of the keypair yes I also added a listUserKeyRules api, allowing the user to list the rules associated with an API keypair. Name Description Required keypairid id of the keypair yes Types of changes Breaking change (fix or feature that would cause existing functionality to change) New feature (non-breaking change which adds functionality) Bug fix (non-breaking change which fixes an issue) Enhancement (improves an existing feature and functionality) Cleanup (Code refactoring and cleanup, that may add test cases) build/CI test (unit or integration test code) Feature/Enhancement Scale or Bug Severity Feature/Enhancement Scale Major Minor Bug Severity BLOCKER Critical Major Minor Trivial How Has This Been Tested? API Key Creation and Basic Testing Single Key (via UI): I was able to create API keypairs through the UI through the button on the top right of the user view; Through Cloud Monkey, validated that the keypair had the same permissions as the base user by calling a series of APIs; Multiple Keys (via Cloud Monkey): Created multiple keys; Validated the operation was successful on the DB; Tested creating a key that was not valid and would become valid in the future, with success; Tested creating a key that was valid and would become invalid in the future, with success; Tested trying to create keys that were already invalid and got errors; All permissions of the API key pairs were consistent with each key pair tested. Permissions Validation Tested the permissions of keyrules listing, keypair listing, keypair deletion and keypair cretion with the following user/account/domain setup: domain /ROOT account root admin user root admin user user1 domain subdomain account domain admin user domain admin account userAccount user user2 user user3 The following table describes the results obtained when the user on the first column attempted to operate on the keypairs of users on the first row (V: operation was possible, F: operation was not possible). user rootAdm user1 domainAdm user2 user3 rootAdm V V V V V user1 V V V V V domainAdm F F V V V user2 F F F V F user3 F F F F V Migration to api_keypair Table A key was created for a read-only user The database was updated from version 4.19 to 4.20 The API key data was successfully migrated to the api_keypair table, with the corresponding columns in the user table deleted. Confirmed correct permission handling of the api key. General validations Could not create an API keypair with more permissions than the base keypair. Deleting system keys was not possible. After deleting a user or account, the API keypairs were invalidated.

Open Graph Description: Description API access keypairs are primarily used to support interactions between systems, without the need to create sessions (through user and password authentication). Currently, CloudStack'...

X Description: Description API access keypairs are primarily used to support interactions between systems, without the need to create sessions (through user and password authentication). Currently, CloudStack&...

Opengraph URL: https://github.com/apache/cloudstack/pull/9504

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:1065576a-0ed7-a867-ff57-2b49df3f58c7
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id8796:E9E68:1272E3E:18E6874:6A4F15E1
html-safe-nonce5cfb8180a2aa61a276107fafd4a7adf5010a06fd875285f738a1b7478da134b1
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4Nzk2OkU5RTY4OjEyNzJFM0U6MThFNjg3NDo2QTRGMTVFMSIsInZpc2l0b3JfaWQiOiIxNTQ1MjcyODIwNDg4OTM0ODgxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac96c314a4bde807be47fee5b7248da22f957c21be09f8caaeb61a6b5539a0410f
hovercard-subject-tagpull_request:2010762678
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/apache/cloudstack/pull/9504/files
twitter:imagehttps://avatars.githubusercontent.com/u/55457416?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/55457416?s=400&v=4
og:image:altDescription API access keypairs are primarily used to support interactions between systems, without the need to create sessions (through user and password authentication). Currently, CloudStack'...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb92d11c0aa4a77d54ef4af1078b6a15fb5a70a215b30c4ecf28889d5a8e656d9
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/apache/cloudstack git https://github.com/apache/cloudstack.git
octolytics-dimension-user_id47359
octolytics-dimension-user_loginapache
octolytics-dimension-repository_id9759448
octolytics-dimension-repository_nwoapache/cloudstack
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id9759448
octolytics-dimension-repository_network_root_nwoapache/cloudstack
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release2b8f23afb982271f1b22258a94aede67a6b77760
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/apache/cloudstack/pull/9504/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fapache%2Fcloudstack%2Fpull%2F9504%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fapache%2Fcloudstack%2Fpull%2F9504%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=apache%2Fcloudstack
Reloadhttps://github.com/apache/cloudstack/pull/9504/files
Reloadhttps://github.com/apache/cloudstack/pull/9504/files
Reloadhttps://github.com/apache/cloudstack/pull/9504/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/9504/files
apache https://github.com/apache
cloudstackhttps://github.com/apache/cloudstack
Notifications https://github.com/login?return_to=%2Fapache%2Fcloudstack
Fork 1.3k https://github.com/login?return_to=%2Fapache%2Fcloudstack
Star 3k https://github.com/login?return_to=%2Fapache%2Fcloudstack
Code https://github.com/apache/cloudstack
Issues 536 https://github.com/apache/cloudstack/issues
Pull requests 266 https://github.com/apache/cloudstack/pulls
Discussions https://github.com/apache/cloudstack/discussions
Actions https://github.com/apache/cloudstack/actions
Projects https://github.com/apache/cloudstack/projects
Wiki https://github.com/apache/cloudstack/wiki
Security and quality 0 https://github.com/apache/cloudstack/security
Insights https://github.com/apache/cloudstack/pulse
Code https://github.com/apache/cloudstack
Issues https://github.com/apache/cloudstack/issues
Pull requests https://github.com/apache/cloudstack/pulls
Discussions https://github.com/apache/cloudstack/discussions
Actions https://github.com/apache/cloudstack/actions
Projects https://github.com/apache/cloudstack/projects
Wiki https://github.com/apache/cloudstack/wiki
Security and quality https://github.com/apache/cloudstack/security
Insights https://github.com/apache/cloudstack/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fapache%2Fcloudstack%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fapache%2Fcloudstack%2Fissues%2Fnew%2Fchoose
DaanHooglandhttps://github.com/DaanHoogland
apache:mainhttps://github.com/apache/cloudstack/tree/main
scclouds:api-keypair-restructurehttps://github.com/scclouds/cloudstack/tree/api-keypair-restructure
Conversation 207 https://github.com/apache/cloudstack/pull/9504
Commits 2 https://github.com/apache/cloudstack/pull/9504/commits
Checks 28 https://github.com/apache/cloudstack/pull/9504/checks
Files changed https://github.com/apache/cloudstack/pull/9504/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/9504/files
API key pair restructure https://github.com/apache/cloudstack/pull/9504/files#top
Show all changes 2 commits https://github.com/apache/cloudstack/pull/9504/files
4718ca7 API key pair restructure bernardodemarco Mar 5, 2026 https://github.com/apache/cloudstack/pull/9504/commits/4718ca7dac87283700be24823e290e540c67ae4b
b6b1b5f improve log message bernardodemarco Mar 5, 2026 https://github.com/apache/cloudstack/pull/9504/commits/b6b1b5f63284c69d01758bb737a5e843fddc5653
Clear filters https://github.com/apache/cloudstack/pull/9504/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/9504/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/9504/files
EventTypes.java https://github.com/apache/cloudstack/pull/9504/files#diff-5ba116e51166a94b6d3bf3dddc7dfb6cfd25de3fe0e481bde84ac3702f943a56
AccountService.java https://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
ApiKeyPairState.java https://github.com/apache/cloudstack/pull/9504/files#diff-17f33ab769338f26e5743268e3aba854d76199149c334a7a908548fcac47ad91
User.java https://github.com/apache/cloudstack/pull/9504/files#diff-06974d26c2009973171b3f82e8102873208f4089492081b33d86d1bf3c764bf6
UserAccount.java https://github.com/apache/cloudstack/pull/9504/files#diff-fc327c8b52cb18d1b0f2283d24c8f4cd309bb50d4578d1f390d0c8879ae4c1d4
APIChecker.java https://github.com/apache/cloudstack/pull/9504/files#diff-145e8e7d1310c5b00c5fd352119b0e84f2fa87a6d1aa01715cf2576500a45b85
RolePermissionEntity.java https://github.com/apache/cloudstack/pull/9504/files#diff-d1439265e11d3d4a55ef41e6fea7d2e13a03c7c7ea32ab9806fd503a02f0ece1
RoleService.java https://github.com/apache/cloudstack/pull/9504/files#diff-24b6635d1297d00c09ccd1e90de5cd5a6d71564a4ba4a0c9a3ef4ea75a5c89c9
Rule.java https://github.com/apache/cloudstack/pull/9504/files#diff-604dfc70b918cc4bc8fb1405ce1a848d007219fdf1ae7e2c672bdaeafd6dc75d
ApiKeyPair.java https://github.com/apache/cloudstack/pull/9504/files#diff-6770d8833bc6c03ba537f50ea0ce1cfcf6d6585639d66d65eb8667cc2639020e
ApiKeyPairPermission.java https://github.com/apache/cloudstack/pull/9504/files#diff-e9bdfb11b5a57576ad88f6e518d31f04192d510d163d9b9805881ce645841ab8
ApiKeyPairService.java https://github.com/apache/cloudstack/pull/9504/files#diff-43a891b9bad9dcb0cb2efa37c131b2eb5c7acc504d1533a7566e58679caa2f22
ApiConstants.java https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
BaseAsyncCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-a9880571d42862c1246e590b111a221f0ed933fd4b8f60603eaf4c0ae589c039
BaseCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-2de3899028c10f1fdb2eee5de3e95f9de0955a913b76847c0530c21d8285d30d
ResponseGenerator.java https://github.com/apache/cloudstack/pull/9504/files#diff-8e4e07b6ae3edb4a94f515d699f3a6cf87295f03f07aff165eb7e46349b2588e
AddImageStoreS3CMD.java https://github.com/apache/cloudstack/pull/9504/files#diff-e13d3e5e81f4ef4b37831f2783d5c3b288e5aa7d822d37a1f3daf335e5f4a020
DeleteUserKeysCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-64732df38f506402c6ee948f62ee4c989f6b1f59e501f4966a9bd7609f57613c
GetUserKeysCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-fddf6d10d48198aeaa54c998aeb84682888c7ba572c674242660552a701b047e
ListUserKeyRulesCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-551af2bb962d773a7c4bf3431ceef8724c93558975029f19b1a37d6e98450fe5
ListUserKeysCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-414952fa9b3f3c1b5f5ae78208eb28efc3296f0c8a0b6f34254522d13842e8a3
RegisterUserKeyCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-dce0473b8a183dc2bf30c4739c001d42b8abf90d1a282f305bf7c0761b9dd24e
RegisterUserKeysCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-9d0fddfa7a2c1b2ee38c2013e03d57be857fbe655e977e8c128fcfbb10507d2c
UpdateUserCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-aa26f6d7b56f42ffb178b306b8f92881b6213af55ba4d312f80f08ac0639d30f
ApiKeyPairResponse.java https://github.com/apache/cloudstack/pull/9504/files#diff-3d198d3bcdf0e220c0f36e0de6b40122c8684fb5791d37558f0f3c29fe71ebec
UserResponse.java https://github.com/apache/cloudstack/pull/9504/files#diff-fa5c35fa5e6d6af7a1748f2e196d2d08b0f55454e0ac865227b2d9e6cbf126ba
QueryService.java https://github.com/apache/cloudstack/pull/9504/files#diff-a7bfc6f26c3369d9ee68fec67d2c4fcdd228dbc3d67fb56ee3b1590c4a24c4f4
RuleTest.java https://github.com/apache/cloudstack/pull/9504/files#diff-a948398eedb261c134f1204deba00e8e57e835e389bb69e9c0188b072146750f
Upgrade410to420.java https://github.com/apache/cloudstack/pull/9504/files#diff-31dcf6e8eed3dfbed944df446320d0a2f343d711f39e642cbb2230b3e1ed7a6a
UserAccountVO.java https://github.com/apache/cloudstack/pull/9504/files#diff-ad04db4978745b82495c1971e127ef6d1a89fd05ff28530b775bd5ae0c0a848f
UserVO.java https://github.com/apache/cloudstack/pull/9504/files#diff-2b6454de690997260588a7d9a249c03300bb96771ecc703131570c8fcebb5127
UserAccountDao.java https://github.com/apache/cloudstack/pull/9504/files#diff-957e9ff46930682d811e317afb67c56564c95a08dc35d4c6bc7d4d8cffb9c2f2
UserAccountDaoImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-58ec55fc8bd9fe9b5851018d89a61a66d3c104ec9181bbcd84016c62abb1315a
UserDao.java https://github.com/apache/cloudstack/pull/9504/files#diff-9132d11742494ac5b698692bb95e43cde37877d4bdc4e6c8bfca4999add89c8b
UserDaoImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-1fc902150b96568298573c578f8b57bde9f9fcb78662909a02974897a1b80d59
ApiKeyPairPermissionVO.java https://github.com/apache/cloudstack/pull/9504/files#diff-31db31685fd523bcef1741ec66ab6d0d47a7d581f1c41abc5e827ad5edf01c0f
ApiKeyPairVO.java https://github.com/apache/cloudstack/pull/9504/files#diff-c84d7d92113201226a31c6c8c6dad4c839aa0f33d8485b9d335a78d76ab055b2
RolePermissionBaseVO.java https://github.com/apache/cloudstack/pull/9504/files#diff-959f4ac7a686ae56934911d40e000dbe029f8c7bd0f145f842352f7a79b47b46
ApiKeyPairDao.java https://github.com/apache/cloudstack/pull/9504/files#diff-8537366a0307f97e0344b22c865346d7dcc7ea59bddfef7c8b22aa978b914e2d
ApiKeyPairDaoImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-8e8a9281922719b8e4a28595e8e2fcbbcee1365cc9162481b65911efe44e2bf8
ApiKeyPairPermissionsDao.java https://github.com/apache/cloudstack/pull/9504/files#diff-9c3f212ccec6d9128e10f80989a0b33b6dea94db48c18151b0f6b2acc3019878
ApiKeyPairPermissionsDaoImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-d6b6574b282f1aa26b8fd829c1e95e8a4f84c4dd620b32bd8997c55cbb71f691
ImageStoreDetailsDaoImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-840f23f78c108a36964dc4847b6271cd5edf3cf2d23195cf67f7f94d0a4b23c3
spring-engine-schema-core-daos-context.xml https://github.com/apache/cloudstack/pull/9504/files#diff-49ea966489d2196b62abdf1dd137b39ababb951136abd0f695f666fd83bcead8
schema-42210to42300.sql https://github.com/apache/cloudstack/pull/9504/files#diff-c2a347e8868908a473213b79695fd81420bee5f97f09c1e1c0d488529e17c80e
cloud.user_view.sql https://github.com/apache/cloudstack/pull/9504/files#diff-7d37fe5521844ba0249be6100fe45205c721537be2f22329e22775dff5329c25
ImageStoreHelper.java https://github.com/apache/cloudstack/pull/9504/files#diff-8eb1ea5d0504bae846a8f71788ee95d23ffd187613190e8ca1ad593df4bf8192
DynamicRoleBasedAPIAccessChecker.java https://github.com/apache/cloudstack/pull/9504/files#diff-fda34b2efe234e7e6ef3017e734c3d4095eb528a1ffdab0f21f3aa745c77d3aa
DynamicRoleBasedAPIAccessCheckerTest.java https://github.com/apache/cloudstack/pull/9504/files#diff-5e0a79cd492fe0d19caac8615fb60f984241516fa8b0f2328c0e0e854aee5980
ProjectRoleBasedApiAccessChecker.java https://github.com/apache/cloudstack/pull/9504/files#diff-33b17f93be5d401446e6ad252243f8b597bad3a5ec72b3681d49faf5bc12fc87
StaticRoleBasedAPIAccessChecker.java https://github.com/apache/cloudstack/pull/9504/files#diff-15fe740c402fdef57a0275e47ae4eebae73568ddca4ef3c23036badbbfb747c8
pom.xml https://github.com/apache/cloudstack/pull/9504/files#diff-e6e47e0827e4ce08fce27663f83131de7e9b783ad61ade06a3f5940b63e7a31b
ListApisCmd.java https://github.com/apache/cloudstack/pull/9504/files#diff-418e3688fe5001207eb1515f51939eaf4966f1a7496c91ed0a54b57ca9bbdc8a
ApiDiscoveryService.java https://github.com/apache/cloudstack/pull/9504/files#diff-ce47f9815e038c19a77fa5aba4a04be467a39526e73102552ec260b42c0afacf
ApiDiscoveryServiceImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-e25e3fea29d719a6eb7d7e39a6d446fc4b460a433fc5d0b9f94abb8113f87337
ApiDiscoveryTest.java https://github.com/apache/cloudstack/pull/9504/files#diff-aaf292bb98ce8f9c4dffc814d314bcdc325d456049c28342197eb799f52fa192
ApiRateLimitServiceImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-bc120370f1b991b4b973735bf5d3adb828ad737f7158383fee9214e5ebcf24d8
QuotaResponseBuilderImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-99eb47fe5012ce9667429b55783615fe5191a7298fb056695f34d1179c408b88
QuotaResponseBuilderImplTest.java https://github.com/apache/cloudstack/pull/9504/files#diff-d98e63d5feb4bb44192f3ed4e95833b33f4f4f7464271568fc769c220bee623f
BaremetalVlanManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-d6e5a9370b29f00f16c6c55ba745881f6319d548698afd61cc3eac7848ebfb7b
KubernetesClusterManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-ee1d987a80d1c5723de57cae46a0974acad578ffe978fd3751ef0875ecec913f
MockAccountManager.java https://github.com/apache/cloudstack/pull/9504/files#diff-330a857f9c4dcb81249f1208a45855517ec687fac366738d02a0791279f2b991
TungstenServiceImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-65cb046ec9fbd1a3e3b142fb1a1af2ef94abb77f6ad415b59698f5d966ed38c2
TungstenElementTest.java https://github.com/apache/cloudstack/pull/9504/files#diff-7226a7681c7fed15d94c456c7972b6869b76c663150cbfb03d0cf4bc5735f6cd
S3ImageStoreDriverImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-34a31a6aa57638ee5e71a0b2f2a39e38772981c85a5db7434b0925bd7efbcfda
ApiDBUtils.java https://github.com/apache/cloudstack/pull/9504/files#diff-f6f4b049dd9163f8716ac3a3e4f9aaac7e33b2cbe5e504956db55350fbe449f4
ApiResponseHelper.java https://github.com/apache/cloudstack/pull/9504/files#diff-2f016edb6fdd628254c594507189d8c184508f58d7fd329e1b2fec17023c374e
ApiServer.java https://github.com/apache/cloudstack/pull/9504/files#diff-d4f381fc49d5bb07c76daf73677484cace911ff56eb08e60b253b6ef0273124d
ApiServlet.java https://github.com/apache/cloudstack/pull/9504/files#diff-cc92beff292fdad7835437d622159db6e1ae90d0ebac7fb4ae73c813faa8896e
QueryManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-4331e50c256338af39135a4a3201b3a99d8f0c08b226e5efb9789c4866d11cea
UserAccountJoinDao.java https://github.com/apache/cloudstack/pull/9504/files#diff-c7adc8b66c4537f093b183ee3c5d27d14c6eeb8c399836cee6b9753e38dea35c
UserAccountJoinDaoImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-ba87da77d10111aa252d33c73f365747da091d3d75478a8ab4f535b641e11c19
UserAccountJoinVO.java https://github.com/apache/cloudstack/pull/9504/files#diff-2966cfe2c53e1e315f1996d7dcfea4f5c929bb49bc093cf7890927ecd8b5933b
AutoScaleManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-fba89bd9e1911164d8e981f95e955390ce3db7cc0b266454dacf73809b1ad50b
LoadBalancingRulesManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-6f5425741ccbd0a0dfa14f6f709bb036ac2464637e796e5a8e77c08e89410ca3
VirtualNetworkApplianceManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-b4fae8c899ae9aa8aa78ec0ef9ee3c8e764e8aec911ef7809763d9e3a2a3907d
ManagementServerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-eb21dad2af4d6b0008ab4330419b8f156ac1d7176cf4ad55c246beb83296b79f
ConsoleProxyServlet.java https://github.com/apache/cloudstack/pull/9504/files#diff-844ef0dd60a05083d40f9b21967f84618a2c40fb8b4ab4d1fd401b4141509836
AccountManager.java https://github.com/apache/cloudstack/pull/9504/files#diff-b9ac784fac497df5d16c1ed9547099aafacade3b4d9f26774a186122377d3ea8
AccountManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-fdd46eb6e71ed13aa5bc82ca928751e334a0e743c1142a0201a7cba7986882ff
UserVmManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-865f710fe60b9b62ff8c2cbce8a8342e4f6fca658223119762285fd5f7857f08
ApiKeyPairManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-c7804ea8b29886812c46e60ddcbf3317dc25a2a38d729ecb2ab16bf71d143271
RoleManagerImpl.java https://github.com/apache/cloudstack/pull/9504/files#diff-22d413087a9f60147d6249dfcce3a69c81e2b2d9236005ed4f249f596732091d
spring-server-core-managers-context.xml https://github.com/apache/cloudstack/pull/9504/files#diff-8e152469f44bd1fa81c7c00c8ae38dc227f9c2e2f58f08035e7afef645fda245
AutoScaleManagerImplTest.java https://github.com/apache/cloudstack/pull/9504/files#diff-5978dcacba5bbb74dddbbd7ade1869eb7a1253a968216c7ea6d5acfff2fff940
AccountManagerImplTest.java https://github.com/apache/cloudstack/pull/9504/files#diff-9ee1a679f4c9f18ea68c7b9288a2cdb2b224b8cee933831a906337891c54dbb2
UserVmManagerImplTest.java https://github.com/apache/cloudstack/pull/9504/files#diff-54464b1d14d054e4814f6b1f4eba6cf0c06ef4fafb6cc2baf0ba7cf8d5b78ef4
RoleManagerImplTest.java https://github.com/apache/cloudstack/pull/9504/files#diff-409b7559c13067cb7eb922c41db929ffe31feff0972f5d61ced11dac0255978f
test_accounts.py https://github.com/apache/cloudstack/pull/9504/files#diff-79d0e724dcce5c96feaeaf1568f4e47a07c0a3b31304fa1ba9f11fbf66dc6f9b
cloudstackTestClient.py https://github.com/apache/cloudstack/pull/9504/files#diff-8503b48954733588ac58b149017b021b0816f4002d1e9e0dabaeb7e0d6499e5a
base.py https://github.com/apache/cloudstack/pull/9504/files#diff-c69893efc46019511bc3efb5c509e72b7dd8e91cb88fd5341597df076448563a
api/src/main/java/com/cloud/event/EventTypes.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-5ba116e51166a94b6d3bf3dddc7dfb6cfd25de3fe0e481bde84ac3702f943a56
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/com/cloud/event/EventTypes.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-5ba116e51166a94b6d3bf3dddc7dfb6cfd25de3fe0e481bde84ac3702f943a56
https://github.com/apache/cloudstack/pull/9504/files#diff-5ba116e51166a94b6d3bf3dddc7dfb6cfd25de3fe0e481bde84ac3702f943a56
api/src/main/java/com/cloud/user/AccountService.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/com/cloud/user/AccountService.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
https://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
https://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
https://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
https://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
https://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
https://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
https://github.com/apache/cloudstack/pull/9504/files#diff-c62c206a677db395568c8d5bb0fcd2ed83073588dc03b00849e0bcc7224b39df
api/src/main/java/com/cloud/user/ApiKeyPairState.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-17f33ab769338f26e5743268e3aba854d76199149c334a7a908548fcac47ad91
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/com/cloud/user/ApiKeyPairState.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
api/src/main/java/com/cloud/user/User.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-06974d26c2009973171b3f82e8102873208f4089492081b33d86d1bf3c764bf6
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/com/cloud/user/User.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-06974d26c2009973171b3f82e8102873208f4089492081b33d86d1bf3c764bf6
https://github.com/apache/cloudstack/pull/9504/files#diff-06974d26c2009973171b3f82e8102873208f4089492081b33d86d1bf3c764bf6
api/src/main/java/com/cloud/user/UserAccount.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-fc327c8b52cb18d1b0f2283d24c8f4cd309bb50d4578d1f390d0c8879ae4c1d4
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/com/cloud/user/UserAccount.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-fc327c8b52cb18d1b0f2283d24c8f4cd309bb50d4578d1f390d0c8879ae4c1d4
https://github.com/apache/cloudstack/pull/9504/files#diff-fc327c8b52cb18d1b0f2283d24c8f4cd309bb50d4578d1f390d0c8879ae4c1d4
api/src/main/java/org/apache/cloudstack/acl/APIChecker.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-145e8e7d1310c5b00c5fd352119b0e84f2fa87a6d1aa01715cf2576500a45b85
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/org/apache/cloudstack/acl/APIChecker.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-145e8e7d1310c5b00c5fd352119b0e84f2fa87a6d1aa01715cf2576500a45b85
https://github.com/apache/cloudstack/pull/9504/files#diff-145e8e7d1310c5b00c5fd352119b0e84f2fa87a6d1aa01715cf2576500a45b85
https://github.com/apache/cloudstack/pull/9504/files#diff-145e8e7d1310c5b00c5fd352119b0e84f2fa87a6d1aa01715cf2576500a45b85
api/src/main/java/org/apache/cloudstack/acl/RolePermissionEntity.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-d1439265e11d3d4a55ef41e6fea7d2e13a03c7c7ea32ab9806fd503a02f0ece1
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/org/apache/cloudstack/acl/RolePermissionEntity.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-d1439265e11d3d4a55ef41e6fea7d2e13a03c7c7ea32ab9806fd503a02f0ece1
https://github.com/apache/cloudstack/pull/9504/files#diff-d1439265e11d3d4a55ef41e6fea7d2e13a03c7c7ea32ab9806fd503a02f0ece1
api/src/main/java/org/apache/cloudstack/acl/RoleService.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-24b6635d1297d00c09ccd1e90de5cd5a6d71564a4ba4a0c9a3ef4ea75a5c89c9
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/org/apache/cloudstack/acl/RoleService.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-24b6635d1297d00c09ccd1e90de5cd5a6d71564a4ba4a0c9a3ef4ea75a5c89c9
api/src/main/java/org/apache/cloudstack/acl/Rule.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-604dfc70b918cc4bc8fb1405ce1a848d007219fdf1ae7e2c672bdaeafd6dc75d
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/org/apache/cloudstack/acl/Rule.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-604dfc70b918cc4bc8fb1405ce1a848d007219fdf1ae7e2c672bdaeafd6dc75d
https://github.com/apache/cloudstack/pull/9504/files#diff-604dfc70b918cc4bc8fb1405ce1a848d007219fdf1ae7e2c672bdaeafd6dc75d
api/src/main/java/org/apache/cloudstack/acl/apikeypair/ApiKeyPair.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-6770d8833bc6c03ba537f50ea0ce1cfcf6d6585639d66d65eb8667cc2639020e
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/org/apache/cloudstack/acl/apikeypair/ApiKeyPair.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
api/src/main/java/org/apache/cloudstack/acl/apikeypair/ApiKeyPairPermission.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-e9bdfb11b5a57576ad88f6e518d31f04192d510d163d9b9805881ce645841ab8
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/org/apache/cloudstack/acl/apikeypair/ApiKeyPairPermission.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
api/src/main/java/org/apache/cloudstack/acl/apikeypair/ApiKeyPairService.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-43a891b9bad9dcb0cb2efa37c131b2eb5c7acc504d1533a7566e58679caa2f22
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/org/apache/cloudstack/acl/apikeypair/ApiKeyPairService.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
api/src/main/java/org/apache/cloudstack/api/ApiConstants.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
https://github.com/apache/cloudstack/pull/9504/files#diff-72d5bf21c12ffd0a3c2d3a6033ec70ae5ba6c31338e915fe65df1b7a67827a9e
api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.javahttps://github.com/apache/cloudstack/pull/9504/files#diff-a9880571d42862c1246e590b111a221f0ed933fd4b8f60603eaf4c0ae589c039
View file https://github.com/scclouds/cloudstack/blob/b6b1b5f63284c69d01758bb737a5e843fddc5653/api/src/main/java/org/apache/cloudstack/api/BaseAsyncCmd.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/9504/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/9504/files#diff-a9880571d42862c1246e590b111a221f0ed933fd4b8f60603eaf4c0ae589c039
https://github.com/apache/cloudstack/pull/9504/files#diff-a9880571d42862c1246e590b111a221f0ed933fd4b8f60603eaf4c0ae589c039
Please reload this pagehttps://github.com/apache/cloudstack/pull/9504/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/9504/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.