Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

CloudMonkey (cmk) Examples:

Register domain-specific OAuth provider:

Code Block
languagebash
cmk register oauthprovider \
    provider=github \
    description="Engineering GitHub" \
    clientid="Iv1.abc123" \
    secretkey="secret456" \
    redirecturi="https://cloudstack.example.com/client/oauth2" \
    domainid=<domain-uuid>

...

List providers for a domain:

Code Block
languagebash
cmk list oauthproviders domainid=<domain-uuid>

List only global providers:

Code Block
languagebash
cmk list oauthproviders domainid=-1

Database Changes:

Table: oauth_provider:

Code Block
languagesql
ALTER TABLE `cloud`.`oauth_provider`
  ADD COLUMN `domain_id` bigint unsigned DEFAULT NULL;

ALTER TABLE `cloud`.`oauth_provider`
  ADD CONSTRAINT `fk_oauth_provider__domain_id`
  FOREIGN KEY (`domain_id`) REFERENCES `domain`(`id`);

ALTER TABLE `cloud`.`oauth_provider`
  ADD INDEX `i_oauth_provider__domain_id`(`domain_id`);

ALTER TABLE `cloud`.`oauth_provider`
  ADD UNIQUE KEY `uk_oauth_provider__provider_domain` (`provider`, `domain_id`);



  • domain_id = NULL indicates a global provider
  • Unique constraint on (provider, domain_id) prevents duplicate registrations