vCloud Director 9: Customize Tenant UI

vCloud Director 9 introduces brand new HTML5 tenant user interface. It currently provides only limited set of operations:

  • simplified workflow to create VMs without the need to create vApps
  • view and modify (but not create) vApps
  • create and configure networks and networking services
  • configure multisite organization associations

The legacy (flex) UI is still available and the user can jump to it if needed which is useful especially for Org Administrators.

The new UI can be modified – in the initial release with the following elements:

  • Portal name
  • Portal color (in RGB HEX format e.g. #EE00EE)
  • Portal theme (default/dark)
  • Logo (png file of max size 512 KB)

This will expand in the future with tenant granularity, custom themes and custom links, but for now we have only these four elements.

The configuration must be done with new CloudAPI which is JSON based. At the time of writing its documentation has not been yet published.

  • Retrieve authentication token with vCloud API or UI
  • Use the following call to change logo:

PUT /cloudapi/branding/logo

Content-Type: image/png

x-vcloud-authorization: …

Body: <binary image file>

  • Use the following call to change other elements:

PUT /cloudapi/branding

Content-Type: application/json

x-vcloud-authorization: …

    “portalName”: “vCloud Director 9.0”,
    “portalColor”: “#EE00EE”,
    “selectedTheme”: {
        “themeType”: “BUILT_IN”,
        “name”: “Dark”    },
    “customLinks”: []

21 thoughts on “vCloud Director 9: Customize Tenant UI

  1. Hi Tom, i have an error message “ACCESS_TO_RESOURCE_IS_FORBIDDEN” when i want to change the logo. i’m logged in as “Organization administrator”.

  2. Hi Tomas,
    I am trying to change a picture with cloudapi.
    I converted png to base64 format and put data:image/png;base64,….. to body.
    But every time I have not logo. When I look at web page code, I see different base64 code.
    Maybe I use wrong syntax.
    Please describe more details.

  3. Hi again.
    Thank you for help with logo. With postman I uploaded logo successfully.
    Then I set branding
    “portalName”: “Somename”,
    “portalColor”: “#62B5E6”,
    “selectedTheme”: {
    “themeType”: “BUILT_IN”,
    “name”: “Default”
    “customLinks”: []

    And received an permanent errors which are show for all users
    Authentication Error
    Current user is locked out. Please contact your administrator.

    In code debug I found an error

    Uncaught TypeError: Cannot read property ‘style’ of null
    at onPageLoad (login:165)
    onPageLoad @ login:165

    Screenshot there

    Then I returned portalColor back to “”
    “portalName”: “Somename”,
    “portalColor”: “”,
    “selectedTheme”: {
    “themeType”: “BUILT_IN”,
    “name”: “Default”
    “customLinks”: []

    and problem has gone.

    I also raised ticket in VMware.

  4. Hi all,

    I confirm updating body can be performed without confusion.
    Relating to updating picture, you can get a message “ressource forbidden”. However, even if you get this message, refresh your browser to your tenant portal, the picture may be updated correctly.

  5. After upgrade vCloud Director from version 9.1 to 9.5 the interface is still like in old (flash). How to switch the UI to html5?

  6. Great post Tomas, I’m using VCD 10 in virtual apliance mode
    I used the bearer token method to authenticate without issues making the call to /api/sessions
    Accept Header: application/*+xml;version=33.0
    This is my body:
    “portalName”: “XXX”,
    “portalColor”: “FFFFFF”,
    “selectedTheme”: {
    “themeType”: “BUILT_IN”,
    “name”: “Default”
    “customLinks”: []
    I’m getting the following error, any ideas?
    “minorErrorCode”: “NOT_ACCEPTABLE”,
    “message”: “The request accept header is invalid.”,
    “stackTrace”: null

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.